From a5de585ff784253fc6e41fbcbd2e6613310f318b Mon Sep 17 00:00:00 2001 From: Bernhard Kirchen Date: Mon, 19 May 2025 20:26:21 +0200 Subject: [PATCH] switch PowerMeter implementations to DTU_LOG macros --- include/powermeter/sml/Provider.h | 6 ++-- include/powermeter/sml/http/Provider.h | 2 +- include/powermeter/sml/serial/Provider.h | 2 +- src/powermeter/json/http/Provider.cpp | 13 +++++--- src/powermeter/json/mqtt/Provider.cpp | 11 ++++--- src/powermeter/sdm/serial/Provider.cpp | 32 ++++++++---------- src/powermeter/sml/Provider.cpp | 16 ++++----- src/powermeter/sml/http/Provider.cpp | 10 +++--- src/powermeter/sml/serial/Provider.cpp | 10 +++--- src/powermeter/udp/smahm/Provider.cpp | 16 ++++----- src/powermeter/udp/victron/Provider.cpp | 42 ++++++++---------------- 11 files changed, 74 insertions(+), 86 deletions(-) diff --git a/include/powermeter/sml/Provider.h b/include/powermeter/sml/Provider.h index f1e05fc8..ff40c100 100644 --- a/include/powermeter/sml/Provider.h +++ b/include/powermeter/sml/Provider.h @@ -16,13 +16,15 @@ namespace PowerMeters::Sml { class Provider : public ::PowerMeters::Provider { protected: explicit Provider(char const* user) - : _user(user) { } + { + snprintf(_user, sizeof(_user), "%s/SML", user); + } void reset(); void processSmlByte(uint8_t byte); private: - std::string _user; + char _user[16]; DataPointContainer _dataInFlight; diff --git a/include/powermeter/sml/http/Provider.h b/include/powermeter/sml/http/Provider.h index 08cd2f06..dd8466fd 100644 --- a/include/powermeter/sml/http/Provider.h +++ b/include/powermeter/sml/http/Provider.h @@ -16,7 +16,7 @@ namespace PowerMeters::Sml::Http { class Provider : public ::PowerMeters::Sml::Provider { public: explicit Provider(PowerMeterHttpSmlConfig const& cfg) - : ::PowerMeters::Sml::Provider("PowerMeterHttpSml") + : ::PowerMeters::Sml::Provider("HTTP") , _cfg(cfg) { } ~Provider(); diff --git a/include/powermeter/sml/serial/Provider.h b/include/powermeter/sml/serial/Provider.h index c620871c..dfcd11f2 100644 --- a/include/powermeter/sml/serial/Provider.h +++ b/include/powermeter/sml/serial/Provider.h @@ -9,7 +9,7 @@ namespace PowerMeters::Sml::Serial { class Provider : public ::PowerMeters::Sml::Provider { public: Provider() - : ::PowerMeters::Sml::Provider("PowerMeterSerialSml") { } + : ::PowerMeters::Sml::Provider("Serial") { } ~Provider(); diff --git a/src/powermeter/json/http/Provider.cpp b/src/powermeter/json/http/Provider.cpp index 4724e330..36e4032d 100644 --- a/src/powermeter/json/http/Provider.cpp +++ b/src/powermeter/json/http/Provider.cpp @@ -1,12 +1,15 @@ // SPDX-License-Identifier: GPL-2.0-or-later #include #include -#include #include #include #include #include #include +#include + +static const char* TAG = "powerMeter"; +static const char* SUBTAG = "HTTP/JSON"; namespace PowerMeters::Json::Http { @@ -45,8 +48,8 @@ bool Provider::init() continue; } - MessageOutput.printf("[PowerMeters::Json::Http] Initializing HTTP getter for value %d failed:\r\n", i + 1); - MessageOutput.printf("[PowerMeters::Json::Http] %s\r\n", _httpGetters[i]->getErrorText()); + DTU_LOGE("Initializing HTTP getter for value %d failed: %s", + i + 1, _httpGetters[i]->getErrorText()); return false; } @@ -95,11 +98,11 @@ void Provider::pollingLoop() lock.lock(); if (std::holds_alternative(res)) { - MessageOutput.printf("[PowerMeters::Json::Http] %s\r\n", std::get(res).c_str()); + DTU_LOGE("%s", std::get(res).c_str()); continue; } - MessageOutput.printf("[PowerMeters::Json::Http] New total: %.2f\r\n", getPowerTotal()); + DTU_LOGD("New total: %.2f", getPowerTotal()); } } diff --git a/src/powermeter/json/mqtt/Provider.cpp b/src/powermeter/json/mqtt/Provider.cpp index 595c094a..34f94c83 100644 --- a/src/powermeter/json/mqtt/Provider.cpp +++ b/src/powermeter/json/mqtt/Provider.cpp @@ -1,9 +1,12 @@ // SPDX-License-Identifier: GPL-2.0-or-later #include #include -#include #include #include +#include + +static const char* TAG = "powerMeter"; +static const char* SUBTAG = "MQTT"; namespace PowerMeters::Json::Mqtt { @@ -80,10 +83,8 @@ void Provider::onMessage(Provider::MsgProperties const& properties, } } - if (_verboseLogging) { - MessageOutput.printf("[PowerMeters::Json::Mqtt] Topic '%s': new value: %5.2f, " - "total: %5.2f\r\n", topic, newValue, getPowerTotal()); - } + DTU_LOGD("Topic '%s': new value: %5.2f, total: %5.2f", + topic, newValue, getPowerTotal()); } } // namespace PowerMeters::Json::Mqtt diff --git a/src/powermeter/sdm/serial/Provider.cpp b/src/powermeter/sdm/serial/Provider.cpp index 9047ffd7..939eb73f 100644 --- a/src/powermeter/sdm/serial/Provider.cpp +++ b/src/powermeter/sdm/serial/Provider.cpp @@ -1,7 +1,10 @@ // SPDX-License-Identifier: GPL-2.0-or-later #include #include -#include +#include + +static const char* TAG = "powerMeter"; +static const char* SUBTAG = "SDM"; namespace PowerMeters::Sdm::Serial { @@ -30,12 +33,11 @@ bool Provider::init() { const PinMapping_t& pin = PinMapping.get(); - MessageOutput.printf("[PowerMeters::Sdm::Serial] rx = %d, tx = %d, dere = %d, rxen = %d, txen = %d \r\n", + DTU_LOGI("rx = %d, tx = %d, dere = %d, rxen = %d, txen = %d", pin.powermeter_rx, pin.powermeter_tx, pin.powermeter_dere, pin.powermeter_rxen, pin.powermeter_txen); if (pin.powermeter_rx <= GPIO_NUM_NC || pin.powermeter_tx <= GPIO_NUM_NC) { - MessageOutput.println("[PowerMeters::Sdm::Serial] invalid pin config for SDM " - "power meter (RX and TX pins must be defined)"); + DTU_LOGE("invalid pin config for SDM power meter (RX and TX pins must be defined)"); return false; } @@ -97,33 +99,25 @@ bool Provider::readValue(std::unique_lock& lock, uint16_t reg, float switch (err) { case SDM_ERR_NO_ERROR: - if (_verboseLogging) { - MessageOutput.printf("[PowerMeters::Sdm::Serial]: read register %d " - "(0x%04x) successfully\r\n", reg, reg); - } + DTU_LOGD("read register %d (0x%04x) successfully", reg, reg); targetVar = val; return true; break; case SDM_ERR_CRC_ERROR: - MessageOutput.printf("[PowerMeters::Sdm::Serial]: CRC error " - "while reading register %d (0x%04x)\r\n", reg, reg); + DTU_LOGE("CRC error while reading register %d (0x%04x)", reg, reg); break; case SDM_ERR_WRONG_BYTES: - MessageOutput.printf("[PowerMeters::Sdm::Serial]: unexpected data in " - "message while reading register %d (0x%04x)\r\n", reg, reg); + DTU_LOGE("unexpected data in message while reading register %d (0x%04x)", reg, reg); break; case SDM_ERR_NOT_ENOUGHT_BYTES: - MessageOutput.printf("[PowerMeters::Sdm::Serial]: unexpected end of " - "message while reading register %d (0x%04x)\r\n", reg, reg); + DTU_LOGE("unexpected end of message while reading register %d (0x%04x)", reg, reg); break; case SDM_ERR_TIMEOUT: - MessageOutput.printf("[PowerMeters::Sdm::Serial]: timeout occured " - "while reading register %d (0x%04x)\r\n", reg, reg); + DTU_LOGE("timeout occured while reading register %d (0x%04x)", reg, reg); break; default: - MessageOutput.printf("[PowerMeters::Sdm::Serial]: unknown SDM error " - "code after reading register %d (0x%04x)\r\n", reg, reg); + DTU_LOGE("unknown SDM error code after reading register %d (0x%04x)", reg, reg); break; } @@ -199,7 +193,7 @@ void Provider::pollingLoop() } } - MessageOutput.printf("[PowerMeters::Sdm::Serial] TotalPower: %5.2f\r\n", getPowerTotal()); + DTU_LOGD("TotalPower: %5.2f", getPowerTotal()); } } diff --git a/src/powermeter/sml/Provider.cpp b/src/powermeter/sml/Provider.cpp index ce2c73da..e216cc8b 100644 --- a/src/powermeter/sml/Provider.cpp +++ b/src/powermeter/sml/Provider.cpp @@ -1,6 +1,9 @@ // SPDX-License-Identifier: GPL-2.0-or-later #include -#include +#include + +static const char* TAG = "powerMeter"; +#define SUBTAG _user namespace PowerMeters::Sml { @@ -20,10 +23,7 @@ void Provider::processSmlByte(uint8_t byte) float helper = 0.0; handler.decoder(helper); - if (_verboseLogging) { - MessageOutput.printf("[%s] decoded %s to %.2f\r\n", - _user.c_str(), handler.name, helper); - } + DTU_LOGD("decoded %s to %.2f", handler.name, helper); switch (handler.target) { @@ -83,13 +83,11 @@ void Provider::processSmlByte(uint8_t byte) case SML_FINAL: _dataCurrent.updateFrom(_dataInFlight); reset(); - MessageOutput.printf("[%s] TotalPower: %5.2f\r\n", - _user.c_str(), getPowerTotal()); + DTU_LOGD("TotalPower: %5.2f", getPowerTotal()); break; case SML_CHECKSUM_ERROR: reset(); - MessageOutput.printf("[%s] checksum verification failed\r\n", - _user.c_str()); + DTU_LOGE("checksum verification failed"); break; default: break; diff --git a/src/powermeter/sml/http/Provider.cpp b/src/powermeter/sml/http/Provider.cpp index 79a0ca09..19027d78 100644 --- a/src/powermeter/sml/http/Provider.cpp +++ b/src/powermeter/sml/http/Provider.cpp @@ -1,9 +1,12 @@ // SPDX-License-Identifier: GPL-2.0-or-later #include -#include #include #include #include +#include + +static const char* TAG = "powerMeter"; +static const char* SUBTAG = "HTTP/SML"; namespace PowerMeters::Sml::Http { @@ -29,8 +32,7 @@ bool Provider::init() if (_upHttpGetter->init()) { return true; } - MessageOutput.printf("[PowerMeters::Sml::Http] Initializing HTTP getter failed:\r\n"); - MessageOutput.printf("[PowerMeters::Sml::Http] %s\r\n", _upHttpGetter->getErrorText()); + DTU_LOGE("Initializing HTTP getter failed: %s", _upHttpGetter->getErrorText()); _upHttpGetter = nullptr; @@ -79,7 +81,7 @@ void Provider::pollingLoop() lock.lock(); if (!res.isEmpty()) { - MessageOutput.printf("[PowerMeters::Sml::Http] %s\r\n", res.c_str()); + DTU_LOGE("%s", res.c_str()); continue; } } diff --git a/src/powermeter/sml/serial/Provider.cpp b/src/powermeter/sml/serial/Provider.cpp index 7acb95d9..6460070c 100644 --- a/src/powermeter/sml/serial/Provider.cpp +++ b/src/powermeter/sml/serial/Provider.cpp @@ -1,7 +1,10 @@ // SPDX-License-Identifier: GPL-2.0-or-later #include #include -#include +#include + +static const char* TAG = "powerMeter"; +static const char* SUBTAG = "Serial/SML"; namespace PowerMeters::Sml::Serial { @@ -9,11 +12,10 @@ bool Provider::init() { const PinMapping_t& pin = PinMapping.get(); - MessageOutput.printf("[PowerMeters::Sml::Serial] rx = %d\r\n", pin.powermeter_rx); + DTU_LOGI("rx = %d", pin.powermeter_rx); if (pin.powermeter_rx <= GPIO_NUM_NC) { - MessageOutput.println("[PowerMeters::Sml::Serial] invalid pin config " - "for serial SML power meter (RX pin must be defined)"); + DTU_LOGE("invalid pin config for serial SML power meter (RX pin must be defined)"); return false; } diff --git a/src/powermeter/udp/smahm/Provider.cpp b/src/powermeter/udp/smahm/Provider.cpp index 8663236e..4e76a18c 100644 --- a/src/powermeter/udp/smahm/Provider.cpp +++ b/src/powermeter/udp/smahm/Provider.cpp @@ -5,7 +5,10 @@ #include #include #include -#include +#include + +static const char* TAG = "powerMeter"; +static const char* SUBTAG = "UDP/SMAHM"; namespace PowerMeters::Udp::SmaHM { @@ -20,8 +23,7 @@ void Provider::Soutput(int kanal, int index, int art, int tarif, { if (!_verboseLogging) { return; } - MessageOutput.printf("[PowerMeters::Udp::SmaHM] %s = %.1f (timestamp %u)\r\n", - name, value, timestamp); + DTU_LOGD("%s = %.1f (timestamp %u)", name, value, timestamp); } bool Provider::init() @@ -148,8 +150,7 @@ uint8_t* Provider::decodeGroup(uint8_t* offset, uint16_t grouplen) continue; } - MessageOutput.printf("[PowerMeters::Udp::SmaHM] Skipped unknown measurement: %d %d %d %d\r\n", - kanal, index, art, tarif); + DTU_LOGI("Skipped unknown measurement: %d %d %d %d", kanal, index, art, tarif); offset += art; } @@ -169,7 +170,7 @@ void Provider::loop() uint8_t buffer[1024]; int rSize = SMAUdp.read(buffer, 1024); if (buffer[0] != 'S' || buffer[1] != 'M' || buffer[2] != 'A') { - MessageOutput.println("[PowerMeters::Udp::SmaHM] Not an SMA packet?"); + DTU_LOGE("Not an SMA packet?"); return; } @@ -200,8 +201,7 @@ void Provider::loop() continue; } - MessageOutput.printf("[PowerMeters::Udp::SmaHM] Unhandled group 0x%04x with length %d\r\n", - grouptag, grouplen); + DTU_LOGW("Unhandled group 0x%04x with length %d", grouptag, grouplen); offset += grouplen; } while (grouplen > 0 && offset + 4 < buffer + rSize); } diff --git a/src/powermeter/udp/victron/Provider.cpp b/src/powermeter/udp/victron/Provider.cpp index a8276078..80f8de33 100644 --- a/src/powermeter/udp/victron/Provider.cpp +++ b/src/powermeter/udp/victron/Provider.cpp @@ -5,7 +5,10 @@ #include #include #include -#include +#include + +static const char* TAG = "powerMeter"; +static const char* SUBTAG = "ModbusUDP/Victron"; namespace PowerMeters::Udp::Victron { @@ -70,9 +73,7 @@ void Provider::sendModbusRequest() _lastRequest = currentMillis; - if (_verboseLogging) { - MessageOutput.printf("[PowerMeters::Udp::Victron] sent modbus request\r\n"); - } + DTU_LOGD("sent modbus request"); } static float readInt16(uint8_t const** buffer, uint8_t factor) @@ -109,18 +110,8 @@ void Provider::parseModbusResponse() uint8_t const* p = buffer.data(); - if (_verboseLogging) { - MessageOutput.printf("[PowerMeters::Udp::Victron] received %d bytes:", packetSize); - - for (int i = 0; i < packetSize; i++) { - if (i % 16 == 0) { - MessageOutput.print("\r\n"); - } - MessageOutput.printf("%02X ", buffer[i]); - } - - MessageOutput.print("\r\n"); - } + DTU_LOGD("received %d bytes", packetSize); + LogHelper::dumpBytes(TAG, SUBTAG, buffer.data(), packetSize); uint16_t length = 0; uint16_t protocolId = 0; @@ -141,26 +132,24 @@ void Provider::parseModbusResponse() p += 2; if (!dataRemains(length)) { - MessageOutput.printf("[PowerMeters::Udp::Victron] unexpected end of packet\r\n"); + DTU_LOGE("unexpected end of packet"); return; } if (currentTransactionId == sTransactionId) { break; } - MessageOutput.printf("[PowerMeters::Udp::Victron] skipping message " - "with unexpected transaction ID: %04X\r\n", currentTransactionId); + DTU_LOGI("skipping message with unexpected transaction ID: %04X", currentTransactionId); p += length; } if (protocolId != 0x0000) { - MessageOutput.printf("[PowerMeters::Udp::Victron] invalid protocol ID: %04X\r\n", protocolId); + DTU_LOGE("invalid protocol ID: %04X", protocolId); return; } uint16_t expectedLength = (sRegisterCount * 2) + 3; if (length != expectedLength) { - MessageOutput.printf("[PowerMeters::Udp::Victron] unexpected length: %04X, " - "expected %04X\r\n", length, expectedLength); + DTU_LOGE("unexpected length: %04X, expected %04X", length, expectedLength); return; } @@ -168,8 +157,7 @@ void Provider::parseModbusResponse() p += 1; if (unitId != sUnitId) { - MessageOutput.printf("[PowerMeters::Udp::Victron] unexpected unit ID: %02X, " - "expected %02X\r\n", unitId, sUnitId); + DTU_LOGE("unexpected unit ID: %02X, expected %02X", unitId, sUnitId); return; } @@ -177,8 +165,7 @@ void Provider::parseModbusResponse() p += 1; if (functionCode != sFunctionCode) { - MessageOutput.printf("[PowerMeters::Udp::Victron] unexpected function code: %02X, " - "expected %02X\r\n", functionCode, sFunctionCode); + DTU_LOGE("unexpected function code: %02X, expected %02X", functionCode, sFunctionCode); return; } @@ -187,8 +174,7 @@ void Provider::parseModbusResponse() uint8_t expectedByteCount = sRegisterCount * 2; if (byteCount != expectedByteCount) { - MessageOutput.printf("[PowerMeters::Udp::Victron] unexpected byte count: %02X, " - "expected %02X\r\n", byteCount, expectedByteCount); + DTU_LOGE("unexpected byte count: %02X, expected %02X", byteCount, expectedByteCount); return; }