Increase timeout max to 2040 secs or 34 minutes
[clinton/Smoothieware.git] / src / modules / tools / temperaturecontrol / TemperatureControl.h
index 2c95644..9df2969 100644 (file)
@@ -30,8 +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;
 
@@ -39,6 +38,9 @@ class TemperatureControl : public Module {
         void load_config();
         uint32_t thermistor_read_tick(uint32_t dummy);
         void pid_process(float);
+        void setPIDp(float p);
+        void setPIDi(float i);
+        void setPIDd(float d);
 
         int pool_index;
 
@@ -49,29 +51,14 @@ class TemperatureControl : public Module {
         float preset2;
 
         TempSensor *sensor;
-
-        // PID runtime
         float i_max;
-
         int o;
-
         float last_reading;
-
         float readings_per_second;
-
-        uint16_t name_checksum;
-
         Pwm  heater_pin;
 
-        uint16_t set_m_code;
-        uint16_t set_and_wait_m_code;
-        uint16_t get_m_code;
-
         std::string designator;
 
-        void setPIDp(float p);
-        void setPIDi(float i);
-        void setPIDd(float d);
 
         float hysteresis;
         float iTerm;
@@ -82,15 +69,21 @@ class TemperatureControl : public Module {
         float d_factor;
         float PIDdt;
 
-        // Temperature runaway values
-        RUNAWAY_TYPE runaway_state;      
-
+        enum RUNAWAY_TYPE {NOT_HEATING, HEATING_UP, COOLING_DOWN, TARGET_TEMPERATURE_REACHED};
 
+        // pack these to save memory
         struct {
-            uint8_t runaway_heating_timer:8;
+            uint16_t name_checksum;
+            uint16_t set_m_code:10;
+            uint16_t set_and_wait_m_code:10;
+            uint16_t get_m_code:10;
+            RUNAWAY_TYPE runaway_state:2;
             // 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:8; // 2040 secs
+            uint16_t runaway_cooling_timeout:8; // 2040 secs
+            uint16_t runaway_timer:8;
+            uint8_t tick:3;
             bool use_bangbang:1;
             bool waiting:1;
             bool temp_violated:1;