diff --git a/src/fsfw/devicehandlers/AssemblyBase.cpp b/src/fsfw/devicehandlers/AssemblyBase.cpp index 72298384..33a5148c 100644 --- a/src/fsfw/devicehandlers/AssemblyBase.cpp +++ b/src/fsfw/devicehandlers/AssemblyBase.cpp @@ -227,7 +227,7 @@ bool AssemblyBase::checkAndHandleRecovery() { case RECOVERY_STARTED: // The recovery was already start in #handleChildrenChangedHealth and we just need // to wait for an off time period. - // TODO: make time period configurable + // The timeout can be defined by #setRecoveryWaitTimer recoveryState = RECOVERY_WAIT; recoveryOffTimer.resetTimer(); return true; @@ -282,3 +282,7 @@ void AssemblyBase::triggerModeHelperEvents(Mode_t mode, Submode_t submode) { triggerEvent(CHANGING_MODE, mode, submode); } } + +void AssemblyBase::setRecoveryWaitTimer(uint32_t timeoutMS) { + recoveryOffTimer.setTimeout(timeoutMS); +} diff --git a/src/fsfw/devicehandlers/AssemblyBase.h b/src/fsfw/devicehandlers/AssemblyBase.h index 5e0d826f..ac4feccd 100644 --- a/src/fsfw/devicehandlers/AssemblyBase.h +++ b/src/fsfw/devicehandlers/AssemblyBase.h @@ -206,6 +206,8 @@ class AssemblyBase : public SubsystemBase { void overwriteDeviceHealth(object_id_t objectId, HasHealthIF::HealthState oldHealth); void triggerModeHelperEvents(Mode_t mode, Submode_t submode); + + void setRecoveryWaitTimer(uint32_t timeoutMS); }; #endif /* FSFW_DEVICEHANDLERS_ASSEMBLYBASE_H_ */