Merge pull request #566 from wolfmanjm/upstreamedge
[clinton/Smoothieware.git] / src / modules / tools / temperaturecontrol / TemperatureControl.h
index 874ae55..6f2b755 100644 (file)
 #include "Module.h"
 #include "Pwm.h"
 #include "TempSensor.h"
-
-class TemperatureControlPool;
+#include "TemperatureControlPublicAccess.h"
 
 class TemperatureControl : public Module {
 
     public:
-        TemperatureControl(uint16_t name);
+        TemperatureControl(uint16_t name, int index);
         ~TemperatureControl();
 
         void on_module_loaded();
         void on_main_loop(void* argument);
         void on_gcode_execute(void* argument);
         void on_gcode_received(void* argument);
-        void on_config_reload(void* argument);
         void on_second_tick(void* argument);
         void on_get_public_data(void* argument);
         void on_set_public_data(void* argument);
+        void on_halt(void* argument);
 
         void set_desired_temperature(float desired_temperature);
 
-        int pool_index;
-        TemperatureControlPool *pool;
+        float get_temperature();
+
         friend class PID_Autotuner;
 
-        float get_temperature();
     private:
+        void load_config();
         uint32_t thermistor_read_tick(uint32_t dummy);
         void pid_process(float);
 
+        int pool_index;
+
         float target_temperature;
+        float max_temp;
 
         float preset1;
         float preset2;
 
         TempSensor *sensor;
-        
+
         // PID runtime
         float i_max;
 
@@ -60,15 +62,12 @@ class TemperatureControl : public Module {
 
         Pwm  heater_pin;
 
-        bool use_bangbang;
-        bool waiting;
-        bool min_temp_violated;
-
         uint16_t set_m_code;
         uint16_t set_and_wait_m_code;
         uint16_t get_m_code;
+        struct pad_temperature public_data_return;
 
-        string designator;
+        std::string designator;
 
         void setPIDp(float p);
         void setPIDi(float i);
@@ -82,6 +81,16 @@ class TemperatureControl : public Module {
         float i_factor;
         float d_factor;
         float PIDdt;
+
+        struct {
+            bool use_bangbang:1;
+            bool waiting:1;
+            bool min_temp_violated:1;
+            bool link_to_tool:1;
+            bool active:1;
+            bool readonly:1;
+            bool windup:1;
+        };
 };
 
 #endif