#ifndef MISSION_ACSDEFS_H_ #define MISSION_ACSDEFS_H_ #include #include namespace acs { // These modes are the submodes of the ACS controller and the modes of the ACS subsystem. enum AcsMode : Mode_t { OFF = HasModesIF::MODE_OFF, SAFE = 10, DETUMBLE = 11, PTG_IDLE = 12, PTG_NADIR = 13, PTG_TARGET = 14, PTG_TARGET_GS = 15, PTG_INERTIAL = 16, }; static const uint8_t SUBSYSTEM_ID = SUBSYSTEM_ID::ACS_SUBSYSTEM; //!< The limits for the rotation in safe mode were violated. static const Event SAFE_RATE_VIOLATION = MAKE_EVENT(0, severity::MEDIUM); //!< The system has recovered from a safe rate rotation violation. static constexpr Event SAFE_RATE_RECOVERY = MAKE_EVENT(1, severity::MEDIUM); //!< Multiple RWs are invalid, not commandable and therefore higher ACS modes cannot be maintained. static constexpr Event MULTIPLE_RW_INVALID = MAKE_EVENT(2, severity::HIGH); //!< MEKF was not able to compute a solution. static constexpr Event MEKF_INVALID_INFO = MAKE_EVENT(3, severity::INFO); //!< MEKF was not able to compute a solution during any pointing ACS mode for a prolonged time. static constexpr Event MEKF_INVALID_MODE_VIOLATION = MAKE_EVENT(4, severity::HIGH); extern const char* getModeStr(AcsMode mode); } // namespace acs #endif /* MISSION_ACSDEFS_H_ */