Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Duet3D/RepRapFirmware.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Heating/Heater.cpp5
-rw-r--r--src/Heating/Heater.h1
-rw-r--r--src/Heating/LocalHeater.h1
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()