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:
authorDavid Crocker <dcrocker@eschertech.com>2021-01-05 01:20:27 +0300
committerDavid Crocker <dcrocker@eschertech.com>2021-01-05 01:20:27 +0300
commitd47dfa59e64f60bd033b6768d6af0680933c258b (patch)
tree994e69e4a3159cb744fb92c68df17df04e77d895 /src/Heating
parent8343f55a7e9364fe1c585feb4da4355ba516728c (diff)
Implemented deleting local and remote sensors by using "nil" port name
Diffstat (limited to 'src/Heating')
-rw-r--r--src/Heating/Heat.cpp15
-rw-r--r--src/Heating/Sensors/RemoteSensor.cpp8
2 files changed, 21 insertions, 2 deletions
diff --git a/src/Heating/Heat.cpp b/src/Heating/Heat.cpp
index 6e1ac761..1efaaeb4 100644
--- a/src/Heating/Heat.cpp
+++ b/src/Heating/Heat.cpp
@@ -947,6 +947,14 @@ GCodeResult Heat::ConfigureSensor(GCodeBuffer& gb, const StringRef& reply) THROW
boardAddress = CanId::NoAddress;
}
#endif
+
+ if (portName.EqualsIgnoreCase(NoPinName)) // if deleting this sensor
+ {
+ WriteLocker lock(sensorsLock);
+ DeleteSensor(sensorNum);
+ return GCodeResult::ok;
+ }
+
if (gb.Seen('Y'))
{
// Creating a new sensor
@@ -1241,7 +1249,14 @@ GCodeResult Heat::EutProcessM308(const CanMessageGeneric& msg, const StringRef&
{
if (sensorNum < MaxSensors)
{
+ // Check for deleting the sensor by assigning a null port. Borrow the sensor type name string temporarily for this.
String<StringLength20> sensorTypeName;
+ if (parser.GetStringParam('P', sensorTypeName.GetRef()) && sensorTypeName.EqualsIgnoreCase(NoPinName))
+ {
+ DeleteSensor(sensorNum);
+ return GCodeResult::ok;
+ }
+
if (parser.GetStringParam('Y', sensorTypeName.GetRef()))
{
WriteLocker lock(sensorsLock);
diff --git a/src/Heating/Sensors/RemoteSensor.cpp b/src/Heating/Sensors/RemoteSensor.cpp
index 1d4e4f7a..6a08a224 100644
--- a/src/Heating/Sensors/RemoteSensor.cpp
+++ b/src/Heating/Sensors/RemoteSensor.cpp
@@ -22,10 +22,14 @@ RemoteSensor::RemoteSensor(unsigned int sensorNum, CanAddress pBoardAddress) noe
RemoteSensor::~RemoteSensor()
{
- //TODO delete the remote sensor
+ CanMessageGenericConstructor cons(M308NewParams);
+ cons.AddUParam('S', GetSensorNumber());
+ cons.AddStringParam('P', NoPinName);
+ String<StringLength50> dummy;
+ (void)cons.SendAndGetResponse(CanMessageType::m308New, boardAddress, dummy.GetRef());
}
-GCodeResult RemoteSensor::Configure(GCodeBuffer& gb, const StringRef& reply, bool& changed)
+GCodeResult RemoteSensor::Configure(GCodeBuffer& gb, const StringRef& reply, bool& changed) THROWS(GCodeException)
{
TryConfigureSensorName(gb, changed);
CanMessageGenericConstructor cons(M308NewParams);