mirror of
https://github.com/Laxilef/OTGateway.git
synced 2025-12-10 18:24:27 +05:00
refactor: removed unused methods, replaced some methods to native
This commit is contained in:
@@ -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:
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user