diff options
-rw-r--r-- | src/Heating/Heater.cpp | 5 | ||||
-rw-r--r-- | src/Heating/Heater.h | 1 | ||||
-rw-r--r-- | src/Heating/LocalHeater.h | 1 |
3 files changed, 4 insertions, 3 deletions
diff --git a/src/Heating/Heater.cpp b/src/Heating/Heater.cpp index fd3742bd..3ef410da 100644 --- a/src/Heating/Heater.cpp +++ b/src/Heating/Heater.cpp @@ -43,6 +43,7 @@ constexpr ObjectModelTableEntry Heater::objectModelTable[] = { "min", OBJECT_MODEL_FUNC(self->GetLowestTemperatureLimit(), 1), ObjectModelEntryFlags::none }, { "model", OBJECT_MODEL_FUNC((const FopDt *)&self->GetModel()), ObjectModelEntryFlags::verbose }, { "monitors", OBJECT_MODEL_FUNC_NOSELF(&monitorsArrayDescriptor), ObjectModelEntryFlags::none }, + { "pwm", OBJECT_MODEL_FUNC(self->lastPwm, 1), ObjectModelEntryFlags::live }, { "sensor", OBJECT_MODEL_FUNC((int32_t)self->GetSensorNumber()), ObjectModelEntryFlags::none }, { "standby", OBJECT_MODEL_FUNC(self->GetStandbyTemperature(), 1), ObjectModelEntryFlags::live }, { "state", OBJECT_MODEL_FUNC(self->GetStatus().ToString()), ObjectModelEntryFlags::live }, @@ -55,7 +56,7 @@ constexpr ObjectModelTableEntry Heater::objectModelTable[] = self->monitors[context.GetLastIndex()].GetTemperatureLimit(), 1), ObjectModelEntryFlags::none }, }; -constexpr uint8_t Heater::objectModelTableDescriptor[] = { 2, 9, 3 }; +constexpr uint8_t Heater::objectModelTableDescriptor[] = { 2, 10, 3 }; DEFINE_GET_OBJECT_MODEL_TABLE(Heater) @@ -103,7 +104,7 @@ Heater::HeaterParameters Heater::fanOffParams, Heater::fanOnParams; } Heater::Heater(unsigned int num) noexcept - : tuned(false), heaterNumber(num), sensorNumber(-1), activeTemperature(0.0), standbyTemperature(0.0), + : lastPwm(0.0), tuned(false), heaterNumber(num), sensorNumber(-1), activeTemperature(0.0), standbyTemperature(0.0), maxTempExcursion(DefaultMaxTempExcursion), maxHeatingFaultTime(DefaultMaxHeatingFaultTime), active(false), modelSetByUser(false), monitorsSetByUser(false) { diff --git a/src/Heating/Heater.h b/src/Heating/Heater.h index c5b088b7..25796a65 100644 --- a/src/Heating/Heater.h +++ b/src/Heating/Heater.h @@ -139,6 +139,7 @@ protected: void SetAndReportModel(bool usingFans) noexcept; HeaterMonitor monitors[MaxMonitorsPerHeater]; // embedding them in the Heater uses less memory than dynamic allocation + float lastPwm; // the last PWM value set for this heater bool tuned; // true if tuning was successful // Constants used during heater tuning diff --git a/src/Heating/LocalHeater.h b/src/Heating/LocalHeater.h index d6ef0c99..8fe8dff9 100644 --- a/src/Heating/LocalHeater.h +++ b/src/Heating/LocalHeater.h @@ -66,7 +66,6 @@ private: float previousTemperatures[NumPreviousTemperatures]; // The temperatures of the previous NumDerivativeSamples measurements, used for calculating the derivative size_t previousTemperatureIndex; // Which slot in previousTemperature we fill in next float iAccumulator; // The integral LocalHeater component - float lastPwm; // The last PWM value we output, before scaling by kS float averagePWM; // The running average of the PWM, after scaling. uint32_t timeSetHeating; // When we turned on the heater uint32_t lastSampleTime; // Time when the temperature was last sampled by Spin() |