File EventAction.hpp¶
File List > Components > EventAction > EventAction.hpp
Go to the documentation of this file
#ifndef ORION_EVENT_ACTION_HPP
#define ORION_EVENT_ACTION_HPP
#include "Orion/Components/EventAction/EventActionComponentAc.hpp"
namespace Orion {
class EventAction final : public EventActionComponentBase {
public:
explicit EventAction(const char* compName);
~EventAction();
private:
// -----------------------------------------------------------------------
// Port handlers
// -----------------------------------------------------------------------
void schedIn_handler(FwIndexType portNum, U32 context) override;
// -----------------------------------------------------------------------
// Command handlers
// -----------------------------------------------------------------------
void SET_ECLIPSE_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, bool inEclipse) override;
void ENTER_SAFE_MODE_cmdHandler(FwOpcodeType opCode, U32 cmdSeq) override;
void EXIT_SAFE_MODE_cmdHandler(FwOpcodeType opCode, U32 cmdSeq) override;
void FLUSH_MEDIUM_STORAGE_cmdHandler(FwOpcodeType opCode, U32 cmdSeq) override;
void GOTO_IDLE_cmdHandler(FwOpcodeType opCode, U32 cmdSeq) override;
void GOTO_MEASURE_cmdHandler(FwOpcodeType opCode, U32 cmdSeq) override;
void GOTO_DOWNLINK_cmdHandler(FwOpcodeType opCode, U32 cmdSeq) override;
// -----------------------------------------------------------------------
// State machine action/guard implementations
// -----------------------------------------------------------------------
void Orion_MissionModeSm_action_broadcastMode(SmId smId, Orion_MissionModeSm::Signal signal) override;
void Orion_MissionModeSm_action_logModeChange(SmId smId, Orion_MissionModeSm::Signal signal) override;
bool Orion_MissionModeSm_guard_sunIsUp(SmId smId, Orion_MissionModeSm::Signal signal) const override;
// -----------------------------------------------------------------------
// Helpers
// -----------------------------------------------------------------------
static MissionMode stateToMode(Orion_MissionModeSm::State state);
MissionMode signalToTargetMode(Orion_MissionModeSm::Signal signal) const;
static const char* modeToStr(MissionMode mode);
// -----------------------------------------------------------------------
// State
// -----------------------------------------------------------------------
bool m_portsConnected;
bool m_inEclipse;
bool m_prevCommWindow;
MissionMode m_prevMode;
bool m_flushingMedium;
U32 m_mediumFlushed;
};
} // namespace Orion
#endif // ORION_EVENT_ACTION_HPP