10#if FW_ENABLE_TEXT_LOGGING
19 SEQDONEIN_CMDRESPONSE,
37 class ComponentIpcSerializableBuffer :
47 MAX_DATA_SIZE =
sizeof(BuffUnion),
49 SERIALIZATION_SIZE = DATA_OFFSET + MAX_DATA_SIZE
53 return sizeof(m_buff);
60 const U8* getBuffAddr()
const {
66 U8 m_buff[SERIALIZATION_SIZE];
75 void SeqDispatcherComponentBase ::
87 port < static_cast<FwIndexType>(this->getNum_cmdIn_InputPorts());
90 this->m_cmdIn_InputPort[port].init();
91 this->m_cmdIn_InputPort[port].addCallComp(
95 this->m_cmdIn_InputPort[port].setPortNum(port);
97#if FW_OBJECT_NAMES == 1
101 this->m_objName.toChar(),
104 this->m_cmdIn_InputPort[port].setObjName(portName.
toChar());
111 port < static_cast<FwIndexType>(this->getNum_seqDoneIn_InputPorts());
114 this->m_seqDoneIn_InputPort[port].init();
115 this->m_seqDoneIn_InputPort[port].addCallComp(
119 this->m_seqDoneIn_InputPort[port].setPortNum(port);
121#if FW_OBJECT_NAMES == 1
125 this->m_objName.toChar(),
128 this->m_seqDoneIn_InputPort[port].setObjName(portName.
toChar());
135 port < static_cast<FwIndexType>(this->getNum_seqRunIn_InputPorts());
138 this->m_seqRunIn_InputPort[port].init();
139 this->m_seqRunIn_InputPort[port].addCallComp(
143 this->m_seqRunIn_InputPort[port].setPortNum(port);
145#if FW_OBJECT_NAMES == 1
149 this->m_objName.toChar(),
152 this->m_seqRunIn_InputPort[port].setObjName(portName.
toChar());
159 port < static_cast<FwIndexType>(this->getNum_seqStartIn_InputPorts());
162 this->m_seqStartIn_InputPort[port].init();
163 this->m_seqStartIn_InputPort[port].addCallComp(
167 this->m_seqStartIn_InputPort[port].setPortNum(port);
169#if FW_OBJECT_NAMES == 1
173 this->m_objName.toChar(),
176 this->m_seqStartIn_InputPort[port].setObjName(portName.
toChar());
183 port < static_cast<FwIndexType>(this->getNum_cmdRegOut_OutputPorts());
186 this->m_cmdRegOut_OutputPort[port].init();
188#if FW_OBJECT_NAMES == 1
192 this->m_objName.toChar(),
195 this->m_cmdRegOut_OutputPort[port].setObjName(portName.
toChar());
202 port < static_cast<FwIndexType>(this->getNum_cmdResponseOut_OutputPorts());
205 this->m_cmdResponseOut_OutputPort[port].init();
207#if FW_OBJECT_NAMES == 1
211 this->m_objName.toChar(),
214 this->m_cmdResponseOut_OutputPort[port].setObjName(portName.
toChar());
221 port < static_cast<FwIndexType>(this->getNum_logOut_OutputPorts());
224 this->m_logOut_OutputPort[port].init();
226#if FW_OBJECT_NAMES == 1
230 this->m_objName.toChar(),
233 this->m_logOut_OutputPort[port].setObjName(portName.
toChar());
237#if FW_ENABLE_TEXT_LOGGING == 1
241 port < static_cast<FwIndexType>(this->getNum_logTextOut_OutputPorts());
244 this->m_logTextOut_OutputPort[port].init();
246#if FW_OBJECT_NAMES == 1
250 this->m_objName.toChar(),
253 this->m_logTextOut_OutputPort[port].setObjName(portName.
toChar());
261 port < static_cast<FwIndexType>(this->getNum_timeCaller_OutputPorts());
264 this->m_timeCaller_OutputPort[port].init();
266#if FW_OBJECT_NAMES == 1
270 this->m_objName.toChar(),
273 this->m_timeCaller_OutputPort[port].setObjName(portName.
toChar());
280 port < static_cast<FwIndexType>(this->getNum_tlmOut_OutputPorts());
283 this->m_tlmOut_OutputPort[port].init();
285#if FW_OBJECT_NAMES == 1
289 this->m_objName.toChar(),
292 this->m_tlmOut_OutputPort[port].setObjName(portName.
toChar());
299 port < static_cast<FwIndexType>(this->getNum_seqRunOut_OutputPorts());
302 this->m_seqRunOut_OutputPort[port].init();
304#if FW_OBJECT_NAMES == 1
308 this->m_objName.toChar(),
311 this->m_seqRunOut_OutputPort[port].setObjName(portName.
toChar());
318 static_cast<FwSizeType>(ComponentIpcSerializableBuffer::SERIALIZATION_SIZE)
334 portNum < this->getNum_cmdIn_InputPorts(),
338 return &this->m_cmdIn_InputPort[portNum];
349 portNum < this->getNum_seqDoneIn_InputPorts(),
353 return &this->m_seqDoneIn_InputPort[portNum];
360 portNum < this->getNum_seqRunIn_InputPorts(),
364 return &this->m_seqRunIn_InputPort[portNum];
371 portNum < this->getNum_seqStartIn_InputPorts(),
375 return &this->m_seqStartIn_InputPort[portNum];
382 void SeqDispatcherComponentBase ::
383 set_cmdRegOut_OutputPort(
389 portNum < this->getNum_cmdRegOut_OutputPorts(),
393 this->m_cmdRegOut_OutputPort[portNum].addCallPort(port);
396 void SeqDispatcherComponentBase ::
397 set_cmdResponseOut_OutputPort(
403 portNum < this->getNum_cmdResponseOut_OutputPorts(),
407 this->m_cmdResponseOut_OutputPort[portNum].addCallPort(port);
410 void SeqDispatcherComponentBase ::
411 set_logOut_OutputPort(
417 portNum < this->getNum_logOut_OutputPorts(),
421 this->m_logOut_OutputPort[portNum].addCallPort(port);
424#if FW_ENABLE_TEXT_LOGGING == 1
426 void SeqDispatcherComponentBase ::
427 set_logTextOut_OutputPort(
433 portNum < this->getNum_logTextOut_OutputPorts(),
437 this->m_logTextOut_OutputPort[portNum].addCallPort(port);
442 void SeqDispatcherComponentBase ::
443 set_timeCaller_OutputPort(
449 portNum < this->getNum_timeCaller_OutputPorts(),
453 this->m_timeCaller_OutputPort[portNum].addCallPort(port);
456 void SeqDispatcherComponentBase ::
457 set_tlmOut_OutputPort(
463 portNum < this->getNum_tlmOut_OutputPorts(),
467 this->m_tlmOut_OutputPort[portNum].addCallPort(port);
474 void SeqDispatcherComponentBase ::
475 set_seqRunOut_OutputPort(
481 portNum < this->getNum_seqRunOut_OutputPorts(),
485 this->m_seqRunOut_OutputPort[portNum].addCallPort(port);
488#if FW_PORT_SERIALIZATION
494 void SeqDispatcherComponentBase ::
495 set_cmdRegOut_OutputPort(
497 Fw::InputSerializePort* port
501 portNum < this->getNum_cmdRegOut_OutputPorts(),
505 this->m_cmdRegOut_OutputPort[portNum].registerSerialPort(port);
508 void SeqDispatcherComponentBase ::
509 set_cmdResponseOut_OutputPort(
511 Fw::InputSerializePort* port
515 portNum < this->getNum_cmdResponseOut_OutputPorts(),
519 this->m_cmdResponseOut_OutputPort[portNum].registerSerialPort(port);
522 void SeqDispatcherComponentBase ::
523 set_logOut_OutputPort(
525 Fw::InputSerializePort* port
529 portNum < this->getNum_logOut_OutputPorts(),
533 this->m_logOut_OutputPort[portNum].registerSerialPort(port);
536#if FW_ENABLE_TEXT_LOGGING == 1
538 void SeqDispatcherComponentBase ::
539 set_logTextOut_OutputPort(
541 Fw::InputSerializePort* port
545 portNum < this->getNum_logTextOut_OutputPorts(),
549 this->m_logTextOut_OutputPort[portNum].registerSerialPort(port);
554 void SeqDispatcherComponentBase ::
555 set_timeCaller_OutputPort(
557 Fw::InputSerializePort* port
561 portNum < this->getNum_timeCaller_OutputPorts(),
565 this->m_timeCaller_OutputPort[portNum].registerSerialPort(port);
568 void SeqDispatcherComponentBase ::
569 set_tlmOut_OutputPort(
571 Fw::InputSerializePort* port
575 portNum < this->getNum_tlmOut_OutputPorts(),
579 this->m_tlmOut_OutputPort[portNum].registerSerialPort(port);
584#if FW_PORT_SERIALIZATION
590 void SeqDispatcherComponentBase ::
591 set_seqRunOut_OutputPort(
593 Fw::InputSerializePort* port
597 portNum < this->getNum_seqRunOut_OutputPorts(),
601 this->m_seqRunOut_OutputPort[portNum].registerSerialPort(port);
610 void SeqDispatcherComponentBase ::
613 FW_ASSERT(this->m_cmdRegOut_OutputPort[0].isConnected());
615 this->m_cmdRegOut_OutputPort[0].invoke(
616 this->getIdBase() + OPCODE_RUN
619 this->m_cmdRegOut_OutputPort[0].invoke(
620 this->getIdBase() + OPCODE_LOG_STATUS
628 SeqDispatcherComponentBase ::
629 SeqDispatcherComponentBase(
const char* compName) :
630 Fw::ActiveComponentBase(compName)
635 SeqDispatcherComponentBase ::
636 ~SeqDispatcherComponentBase()
646 getNum_cmdIn_InputPorts()
const
656 getNum_seqDoneIn_InputPorts()
const
662 getNum_seqRunIn_InputPorts()
const
668 getNum_seqStartIn_InputPorts()
const
678 getNum_cmdRegOut_OutputPorts()
const
684 getNum_cmdResponseOut_OutputPorts()
const
690 getNum_logOut_OutputPorts()
const
695#if FW_ENABLE_TEXT_LOGGING == 1
698 getNum_logTextOut_OutputPorts()
const
706 getNum_timeCaller_OutputPorts()
const
712 getNum_tlmOut_OutputPorts()
const
722 getNum_seqRunOut_OutputPorts()
const
731 bool SeqDispatcherComponentBase ::
732 isConnected_cmdRegOut_OutputPort(
FwIndexType portNum)
735 portNum < this->getNum_cmdRegOut_OutputPorts(),
739 return this->m_cmdRegOut_OutputPort[portNum].isConnected();
742 bool SeqDispatcherComponentBase ::
743 isConnected_cmdResponseOut_OutputPort(
FwIndexType portNum)
746 portNum < this->getNum_cmdResponseOut_OutputPorts(),
750 return this->m_cmdResponseOut_OutputPort[portNum].isConnected();
753 bool SeqDispatcherComponentBase ::
757 portNum < this->getNum_logOut_OutputPorts(),
761 return this->m_logOut_OutputPort[portNum].isConnected();
764#if FW_ENABLE_TEXT_LOGGING == 1
766 bool SeqDispatcherComponentBase ::
767 isConnected_logTextOut_OutputPort(
FwIndexType portNum)
770 portNum < this->getNum_logTextOut_OutputPorts(),
774 return this->m_logTextOut_OutputPort[portNum].isConnected();
779 bool SeqDispatcherComponentBase ::
780 isConnected_timeCaller_OutputPort(
FwIndexType portNum)
783 portNum < this->getNum_timeCaller_OutputPorts(),
787 return this->m_timeCaller_OutputPort[portNum].isConnected();
790 bool SeqDispatcherComponentBase ::
794 portNum < this->getNum_tlmOut_OutputPorts(),
798 return this->m_tlmOut_OutputPort[portNum].isConnected();
805 bool SeqDispatcherComponentBase ::
806 isConnected_seqRunOut_OutputPort(
FwIndexType portNum)
809 portNum < this->getNum_seqRunOut_OutputPorts(),
813 return this->m_seqRunOut_OutputPort[portNum].isConnected();
822 void SeqDispatcherComponentBase ::
823 seqDoneIn_handlerBase(
832 portNum < this->getNum_seqDoneIn_InputPorts(),
837 seqDoneIn_preMsgHook(
843 ComponentIpcSerializableBuffer msg;
847 _status = msg.serialize(
856 _status = msg.serialize(portNum);
863 _status = msg.serialize(opCode);
870 _status = msg.serialize(cmdSeq);
877 _status = msg.serialize(response);
893 void SeqDispatcherComponentBase ::
894 seqRunIn_handlerBase(
901 portNum < this->getNum_seqRunIn_InputPorts(),
910 ComponentIpcSerializableBuffer msg;
914 _status = msg.serialize(
923 _status = msg.serialize(portNum);
946 void SeqDispatcherComponentBase ::
947 seqStartIn_handlerBase(
954 portNum < this->getNum_seqStartIn_InputPorts(),
959 seqStartIn_preMsgHook(
963 ComponentIpcSerializableBuffer msg;
967 _status = msg.serialize(
976 _status = msg.serialize(portNum);
1007 void SeqDispatcherComponentBase ::
1008 seqDoneIn_preMsgHook(
1018 void SeqDispatcherComponentBase ::
1019 seqRunIn_preMsgHook(
1027 void SeqDispatcherComponentBase ::
1028 seqStartIn_preMsgHook(
1040 void SeqDispatcherComponentBase ::
1047 portNum < this->getNum_seqRunOut_OutputPorts(),
1050 this->m_seqRunOut_OutputPort[portNum].invoke(
1059 void SeqDispatcherComponentBase ::
1066 FW_ASSERT(this->m_cmdResponseOut_OutputPort[0].isConnected());
1067 this->m_cmdResponseOut_OutputPort[0].invoke(opCode, cmdSeq, response);
1076 void SeqDispatcherComponentBase ::
1084 this->RUN_preMsgHook(opCode,cmdSeq);
1088 ComponentIpcSerializableBuffer msg;
1101 _status = msg.serialize(port);
1107 _status = msg.serialize(opCode);
1113 _status = msg.serialize(cmdSeq);
1119 _status = msg.serialize(args);
1135 void SeqDispatcherComponentBase ::
1136 LOG_STATUS_cmdHandlerBase(
1143 this->LOG_STATUS_preMsgHook(opCode,cmdSeq);
1147 ComponentIpcSerializableBuffer msg;
1151 _status = msg.serialize(
static_cast<FwEnumStoreType>(CMD_LOG_STATUS));
1160 _status = msg.serialize(port);
1166 _status = msg.serialize(opCode);
1172 _status = msg.serialize(cmdSeq);
1178 _status = msg.serialize(args);
1202 void SeqDispatcherComponentBase ::
1213 void SeqDispatcherComponentBase ::
1214 LOG_STATUS_preMsgHook(
1228 void SeqDispatcherComponentBase ::
1229 log_WARNING_HI_InvalidSequencer(U16 idx)
const
1233 if (this->m_timeCaller_OutputPort[0].isConnected()) {
1234 this->m_timeCaller_OutputPort[0].invoke(_logTime);
1239 _id = this->getIdBase() + EVENTID_INVALIDSEQUENCER;
1242 if (this->m_logOut_OutputPort[0].isConnected()) {
1246#if FW_AMPCS_COMPATIBLE
1255#if FW_AMPCS_COMPATIBLE
1258 static_cast<U8>(
sizeof(U16))
1271 this->m_logOut_OutputPort[0].invoke(
1280#if FW_ENABLE_TEXT_LOGGING
1281 if (this->m_logTextOut_OutputPort[0].isConnected()) {
1282#if FW_OBJECT_NAMES == 1
1283 const char* _formatString =
1284 "(%s) %s: Invalid sequence index %" PRIu16
"";
1286 const char* _formatString =
1287 "%s: Invalid sequence index %" PRIu16
"";
1294 this->m_objName.toChar(),
1296 "InvalidSequencer ",
1300 this->m_logTextOut_OutputPort[0].invoke(
1310 void SeqDispatcherComponentBase ::
1311 log_WARNING_HI_NoAvailableSequencers()
const
1315 if (this->m_timeCaller_OutputPort[0].isConnected()) {
1316 this->m_timeCaller_OutputPort[0].invoke(_logTime);
1321 _id = this->getIdBase() + EVENTID_NOAVAILABLESEQUENCERS;
1324 if (this->m_logOut_OutputPort[0].isConnected()) {
1327#if FW_AMPCS_COMPATIBLE
1337 this->m_logOut_OutputPort[0].invoke(
1346#if FW_ENABLE_TEXT_LOGGING
1347 if (this->m_logTextOut_OutputPort[0].isConnected()) {
1348#if FW_OBJECT_NAMES == 1
1349 const char* _formatString =
1350 "(%s) %s: No available cmd sequencers to dispatch a sequence to";
1352 const char* _formatString =
1353 "%s: No available cmd sequencers to dispatch a sequence to";
1360 this->m_objName.toChar(),
1362 "NoAvailableSequencers "
1365 this->m_logTextOut_OutputPort[0].invoke(
1375 void SeqDispatcherComponentBase ::
1376 log_WARNING_LO_UnknownSequenceFinished(U16 idx)
const
1380 if (this->m_timeCaller_OutputPort[0].isConnected()) {
1381 this->m_timeCaller_OutputPort[0].invoke(_logTime);
1386 _id = this->getIdBase() + EVENTID_UNKNOWNSEQUENCEFINISHED;
1389 if (this->m_logOut_OutputPort[0].isConnected()) {
1393#if FW_AMPCS_COMPATIBLE
1402#if FW_AMPCS_COMPATIBLE
1405 static_cast<U8>(
sizeof(U16))
1418 this->m_logOut_OutputPort[0].invoke(
1427#if FW_ENABLE_TEXT_LOGGING
1428 if (this->m_logTextOut_OutputPort[0].isConnected()) {
1429#if FW_OBJECT_NAMES == 1
1430 const char* _formatString =
1431 "(%s) %s: Sequencer %" PRIu16
" completed a sequence with no matching start notification";
1433 const char* _formatString =
1434 "%s: Sequencer %" PRIu16
" completed a sequence with no matching start notification";
1441 this->m_objName.toChar(),
1443 "UnknownSequenceFinished ",
1447 this->m_logTextOut_OutputPort[0].invoke(
1457 void SeqDispatcherComponentBase ::
1458 log_WARNING_HI_ConflictingSequenceStarted(
1466 if (this->m_timeCaller_OutputPort[0].isConnected()) {
1467 this->m_timeCaller_OutputPort[0].invoke(_logTime);
1472 _id = this->getIdBase() + EVENTID_CONFLICTINGSEQUENCESTARTED;
1475 if (this->m_logOut_OutputPort[0].isConnected()) {
1479#if FW_AMPCS_COMPATIBLE
1488#if FW_AMPCS_COMPATIBLE
1491 static_cast<U8>(
sizeof(U16))
1516 this->m_logOut_OutputPort[0].invoke(
1525#if FW_ENABLE_TEXT_LOGGING
1526 if (this->m_logTextOut_OutputPort[0].isConnected()) {
1527#if FW_OBJECT_NAMES == 1
1528 const char* _formatString =
1529 "(%s) %s: Sequencer %" PRIu16
" started a sequence %s while still running %s";
1531 const char* _formatString =
1532 "%s: Sequencer %" PRIu16
" started a sequence %s while still running %s";
1539 this->m_objName.toChar(),
1541 "ConflictingSequenceStarted ",
1544 sequenceInInternalState.
toChar()
1547 this->m_logTextOut_OutputPort[0].invoke(
1557 void SeqDispatcherComponentBase ::
1558 log_WARNING_LO_UnexpectedSequenceStarted(
1565 if (this->m_timeCaller_OutputPort[0].isConnected()) {
1566 this->m_timeCaller_OutputPort[0].invoke(_logTime);
1571 _id = this->getIdBase() + EVENTID_UNEXPECTEDSEQUENCESTARTED;
1574 if (this->m_logOut_OutputPort[0].isConnected()) {
1578#if FW_AMPCS_COMPATIBLE
1587#if FW_AMPCS_COMPATIBLE
1590 static_cast<U8>(
sizeof(U16))
1609 this->m_logOut_OutputPort[0].invoke(
1618#if FW_ENABLE_TEXT_LOGGING
1619 if (this->m_logTextOut_OutputPort[0].isConnected()) {
1620#if FW_OBJECT_NAMES == 1
1621 const char* _formatString =
1622 "(%s) %s: Sequencer %" PRIu16
" was externally commanded to start a sequence %s";
1624 const char* _formatString =
1625 "%s: Sequencer %" PRIu16
" was externally commanded to start a sequence %s";
1632 this->m_objName.toChar(),
1634 "UnexpectedSequenceStarted ",
1639 this->m_logTextOut_OutputPort[0].invoke(
1649 void SeqDispatcherComponentBase ::
1650 log_ACTIVITY_LO_LogSequencerStatus(
1658 if (this->m_timeCaller_OutputPort[0].isConnected()) {
1659 this->m_timeCaller_OutputPort[0].invoke(_logTime);
1664 _id = this->getIdBase() + EVENTID_LOGSEQUENCERSTATUS;
1667 if (this->m_logOut_OutputPort[0].isConnected()) {
1671#if FW_AMPCS_COMPATIBLE
1680#if FW_AMPCS_COMPATIBLE
1683 static_cast<U8>(
sizeof(U16))
1696#if FW_AMPCS_COMPATIBLE
1718 this->m_logOut_OutputPort[0].invoke(
1727#if FW_ENABLE_TEXT_LOGGING
1728 if (this->m_logTextOut_OutputPort[0].isConnected()) {
1729#if FW_OBJECT_NAMES == 1
1730 const char* _formatString =
1731 "(%s) %s: Sequencer %" PRIu16
" with state %s is running file %s";
1733 const char* _formatString =
1734 "%s: Sequencer %" PRIu16
" with state %s is running file %s";
1738 state.toString(stateStr);
1744 this->m_objName.toChar(),
1746 "LogSequencerStatus ",
1752 this->m_logTextOut_OutputPort[0].invoke(
1766 void SeqDispatcherComponentBase ::
1767 tlmWrite_dispatchedCount(
1772 if (this->m_tlmOut_OutputPort[0].isConnected()) {
1774 this->m_timeCaller_OutputPort[0].isConnected() &&
1777 this->m_timeCaller_OutputPort[0].invoke(_tlmTime);
1789 _id = this->getIdBase() + CHANNELID_DISPATCHEDCOUNT;
1791 this->m_tlmOut_OutputPort[0].invoke(
1799 void SeqDispatcherComponentBase ::
1800 tlmWrite_errorCount(
1805 if (this->m_tlmOut_OutputPort[0].isConnected()) {
1807 this->m_timeCaller_OutputPort[0].isConnected() &&
1810 this->m_timeCaller_OutputPort[0].invoke(_tlmTime);
1822 _id = this->getIdBase() + CHANNELID_ERRORCOUNT;
1824 this->m_tlmOut_OutputPort[0].invoke(
1832 void SeqDispatcherComponentBase ::
1833 tlmWrite_sequencersAvailable(
1838 if (this->m_tlmOut_OutputPort[0].isConnected()) {
1840 this->m_timeCaller_OutputPort[0].isConnected() &&
1843 this->m_timeCaller_OutputPort[0].invoke(_tlmTime);
1855 _id = this->getIdBase() + CHANNELID_SEQUENCERSAVAILABLE;
1857 this->m_tlmOut_OutputPort[0].invoke(
1872 if (this->m_timeCaller_OutputPort[0].isConnected()) {
1874 this->m_timeCaller_OutputPort[0].invoke(_time);
1889 ComponentIpcSerializableBuffer msg;
1912 MsgTypeEnum msgType =
static_cast<MsgTypeEnum
>(desMsg);
1914 if (msgType == SEQDISPATCHER_COMPONENT_EXIT) {
1915 return MSG_DISPATCH_EXIT;
1919 deserStatus = msg.deserialize(portNum);
1927 case SEQDONEIN_CMDRESPONSE: {
1930 deserStatus = msg.deserialize(opCode);
1938 deserStatus = msg.deserialize(cmdSeq);
1946 deserStatus = msg.deserialize(response);
1952 this->seqDoneIn_handler(
1963 case SEQRUNIN_CMDSEQIN: {
1966 Fw::ExternalString filename(__fprime_ac_filename_buffer,
sizeof __fprime_ac_filename_buffer);
1967 deserStatus = msg.deserialize(filename);
1973 this->seqRunIn_handler(
1982 case SEQSTARTIN_CMDSEQIN: {
1985 Fw::ExternalString filename(__fprime_ac_filename_buffer,
sizeof __fprime_ac_filename_buffer);
1986 deserStatus = msg.deserialize(filename);
1992 this->seqStartIn_handler(
2004 deserStatus = msg.deserialize(opCode);
2012 deserStatus = msg.deserialize(cmdSeq);
2020 deserStatus = msg.deserialize(args);
2033 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
2034 this->cmdResponse_out(
2048 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
2049 this->cmdResponse_out(
2061#if FW_CMD_CHECK_RESIDUAL
2063 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
2072 this->RUN_cmdHandler(
2082 case CMD_LOG_STATUS: {
2085 deserStatus = msg.deserialize(opCode);
2093 deserStatus = msg.deserialize(cmdSeq);
2101 deserStatus = msg.deserialize(args);
2112#if FW_CMD_CHECK_RESIDUAL
2114 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
2123 this->LOG_STATUS_cmdHandler(opCode, cmdSeq);
2129 return MSG_DISPATCH_ERROR;
2132 return MSG_DISPATCH_OK;
2139 void SeqDispatcherComponentBase ::
2149 SeqDispatcherComponentBase* compPtr =
static_cast<SeqDispatcherComponentBase*
>(callComp);
2151 const U32 idBase = callComp->
getIdBase();
2155 switch (opCode - idBase) {
2157 compPtr->RUN_cmdHandlerBase(
2165 case OPCODE_LOG_STATUS: {
2166 compPtr->LOG_STATUS_cmdHandlerBase(
2180 void SeqDispatcherComponentBase ::
2190 SeqDispatcherComponentBase* compPtr =
static_cast<SeqDispatcherComponentBase*
>(callComp);
2191 compPtr->seqDoneIn_handlerBase(
2199 void SeqDispatcherComponentBase ::
2207 SeqDispatcherComponentBase* compPtr =
static_cast<SeqDispatcherComponentBase*
>(callComp);
2208 compPtr->seqRunIn_handlerBase(
2214 void SeqDispatcherComponentBase ::
2222 SeqDispatcherComponentBase* compPtr =
static_cast<SeqDispatcherComponentBase*
>(callComp);
2223 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)/*#en...
@ ACTIVE_COMPONENT_EXIT
message to exit active component task
Enum representing a command response.
@ FORMAT_ERROR
Command failed to deserialize.
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
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
void format(const CHAR *formatString,...)
write formatted string to buffer
virtual SerializeStatus serialize(SerializeBufferBase &buffer) const
serialization function
virtual const CHAR * toChar() const =0
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.
@ 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
@ SERIALIZED_SIZE
The size of the serial representation.
SerializeStatus
forward declaration for string
@ FW_SERIALIZE_OK
Serialization/Deserialization operation was successful.