diff --git a/lib/Hoymiles/src/parser/SystemConfigParaParser.cpp b/lib/Hoymiles/src/parser/SystemConfigParaParser.cpp index b6426dc2..03e557f4 100644 --- a/lib/Hoymiles/src/parser/SystemConfigParaParser.cpp +++ b/lib/Hoymiles/src/parser/SystemConfigParaParser.cpp @@ -56,9 +56,10 @@ float SystemConfigParaParser::getLimitPercent() const void SystemConfigParaParser::setLimitPercent(const float value) { + const uint16_t val = static_cast(value * 10); HOY_SEMAPHORE_TAKE(); - _payload[2] = static_cast(value * 10) >> 8; - _payload[3] = static_cast(value * 10); + _payload[2] = val >> 8; + _payload[3] = val & 0xFF; HOY_SEMAPHORE_GIVE(); }