end poll latest at 500ms

This commit is contained in:
helgeerbe 2022-08-17 20:25:46 +02:00
parent 17abb57ed6
commit b8ffa37e97
2 changed files with 4 additions and 1 deletions

View File

@ -71,9 +71,10 @@ void VeDirectFrameHandler::setPollInterval(uint32_t interval)
void VeDirectFrameHandler::loop() void VeDirectFrameHandler::loop()
{ {
unsigned long now = millis(); unsigned long now = millis();
_frameEnd = false;
if ((millis() - getLastUpdate()) > (_pollInterval * 1000)) { if ((millis() - getLastUpdate()) > (_pollInterval * 1000)) {
while ( Serial2.available() && (getLastUpdate() < now)) { while ( Serial2.available() && (!_frameEnd) && (millis() - now < 500)) {
rxData(Serial2.read()); rxData(Serial2.read());
} }
} }
@ -212,6 +213,7 @@ void VeDirectFrameHandler::frameEndEvent(bool valid) {
setLastUpdate(); setLastUpdate();
} }
frameIndex = 0; // reset frame frameIndex = 0; // reset frame
_frameEnd = true;
} }
/* /*

View File

@ -76,6 +76,7 @@ private:
bool hexRxEvent(uint8_t); bool hexRxEvent(uint8_t);
uint32_t _pollInterval; uint32_t _pollInterval;
uint32_t _lastPoll = 0; uint32_t _lastPoll = 0;
bool _frameEnd = false;
}; };
extern VeDirectFrameHandler VeDirect; extern VeDirectFrameHandler VeDirect;