diff --git a/lib/Hoymiles/src/commands/ActivePowerControlCommand.cpp b/lib/Hoymiles/src/commands/ActivePowerControlCommand.cpp index dcd2370..4ce3c6e 100644 --- a/lib/Hoymiles/src/commands/ActivePowerControlCommand.cpp +++ b/lib/Hoymiles/src/commands/ActivePowerControlCommand.cpp @@ -85,13 +85,13 @@ bool ActivePowerControlCommand::handleResponse(const fragment_t fragment[], cons float ActivePowerControlCommand::getLimit() const { - const float l = (((uint16_t)_payload[12] << 8) | _payload[13]); + const float l = (static_cast(_payload[12]) << 8) | _payload[13]; return l / 10; } PowerLimitControlType ActivePowerControlCommand::getType() { - return (PowerLimitControlType)(((uint16_t)_payload[14] << 8) | _payload[15]); + return (PowerLimitControlType)((static_cast(_payload[14]) << 8) | _payload[15]); } void ActivePowerControlCommand::gotTimeout() diff --git a/lib/Hoymiles/src/commands/DevControlCommand.cpp b/lib/Hoymiles/src/commands/DevControlCommand.cpp index b73f74f..8dc419d 100644 --- a/lib/Hoymiles/src/commands/DevControlCommand.cpp +++ b/lib/Hoymiles/src/commands/DevControlCommand.cpp @@ -35,8 +35,8 @@ DevControlCommand::DevControlCommand(InverterAbstract* inv, const uint64_t route void DevControlCommand::udpateCRC(const uint8_t len) { const uint16_t crc = crc16(&_payload[10], len); - _payload[10 + len] = (uint8_t)(crc >> 8); - _payload[10 + len + 1] = (uint8_t)(crc); + _payload[10 + len] = static_cast(crc >> 8); + _payload[10 + len + 1] = static_cast(crc); } bool DevControlCommand::handleResponse(const fragment_t fragment[], const uint8_t max_fragment_id) diff --git a/lib/Hoymiles/src/commands/MultiDataCommand.cpp b/lib/Hoymiles/src/commands/MultiDataCommand.cpp index 0e7bf51..dd5d72e 100644 --- a/lib/Hoymiles/src/commands/MultiDataCommand.cpp +++ b/lib/Hoymiles/src/commands/MultiDataCommand.cpp @@ -63,10 +63,10 @@ uint8_t MultiDataCommand::getDataType() const void MultiDataCommand::setTime(const time_t time) { - _payload[12] = (uint8_t)(time >> 24); - _payload[13] = (uint8_t)(time >> 16); - _payload[14] = (uint8_t)(time >> 8); - _payload[15] = (uint8_t)(time); + _payload[12] = static_cast(time >> 24); + _payload[13] = static_cast(time >> 16); + _payload[14] = static_cast(time >> 8); + _payload[15] = static_cast(time); udpateCRC(); } @@ -112,8 +112,8 @@ bool MultiDataCommand::handleResponse(const fragment_t fragment[], const uint8_t void MultiDataCommand::udpateCRC() { const uint16_t crc = crc16(&_payload[10], 14); // From data_type till password - _payload[24] = (uint8_t)(crc >> 8); - _payload[25] = (uint8_t)(crc); + _payload[24] = static_cast(crc >> 8); + _payload[25] = static_cast(crc); } uint8_t MultiDataCommand::getTotalFragmentSize(const fragment_t fragment[], const uint8_t max_fragment_id) diff --git a/lib/Hoymiles/src/inverters/HM_1CH.cpp b/lib/Hoymiles/src/inverters/HM_1CH.cpp index 0f0c64c..eef82c5 100644 --- a/lib/Hoymiles/src/inverters/HM_1CH.cpp +++ b/lib/Hoymiles/src/inverters/HM_1CH.cpp @@ -36,10 +36,10 @@ bool HM_1CH::isValidSerial(const uint64_t serial) // serial >= 0x112100000000 && serial <= 0x1121ffffffff uint8_t preId[2]; - preId[0] = (uint8_t)(serial >> 40); - preId[1] = (uint8_t)(serial >> 32); + preId[0] = static_cast(serial >> 40); + preId[1] = static_cast(serial >> 32); - if ((uint8_t)(((((uint16_t)preId[0] << 8) | preId[1]) >> 4) & 0xff) == 0x12) { + if (static_cast((((static_cast(preId[0]) << 8) | preId[1]) >> 4) & 0xff) == 0x12) { return true; } diff --git a/lib/Hoymiles/src/inverters/HM_2CH.cpp b/lib/Hoymiles/src/inverters/HM_2CH.cpp index 02dd8ae..91228ff 100644 --- a/lib/Hoymiles/src/inverters/HM_2CH.cpp +++ b/lib/Hoymiles/src/inverters/HM_2CH.cpp @@ -44,10 +44,10 @@ bool HM_2CH::isValidSerial(const uint64_t serial) // serial >= 0x114100000000 && serial <= 0x1141ffffffff uint8_t preId[2]; - preId[0] = (uint8_t)(serial >> 40); - preId[1] = (uint8_t)(serial >> 32); + preId[0] = static_cast(serial >> 40); + preId[1] = static_cast(serial >> 32); - if ((uint8_t)(((((uint16_t)preId[0] << 8) | preId[1]) >> 4) & 0xff) == 0x14) { + if (static_cast((((static_cast(preId[0]) << 8) | preId[1]) >> 4) & 0xff) == 0x14) { return true; } diff --git a/lib/Hoymiles/src/inverters/HM_4CH.cpp b/lib/Hoymiles/src/inverters/HM_4CH.cpp index 586248b..45ebab4 100644 --- a/lib/Hoymiles/src/inverters/HM_4CH.cpp +++ b/lib/Hoymiles/src/inverters/HM_4CH.cpp @@ -57,10 +57,10 @@ bool HM_4CH::isValidSerial(const uint64_t serial) // serial >= 0x116100000000 && serial <= 0x1161ffffffff uint8_t preId[2]; - preId[0] = (uint8_t)(serial >> 40); - preId[1] = (uint8_t)(serial >> 32); + preId[0] = static_cast(serial >> 40); + preId[1] = static_cast(serial >> 32); - if ((uint8_t)(((((uint16_t)preId[0] << 8) | preId[1]) >> 4) & 0xff) == 0x16) { + if (static_cast((((static_cast(preId[0]) << 8) | preId[1]) >> 4) & 0xff) == 0x16) { return true; } diff --git a/lib/Hoymiles/src/inverters/HM_Abstract.cpp b/lib/Hoymiles/src/inverters/HM_Abstract.cpp index 45efc99..324f6a2 100644 --- a/lib/Hoymiles/src/inverters/HM_Abstract.cpp +++ b/lib/Hoymiles/src/inverters/HM_Abstract.cpp @@ -50,13 +50,13 @@ bool HM_Abstract::sendAlarmLogRequest(const bool force) if (!force) { if (Statistics()->hasChannelFieldValue(TYPE_INV, CH0, FLD_EVT_LOG)) { - if ((uint8_t)Statistics()->getChannelFieldValue(TYPE_INV, CH0, FLD_EVT_LOG) == _lastAlarmLogCnt) { + if (static_cast(Statistics()->getChannelFieldValue(TYPE_INV, CH0, FLD_EVT_LOG) == _lastAlarmLogCnt)) { return false; } } } - _lastAlarmLogCnt = (uint8_t)Statistics()->getChannelFieldValue(TYPE_INV, CH0, FLD_EVT_LOG); + _lastAlarmLogCnt = static_cast(Statistics()->getChannelFieldValue(TYPE_INV, CH0, FLD_EVT_LOG)); time_t now; time(&now); diff --git a/lib/Hoymiles/src/inverters/InverterAbstract.cpp b/lib/Hoymiles/src/inverters/InverterAbstract.cpp index 5d52a38..26a89c1 100644 --- a/lib/Hoymiles/src/inverters/InverterAbstract.cpp +++ b/lib/Hoymiles/src/inverters/InverterAbstract.cpp @@ -14,8 +14,8 @@ InverterAbstract::InverterAbstract(HoymilesRadio* radio, const uint64_t serial) char serial_buff[sizeof(uint64_t) * 8 + 1]; snprintf(serial_buff, sizeof(serial_buff), "%0x%08x", - ((uint32_t)((serial >> 32) & 0xFFFFFFFF)), - ((uint32_t)(serial & 0xFFFFFFFF))); + static_cast((serial >> 32) & 0xFFFFFFFF), + static_cast(serial & 0xFFFFFFFF)); _serialString = serial_buff; _alarmLogParser.reset(new AlarmLogParser()); diff --git a/lib/Hoymiles/src/parser/AlarmLogParser.cpp b/lib/Hoymiles/src/parser/AlarmLogParser.cpp index 30b8136..027dd84 100644 --- a/lib/Hoymiles/src/parser/AlarmLogParser.cpp +++ b/lib/Hoymiles/src/parser/AlarmLogParser.cpp @@ -243,7 +243,7 @@ void AlarmLogParser::getLogEntry(const uint8_t entryId, AlarmLogEntry_t& entry, HOY_SEMAPHORE_TAKE(); - const uint32_t wcode = (uint16_t)_payloadAlarmLog[entryStartOffset] << 8 | _payloadAlarmLog[entryStartOffset + 1]; + const uint32_t wcode = static_cast(_payloadAlarmLog[entryStartOffset]) << 8 | _payloadAlarmLog[entryStartOffset + 1]; uint32_t startTimeOffset = 0; if (((wcode >> 13) & 0x01) == 1) { startTimeOffset = 12 * 60 * 60; @@ -255,8 +255,8 @@ void AlarmLogParser::getLogEntry(const uint8_t entryId, AlarmLogEntry_t& entry, } entry.MessageId = _payloadAlarmLog[entryStartOffset + 1]; - entry.StartTime = (((uint16_t)_payloadAlarmLog[entryStartOffset + 4] << 8) | ((uint16_t)_payloadAlarmLog[entryStartOffset + 5])) + startTimeOffset + timezoneOffset; - entry.EndTime = ((uint16_t)_payloadAlarmLog[entryStartOffset + 6] << 8) | ((uint16_t)_payloadAlarmLog[entryStartOffset + 7]); + entry.StartTime = ((static_cast(_payloadAlarmLog[entryStartOffset + 4]) << 8) | static_cast(_payloadAlarmLog[entryStartOffset + 5])) + startTimeOffset + timezoneOffset; + entry.EndTime = (static_cast(_payloadAlarmLog[entryStartOffset + 6]) << 8) | static_cast(_payloadAlarmLog[entryStartOffset + 7]); HOY_SEMAPHORE_GIVE(); diff --git a/lib/Hoymiles/src/parser/DevInfoParser.cpp b/lib/Hoymiles/src/parser/DevInfoParser.cpp index 0c2e15e..0bb0614 100644 --- a/lib/Hoymiles/src/parser/DevInfoParser.cpp +++ b/lib/Hoymiles/src/parser/DevInfoParser.cpp @@ -149,7 +149,7 @@ void DevInfoParser::setLastUpdateSimple(const uint32_t lastUpdate) uint16_t DevInfoParser::getFwBuildVersion() const { HOY_SEMAPHORE_TAKE(); - const uint16_t ret = (((uint16_t)_payloadDevInfoAll[0]) << 8) | _payloadDevInfoAll[1]; + const uint16_t ret = (static_cast(_payloadDevInfoAll[0]) << 8) | _payloadDevInfoAll[1]; HOY_SEMAPHORE_GIVE(); return ret; } @@ -158,13 +158,13 @@ time_t DevInfoParser::getFwBuildDateTime() const { struct tm timeinfo = {}; HOY_SEMAPHORE_TAKE(); - timeinfo.tm_year = ((((uint16_t)_payloadDevInfoAll[2]) << 8) | _payloadDevInfoAll[3]) - 1900; + timeinfo.tm_year = ((static_cast(_payloadDevInfoAll[2]) << 8) | _payloadDevInfoAll[3]) - 1900; - timeinfo.tm_mon = ((((uint16_t)_payloadDevInfoAll[4]) << 8) | _payloadDevInfoAll[5]) / 100 - 1; - timeinfo.tm_mday = ((((uint16_t)_payloadDevInfoAll[4]) << 8) | _payloadDevInfoAll[5]) % 100; + timeinfo.tm_mon = ((static_cast(_payloadDevInfoAll[4]) << 8) | _payloadDevInfoAll[5]) / 100 - 1; + timeinfo.tm_mday = ((static_cast(_payloadDevInfoAll[4]) << 8) | _payloadDevInfoAll[5]) % 100; - timeinfo.tm_hour = ((((uint16_t)_payloadDevInfoAll[6]) << 8) | _payloadDevInfoAll[7]) / 100; - timeinfo.tm_min = ((((uint16_t)_payloadDevInfoAll[6]) << 8) | _payloadDevInfoAll[7]) % 100; + timeinfo.tm_hour = ((static_cast(_payloadDevInfoAll[6]) << 8) | _payloadDevInfoAll[7]) / 100; + timeinfo.tm_min = ((static_cast(_payloadDevInfoAll[6]) << 8) | _payloadDevInfoAll[7]) % 100; HOY_SEMAPHORE_GIVE(); return timegm(&timeinfo); @@ -181,7 +181,7 @@ String DevInfoParser::getFwBuildDateTimeStr() const uint16_t DevInfoParser::getFwBootloaderVersion() const { HOY_SEMAPHORE_TAKE(); - const uint16_t ret = (((uint16_t)_payloadDevInfoAll[8]) << 8) | _payloadDevInfoAll[9]; + const uint16_t ret = (static_cast(_payloadDevInfoAll[8]) << 8) | _payloadDevInfoAll[9]; HOY_SEMAPHORE_GIVE(); return ret; } @@ -189,11 +189,11 @@ uint16_t DevInfoParser::getFwBootloaderVersion() const uint32_t DevInfoParser::getHwPartNumber() const { HOY_SEMAPHORE_TAKE(); - const uint16_t hwpn_h = (((uint16_t)_payloadDevInfoSimple[2]) << 8) | _payloadDevInfoSimple[3]; - const uint16_t hwpn_l = (((uint16_t)_payloadDevInfoSimple[4]) << 8) | _payloadDevInfoSimple[5]; + const uint16_t hwpn_h = (static_cast(_payloadDevInfoSimple[2]) << 8) | _payloadDevInfoSimple[3]; + const uint16_t hwpn_l = (static_cast(_payloadDevInfoSimple[4]) << 8) | _payloadDevInfoSimple[5]; HOY_SEMAPHORE_GIVE(); - return ((uint32_t)hwpn_h << 16) | ((uint32_t)hwpn_l); + return (static_cast(hwpn_h) << 16) | static_cast(hwpn_l); } String DevInfoParser::getHwVersion() const diff --git a/lib/Hoymiles/src/parser/GridProfileParser.cpp b/lib/Hoymiles/src/parser/GridProfileParser.cpp index 489565e..2f50bd5 100644 --- a/lib/Hoymiles/src/parser/GridProfileParser.cpp +++ b/lib/Hoymiles/src/parser/GridProfileParser.cpp @@ -443,7 +443,7 @@ std::list GridProfileParser::getProfile() const for (uint8_t val_id = 0; val_id < section_size; val_id++) { auto itemDefinition = itemDefinitions.at(_profileValues[section_start + val_id].ItemDefinition); - float value = (int16_t)((_payloadGridProfile[pos] << 8) | _payloadGridProfile[pos + 1]); + float value = static_cast((_payloadGridProfile[pos] << 8) | _payloadGridProfile[pos + 1]); value /= itemDefinition.Divider; GridProfileItem_t v; diff --git a/lib/Hoymiles/src/parser/SystemConfigParaParser.cpp b/lib/Hoymiles/src/parser/SystemConfigParaParser.cpp index 346b5d4..f01af70 100644 --- a/lib/Hoymiles/src/parser/SystemConfigParaParser.cpp +++ b/lib/Hoymiles/src/parser/SystemConfigParaParser.cpp @@ -45,7 +45,7 @@ void SystemConfigParaParser::appendFragment(const uint8_t offset, const uint8_t* float SystemConfigParaParser::getLimitPercent() const { HOY_SEMAPHORE_TAKE(); - const float ret = ((((uint16_t)_payload[2]) << 8) | _payload[3]) / 10.0; + const float ret = ((static_cast(_payload[2]) << 8) | _payload[3]) / 10.0; HOY_SEMAPHORE_GIVE(); return ret; } @@ -53,8 +53,8 @@ float SystemConfigParaParser::getLimitPercent() const void SystemConfigParaParser::setLimitPercent(const float value) { HOY_SEMAPHORE_TAKE(); - _payload[2] = ((uint16_t)(value * 10)) >> 8; - _payload[3] = ((uint16_t)(value * 10)); + _payload[2] = static_cast(value * 10) >> 8; + _payload[3] = static_cast(value * 10); HOY_SEMAPHORE_GIVE(); } diff --git a/src/WebApi_dtu.cpp b/src/WebApi_dtu.cpp index 7c6c3f7..90ea827 100644 --- a/src/WebApi_dtu.cpp +++ b/src/WebApi_dtu.cpp @@ -50,8 +50,8 @@ void WebApiDtuClass::onDtuAdminGet(AsyncWebServerRequest* request) // DTU Serial is read as HEX char buffer[sizeof(uint64_t) * 8 + 1]; snprintf(buffer, sizeof(buffer), "%0" PRIx32 "%08" PRIx32, - ((uint32_t)((config.Dtu.Serial >> 32) & 0xFFFFFFFF)), - ((uint32_t)(config.Dtu.Serial & 0xFFFFFFFF))); + static_cast((config.Dtu.Serial >> 32) & 0xFFFFFFFF), + static_cast(config.Dtu.Serial & 0xFFFFFFFF)); root["serial"] = buffer; root["pollinterval"] = config.Dtu.PollInterval; root["nrf_enabled"] = Hoymiles.getRadioNrf()->isInitialized(); diff --git a/src/WebApi_inverter.cpp b/src/WebApi_inverter.cpp index ef35315..3584964 100644 --- a/src/WebApi_inverter.cpp +++ b/src/WebApi_inverter.cpp @@ -46,8 +46,8 @@ void WebApiInverterClass::onInverterList(AsyncWebServerRequest* request) // Inverter Serial is read as HEX char buffer[sizeof(uint64_t) * 8 + 1]; snprintf(buffer, sizeof(buffer), "%0" PRIx32 "%08" PRIx32, - ((uint32_t)((config.Inverter[i].Serial >> 32) & 0xFFFFFFFF)), - ((uint32_t)(config.Inverter[i].Serial & 0xFFFFFFFF))); + static_cast((config.Inverter[i].Serial >> 32) & 0xFFFFFFFF), + static_cast(config.Inverter[i].Serial & 0xFFFFFFFF)); obj["serial"] = buffer; obj["poll_enable"] = config.Inverter[i].Poll_Enable; obj["poll_enable_night"] = config.Inverter[i].Poll_Enable_Night; diff --git a/src/main.cpp b/src/main.cpp index b1d974d..92e35da 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -152,8 +152,8 @@ void setup() MessageOutput.print("generate serial based on ESP chip id: "); const uint64_t dtuId = Utils::generateDtuSerial(); MessageOutput.printf("%0" PRIx32 "%08" PRIx32 "... ", - ((uint32_t)((dtuId >> 32) & 0xFFFFFFFF)), - ((uint32_t)(dtuId & 0xFFFFFFFF))); + static_cast((dtuId >> 32) & 0xFFFFFFFF), + static_cast(dtuId & 0xFFFFFFFF)); config.Dtu.Serial = dtuId; Configuration.write(); }