From ba3183e10b496264908cc5039e8ce4622a20cd28 Mon Sep 17 00:00:00 2001 From: helgeerbe Date: Tue, 4 Oct 2022 11:34:30 +0200 Subject: [PATCH] Clear map for recieved key, value pairs --- lib/VeDirectFrameHandler/VeDirectFrameHandler.cpp | 1 + src/MqttVedirectPublishing.cpp | 13 +++---------- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/lib/VeDirectFrameHandler/VeDirectFrameHandler.cpp b/lib/VeDirectFrameHandler/VeDirectFrameHandler.cpp index ceae5c665..b7385ebb9 100644 --- a/lib/VeDirectFrameHandler/VeDirectFrameHandler.cpp +++ b/lib/VeDirectFrameHandler/VeDirectFrameHandler.cpp @@ -173,6 +173,7 @@ void VeDirectFrameHandler::rxData(uint8_t inbyte) void VeDirectFrameHandler::frameEndEvent(bool valid) { if ( valid ) { veMap = _tmpMap; + _tmpMap.clear(); setLastUpdate(); } } diff --git a/src/MqttVedirectPublishing.cpp b/src/MqttVedirectPublishing.cpp index 809c526a1..9a7c047a4 100644 --- a/src/MqttVedirectPublishing.cpp +++ b/src/MqttVedirectPublishing.cpp @@ -33,21 +33,13 @@ void MqttVedirectPublishingClass::loop() key = it->first; value = it->second; - // Add new key, value pairs to map and update changed values. // Mark changed values auto a = _kv_map.find(key); + bChanged = true; if (a != _kv_map.end()) { if (_kv_map[key] == value) { bChanged = false; - } - else { - _kv_map[key] = value; - bChanged = true; - } - } - else { - _kv_map.insert(std::make_pair(key, value)); - bChanged = true; + } } // publish only changed key, values pairs @@ -57,6 +49,7 @@ void MqttVedirectPublishingClass::loop() MqttSettings.publish(topic.c_str(), value.c_str()); } } + _kv_map = VeDirect.veMap; _lastPublish = millis(); } } \ No newline at end of file