mirror of
https://github.com/meshtastic/firmware.git
synced 2025-04-24 01:16:55 +00:00
change order of determineMode() checks
This commit is contained in:
parent
efd818fe90
commit
95b6f27d2a
@ -130,11 +130,11 @@ bool EInkDynamicDisplay::determineMode()
|
|||||||
// Once mode determined, any remaining checks will bypass
|
// Once mode determined, any remaining checks will bypass
|
||||||
checkCosmetic();
|
checkCosmetic();
|
||||||
checkDemandingFast();
|
checkDemandingFast();
|
||||||
checkConsecutiveFastRefreshes();
|
|
||||||
#ifdef EINK_LIMIT_GHOSTING_PX
|
#ifdef EINK_LIMIT_GHOSTING_PX
|
||||||
checkExcessiveGhosting();
|
checkExcessiveGhosting();
|
||||||
#endif
|
#endif
|
||||||
checkFrameMatchesPrevious();
|
checkFrameMatchesPrevious();
|
||||||
|
checkConsecutiveFastRefreshes();
|
||||||
checkFastRequested();
|
checkFastRequested();
|
||||||
|
|
||||||
if (refresh == UNSPECIFIED)
|
if (refresh == UNSPECIFIED)
|
||||||
@ -244,21 +244,6 @@ void EInkDynamicDisplay::checkDemandingFast()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Have too many fast-refreshes occured consecutively, since last full refresh?
|
|
||||||
void EInkDynamicDisplay::checkConsecutiveFastRefreshes()
|
|
||||||
{
|
|
||||||
// If a decision was already reached, don't run the check
|
|
||||||
if (refresh != UNSPECIFIED)
|
|
||||||
return;
|
|
||||||
|
|
||||||
// If too many FAST refreshes consecutively - force a FULL refresh
|
|
||||||
if (fastRefreshCount >= EINK_LIMIT_FASTREFRESH) {
|
|
||||||
refresh = FULL;
|
|
||||||
reason = EXCEEDED_LIMIT_FASTREFRESH;
|
|
||||||
LOG_DEBUG("refresh=FULL, reason=EXCEEDED_LIMIT_FASTREFRESH\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Does the new frame match the currently displayed image?
|
// Does the new frame match the currently displayed image?
|
||||||
void EInkDynamicDisplay::checkFrameMatchesPrevious()
|
void EInkDynamicDisplay::checkFrameMatchesPrevious()
|
||||||
{
|
{
|
||||||
@ -283,7 +268,22 @@ void EInkDynamicDisplay::checkFrameMatchesPrevious()
|
|||||||
// Not redrawn, not COSMETIC, not DEMAND_FAST
|
// Not redrawn, not COSMETIC, not DEMAND_FAST
|
||||||
refresh = SKIPPED;
|
refresh = SKIPPED;
|
||||||
reason = FRAME_MATCHED_PREVIOUS;
|
reason = FRAME_MATCHED_PREVIOUS;
|
||||||
LOG_DEBUG("refresh=SKIPPED, reason=FRAME_MATCHED_PREVIOUS\n");
|
LOG_DEBUG("refresh=SKIPPED, reason=FRAME_MATCHED_PREVIOUS, frameFlags=0x%x\n", frameFlags);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Have too many fast-refreshes occured consecutively, since last full refresh?
|
||||||
|
void EInkDynamicDisplay::checkConsecutiveFastRefreshes()
|
||||||
|
{
|
||||||
|
// If a decision was already reached, don't run the check
|
||||||
|
if (refresh != UNSPECIFIED)
|
||||||
|
return;
|
||||||
|
|
||||||
|
// If too many FAST refreshes consecutively - force a FULL refresh
|
||||||
|
if (fastRefreshCount >= EINK_LIMIT_FASTREFRESH) {
|
||||||
|
refresh = FULL;
|
||||||
|
reason = EXCEEDED_LIMIT_FASTREFRESH;
|
||||||
|
LOG_DEBUG("refresh=FULL, reason=EXCEEDED_LIMIT_FASTREFRESH\n");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// No objections, we can perform fast-refresh, if desired
|
// No objections, we can perform fast-refresh, if desired
|
||||||
|
@ -73,8 +73,8 @@ class EInkDynamicDisplay : public EInkDisplay
|
|||||||
void checkRateLimiting(); // Is this frame too soon?
|
void checkRateLimiting(); // Is this frame too soon?
|
||||||
void checkCosmetic(); // Was the COSMETIC flag set?
|
void checkCosmetic(); // Was the COSMETIC flag set?
|
||||||
void checkDemandingFast(); // Was the DEMAND_FAST flag set?
|
void checkDemandingFast(); // Was the DEMAND_FAST flag set?
|
||||||
void checkConsecutiveFastRefreshes(); // Too many fast-refreshes consecutively?
|
|
||||||
void checkFrameMatchesPrevious(); // Does the new frame match the existing display image?
|
void checkFrameMatchesPrevious(); // Does the new frame match the existing display image?
|
||||||
|
void checkConsecutiveFastRefreshes(); // Too many fast-refreshes consecutively?
|
||||||
void checkFastRequested(); // Was the flag set for RESPONSIVE, or only BACKGROUND?
|
void checkFastRequested(); // Was the flag set for RESPONSIVE, or only BACKGROUND?
|
||||||
|
|
||||||
void resetRateLimiting(); // Set previousRunMs - this now counts as an update, for rate-limiting
|
void resetRateLimiting(); // Set previousRunMs - this now counts as an update, for rate-limiting
|
||||||
|
Loading…
Reference in New Issue
Block a user