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()
{
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;
}
/*

View File

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