10 #if FW_ENABLE_TEXT_LOGGING
19 SEQDONEIN_CMDRESPONSE,
37 class ComponentIpcSerializableBuffer :
52 return sizeof(m_buff);
59 const U8* getBuffAddr()
const {
65 U8 m_buff[SERIALIZATION_SIZE];
89 this->m_cmdIn_InputPort[port].
init();
94 this->m_cmdIn_InputPort[port].
setPortNum(port);
96 #if FW_OBJECT_NAMES == 1
100 this->m_objName.toChar(),
103 this->m_cmdIn_InputPort[port].setObjName(portName.
toChar());
113 this->m_seqDoneIn_InputPort[port].
init();
118 this->m_seqDoneIn_InputPort[port].
setPortNum(port);
120 #if FW_OBJECT_NAMES == 1
124 this->m_objName.toChar(),
127 this->m_seqDoneIn_InputPort[port].setObjName(portName.
toChar());
137 this->m_seqRunIn_InputPort[port].
init();
142 this->m_seqRunIn_InputPort[port].
setPortNum(port);
144 #if FW_OBJECT_NAMES == 1
148 this->m_objName.toChar(),
151 this->m_seqRunIn_InputPort[port].setObjName(portName.
toChar());
161 this->m_seqStartIn_InputPort[port].
init();
166 this->m_seqStartIn_InputPort[port].
setPortNum(port);
168 #if FW_OBJECT_NAMES == 1
172 this->m_objName.toChar(),
175 this->m_seqStartIn_InputPort[port].setObjName(portName.
toChar());
185 this->m_cmdRegOut_OutputPort[port].
init();
187 #if FW_OBJECT_NAMES == 1
191 this->m_objName.toChar(),
194 this->m_cmdRegOut_OutputPort[port].setObjName(portName.
toChar());
204 this->m_cmdResponseOut_OutputPort[port].
init();
206 #if FW_OBJECT_NAMES == 1
210 this->m_objName.toChar(),
213 this->m_cmdResponseOut_OutputPort[port].setObjName(portName.
toChar());
223 this->m_logOut_OutputPort[port].
init();
225 #if FW_OBJECT_NAMES == 1
229 this->m_objName.toChar(),
232 this->m_logOut_OutputPort[port].setObjName(portName.
toChar());
236 #if FW_ENABLE_TEXT_LOGGING == 1
240 port < static_cast<FwIndexType>(this->getNum_logTextOut_OutputPorts());
243 this->m_logTextOut_OutputPort[port].
init();
245 #if FW_OBJECT_NAMES == 1
249 this->m_objName.toChar(),
252 this->m_logTextOut_OutputPort[port].setObjName(portName.
toChar());
263 this->m_timeCaller_OutputPort[port].
init();
265 #if FW_OBJECT_NAMES == 1
269 this->m_objName.toChar(),
272 this->m_timeCaller_OutputPort[port].setObjName(portName.
toChar());
282 this->m_tlmOut_OutputPort[port].
init();
284 #if FW_OBJECT_NAMES == 1
288 this->m_objName.toChar(),
291 this->m_tlmOut_OutputPort[port].setObjName(portName.
toChar());
301 this->m_seqRunOut_OutputPort[port].
init();
303 #if FW_OBJECT_NAMES == 1
307 this->m_objName.toChar(),
310 this->m_seqRunOut_OutputPort[port].setObjName(portName.
toChar());
316 static_cast<FwSizeType>(ComponentIpcSerializableBuffer::SERIALIZATION_SIZE)
336 return &this->m_cmdIn_InputPort[portNum];
351 return &this->m_seqDoneIn_InputPort[portNum];
362 return &this->m_seqRunIn_InputPort[portNum];
373 return &this->m_seqStartIn_InputPort[portNum];
391 this->m_cmdRegOut_OutputPort[portNum].
addCallPort(port);
405 this->m_cmdResponseOut_OutputPort[portNum].
addCallPort(port);
419 this->m_logOut_OutputPort[portNum].
addCallPort(port);
422 #if FW_ENABLE_TEXT_LOGGING == 1
424 void SeqDispatcherComponentBase ::
425 set_logTextOut_OutputPort(
431 portNum < this->getNum_logTextOut_OutputPorts(),
435 this->m_logTextOut_OutputPort[portNum].addCallPort(port);
451 this->m_timeCaller_OutputPort[portNum].
addCallPort(port);
465 this->m_tlmOut_OutputPort[portNum].
addCallPort(port);
483 this->m_seqRunOut_OutputPort[portNum].
addCallPort(port);
486 #if FW_PORT_SERIALIZATION
495 Fw::InputSerializePort* port
503 this->m_cmdRegOut_OutputPort[portNum].registerSerialPort(port);
509 Fw::InputSerializePort* port
517 this->m_cmdResponseOut_OutputPort[portNum].registerSerialPort(port);
523 Fw::InputSerializePort* port
531 this->m_logOut_OutputPort[portNum].registerSerialPort(port);
534 #if FW_ENABLE_TEXT_LOGGING == 1
536 void SeqDispatcherComponentBase ::
537 set_logTextOut_OutputPort(
539 Fw::InputSerializePort* port
543 portNum < this->getNum_logTextOut_OutputPorts(),
547 this->m_logTextOut_OutputPort[portNum].registerSerialPort(port);
555 Fw::InputSerializePort* port
563 this->m_timeCaller_OutputPort[portNum].registerSerialPort(port);
569 Fw::InputSerializePort* port
577 this->m_tlmOut_OutputPort[portNum].registerSerialPort(port);
582 #if FW_PORT_SERIALIZATION
591 Fw::InputSerializePort* port
599 this->m_seqRunOut_OutputPort[portNum].registerSerialPort(port);
611 FW_ASSERT(this->m_cmdRegOut_OutputPort[0].isConnected());
613 this->m_cmdRegOut_OutputPort[0].
invoke(
617 this->m_cmdRegOut_OutputPort[0].
invoke(
628 Fw::ActiveComponentBase(compName)
693 #if FW_ENABLE_TEXT_LOGGING == 1
696 getNum_logTextOut_OutputPorts()
const
737 return this->m_cmdRegOut_OutputPort[portNum].
isConnected();
748 return this->m_cmdResponseOut_OutputPort[portNum].
isConnected();
759 return this->m_logOut_OutputPort[portNum].
isConnected();
762 #if FW_ENABLE_TEXT_LOGGING == 1
764 bool SeqDispatcherComponentBase ::
765 isConnected_logTextOut_OutputPort(
FwIndexType portNum)
768 portNum < this->getNum_logTextOut_OutputPorts(),
772 return this->m_logTextOut_OutputPort[portNum].isConnected();
785 return this->m_timeCaller_OutputPort[portNum].
isConnected();
796 return this->m_tlmOut_OutputPort[portNum].
isConnected();
811 return this->m_seqRunOut_OutputPort[portNum].
isConnected();
841 ComponentIpcSerializableBuffer msg;
845 _status = msg.serialize(
854 _status = msg.serialize(portNum);
861 _status = msg.serialize(opCode);
868 _status = msg.serialize(cmdSeq);
875 _status = msg.serialize(response);
908 ComponentIpcSerializableBuffer msg;
912 _status = msg.serialize(
921 _status = msg.serialize(portNum);
961 ComponentIpcSerializableBuffer msg;
965 _status = msg.serialize(
974 _status = msg.serialize(portNum);
1048 this->m_seqRunOut_OutputPort[portNum].
invoke(
1064 FW_ASSERT(this->m_cmdResponseOut_OutputPort[0].isConnected());
1065 this->m_cmdResponseOut_OutputPort[0].
invoke(opCode, cmdSeq, response);
1086 ComponentIpcSerializableBuffer msg;
1099 _status = msg.serialize(port);
1105 _status = msg.serialize(opCode);
1111 _status = msg.serialize(cmdSeq);
1117 _status = msg.serialize(args);
1145 ComponentIpcSerializableBuffer msg;
1149 _status = msg.serialize(
static_cast<FwEnumStoreType>(CMD_LOG_STATUS));
1158 _status = msg.serialize(port);
1164 _status = msg.serialize(opCode);
1170 _status = msg.serialize(cmdSeq);
1176 _status = msg.serialize(args);
1231 if (this->m_timeCaller_OutputPort[0].isConnected()) {
1232 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
1240 if (this->m_logOut_OutputPort[0].isConnected()) {
1244 #if FW_AMPCS_COMPATIBLE
1253 #if FW_AMPCS_COMPATIBLE
1256 static_cast<U8>(
sizeof(U16))
1269 this->m_logOut_OutputPort[0].
invoke(
1278 #if FW_ENABLE_TEXT_LOGGING
1279 if (this->m_logTextOut_OutputPort[0].isConnected()) {
1280 #if FW_OBJECT_NAMES == 1
1281 const char* _formatString =
1282 "(%s) %s: Invalid sequence index %" PRIu16
"";
1284 const char* _formatString =
1285 "%s: Invalid sequence index %" PRIu16
"";
1292 this->m_objName.toChar(),
1294 "InvalidSequencer ",
1298 this->m_logTextOut_OutputPort[0].invoke(
1313 if (this->m_timeCaller_OutputPort[0].isConnected()) {
1314 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
1322 if (this->m_logOut_OutputPort[0].isConnected()) {
1325 #if FW_AMPCS_COMPATIBLE
1335 this->m_logOut_OutputPort[0].
invoke(
1344 #if FW_ENABLE_TEXT_LOGGING
1345 if (this->m_logTextOut_OutputPort[0].isConnected()) {
1346 #if FW_OBJECT_NAMES == 1
1347 const char* _formatString =
1348 "(%s) %s: No available cmd sequencers to dispatch a sequence to";
1350 const char* _formatString =
1351 "%s: No available cmd sequencers to dispatch a sequence to";
1358 this->m_objName.toChar(),
1360 "NoAvailableSequencers "
1363 this->m_logTextOut_OutputPort[0].invoke(
1378 if (this->m_timeCaller_OutputPort[0].isConnected()) {
1379 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
1387 if (this->m_logOut_OutputPort[0].isConnected()) {
1391 #if FW_AMPCS_COMPATIBLE
1400 #if FW_AMPCS_COMPATIBLE
1403 static_cast<U8>(
sizeof(U16))
1416 this->m_logOut_OutputPort[0].
invoke(
1425 #if FW_ENABLE_TEXT_LOGGING
1426 if (this->m_logTextOut_OutputPort[0].isConnected()) {
1427 #if FW_OBJECT_NAMES == 1
1428 const char* _formatString =
1429 "(%s) %s: Sequencer %" PRIu16
" completed a sequence with no matching start notification";
1431 const char* _formatString =
1432 "%s: Sequencer %" PRIu16
" completed a sequence with no matching start notification";
1439 this->m_objName.toChar(),
1441 "UnknownSequenceFinished ",
1445 this->m_logTextOut_OutputPort[0].invoke(
1464 if (this->m_timeCaller_OutputPort[0].isConnected()) {
1465 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
1473 if (this->m_logOut_OutputPort[0].isConnected()) {
1477 #if FW_AMPCS_COMPATIBLE
1486 #if FW_AMPCS_COMPATIBLE
1489 static_cast<U8>(
sizeof(U16))
1514 this->m_logOut_OutputPort[0].
invoke(
1523 #if FW_ENABLE_TEXT_LOGGING
1524 if (this->m_logTextOut_OutputPort[0].isConnected()) {
1525 #if FW_OBJECT_NAMES == 1
1526 const char* _formatString =
1527 "(%s) %s: Sequencer %" PRIu16
" started a sequence %s while still running %s";
1529 const char* _formatString =
1530 "%s: Sequencer %" PRIu16
" started a sequence %s while still running %s";
1537 this->m_objName.toChar(),
1539 "ConflictingSequenceStarted ",
1542 sequenceInInternalState.
toChar()
1545 this->m_logTextOut_OutputPort[0].invoke(
1563 if (this->m_timeCaller_OutputPort[0].isConnected()) {
1564 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
1572 if (this->m_logOut_OutputPort[0].isConnected()) {
1576 #if FW_AMPCS_COMPATIBLE
1585 #if FW_AMPCS_COMPATIBLE
1588 static_cast<U8>(
sizeof(U16))
1607 this->m_logOut_OutputPort[0].
invoke(
1616 #if FW_ENABLE_TEXT_LOGGING
1617 if (this->m_logTextOut_OutputPort[0].isConnected()) {
1618 #if FW_OBJECT_NAMES == 1
1619 const char* _formatString =
1620 "(%s) %s: Sequencer %" PRIu16
" was externally commanded to start a sequence %s";
1622 const char* _formatString =
1623 "%s: Sequencer %" PRIu16
" was externally commanded to start a sequence %s";
1630 this->m_objName.toChar(),
1632 "UnexpectedSequenceStarted ",
1637 this->m_logTextOut_OutputPort[0].invoke(
1656 if (this->m_timeCaller_OutputPort[0].isConnected()) {
1657 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
1665 if (this->m_logOut_OutputPort[0].isConnected()) {
1669 #if FW_AMPCS_COMPATIBLE
1678 #if FW_AMPCS_COMPATIBLE
1681 static_cast<U8>(
sizeof(U16))
1694 #if FW_AMPCS_COMPATIBLE
1716 this->m_logOut_OutputPort[0].
invoke(
1725 #if FW_ENABLE_TEXT_LOGGING
1726 if (this->m_logTextOut_OutputPort[0].isConnected()) {
1727 #if FW_OBJECT_NAMES == 1
1728 const char* _formatString =
1729 "(%s) %s: Sequencer %" PRIu16
" with state %s is running file %s";
1731 const char* _formatString =
1732 "%s: Sequencer %" PRIu16
" with state %s is running file %s";
1736 state.toString(stateStr);
1742 this->m_objName.toChar(),
1744 "LogSequencerStatus ",
1750 this->m_logTextOut_OutputPort[0].invoke(
1770 if (this->m_tlmOut_OutputPort[0].isConnected()) {
1772 this->m_timeCaller_OutputPort[0].isConnected() &&
1775 this->m_timeCaller_OutputPort[0].
invoke(_tlmTime);
1789 this->m_tlmOut_OutputPort[0].
invoke(
1803 if (this->m_tlmOut_OutputPort[0].isConnected()) {
1805 this->m_timeCaller_OutputPort[0].isConnected() &&
1808 this->m_timeCaller_OutputPort[0].
invoke(_tlmTime);
1822 this->m_tlmOut_OutputPort[0].
invoke(
1836 if (this->m_tlmOut_OutputPort[0].isConnected()) {
1838 this->m_timeCaller_OutputPort[0].isConnected() &&
1841 this->m_timeCaller_OutputPort[0].
invoke(_tlmTime);
1855 this->m_tlmOut_OutputPort[0].
invoke(
1870 if (this->m_timeCaller_OutputPort[0].isConnected()) {
1872 this->m_timeCaller_OutputPort[0].
invoke(_time);
1887 ComponentIpcSerializableBuffer msg;
1910 MsgTypeEnum msgType =
static_cast<MsgTypeEnum
>(desMsg);
1912 if (msgType == SEQDISPATCHER_COMPONENT_EXIT) {
1917 deserStatus = msg.deserialize(portNum);
1925 case SEQDONEIN_CMDRESPONSE: {
1928 deserStatus = msg.deserialize(opCode);
1936 deserStatus = msg.deserialize(cmdSeq);
1961 case SEQRUNIN_CMDSEQIN: {
1964 Fw::ExternalString filename(__fprime_ac_filename_buffer,
sizeof __fprime_ac_filename_buffer);
1965 deserStatus = msg.deserialize(filename);
1980 case SEQSTARTIN_CMDSEQIN: {
1983 Fw::ExternalString filename(__fprime_ac_filename_buffer,
sizeof __fprime_ac_filename_buffer);
1984 deserStatus = msg.deserialize(filename);
2002 deserStatus = msg.deserialize(opCode);
2010 deserStatus = msg.deserialize(cmdSeq);
2031 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
2046 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
2059 #if FW_CMD_CHECK_RESIDUAL
2061 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
2080 case CMD_LOG_STATUS: {
2083 deserStatus = msg.deserialize(opCode);
2091 deserStatus = msg.deserialize(cmdSeq);
2110 #if FW_CMD_CHECK_RESIDUAL
2112 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
2137 void SeqDispatcherComponentBase ::
2149 const U32 idBase = callComp->
getIdBase();
2153 switch (opCode - idBase) {
2155 compPtr->RUN_cmdHandlerBase(
2164 compPtr->LOG_STATUS_cmdHandlerBase(
2178 void SeqDispatcherComponentBase ::
2189 compPtr->seqDoneIn_handlerBase(
2197 void SeqDispatcherComponentBase ::
2206 compPtr->seqRunIn_handlerBase(
2212 void SeqDispatcherComponentBase ::
2221 compPtr->seqStartIn_handlerBase(
#define FW_MIN(a, b)
MIN macro.
uint8_t U8
8-bit unsigned integer
#define FW_NUM_ARRAY_ELEMENTS(a)
number of elements in an array
#define PRI_PlatformIntType
@ TB_NONE
No time base has been established.
PlatformAssertArgType FwAssertArgType
PlatformSizeType FwSizeType
#define FW_LOG_STRING_MAX_SIZE
Max size of log string parameter type.
PlatformQueuePriorityType FwQueuePriorityType
PlatformIndexType FwIndexType
#define FW_OBJECT_NAMES
Indicates whether or not object names are stored (more memory, can be used for tracking objects)
@ ACTIVE_COMPONENT_EXIT
message to exit active component task
Enum representing a command response.
@ FORMAT_ERROR
Command failed to deserialize.
Fw::SerializeStatus deserialize(Fw::SerializeBufferBase &buffer)
Deserialize raw enum value from SerialType.
A string backed by an external buffer.
@ WARNING_HI
A serious but recoverable event.
@ WARNING_LO
A less serious but recoverable event.
@ ACTIVITY_LO
Less important informational events.
void init()
Object initializer.
const char * toChar() const
void addCallPort(InputCmdRegPort *callPort)
Register an input port.
void invoke(FwOpcodeType opCode)
Invoke a port interface.
void init()
Initialization function.
void init()
Initialization function.
void addCallPort(InputCmdResponsePort *callPort)
Register an input port.
void invoke(FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response)
Invoke a port interface.
void init()
Initialization function.
void invoke(FwEventIdType id, Fw::Time &timeTag, const Fw::LogSeverity &severity, Fw::LogBuffer &args)
Invoke a port interface.
void addCallPort(InputLogPort *callPort)
Register an input port.
void addCallPort(InputTimePort *callPort)
Register an input port.
void invoke(Fw::Time &time)
Invoke a port interface.
void init()
Initialization function.
void addCallPort(InputTlmPort *callPort)
Register an input port.
void init()
Initialization function.
void invoke(FwChanIdType id, Fw::Time &timeTag, Fw::TlmBuffer &val)
Invoke a port interface.
Os::Queue::Status createQueue(FwSizeType depth, FwSizeType msgSize)
Os::Queue m_queue
queue object for active component
@ MSG_DISPATCH_OK
Dispatch was normal.
@ MSG_DISPATCH_EXIT
A message was sent requesting an exit of the loop.
@ MSG_DISPATCH_ERROR
Errors dispatching messages.
NATIVE_UINT_TYPE SizeType
void resetDeser()
reset deserialization to beginning
Serializable::SizeType getBuffLeft() const
returns how much deserialization buffer is left
SerializeStatus deserialize(U8 &val)
deserialize 8-bit unsigned int
SerializeStatus serialize(U8 val)
serialize 8-bit unsigned int
virtual const CHAR * toChar() const =0
void format(const CHAR *formatString,...)
write formatted string to buffer
virtual SerializeStatus serialize(SerializeBufferBase &buffer) const
serialization function
static constexpr SizeType BUFFER_SIZE(SizeType maxLength)
Get the size of a null-terminated string buffer.
const char * toChar() const
Wait or don't wait for something.
Status send(const U8 *buffer, FwSizeType size, FwQueuePriorityType priority, BlockingType blockType) override
send a message into the queue through delegate
Status receive(U8 *destination, FwSizeType capacity, BlockingType blockType, FwSizeType &actualSize, FwQueuePriorityType &priority) override
receive a message from the queue through delegate
@ BLOCKING
Message will block until space is available.
@ NONBLOCKING
Message will return with status when space is unavailable.
Status
status returned from the queue send function
@ OP_OK
message sent/received okay
void invoke(const Fw::StringBase &filename)
Invoke a port interface.
void init()
Initialization function.
void addCallPort(InputCmdSeqInPort *callPort)
Register an input port.
@ SERIALIZED_SIZE
The size of the serial representation.
void log_WARNING_LO_UnexpectedSequenceStarted(U16 idx, const Fw::StringBase &newSequence)
Log event UnexpectedSequenceStarted.
bool isConnected_cmdResponseOut_OutputPort(FwIndexType portNum)
virtual void seqRunIn_preMsgHook(FwIndexType portNum, const Fw::StringBase &filename)
Pre-message hook for async input port seqRunIn.
void tlmWrite_errorCount(U32 arg, Fw::Time _tlmTime=Fw::Time())
void cmdResponse_out(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdResponse response)
Emit command response.
virtual void seqRunIn_handler(FwIndexType portNum, const Fw::StringBase &filename)=0
Handler for input port seqRunIn.
@ EVENTID_INVALIDSEQUENCER
@ EVENTID_NOAVAILABLESEQUENCERS
@ EVENTID_CONFLICTINGSEQUENCESTARTED
@ EVENTID_UNKNOWNSEQUENCEFINISHED
@ EVENTID_LOGSEQUENCERSTATUS
@ EVENTID_UNEXPECTEDSEQUENCESTARTED
void set_timeCaller_OutputPort(FwIndexType portNum, Fw::InputTimePort *port)
Connect port to timeCaller[portNum].
void set_tlmOut_OutputPort(FwIndexType portNum, Fw::InputTlmPort *port)
Connect port to tlmOut[portNum].
Fw::InputCmdResponsePort * get_seqDoneIn_InputPort(FwIndexType portNum)
Svc::InputCmdSeqInPort * get_seqRunIn_InputPort(FwIndexType portNum)
virtual void seqStartIn_handler(FwIndexType portNum, const Fw::StringBase &filename)=0
Handler for input port seqStartIn.
bool isConnected_logOut_OutputPort(FwIndexType portNum)
void seqRunIn_handlerBase(FwIndexType portNum, const Fw::StringBase &filename)
Handler base-class function for input port seqRunIn.
Svc::InputCmdSeqInPort * get_seqStartIn_InputPort(FwIndexType portNum)
virtual void seqDoneIn_handler(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response)=0
Handler for input port seqDoneIn.
virtual void RUN_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdStringArg &fileName, Fw::Wait block)=0
void set_cmdRegOut_OutputPort(FwIndexType portNum, Fw::InputCmdRegPort *port)
Connect port to cmdRegOut[portNum].
FwIndexType getNum_cmdResponseOut_OutputPorts() const
void log_WARNING_HI_ConflictingSequenceStarted(U16 idx, const Fw::StringBase &newSequence, const Fw::StringBase &sequenceInInternalState)
Log event ConflictingSequenceStarted.
bool isConnected_timeCaller_OutputPort(FwIndexType portNum)
void seqStartIn_handlerBase(FwIndexType portNum, const Fw::StringBase &filename)
Handler base-class function for input port seqStartIn.
FwIndexType getNum_seqRunIn_InputPorts() const
FwIndexType getNum_seqStartIn_InputPorts() const
virtual void RUN_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command RUN.
void regCommands()
Register commands with the Command Dispatcher.
FwIndexType getNum_seqRunOut_OutputPorts() const
void tlmWrite_dispatchedCount(U32 arg, Fw::Time _tlmTime=Fw::Time())
void log_WARNING_HI_NoAvailableSequencers()
Log event NoAvailableSequencers.
void LOG_STATUS_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
FwIndexType getNum_cmdRegOut_OutputPorts() const
bool isConnected_cmdRegOut_OutputPort(FwIndexType portNum)
void set_cmdResponseOut_OutputPort(FwIndexType portNum, Fw::InputCmdResponsePort *port)
Connect port to cmdResponseOut[portNum].
void log_ACTIVITY_LO_LogSequencerStatus(U16 idx, Svc::SeqDispatcher_CmdSequencerState state, const Fw::StringBase &filename)
Log event LogSequencerStatus.
virtual void LOG_STATUS_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command LOG_STATUS.
void RUN_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
bool isConnected_seqRunOut_OutputPort(FwIndexType portNum)
FwIndexType getNum_logOut_OutputPorts() const
bool isConnected_tlmOut_OutputPort(FwIndexType portNum)
SeqDispatcherComponentBase(const char *compName="")
Construct SeqDispatcherComponentBase object.
void set_seqRunOut_OutputPort(FwIndexType portNum, Svc::InputCmdSeqInPort *port)
Connect port to seqRunOut[portNum].
virtual void LOG_STATUS_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
void seqRunOut_out(FwIndexType portNum, const Fw::StringBase &filename)
Invoke output port seqRunOut.
void set_logOut_OutputPort(FwIndexType portNum, Fw::InputLogPort *port)
Connect port to logOut[portNum].
Fw::InputCmdPort * get_cmdIn_InputPort(FwIndexType portNum)
FwIndexType getNum_cmdIn_InputPorts() const
FwIndexType getNum_timeCaller_OutputPorts() const
@ CHANNELID_ERRORCOUNT
Channel ID for errorCount.
@ CHANNELID_DISPATCHEDCOUNT
Channel ID for dispatchedCount.
@ CHANNELID_SEQUENCERSAVAILABLE
Channel ID for sequencersAvailable.
virtual void seqDoneIn_preMsgHook(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response)
Pre-message hook for async input port seqDoneIn.
void log_WARNING_LO_UnknownSequenceFinished(U16 idx)
Log event UnknownSequenceFinished.
void seqDoneIn_handlerBase(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response)
Handler base-class function for input port seqDoneIn.
virtual void seqStartIn_preMsgHook(FwIndexType portNum, const Fw::StringBase &filename)
Pre-message hook for async input port seqStartIn.
@ OPCODE_LOG_STATUS
Logs via Events the state of each connected command sequencer.
@ OPCODE_RUN
Dispatches a sequence to the first available sequencer.
virtual ~SeqDispatcherComponentBase()
Destroy SeqDispatcherComponentBase object.
FwIndexType getNum_tlmOut_OutputPorts() const
void tlmWrite_sequencersAvailable(U32 arg, Fw::Time _tlmTime=Fw::Time())
FwIndexType getNum_seqDoneIn_InputPorts() const
void log_WARNING_HI_InvalidSequencer(U16 idx)
Log event InvalidSequencer.
SerializeStatus
forward declaration for string
@ FW_SERIALIZE_OK
Serialization/Deserialization operation was successful.
@ OP_OK
Operation succeeded.