From a7d796e0ccebd29a600218bba403b73d430071e0 Mon Sep 17 00:00:00 2001 From: Yurii Date: Sun, 31 Mar 2024 22:29:53 +0300 Subject: [PATCH] refactor: removed unused methods, replaced some methods to native --- lib/CustomOpenTherm/CustomOpenTherm.h | 19 ++++--------------- src/OpenThermTask.h | 21 +++++++++------------ 2 files changed, 13 insertions(+), 27 deletions(-) diff --git a/lib/CustomOpenTherm/CustomOpenTherm.h b/lib/CustomOpenTherm/CustomOpenTherm.h index e8aa77d..b8b063f 100644 --- a/lib/CustomOpenTherm/CustomOpenTherm.h +++ b/lib/CustomOpenTherm/CustomOpenTherm.h @@ -163,24 +163,13 @@ public: } // converters - float fromF88(unsigned long response) { - const byte valueLB = response & 0xFF; - const byte valueHB = (response >> 8) & 0xFF; - - float value = (int8_t)valueHB; - return value + (float)valueLB / 256.0; - } - - template unsigned int toF88(T val) { + template + static unsigned int toFloat(const T val) { return (unsigned int)(val * 256); } - int16_t fromS16(unsigned long response) { - const byte valueLB = response & 0xFF; - const byte valueHB = (response >> 8) & 0xFF; - - int16_t value = valueHB; - return ((value << 8) + valueLB); + static short getInt(const unsigned long response) { + return response & 0xffff; } protected: diff --git a/src/OpenThermTask.h b/src/OpenThermTask.h index c98b1e8..2fddafa 100644 --- a/src/OpenThermTask.h +++ b/src/OpenThermTask.h @@ -270,7 +270,7 @@ protected: // Get current modulation level (if necessary) - if ((settings.opentherm.dhwPresent && settings.dhw.enable) || settings.heating.enable || heatingEnabled) { + if (vars.states.flame) { updateModulationLevel(); } else { @@ -510,14 +510,14 @@ protected: unsigned long response = this->instance->sendRequest(CustomOpenTherm::buildRequest( OpenThermRequestType::WRITE_DATA, OpenThermMessageID::MaxRelModLevelSetting, - this->instance->toF88(value) + CustomOpenTherm::toFloat(value) )); if (!CustomOpenTherm::isValidResponse(response)) { return false; } - vars.parameters.maxModulation = this->instance->fromF88(response); + vars.parameters.maxModulation = CustomOpenTherm::getFloat(response); return true; } @@ -540,14 +540,14 @@ protected: unsigned long response = this->instance->sendRequest(CustomOpenTherm::buildRequest( OpenThermRequestType::WRITE_DATA, OpenThermMessageID::OpenThermVersionMaster, - this->instance->toF88(version) + CustomOpenTherm::toFloat(version) )); if (!CustomOpenTherm::isValidResponse(response)) { return false; } - vars.parameters.masterOtVersion = this->instance->fromF88(response); + vars.parameters.masterOtVersion = CustomOpenTherm::getFloat(response); return true; } @@ -669,7 +669,9 @@ protected: return false; } - vars.temperatures.exhaust = this->instance->fromS16(response); + short value = CustomOpenTherm::getInt(response); + vars.temperatures.exhaust = (value >= -40 && value <= 500) ? (float)value : 0.0f; + return true; } @@ -775,12 +777,7 @@ protected: return false; } - float modulation = this->instance->fromF88(response); - if (!vars.states.flame) { - vars.sensors.modulation = 0; - } else { - vars.sensors.modulation = modulation; - } + vars.sensors.modulation = CustomOpenTherm::getFloat(response); return true; }