From 5bbc67bc49d2fb32298916f23e8c2e5be17078d6 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Mon, 31 Jul 2023 22:52:38 +0200 Subject: [PATCH] Fix: Clear parser buffers to prevent random numbers if no data was received --- lib/Hoymiles/src/parser/AlarmLogParser.cpp | 1 + lib/Hoymiles/src/parser/DevInfoParser.cpp | 2 ++ lib/Hoymiles/src/parser/StatisticsParser.cpp | 1 + lib/Hoymiles/src/parser/SystemConfigParaParser.cpp | 1 + 4 files changed, 5 insertions(+) diff --git a/lib/Hoymiles/src/parser/AlarmLogParser.cpp b/lib/Hoymiles/src/parser/AlarmLogParser.cpp index bad5ccfd..10ed3052 100644 --- a/lib/Hoymiles/src/parser/AlarmLogParser.cpp +++ b/lib/Hoymiles/src/parser/AlarmLogParser.cpp @@ -96,6 +96,7 @@ AlarmLogParser::AlarmLogParser() { _xSemaphore = xSemaphoreCreateMutex(); HOY_SEMAPHORE_GIVE(); // release before first use + clearBuffer(); } void AlarmLogParser::clearBuffer() diff --git a/lib/Hoymiles/src/parser/DevInfoParser.cpp b/lib/Hoymiles/src/parser/DevInfoParser.cpp index fd22b074..5ac187fb 100644 --- a/lib/Hoymiles/src/parser/DevInfoParser.cpp +++ b/lib/Hoymiles/src/parser/DevInfoParser.cpp @@ -56,6 +56,8 @@ DevInfoParser::DevInfoParser() { _xSemaphore = xSemaphoreCreateMutex(); HOY_SEMAPHORE_GIVE(); // release before first use + clearBufferSimple(); + clearBufferAll(); } void DevInfoParser::clearBufferAll() diff --git a/lib/Hoymiles/src/parser/StatisticsParser.cpp b/lib/Hoymiles/src/parser/StatisticsParser.cpp index 2cbf9c84..2218ca4b 100644 --- a/lib/Hoymiles/src/parser/StatisticsParser.cpp +++ b/lib/Hoymiles/src/parser/StatisticsParser.cpp @@ -38,6 +38,7 @@ StatisticsParser::StatisticsParser() { _xSemaphore = xSemaphoreCreateMutex(); HOY_SEMAPHORE_GIVE(); // release before first use + clearBuffer(); } void StatisticsParser::setByteAssignment(const byteAssign_t* byteAssignment, uint8_t size) diff --git a/lib/Hoymiles/src/parser/SystemConfigParaParser.cpp b/lib/Hoymiles/src/parser/SystemConfigParaParser.cpp index b2598e19..2756e1ec 100644 --- a/lib/Hoymiles/src/parser/SystemConfigParaParser.cpp +++ b/lib/Hoymiles/src/parser/SystemConfigParaParser.cpp @@ -16,6 +16,7 @@ SystemConfigParaParser::SystemConfigParaParser() { _xSemaphore = xSemaphoreCreateMutex(); HOY_SEMAPHORE_GIVE(); // release before first use + clearBuffer(); } void SystemConfigParaParser::clearBuffer()