avoid polling if message is up-to-date within interval
This commit is contained in:
@@ -482,14 +482,17 @@ result_t BusHandler::handleSymbol() {
|
|||||||
Message* message = m_messages->getNextPoll();
|
Message* message = m_messages->getNextPoll();
|
||||||
if (message != nullptr) {
|
if (message != nullptr) {
|
||||||
m_lastPoll = now;
|
m_lastPoll = now;
|
||||||
auto request = new PollRequest(message);
|
if (difftime(now, message->getLastUpdateTime()) > m_pollInterval) {
|
||||||
result_t ret = request->prepare(m_ownMasterAddress);
|
// only poll this message if it was not updated already by other means within the interval
|
||||||
if (ret != RESULT_OK) {
|
auto request = new PollRequest(message);
|
||||||
logError(lf_bus, "prepare poll message: %s", getResultCode(ret));
|
result_t ret = request->prepare(m_ownMasterAddress);
|
||||||
delete request;
|
if (ret != RESULT_OK) {
|
||||||
} else {
|
logError(lf_bus, "prepare poll message: %s", getResultCode(ret));
|
||||||
startRequest = request;
|
delete request;
|
||||||
m_nextRequests.push(request);
|
} else {
|
||||||
|
startRequest = request;
|
||||||
|
m_nextRequests.push(request);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user