end poll latest at 500ms
This commit is contained in:
parent
17abb57ed6
commit
b8ffa37e97
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@ -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;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user