From 7a9a934677918b592f6ee5ecf41bd94fcead059f Mon Sep 17 00:00:00 2001 From: Bernhard Kirchen Date: Fri, 29 Mar 2024 21:20:03 +0100 Subject: [PATCH] VE.Direct: make state machine timeout robust against overflow --- lib/VeDirectFrameHandler/VeDirectFrameHandler.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/VeDirectFrameHandler/VeDirectFrameHandler.cpp b/lib/VeDirectFrameHandler/VeDirectFrameHandler.cpp index a308f7f96..63db05dd5 100644 --- a/lib/VeDirectFrameHandler/VeDirectFrameHandler.cpp +++ b/lib/VeDirectFrameHandler/VeDirectFrameHandler.cpp @@ -118,7 +118,7 @@ void VeDirectFrameHandler::loop() // there will never be a large gap between two bytes of the same frame. // if such a large gap is observed, reset the state machine so it tries // to decode a new frame once more data arrives. - if (IDLE != _state && _lastByteMillis + 500 < millis()) { + if (IDLE != _state && (millis() - _lastByteMillis) > 500) { _msgOut->printf("%s Resetting state machine (was %d) after timeout\r\n", _logId, _state); if (_verboseLogging) { dumpDebugBuffer(); } reset();