Fix: Prevent wrong values of statistics data because of non-atomic transaction

This commit is contained in:
Thomas Basler
2023-07-31 21:48:26 +02:00
parent 9821c1905b
commit 14305a9f12
3 changed files with 31 additions and 0 deletions

View File

@@ -40,11 +40,13 @@ bool RealTimeRunDataCommand::handleResponse(InverterAbstract* inverter, fragment
// Move all fragments into target buffer
uint8_t offs = 0;
inverter->Statistics()->beginAppendFragment();
inverter->Statistics()->clearBuffer();
for (uint8_t i = 0; i < max_fragment_id; i++) {
inverter->Statistics()->appendFragment(offs, fragment[i].fragment, fragment[i].len);
offs += (fragment[i].len);
}
inverter->Statistics()->endAppendFragment();
inverter->Statistics()->resetRxFailureCount();
inverter->Statistics()->setLastUpdate(millis());
return true;