refactor: removed unused methods, replaced some methods to native

This commit is contained in:
Yurii
2024-03-31 22:29:53 +03:00
parent 4490b38130
commit a7d796e0cc
2 changed files with 13 additions and 27 deletions

View File

@@ -163,24 +163,13 @@ public:
} }
// converters // converters
float fromF88(unsigned long response) { template <class T>
const byte valueLB = response & 0xFF; static unsigned int toFloat(const T val) {
const byte valueHB = (response >> 8) & 0xFF;
float value = (int8_t)valueHB;
return value + (float)valueLB / 256.0;
}
template <class T> unsigned int toF88(T val) {
return (unsigned int)(val * 256); return (unsigned int)(val * 256);
} }
int16_t fromS16(unsigned long response) { static short getInt(const unsigned long response) {
const byte valueLB = response & 0xFF; return response & 0xffff;
const byte valueHB = (response >> 8) & 0xFF;
int16_t value = valueHB;
return ((value << 8) + valueLB);
} }
protected: protected:

View File

@@ -270,7 +270,7 @@ protected:
// Get current modulation level (if necessary) // Get current modulation level (if necessary)
if ((settings.opentherm.dhwPresent && settings.dhw.enable) || settings.heating.enable || heatingEnabled) { if (vars.states.flame) {
updateModulationLevel(); updateModulationLevel();
} else { } else {
@@ -510,14 +510,14 @@ protected:
unsigned long response = this->instance->sendRequest(CustomOpenTherm::buildRequest( unsigned long response = this->instance->sendRequest(CustomOpenTherm::buildRequest(
OpenThermRequestType::WRITE_DATA, OpenThermRequestType::WRITE_DATA,
OpenThermMessageID::MaxRelModLevelSetting, OpenThermMessageID::MaxRelModLevelSetting,
this->instance->toF88(value) CustomOpenTherm::toFloat(value)
)); ));
if (!CustomOpenTherm::isValidResponse(response)) { if (!CustomOpenTherm::isValidResponse(response)) {
return false; return false;
} }
vars.parameters.maxModulation = this->instance->fromF88(response); vars.parameters.maxModulation = CustomOpenTherm::getFloat(response);
return true; return true;
} }
@@ -540,14 +540,14 @@ protected:
unsigned long response = this->instance->sendRequest(CustomOpenTherm::buildRequest( unsigned long response = this->instance->sendRequest(CustomOpenTherm::buildRequest(
OpenThermRequestType::WRITE_DATA, OpenThermRequestType::WRITE_DATA,
OpenThermMessageID::OpenThermVersionMaster, OpenThermMessageID::OpenThermVersionMaster,
this->instance->toF88(version) CustomOpenTherm::toFloat(version)
)); ));
if (!CustomOpenTherm::isValidResponse(response)) { if (!CustomOpenTherm::isValidResponse(response)) {
return false; return false;
} }
vars.parameters.masterOtVersion = this->instance->fromF88(response); vars.parameters.masterOtVersion = CustomOpenTherm::getFloat(response);
return true; return true;
} }
@@ -669,7 +669,9 @@ protected:
return false; 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; return true;
} }
@@ -775,12 +777,7 @@ protected:
return false; return false;
} }
float modulation = this->instance->fromF88(response); vars.sensors.modulation = CustomOpenTherm::getFloat(response);
if (!vars.states.flame) {
vars.sensors.modulation = 0;
} else {
vars.sensors.modulation = modulation;
}
return true; return true;
} }