7 #ifndef Svc_SeqDispatcherComponentAc_HPP 8 #define Svc_SeqDispatcherComponentAc_HPP 21 #if !FW_DIRECT_PORT_CALLS 24 #if !FW_DIRECT_PORT_CALLS 124 #if !FW_DIRECT_PORT_CALLS 141 #if !FW_DIRECT_PORT_CALLS 172 #if !FW_DIRECT_PORT_CALLS 198 #if FW_ENABLE_TEXT_LOGGING == 1 201 void set_logTextOut_OutputPort(
222 #if !FW_DIRECT_PORT_CALLS 238 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION 249 Fw::InputSerializePort* port
255 Fw::InputSerializePort* port
261 Fw::InputSerializePort* port
264 #if FW_ENABLE_TEXT_LOGGING == 1 267 void set_logTextOut_OutputPort(
269 Fw::InputSerializePort* port
277 Fw::InputSerializePort* port
283 Fw::InputSerializePort* port
288 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION 299 Fw::InputSerializePort* port
323 const char* compName =
"" 396 #if FW_ENABLE_TEXT_LOGGING == 1 401 static constexpr
FwIndexType getNum_logTextOut_OutputPorts() {
461 #if FW_ENABLE_TEXT_LOGGING == 1 466 bool isConnected_logTextOut_OutputPort(
499 #if FW_DIRECT_PORT_CALLS 547 #if FW_DIRECT_PORT_CALLS 847 static void m_p_cmdIn_in(
862 static void m_p_seqDoneIn_in(
871 static void m_p_seqRunIn_in(
879 static void m_p_seqStartIn_in(
899 void cmdResponseOut_out(
915 #if FW_ENABLE_TEXT_LOGGING 942 #if !FW_DIRECT_PORT_CALLS 955 #if !FW_DIRECT_PORT_CALLS 974 #if !FW_DIRECT_PORT_CALLS 991 #if FW_ENABLE_TEXT_LOGGING == 1 1006 #if !FW_DIRECT_PORT_CALLS Fw::InputCmdResponsePort * get_seqDoneIn_InputPort(FwIndexType portNum)
virtual void seqDoneIn_preMsgHook(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response)
Pre-message hook for async input port seqDoneIn.
void tlmWrite_sequencersAvailable(U32 arg, Fw::Time _tlmTime=Fw::Time()) const
virtual void LOG_STATUS_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command LOG_STATUS.
void tlmWrite_errorCount(U32 arg, Fw::Time _tlmTime=Fw::Time()) const
FwIdType FwOpcodeType
The type of a command opcode.
PlatformSizeType FwSizeType
Svc::InputCmdSeqInPort * get_seqRunIn_InputPort(FwIndexType portNum)
virtual void RUN_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command RUN.
friend class SeqDispatcherTester
Friend class tester implementation to support white-box testing.
bool isConnected_seqRunOut_OutputPort(FwIndexType portNum) const
static constexpr FwIndexType getNum_seqDoneIn_InputPorts()
Svc::InputCmdSeqInPort * get_seqStartIn_InputPort(FwIndexType portNum)
friend class SeqDispatcherTesterBase
Friend class tester to support autocoded test harness.
bool isConnected_timeCaller_OutputPort(FwIndexType portNum) const
virtual void seqStartIn_handler(FwIndexType portNum, const Fw::StringBase &filename, const Svc::SeqArgs &args)=0
Handler for input port seqStartIn.
virtual void RUN_ARGS_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command RUN_ARGS.
Enum representing a command response.
void set_tlmOut_OutputPort(FwIndexType portNum, Fw::InputTlmPort *port)
Connect port to tlmOut[portNum].
void regCommands()
Register commands with the Command Dispatcher.
virtual void seqRunIn_preMsgHook(FwIndexType portNum, const Fw::StringBase &filename, const Svc::SeqArgs &args)
Pre-message hook for async input port seqRunIn.
void seqDoneIn_handlerBase(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response)
Handler base-class function for input port seqDoneIn.
void set_logOut_OutputPort(FwIndexType portNum, Fw::InputLogPort *port)
Connect port to logOut[portNum].
void set_cmdResponseOut_OutputPort(FwIndexType portNum, Fw::InputCmdResponsePort *port)
Connect port to cmdResponseOut[portNum].
static constexpr FwIndexType getNum_logOut_OutputPorts()
void RUN_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void init()
Object initializer.
Logs via Events the state of each connected command sequencer.
bool isConnected_logOut_OutputPort(FwIndexType portNum) const
static constexpr FwIndexType getNum_cmdRegOut_OutputPorts()
Dispatches a sequence with arguments to the first available sequencer.
virtual void LOG_STATUS_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
void log_WARNING_LO_UnknownSequenceFinished(U16 idx) const
Log event UnknownSequenceFinished.
virtual ~SeqDispatcherComponentBase()
Destroy SeqDispatcherComponentBase object.
FwIdType FwEventIdType
The type of an event identifier.
static constexpr FwIndexType getNum_seqRunOut_OutputPorts()
void log_ACTIVITY_LO_LogSequencerStatus(U16 idx, Svc::SeqDispatcher_CmdSequencerState state, const Fw::StringBase &filename) const
Log event LogSequencerStatus.
Fw::InputCmdPort * get_cmdIn_InputPort(FwIndexType portNum)
void set_seqRunOut_OutputPort(FwIndexType portNum, Svc::InputCmdSeqInPort *port)
Connect port to seqRunOut[portNum].
Channel ID for errorCount.
FwIdType FwChanIdType
The type of a telemetry channel identifier.
SeqDispatcherComponentBase(const char *compName="")
Construct SeqDispatcherComponentBase object.
static constexpr FwIndexType getNum_cmdIn_InputPorts()
Sequencer blocking state.
bool isConnected_cmdResponseOut_OutputPort(FwIndexType portNum) const
static constexpr FwIndexType getNum_cmdResponseOut_OutputPorts()
Channel ID for sequencersAvailable.
void seqRunOut_out(FwIndexType portNum, const Fw::StringBase &filename, const Svc::SeqArgs &args) const
Invoke output port seqRunOut.
void log_WARNING_LO_UnexpectedSequenceStarted(U16 idx, const Fw::StringBase &newSequence) const
Log event UnexpectedSequenceStarted.
Enum representing event severity.
bool isConnected_tlmOut_OutputPort(FwIndexType portNum) const
virtual void seqStartIn_preMsgHook(FwIndexType portNum, const Fw::StringBase &filename, const Svc::SeqArgs &args)
Pre-message hook for async input port seqStartIn.
bool isConnected_cmdRegOut_OutputPort(FwIndexType portNum) const
void seqStartIn_handlerBase(FwIndexType portNum, const Fw::StringBase &filename, const Svc::SeqArgs &args)
Handler base-class function for input port seqStartIn.
Dispatches a sequence to the first available sequencer.
virtual void RUN_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdStringArg &fileName, Svc::BlockState block)=0
void tlmWrite(FwChanIdType id, Fw::TlmBuffer &_tlmBuff, Fw::Time _tlmTime=Fw::Time()) const
void log_WARNING_HI_NoAvailableSequencers() const
Log event NoAvailableSequencers.
void RUN_ARGS_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
PlatformIndexType FwIndexType
void seqRunIn_handlerBase(FwIndexType portNum, const Fw::StringBase &filename, const Svc::SeqArgs &args)
Handler base-class function for input port seqRunIn.
Auto-generated base for SeqDispatcher component.
static constexpr FwIndexType getNum_tlmOut_OutputPorts()
virtual void seqDoneIn_handler(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response)=0
Handler for input port seqDoneIn.
void LOG_STATUS_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
Channel ID for dispatchedCount.
RateGroupDivider component implementation.
void log_WARNING_HI_InvalidSequencer(U16 idx) const
Log event InvalidSequencer.
void set_cmdRegOut_OutputPort(FwIndexType portNum, Fw::InputCmdRegPort *port)
Connect port to cmdRegOut[portNum].
static constexpr FwIndexType getNum_seqRunIn_InputPorts()
static constexpr FwIndexType getNum_timeCaller_OutputPorts()
virtual void RUN_ARGS_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdStringArg &fileName, Svc::BlockState block, Svc::SeqArgs buffer)=0
void cmdResponse_out(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdResponse response)
Emit command response.
void cmdIn_handlerBase(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
Handler base-class function for input port cmdIn.
void log_WARNING_HI_ConflictingSequenceStarted(U16 idx, const Fw::StringBase &newSequence, const Fw::StringBase &sequenceInInternalState) const
Log event ConflictingSequenceStarted.
virtual void seqRunIn_handler(FwIndexType portNum, const Fw::StringBase &filename, const Svc::SeqArgs &args)=0
Handler for input port seqRunIn.
static constexpr FwIndexType getNum_seqStartIn_InputPorts()
void tlmWrite_dispatchedCount(U32 arg, Fw::Time _tlmTime=Fw::Time()) const
void set_timeCaller_OutputPort(FwIndexType portNum, Fw::InputTimePort *port)
Connect port to timeCaller[portNum].