38 lines
1.3 KiB
C++
38 lines
1.3 KiB
C++
#ifndef MISSION_ACSDEFS_H_
|
|
#define MISSION_ACSDEFS_H_
|
|
|
|
#include <eive/eventSubsystemIds.h>
|
|
#include <fsfw/modes/HasModesIF.h>
|
|
|
|
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 during safe or detumble mode.
|
|
static constexpr Event MEKF_INVALID_SAFE_MODE = MAKE_EVENT(3, severity::INFO);
|
|
//!< MEKF was not able to compute a solution during any pointing ACS mode.
|
|
static constexpr Event MEKF_INVALID_PTG_MODE = MAKE_EVENT(4, severity::HIGH);
|
|
|
|
extern const char* getModeStr(AcsMode mode);
|
|
|
|
} // namespace acs
|
|
|
|
#endif /* MISSION_ACSDEFS_H_ */
|