From b8ffa37e97b88bf7fad31556f3977a099a2bd4c0 Mon Sep 17 00:00:00 2001 From: helgeerbe Date: Wed, 17 Aug 2022 20:25:46 +0200 Subject: [PATCH] end poll latest at 500ms --- lib/VeDirectFrameHandler/VeDirectFrameHandler.cpp | 4 +++- lib/VeDirectFrameHandler/VeDirectFrameHandler.h | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/VeDirectFrameHandler/VeDirectFrameHandler.cpp b/lib/VeDirectFrameHandler/VeDirectFrameHandler.cpp index df1aae1c..87e8587a 100644 --- a/lib/VeDirectFrameHandler/VeDirectFrameHandler.cpp +++ b/lib/VeDirectFrameHandler/VeDirectFrameHandler.cpp @@ -71,9 +71,10 @@ void VeDirectFrameHandler::setPollInterval(uint32_t interval) void VeDirectFrameHandler::loop() { unsigned long now = millis(); + _frameEnd = false; if ((millis() - getLastUpdate()) > (_pollInterval * 1000)) { - while ( Serial2.available() && (getLastUpdate() < now)) { + while ( Serial2.available() && (!_frameEnd) && (millis() - now < 500)) { rxData(Serial2.read()); } } @@ -212,6 +213,7 @@ void VeDirectFrameHandler::frameEndEvent(bool valid) { setLastUpdate(); } frameIndex = 0; // reset frame + _frameEnd = true; } /* diff --git a/lib/VeDirectFrameHandler/VeDirectFrameHandler.h b/lib/VeDirectFrameHandler/VeDirectFrameHandler.h index 49f19772..0ded5b9d 100644 --- a/lib/VeDirectFrameHandler/VeDirectFrameHandler.h +++ b/lib/VeDirectFrameHandler/VeDirectFrameHandler.h @@ -76,6 +76,7 @@ private: bool hexRxEvent(uint8_t); uint32_t _pollInterval; uint32_t _lastPoll = 0; + bool _frameEnd = false; }; extern VeDirectFrameHandler VeDirect;