From 0875d27b0a009babccf89d3b476691bd02402ff8 Mon Sep 17 00:00:00 2001 From: Neil McKechnie Date: Sun, 22 Aug 2021 14:07:16 +0100 Subject: [PATCH] Remove 'activate' functions from turnout classes. Remove the static 'activate' function and rename the virtual 'activate' function to 'setClosedInternal'. --- Turnouts.cpp | 8 ++++---- Turnouts.h | 20 ++++++++------------ 2 files changed, 12 insertions(+), 16 deletions(-) diff --git a/Turnouts.cpp b/Turnouts.cpp index 3c8c35a..22bc175 100644 --- a/Turnouts.cpp +++ b/Turnouts.cpp @@ -106,11 +106,11 @@ return false; } - // Static activate function is invoked from close(), throw() etc. to perform the + // Static setClosed function is invoked from close(), throw() etc. to perform the // common parts of the turnout operation. Code which is specific to a turnout - // type should be placed in the virtual function activate(bool) which is + // type should be placed in the virtual function setClosedInternal(bool) which is // called from here. - bool Turnout::activate(uint16_t id, bool closeFlag) { + bool Turnout::setClosed(uint16_t id, bool closeFlag) { #ifdef EESTOREDEBUG if (closeFlag) DIAG(F("Turnout::close(%d)"), id); @@ -119,7 +119,7 @@ #endif Turnout *tt = Turnout::get(id); if (!tt) return false; - bool ok = tt->activate(closeFlag); + bool ok = tt->setClosedInternal(closeFlag); if (ok) { // Write byte containing new closed/thrown state to EEPROM if required. Note that eepromAddress diff --git a/Turnouts.h b/Turnouts.h index 11754a4..bb2c57e 100644 --- a/Turnouts.h +++ b/Turnouts.h @@ -93,7 +93,7 @@ protected: * Virtual functions */ - virtual bool activate(bool close) = 0; // Mandatory in subclass + virtual bool setClosedInternal(bool close) = 0; // Mandatory in subclass virtual void save() {} /* @@ -144,18 +144,14 @@ public: return !isClosed(id); } - static bool activate(uint16_t id, bool closeFlag); + static bool setClosed(uint16_t id, bool closeFlag); inline static bool setClosed(uint16_t id) { - return activate(id, true); + return setClosed(id, true); } inline static bool setThrown(uint16_t id) { - return activate(id, false); - } - - inline static bool setClosed(uint16_t id, bool close) { - return activate(id, close); + return setClosed(id, false); } static bool setClosedStateOnly(uint16_t id, bool close) { @@ -269,7 +265,7 @@ public: protected: // ServoTurnout-specific code for throwing or closing a servo turnout. - bool activate(bool close) override { + bool setClosedInternal(bool close) override { #ifndef IO_NO_HAL IODevice::writeAnalogue(_servoTurnoutData.vpin, close ? _servoTurnoutData.closedPosition : _servoTurnoutData.thrownPosition, _servoTurnoutData.profile); @@ -357,7 +353,7 @@ public: } protected: - bool activate(bool close) override { + bool setClosedInternal(bool close) override { // DCC++ Classic behaviour is that Throw writes a 1 in the packet, // and Close writes a 0. // RCN-214 specifies that Throw is 0 and Close is 1. @@ -439,7 +435,7 @@ public: } protected: - bool activate(bool close) override { + bool setClosedInternal(bool close) override { IODevice::write(_vpinTurnoutData.vpin, close); _turnoutData.closed = close; return true; @@ -490,7 +486,7 @@ public: return tt; } - bool activate(bool close) override { + bool setClosedInternal(bool close) override { // Assume that the LCN command still uses 1 for throw and 0 for close... LCN::send('T', _turnoutData.id, !close); // The _turnoutData.closed flag should be updated by a message from the LCN master, later.