From 5cc0bc2c48f71c250503afef9770163b7d11e3e5 Mon Sep 17 00:00:00 2001 From: Jim Morris Date: Mon, 17 Oct 2016 23:56:47 -0700 Subject: [PATCH] increase runaway_heating_timeout to a max of 511 seconds decrease runaway_range to a max of 63 degrees --- .../tools/temperaturecontrol/TemperatureControl.cpp | 8 ++++++-- .../tools/temperaturecontrol/TemperatureControl.h | 10 +++++----- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/modules/tools/temperaturecontrol/TemperatureControl.cpp b/src/modules/tools/temperaturecontrol/TemperatureControl.cpp index 4168aed8..45ceefa6 100644 --- a/src/modules/tools/temperaturecontrol/TemperatureControl.cpp +++ b/src/modules/tools/temperaturecontrol/TemperatureControl.cpp @@ -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(); diff --git a/src/modules/tools/temperaturecontrol/TemperatureControl.h b/src/modules/tools/temperaturecontrol/TemperatureControl.h index 2c956449..70aac489 100644 --- a/src/modules/tools/temperaturecontrol/TemperatureControl.h +++ b/src/modules/tools/temperaturecontrol/TemperatureControl.h @@ -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; -- 2.20.1