diff --git a/mission/system/EiveSystem.cpp b/mission/system/EiveSystem.cpp index eb5b3529..8271b179 100644 --- a/mission/system/EiveSystem.cpp +++ b/mission/system/EiveSystem.cpp @@ -133,6 +133,7 @@ void EiveSystem::handleEventMessages() { case pdec::INVALID_TC_FRAME: { if (event.getParameter1() == pdec::FRAME_DIRTY_RETVAL) { frameDirtyErrorCounter++; + frameDirtyCheckCd.resetTimer(); } break; } @@ -318,7 +319,7 @@ void EiveSystem::pdecRecoveryLogic() { if (pdecResetCounterResetCd.hasTimedOut()) { pdecResetCounter = 0; } - if (frameDirtyCheckCd.hasTimedOut()) { + if (frameDirtyCheckCd.hasTimedOut() and frameDirtyErrorCounter > 0) { if (frameDirtyErrorCounter >= FRAME_DIRTY_COM_REBOOT_LIMIT) { // Try one full PDEC reset. CommandMessage msg; @@ -329,7 +330,6 @@ void EiveSystem::pdecRecoveryLogic() { pdecResetCounter++; } frameDirtyErrorCounter = 0; - frameDirtyCheckCd.resetTimer(); } }