From 8e26ef4e2e8def828b28de096f0d59d3318529f4 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Thu, 26 Sep 2024 17:45:34 +0200 Subject: [PATCH] Fix: Only count RF RX packets when packets where sent This mainly occours after a reset of the statistics that receive count is higher then transmit count --- lib/Hoymiles/src/HoymilesRadio.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/lib/Hoymiles/src/HoymilesRadio.cpp b/lib/Hoymiles/src/HoymilesRadio.cpp index a3c3a02d..55281ab0 100644 --- a/lib/Hoymiles/src/HoymilesRadio.cpp +++ b/lib/Hoymiles/src/HoymilesRadio.cpp @@ -67,7 +67,9 @@ void HoymilesRadio::handleReceivedPackage() } else if (verifyResult == FRAGMENT_ALL_MISSING_TIMEOUT) { Hoymiles.getMessageOutput()->println("Nothing received, resend count exeeded"); // Statistics: Count RX Fail No Answer - inv->RadioStats.RxFailNoAnswer++; + if (inv->RadioStats.TxRequestData > 0) { + inv->RadioStats.RxFailNoAnswer++; + } _commandQueue.pop(); _busyFlag = false; @@ -75,7 +77,9 @@ void HoymilesRadio::handleReceivedPackage() } else if (verifyResult == FRAGMENT_RETRANSMIT_TIMEOUT) { Hoymiles.getMessageOutput()->println("Retransmit timeout"); // Statistics: Count RX Fail Partial Answer - inv->RadioStats.RxFailPartialAnswer++; + if (inv->RadioStats.TxRequestData > 0) { + inv->RadioStats.RxFailPartialAnswer++; + } _commandQueue.pop(); _busyFlag = false; @@ -83,7 +87,9 @@ void HoymilesRadio::handleReceivedPackage() } else if (verifyResult == FRAGMENT_HANDLE_ERROR) { Hoymiles.getMessageOutput()->println("Packet handling error"); // Statistics: Count RX Fail Corrupt Data - inv->RadioStats.RxFailCorruptData++; + if (inv->RadioStats.TxRequestData > 0) { + inv->RadioStats.RxFailCorruptData++; + } _commandQueue.pop(); _busyFlag = false; @@ -101,7 +107,9 @@ void HoymilesRadio::handleReceivedPackage() // Successful received all packages Hoymiles.getMessageOutput()->println("Success"); // Statistics: Count RX Success - inv->RadioStats.RxSuccess++; + if (inv->RadioStats.TxRequestData > 0) { + inv->RadioStats.RxSuccess++; + } _commandQueue.pop(); _busyFlag = false;