TemperatureControl: report temperatures every second while waiting for warmup
authorMichael Moon <triffid.hunter@gmail.com>
Tue, 15 Jan 2013 04:23:54 +0000 (15:23 +1100)
committerMichael Moon <triffid.hunter@gmail.com>
Tue, 15 Jan 2013 04:59:23 +0000 (15:59 +1100)
src/modules/tools/temperaturecontrol/TemperatureControl.cpp
src/modules/tools/temperaturecontrol/TemperatureControl.h

index a9abb93..ff27129 100644 (file)
@@ -38,6 +38,7 @@ void TemperatureControl::on_module_loaded(){
     this->register_for_event(ON_GCODE_EXECUTE);
     this->register_for_event(ON_GCODE_RECEIVED);
     this->register_for_event(ON_MAIN_LOOP);
+    this->register_for_event(ON_SECOND_TICK);
 
 }
 
@@ -283,3 +284,9 @@ int TemperatureControl::new_thermistor_reading()
     running_total += last_raw;
     return running_total / queue.size();
 }
+
+void TemperatureControl::on_second_tick(void* argument)
+{
+    if (waiting)
+        kernel->streams->printf("%s:%3.1f /%3.1f @%d\n", designator.c_str(), get_temperature(), ((target_temperature == UNDEFINED)?0.0:target_temperature), o, waiting);
+}
index 293b226..38b1956 100644 (file)
@@ -53,6 +53,8 @@ class TemperatureControl : public Module {
         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 set_desired_temperature(double desired_temperature);
         double get_temperature();
         double adc_value_to_temperature(int adc_value);