From 82038d3e2d35b7cb488543dcaabc379e44534462 Mon Sep 17 00:00:00 2001 From: jstammi Date: Wed, 28 Jun 2023 18:57:52 +0200 Subject: [PATCH] Fix: do not calc sizes multiple times tbnobody/OpenDTU/issues/1022 --- lib/Hoymiles/src/commands/RealTimeRunDataCommand.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/Hoymiles/src/commands/RealTimeRunDataCommand.cpp b/lib/Hoymiles/src/commands/RealTimeRunDataCommand.cpp index f94fad9..d59e144 100644 --- a/lib/Hoymiles/src/commands/RealTimeRunDataCommand.cpp +++ b/lib/Hoymiles/src/commands/RealTimeRunDataCommand.cpp @@ -29,11 +29,11 @@ bool RealTimeRunDataCommand::handleResponse(InverterAbstract* inverter, fragment // Check if at least all required bytes are received // In case of low power in the inverter it occours that some incomplete fragments // with a valid CRC are received. - if (getTotalFragmentSize(fragment, max_fragment_id) < inverter->Statistics()->getExpectedByteCount()) { - Hoymiles.getMessageOutput()->printf("ERROR in %s: Received fragment size: %d min. expected size: %d\r\n", - getCommandName().c_str(), - getTotalFragmentSize(fragment, max_fragment_id), - inverter->Statistics()->getExpectedByteCount()); + uint8_t fragmentsSize = getTotalFragmentSize(fragment, max_fragment_id); + uint8_t expectedSize = inverter->Statistics()->getExpectedByteCount(); + if (fragmentsSize < expectedSize) { + Hoymiles.getMessageOutput()->printf("ERROR in %s: Received fragment size: %d, min expected size: %d\r\n", + getCommandName().c_str(), fragmentsSize, expectedSize); return false; }