diff --git a/src/fsfw/devicehandlers/AssemblyBase.cpp b/src/fsfw/devicehandlers/AssemblyBase.cpp index 14575e69..5424ce39 100644 --- a/src/fsfw/devicehandlers/AssemblyBase.cpp +++ b/src/fsfw/devicehandlers/AssemblyBase.cpp @@ -235,14 +235,14 @@ bool AssemblyBase::checkAndHandleRecovery() { if (recoveryOffTimer.isBusy()) { return true; } - triggerEvent(RECOVERY_STEP, 0); + triggerEvent(RECOVERY_WAITING, recoveringDevice->first); sendHealthCommand(recoveringDevice->second.commandQueue, HEALTHY); internalState = STATE_NONE; recoveryState = RECOVERY_ONGOING; // Don't check state! return true; case RECOVERY_ONGOING: - triggerEvent(RECOVERY_STEP, 1); + triggerEvent(RECOVERY_RESTARTING, recoveringDevice->first); recoveryState = RECOVERY_ONGOING_2; recoveringDevice->second.healthChanged = false; // Device should be healthy again, so restart a transition. diff --git a/src/fsfw/health/HasHealthIF.h b/src/fsfw/health/HasHealthIF.h index 2234a119..07f9a5b4 100644 --- a/src/fsfw/health/HasHealthIF.h +++ b/src/fsfw/health/HasHealthIF.h @@ -35,6 +35,13 @@ class HasHealthIF { static const Event RECOVERY_STEP = MAKE_EVENT(11, severity::MEDIUM); //! Recovery was completed. Not necessarily successful. No parameters. static const Event RECOVERY_DONE = MAKE_EVENT(12, severity::MEDIUM); + //! Recovery is ongoing. The recovering device is currently OFF, waiting for restart. + //! P1: Object Id of the recovering device. + static const Event RECOVERY_WAITING = MAKE_EVENT(13, severity::MEDIUM); + //! Recovery is ongoing. Restarting the recovering device. + //! P1: Object Id of the recovering device. + static const Event RECOVERY_RESTARTING = MAKE_EVENT(14, severity::MEDIUM); + virtual ~HasHealthIF() {} virtual MessageQueueId_t getCommandQueue() const = 0;