increase runaway_heating_timeout to a max of 511 seconds
authorJim Morris <morris@wolfman.com>
Tue, 18 Oct 2016 06:56:47 +0000 (23:56 -0700)
committerJim Morris <morris@wolfman.com>
Tue, 18 Oct 2016 06:56:47 +0000 (23:56 -0700)
decrease runaway_range to a max of 63 degrees

src/modules/tools/temperaturecontrol/TemperatureControl.cpp
src/modules/tools/temperaturecontrol/TemperatureControl.h

index 4168aed..45ceefa 100644 (file)
@@ -137,8 +137,12 @@ void TemperatureControl::load_config()
     this->designator          = THEKERNEL->config->value(temperature_control_checksum, this->name_checksum, designator_checksum)->by_default(string("T"))->as_string();
 
     // Runaway parameters
-    this->runaway_range           = THEKERNEL->config->value(temperature_control_checksum, this->name_checksum, runaway_range_checksum)->by_default(0)->as_number();
-    this->runaway_heating_timeout = THEKERNEL->config->value(temperature_control_checksum, this->name_checksum, runaway_heating_timeout_checksum)->by_default(0)->as_number();
+    uint32_t n= THEKERNEL->config->value(temperature_control_checksum, this->name_checksum, runaway_range_checksum)->by_default(0)->as_number();
+    if(n > 63) n= 63;
+    this->runaway_range= n;
+    n= THEKERNEL->config->value(temperature_control_checksum, this->name_checksum, runaway_heating_timeout_checksum)->by_default(0)->as_number();
+    if(n > 511) n= 511;
+    this->runaway_heating_timeout = n;
 
     // Max and min temperatures we are not allowed to get over (Safety)
     this->max_temp = THEKERNEL->config->value(temperature_control_checksum, this->name_checksum, max_temp_checksum)->by_default(300)->as_number();
index 2c95644..70aac48 100644 (file)
@@ -30,7 +30,7 @@ class TemperatureControl : public Module {
         void set_desired_temperature(float desired_temperature);
 
         float get_temperature();
-        
+
         enum RUNAWAY_TYPE {NOT_HEATING, WAITING_FOR_TEMP_TO_BE_REACHED, TARGET_TEMPERATURE_REACHED};
 
         friend class PID_Autotuner;
@@ -83,14 +83,14 @@ class TemperatureControl : public Module {
         float PIDdt;
 
         // Temperature runaway values
-        RUNAWAY_TYPE runaway_state;      
+        RUNAWAY_TYPE runaway_state;
 
 
         struct {
-            uint8_t runaway_heating_timer:8;
             // Temperature runaway config options
-            uint8_t runaway_range:8;
-            uint8_t runaway_heating_timeout:8; 
+            uint8_t runaway_range:6; // max 63
+            uint16_t runaway_heating_timeout:9;   // max 511
+            uint16_t runaway_heating_timer:9;
             bool use_bangbang:1;
             bool waiting:1;
             bool temp_violated:1;