9 #if FW_ENABLE_TEXT_LOGGING 19 SEQDONEIN_CMDRESPONSE,
40 class ComponentIpcSerializableBuffer :
50 MAX_DATA_SIZE =
sizeof(BuffUnion),
52 SERIALIZATION_SIZE = DATA_OFFSET + MAX_DATA_SIZE
55 ComponentIpcSerializableBuffer() :
Fw::LinearBufferBase(m_buff, sizeof(m_buff)) {
61 U8 m_buff[SERIALIZATION_SIZE];
79 #if !FW_DIRECT_PORT_CALLS 86 this->m_cmdIn_InputPort[port].
init();
91 this->m_cmdIn_InputPort[port].
setPortNum(port);
93 #if FW_OBJECT_NAMES == 1 97 this->m_objName.toChar(),
100 this->m_cmdIn_InputPort[port].setObjName(portName.
toChar());
105 #if !FW_DIRECT_PORT_CALLS 112 this->m_seqDoneIn_InputPort[port].
init();
117 this->m_seqDoneIn_InputPort[port].
setPortNum(port);
119 #if FW_OBJECT_NAMES == 1 123 this->m_objName.toChar(),
126 this->m_seqDoneIn_InputPort[port].setObjName(portName.
toChar());
131 #if !FW_DIRECT_PORT_CALLS 138 this->m_seqRunIn_InputPort[port].
init();
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());
157 #if !FW_DIRECT_PORT_CALLS 164 this->m_seqStartIn_InputPort[port].
init();
169 this->m_seqStartIn_InputPort[port].
setPortNum(port);
171 #if FW_OBJECT_NAMES == 1 175 this->m_objName.toChar(),
178 this->m_seqStartIn_InputPort[port].setObjName(portName.
toChar());
183 #if !FW_DIRECT_PORT_CALLS 190 this->m_cmdRegOut_OutputPort[port].
init();
192 #if FW_OBJECT_NAMES == 1 196 this->m_objName.toChar(),
199 this->m_cmdRegOut_OutputPort[port].setObjName(portName.
toChar());
204 #if !FW_DIRECT_PORT_CALLS 211 this->m_cmdResponseOut_OutputPort[port].
init();
213 #if FW_OBJECT_NAMES == 1 217 this->m_objName.toChar(),
220 this->m_cmdResponseOut_OutputPort[port].setObjName(portName.
toChar());
225 #if !FW_DIRECT_PORT_CALLS 232 this->m_logOut_OutputPort[port].
init();
234 #if FW_OBJECT_NAMES == 1 238 this->m_objName.toChar(),
241 this->m_logOut_OutputPort[port].setObjName(portName.
toChar());
246 #if !FW_DIRECT_PORT_CALLS && FW_ENABLE_TEXT_LOGGING 250 port < static_cast<FwIndexType>(this->getNum_logTextOut_OutputPorts());
253 this->m_logTextOut_OutputPort[port].
init();
255 #if FW_OBJECT_NAMES == 1 259 this->m_objName.toChar(),
262 this->m_logTextOut_OutputPort[port].setObjName(portName.
toChar());
267 #if !FW_DIRECT_PORT_CALLS 274 this->m_timeCaller_OutputPort[port].
init();
276 #if FW_OBJECT_NAMES == 1 280 this->m_objName.toChar(),
283 this->m_timeCaller_OutputPort[port].setObjName(portName.
toChar());
288 #if !FW_DIRECT_PORT_CALLS 295 this->m_tlmOut_OutputPort[port].
init();
297 #if FW_OBJECT_NAMES == 1 301 this->m_objName.toChar(),
304 this->m_tlmOut_OutputPort[port].setObjName(portName.
toChar());
309 #if !FW_DIRECT_PORT_CALLS 316 this->m_seqCancelOut_OutputPort[port].
init();
318 #if FW_OBJECT_NAMES == 1 322 this->m_objName.toChar(),
325 this->m_seqCancelOut_OutputPort[port].setObjName(portName.
toChar());
330 #if !FW_DIRECT_PORT_CALLS 337 this->m_seqRunOut_OutputPort[port].
init();
339 #if FW_OBJECT_NAMES == 1 343 this->m_objName.toChar(),
346 this->m_seqRunOut_OutputPort[port].setObjName(portName.
toChar());
354 static_cast<FwSizeType>(ComponentIpcSerializableBuffer::SERIALIZATION_SIZE)
358 static_cast<FwAssertArgType>(qStat)
362 #if !FW_DIRECT_PORT_CALLS 373 static_cast<FwAssertArgType>(portNum)
376 return &this->m_cmdIn_InputPort[portNum];
381 #if !FW_DIRECT_PORT_CALLS 392 static_cast<FwAssertArgType>(portNum)
395 return &this->m_seqDoneIn_InputPort[portNum];
403 static_cast<FwAssertArgType>(portNum)
406 return &this->m_seqRunIn_InputPort[portNum];
414 static_cast<FwAssertArgType>(portNum)
417 return &this->m_seqStartIn_InputPort[portNum];
422 #if !FW_DIRECT_PORT_CALLS 436 static_cast<FwAssertArgType>(portNum)
439 this->m_cmdRegOut_OutputPort[portNum].
addCallPort(port);
450 static_cast<FwAssertArgType>(portNum)
453 this->m_cmdResponseOut_OutputPort[portNum].
addCallPort(port);
464 static_cast<FwAssertArgType>(portNum)
467 this->m_logOut_OutputPort[portNum].
addCallPort(port);
470 #if FW_ENABLE_TEXT_LOGGING == 1 472 void SeqDispatcherComponentBase ::
473 set_logTextOut_OutputPort(
479 (0 <= portNum) && (portNum < this->getNum_logTextOut_OutputPorts()),
480 static_cast<FwAssertArgType>(portNum)
483 this->m_logTextOut_OutputPort[portNum].addCallPort(port);
496 static_cast<FwAssertArgType>(portNum)
499 this->m_timeCaller_OutputPort[portNum].
addCallPort(port);
510 static_cast<FwAssertArgType>(portNum)
513 this->m_tlmOut_OutputPort[portNum].
addCallPort(port);
518 #if !FW_DIRECT_PORT_CALLS 532 static_cast<FwAssertArgType>(portNum)
535 this->m_seqCancelOut_OutputPort[portNum].
addCallPort(port);
546 static_cast<FwAssertArgType>(portNum)
549 this->m_seqRunOut_OutputPort[portNum].
addCallPort(port);
554 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION 563 Fw::InputSerializePort* port
568 static_cast<FwAssertArgType>(portNum)
571 this->m_cmdRegOut_OutputPort[portNum].registerSerialPort(port);
577 Fw::InputSerializePort* port
582 static_cast<FwAssertArgType>(portNum)
585 this->m_cmdResponseOut_OutputPort[portNum].registerSerialPort(port);
591 Fw::InputSerializePort* port
596 static_cast<FwAssertArgType>(portNum)
599 this->m_logOut_OutputPort[portNum].registerSerialPort(port);
602 #if FW_ENABLE_TEXT_LOGGING == 1 604 void SeqDispatcherComponentBase ::
605 set_logTextOut_OutputPort(
607 Fw::InputSerializePort* port
611 (0 <= portNum) && (portNum < this->getNum_logTextOut_OutputPorts()),
612 static_cast<FwAssertArgType>(portNum)
615 this->m_logTextOut_OutputPort[portNum].registerSerialPort(port);
623 Fw::InputSerializePort* port
628 static_cast<FwAssertArgType>(portNum)
631 this->m_timeCaller_OutputPort[portNum].registerSerialPort(port);
637 Fw::InputSerializePort* port
642 static_cast<FwAssertArgType>(portNum)
645 this->m_tlmOut_OutputPort[portNum].registerSerialPort(port);
650 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION 659 Fw::InputSerializePort* port
664 static_cast<FwAssertArgType>(portNum)
667 this->m_seqCancelOut_OutputPort[portNum].registerSerialPort(port);
673 Fw::InputSerializePort* port
678 static_cast<FwAssertArgType>(portNum)
681 this->m_seqRunOut_OutputPort[portNum].registerSerialPort(port);
727 Fw::ActiveComponentBase(compName)
738 #if !FW_DIRECT_PORT_CALLS 749 static_cast<FwAssertArgType>(portNum)
752 return this->m_cmdRegOut_OutputPort[portNum].
isConnected();
760 static_cast<FwAssertArgType>(portNum)
763 return this->m_cmdResponseOut_OutputPort[portNum].
isConnected();
771 static_cast<FwAssertArgType>(portNum)
774 return this->m_logOut_OutputPort[portNum].
isConnected();
777 #if FW_ENABLE_TEXT_LOGGING == 1 779 bool SeqDispatcherComponentBase ::
780 isConnected_logTextOut_OutputPort(
FwIndexType portNum)
const 783 (0 <= portNum) && (portNum < this->getNum_logTextOut_OutputPorts()),
784 static_cast<FwAssertArgType>(portNum)
787 return this->m_logTextOut_OutputPort[portNum].isConnected();
797 static_cast<FwAssertArgType>(portNum)
800 return this->m_timeCaller_OutputPort[portNum].
isConnected();
808 static_cast<FwAssertArgType>(portNum)
811 return this->m_tlmOut_OutputPort[portNum].
isConnected();
816 #if !FW_DIRECT_PORT_CALLS 827 static_cast<FwAssertArgType>(portNum)
830 return this->m_seqCancelOut_OutputPort[portNum].
isConnected();
838 static_cast<FwAssertArgType>(portNum)
841 return this->m_seqRunOut_OutputPort[portNum].
isConnected();
862 FW_ASSERT(opCode >= idBase, static_cast<FwAssertArgType>(opCode), static_cast<FwAssertArgType>(idBase));
865 switch (opCode - idBase) {
933 static_cast<FwAssertArgType>(portNum)
943 ComponentIpcSerializableBuffer msg;
947 _status = msg.serializeFrom(
948 static_cast<FwEnumStoreType>(SEQDONEIN_CMDRESPONSE)
952 static_cast<FwAssertArgType>(_status)
956 _status = msg.serializeFrom(portNum);
959 static_cast<FwAssertArgType>(_status)
963 _status = msg.serializeFrom(opCode);
966 static_cast<FwAssertArgType>(_status)
970 _status = msg.serializeFrom(cmdSeq);
973 static_cast<FwAssertArgType>(_status)
977 _status = msg.serializeFrom(response);
980 static_cast<FwAssertArgType>(_status)
989 static_cast<FwAssertArgType>(qStatus)
1003 static_cast<FwAssertArgType>(portNum)
1012 ComponentIpcSerializableBuffer msg;
1016 _status = msg.serializeFrom(
1017 static_cast<FwEnumStoreType>(SEQRUNIN_CMDSEQIN)
1021 static_cast<FwAssertArgType>(_status)
1025 _status = msg.serializeFrom(portNum);
1028 static_cast<FwAssertArgType>(_status)
1035 static_cast<FwAssertArgType>(_status)
1039 _status = msg.serializeFrom(args);
1042 static_cast<FwAssertArgType>(_status)
1051 static_cast<FwAssertArgType>(qStatus)
1065 static_cast<FwAssertArgType>(portNum)
1074 ComponentIpcSerializableBuffer msg;
1078 _status = msg.serializeFrom(
1079 static_cast<FwEnumStoreType>(SEQSTARTIN_CMDSEQIN)
1083 static_cast<FwAssertArgType>(_status)
1087 _status = msg.serializeFrom(portNum);
1090 static_cast<FwAssertArgType>(_status)
1097 static_cast<FwAssertArgType>(_status)
1101 _status = msg.serializeFrom(args);
1104 static_cast<FwAssertArgType>(_status)
1113 static_cast<FwAssertArgType>(qStatus)
1156 #if !FW_DIRECT_PORT_CALLS 1167 static_cast<FwAssertArgType>(portNum)
1171 this->m_seqCancelOut_OutputPort[portNum].isConnected(),
1172 static_cast<FwAssertArgType>(portNum)
1174 this->m_seqCancelOut_OutputPort[portNum].
invoke();
1186 static_cast<FwAssertArgType>(portNum)
1190 this->m_seqRunOut_OutputPort[portNum].isConnected(),
1191 static_cast<FwAssertArgType>(portNum)
1193 this->m_seqRunOut_OutputPort[portNum].
invoke(
1213 this->cmdResponseOut_out(0, opCode, cmdSeq, response);
1234 ComponentIpcSerializableBuffer msg;
1238 _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_RUN));
1241 static_cast<FwAssertArgType>(_status)
1247 _status = msg.serializeFrom(port);
1250 static_cast<FwAssertArgType>(_status)
1253 _status = msg.serializeFrom(opCode);
1256 static_cast<FwAssertArgType>(_status)
1259 _status = msg.serializeFrom(cmdSeq);
1262 static_cast<FwAssertArgType>(_status)
1265 _status = msg.serializeFrom(args);
1268 static_cast<FwAssertArgType>(_status)
1277 static_cast<FwAssertArgType>(qStatus)
1293 ComponentIpcSerializableBuffer msg;
1297 _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_RUN_ARGS));
1300 static_cast<FwAssertArgType>(_status)
1306 _status = msg.serializeFrom(port);
1309 static_cast<FwAssertArgType>(_status)
1312 _status = msg.serializeFrom(opCode);
1315 static_cast<FwAssertArgType>(_status)
1318 _status = msg.serializeFrom(cmdSeq);
1321 static_cast<FwAssertArgType>(_status)
1324 _status = msg.serializeFrom(args);
1327 static_cast<FwAssertArgType>(_status)
1336 static_cast<FwAssertArgType>(qStatus)
1352 ComponentIpcSerializableBuffer msg;
1356 _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_LOG_STATUS));
1359 static_cast<FwAssertArgType>(_status)
1365 _status = msg.serializeFrom(port);
1368 static_cast<FwAssertArgType>(_status)
1371 _status = msg.serializeFrom(opCode);
1374 static_cast<FwAssertArgType>(_status)
1377 _status = msg.serializeFrom(cmdSeq);
1380 static_cast<FwAssertArgType>(_status)
1383 _status = msg.serializeFrom(args);
1386 static_cast<FwAssertArgType>(_status)
1395 static_cast<FwAssertArgType>(qStatus)
1411 ComponentIpcSerializableBuffer msg;
1415 _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_CANCEL_NAME));
1418 static_cast<FwAssertArgType>(_status)
1424 _status = msg.serializeFrom(port);
1427 static_cast<FwAssertArgType>(_status)
1430 _status = msg.serializeFrom(opCode);
1433 static_cast<FwAssertArgType>(_status)
1436 _status = msg.serializeFrom(cmdSeq);
1439 static_cast<FwAssertArgType>(_status)
1442 _status = msg.serializeFrom(args);
1445 static_cast<FwAssertArgType>(_status)
1454 static_cast<FwAssertArgType>(qStatus)
1470 ComponentIpcSerializableBuffer msg;
1474 _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_CANCEL_ALL));
1477 static_cast<FwAssertArgType>(_status)
1483 _status = msg.serializeFrom(port);
1486 static_cast<FwAssertArgType>(_status)
1489 _status = msg.serializeFrom(opCode);
1492 static_cast<FwAssertArgType>(_status)
1495 _status = msg.serializeFrom(cmdSeq);
1498 static_cast<FwAssertArgType>(_status)
1501 _status = msg.serializeFrom(args);
1504 static_cast<FwAssertArgType>(_status)
1513 static_cast<FwAssertArgType>(qStatus)
1590 this->timeCaller_out(0, _logTime);
1600 #if FW_AMPCS_COMPATIBLE 1605 static_cast<FwAssertArgType>(_status)
1609 #if FW_AMPCS_COMPATIBLE 1612 static_cast<U8>(
sizeof(U16))
1616 static_cast<FwAssertArgType>(_status)
1622 static_cast<FwAssertArgType>(_status)
1635 #if FW_ENABLE_TEXT_LOGGING 1636 if (this->isConnected_logTextOut_OutputPort(0)) {
1637 #if FW_OBJECT_NAMES == 1 1638 const char* _formatString =
1639 "(%s) %s: Invalid sequence index %" PRIu16
"";
1641 const char* _formatString =
1642 "%s: Invalid sequence index %" PRIu16
"";
1646 (void) _logString.
format(
1649 this->m_objName.toChar(),
1651 "InvalidSequencer ",
1655 this->logTextOut_out(
1672 this->timeCaller_out(0, _logTime);
1681 #if FW_AMPCS_COMPATIBLE 1687 static_cast<FwAssertArgType>(_status)
1701 #if FW_ENABLE_TEXT_LOGGING 1702 if (this->isConnected_logTextOut_OutputPort(0)) {
1703 #if FW_OBJECT_NAMES == 1 1704 const char* _formatString =
1705 "(%s) %s: No available cmd sequencers to dispatch a sequence to";
1707 const char* _formatString =
1708 "%s: No available cmd sequencers to dispatch a sequence to";
1712 (void) _logString.
format(
1715 this->m_objName.toChar(),
1717 "NoAvailableSequencers " 1720 this->logTextOut_out(
1737 this->timeCaller_out(0, _logTime);
1747 #if FW_AMPCS_COMPATIBLE 1752 static_cast<FwAssertArgType>(_status)
1756 #if FW_AMPCS_COMPATIBLE 1759 static_cast<U8>(
sizeof(U16))
1763 static_cast<FwAssertArgType>(_status)
1769 static_cast<FwAssertArgType>(_status)
1782 #if FW_ENABLE_TEXT_LOGGING 1783 if (this->isConnected_logTextOut_OutputPort(0)) {
1784 #if FW_OBJECT_NAMES == 1 1785 const char* _formatString =
1786 "(%s) %s: Sequencer %" PRIu16
" completed a sequence with no matching start notification";
1788 const char* _formatString =
1789 "%s: Sequencer %" PRIu16
" completed a sequence with no matching start notification";
1793 (void) _logString.
format(
1796 this->m_objName.toChar(),
1798 "UnknownSequenceFinished ",
1802 this->logTextOut_out(
1823 this->timeCaller_out(0, _logTime);
1833 #if FW_AMPCS_COMPATIBLE 1838 static_cast<FwAssertArgType>(_status)
1842 #if FW_AMPCS_COMPATIBLE 1845 static_cast<U8>(
sizeof(U16))
1849 static_cast<FwAssertArgType>(_status)
1855 static_cast<FwAssertArgType>(_status)
1864 static_cast<FwAssertArgType>(_status)
1873 static_cast<FwAssertArgType>(_status)
1886 #if FW_ENABLE_TEXT_LOGGING 1887 if (this->isConnected_logTextOut_OutputPort(0)) {
1888 #if FW_OBJECT_NAMES == 1 1889 const char* _formatString =
1890 "(%s) %s: Sequencer %" PRIu16
" started a sequence %s while still running %s";
1892 const char* _formatString =
1893 "%s: Sequencer %" PRIu16
" started a sequence %s while still running %s";
1897 (void) _logString.
format(
1900 this->m_objName.toChar(),
1902 "ConflictingSequenceStarted ",
1905 sequenceInInternalState.
toChar()
1908 this->logTextOut_out(
1928 this->timeCaller_out(0, _logTime);
1938 #if FW_AMPCS_COMPATIBLE 1943 static_cast<FwAssertArgType>(_status)
1947 #if FW_AMPCS_COMPATIBLE 1950 static_cast<U8>(
sizeof(U16))
1954 static_cast<FwAssertArgType>(_status)
1960 static_cast<FwAssertArgType>(_status)
1969 static_cast<FwAssertArgType>(_status)
1982 #if FW_ENABLE_TEXT_LOGGING 1983 if (this->isConnected_logTextOut_OutputPort(0)) {
1984 #if FW_OBJECT_NAMES == 1 1985 const char* _formatString =
1986 "(%s) %s: Sequencer %" PRIu16
" was externally commanded to start a sequence %s";
1988 const char* _formatString =
1989 "%s: Sequencer %" PRIu16
" was externally commanded to start a sequence %s";
1993 (void) _logString.
format(
1996 this->m_objName.toChar(),
1998 "UnexpectedSequenceStarted ",
2003 this->logTextOut_out(
2024 this->timeCaller_out(0, _logTime);
2034 #if FW_AMPCS_COMPATIBLE 2039 static_cast<FwAssertArgType>(_status)
2043 #if FW_AMPCS_COMPATIBLE 2046 static_cast<U8>(
sizeof(U16))
2050 static_cast<FwAssertArgType>(_status)
2056 static_cast<FwAssertArgType>(_status)
2059 #if FW_AMPCS_COMPATIBLE 2066 static_cast<FwAssertArgType>(_status)
2072 static_cast<FwAssertArgType>(_status)
2081 static_cast<FwAssertArgType>(_status)
2094 #if FW_ENABLE_TEXT_LOGGING 2095 if (this->isConnected_logTextOut_OutputPort(0)) {
2096 #if FW_OBJECT_NAMES == 1 2097 const char* _formatString =
2098 "(%s) %s: Sequencer %" PRIu16
" with state %s is running file %s";
2100 const char* _formatString =
2101 "%s: Sequencer %" PRIu16
" with state %s is running file %s";
2105 state.toString(stateStr);
2108 (void) _logString.
format(
2111 this->m_objName.toChar(),
2113 "LogSequencerStatus ",
2119 this->logTextOut_out(
2139 this->timeCaller_out(0, _logTime);
2149 #if FW_AMPCS_COMPATIBLE 2154 static_cast<FwAssertArgType>(_status)
2158 #if FW_AMPCS_COMPATIBLE 2161 static_cast<U8>(
sizeof(U16))
2165 static_cast<FwAssertArgType>(_status)
2171 static_cast<FwAssertArgType>(_status)
2180 static_cast<FwAssertArgType>(_status)
2193 #if FW_ENABLE_TEXT_LOGGING 2194 if (this->isConnected_logTextOut_OutputPort(0)) {
2195 #if FW_OBJECT_NAMES == 1 2196 const char* _formatString =
2197 "(%s) %s: Sequencer %" PRIu16
" canceled running sequence %s";
2199 const char* _formatString =
2200 "%s: Sequencer %" PRIu16
" canceled running sequence %s";
2204 (void) _logString.
format(
2207 this->m_objName.toChar(),
2209 "SequenceCanceled ",
2214 this->logTextOut_out(
2231 this->timeCaller_out(0, _logTime);
2241 #if FW_AMPCS_COMPATIBLE 2246 static_cast<FwAssertArgType>(_status)
2256 static_cast<FwAssertArgType>(_status)
2269 #if FW_ENABLE_TEXT_LOGGING 2270 if (this->isConnected_logTextOut_OutputPort(0)) {
2271 #if FW_OBJECT_NAMES == 1 2272 const char* _formatString =
2273 "(%s) %s: No running sequence matched file %s to cancel";
2275 const char* _formatString =
2276 "%s: No running sequence matched file %s to cancel";
2280 (void) _logString.
format(
2283 this->m_objName.toChar(),
2285 "CancelSequenceNotFound ",
2289 this->logTextOut_out(
2316 this->timeCaller_out(0, _tlmTime);
2346 static_cast<FwAssertArgType>(_stat)
2368 static_cast<FwAssertArgType>(_stat)
2390 static_cast<FwAssertArgType>(_stat)
2412 static_cast<FwAssertArgType>(_stat)
2432 this->timeCaller_out(0, _time);
2447 ComponentIpcSerializableBuffer _msg;
2457 static_cast<FwAssertArgType>(_msgStatus)
2467 static_cast<FwAssertArgType>(_deserStatus)
2470 MsgTypeEnum _msgType =
static_cast<MsgTypeEnum
>(_desMsg);
2472 if (_msgType == SEQDISPATCHER_COMPONENT_EXIT) {
2477 _deserStatus = _msg.deserializeTo(portNum);
2480 static_cast<FwAssertArgType>(_deserStatus)
2485 case SEQDONEIN_CMDRESPONSE: {
2488 _deserStatus = _msg.deserializeTo(opCode);
2491 static_cast<FwAssertArgType>(_deserStatus)
2496 _deserStatus = _msg.deserializeTo(cmdSeq);
2499 static_cast<FwAssertArgType>(_deserStatus)
2504 _deserStatus = _msg.deserializeTo(response);
2507 static_cast<FwAssertArgType>(_deserStatus)
2521 case SEQRUNIN_CMDSEQIN: {
2524 Fw::ExternalString filename(__fprime_ac_filename_buffer,
sizeof __fprime_ac_filename_buffer);
2525 _deserStatus = _msg.deserializeTo(filename);
2528 static_cast<FwAssertArgType>(_deserStatus)
2533 _deserStatus = _msg.deserializeTo(args);
2536 static_cast<FwAssertArgType>(_deserStatus)
2549 case SEQSTARTIN_CMDSEQIN: {
2552 Fw::ExternalString filename(__fprime_ac_filename_buffer,
sizeof __fprime_ac_filename_buffer);
2553 _deserStatus = _msg.deserializeTo(filename);
2556 static_cast<FwAssertArgType>(_deserStatus)
2561 _deserStatus = _msg.deserializeTo(args);
2564 static_cast<FwAssertArgType>(_deserStatus)
2580 _deserStatus = _msg.deserializeTo(_opCode);
2583 static_cast<FwAssertArgType>(_deserStatus)
2588 _deserStatus = _msg.deserializeTo(_cmdSeq);
2591 static_cast<FwAssertArgType>(_deserStatus)
2596 _deserStatus = _msg.deserializeTo(args);
2599 static_cast<FwAssertArgType>(_deserStatus)
2637 #if FW_CMD_CHECK_RESIDUAL 2658 case CMD_RUN_ARGS: {
2661 _deserStatus = _msg.deserializeTo(_opCode);
2664 static_cast<FwAssertArgType>(_deserStatus)
2669 _deserStatus = _msg.deserializeTo(_cmdSeq);
2672 static_cast<FwAssertArgType>(_deserStatus)
2677 _deserStatus = _msg.deserializeTo(args);
2680 static_cast<FwAssertArgType>(_deserStatus)
2733 #if FW_CMD_CHECK_RESIDUAL 2755 case CMD_LOG_STATUS: {
2758 _deserStatus = _msg.deserializeTo(_opCode);
2761 static_cast<FwAssertArgType>(_deserStatus)
2766 _deserStatus = _msg.deserializeTo(_cmdSeq);
2769 static_cast<FwAssertArgType>(_deserStatus)
2774 _deserStatus = _msg.deserializeTo(args);
2777 static_cast<FwAssertArgType>(_deserStatus)
2785 #if FW_CMD_CHECK_RESIDUAL 2802 case CMD_CANCEL_NAME: {
2805 _deserStatus = _msg.deserializeTo(_opCode);
2808 static_cast<FwAssertArgType>(_deserStatus)
2813 _deserStatus = _msg.deserializeTo(_cmdSeq);
2816 static_cast<FwAssertArgType>(_deserStatus)
2821 _deserStatus = _msg.deserializeTo(args);
2824 static_cast<FwAssertArgType>(_deserStatus)
2847 #if FW_CMD_CHECK_RESIDUAL 2867 case CMD_CANCEL_ALL: {
2870 _deserStatus = _msg.deserializeTo(_opCode);
2873 static_cast<FwAssertArgType>(_deserStatus)
2878 _deserStatus = _msg.deserializeTo(_cmdSeq);
2881 static_cast<FwAssertArgType>(_deserStatus)
2886 _deserStatus = _msg.deserializeTo(args);
2889 static_cast<FwAssertArgType>(_deserStatus)
2897 #if FW_CMD_CHECK_RESIDUAL 2924 void SeqDispatcherComponentBase ::
2935 compPtr->cmdIn_handlerBase(
2947 void SeqDispatcherComponentBase ::
2958 compPtr->seqDoneIn_handlerBase(
2966 void SeqDispatcherComponentBase ::
2976 compPtr->seqRunIn_handlerBase(
2983 void SeqDispatcherComponentBase ::
2993 compPtr->seqStartIn_handlerBase(
3000 #if !FW_DIRECT_PORT_CALLS 3006 void SeqDispatcherComponentBase ::
3014 static_cast<FwAssertArgType>(portNum)
3018 this->m_cmdRegOut_OutputPort[portNum].isConnected(),
3019 static_cast<FwAssertArgType>(portNum)
3021 this->m_cmdRegOut_OutputPort[portNum].
invoke(
3026 void SeqDispatcherComponentBase ::
3036 static_cast<FwAssertArgType>(portNum)
3040 this->m_cmdResponseOut_OutputPort[portNum].isConnected(),
3041 static_cast<FwAssertArgType>(portNum)
3043 this->m_cmdResponseOut_OutputPort[portNum].
invoke(
3050 void SeqDispatcherComponentBase ::
3061 static_cast<FwAssertArgType>(portNum)
3065 this->m_logOut_OutputPort[portNum].isConnected(),
3066 static_cast<FwAssertArgType>(portNum)
3068 this->m_logOut_OutputPort[portNum].
invoke(
3076 #if FW_ENABLE_TEXT_LOGGING 3078 void SeqDispatcherComponentBase ::
3088 (0 <= portNum) && (portNum < this->getNum_logTextOut_OutputPorts()),
3089 static_cast<FwAssertArgType>(portNum)
3093 this->m_logTextOut_OutputPort[portNum].isConnected(),
3094 static_cast<FwAssertArgType>(portNum)
3096 this->m_logTextOut_OutputPort[portNum].invoke(
3106 void SeqDispatcherComponentBase ::
3114 static_cast<FwAssertArgType>(portNum)
3118 this->m_timeCaller_OutputPort[portNum].isConnected(),
3119 static_cast<FwAssertArgType>(portNum)
3121 this->m_timeCaller_OutputPort[portNum].
invoke(
3126 void SeqDispatcherComponentBase ::
3136 static_cast<FwAssertArgType>(portNum)
3140 this->m_tlmOut_OutputPort[portNum].isConnected(),
3141 static_cast<FwAssertArgType>(portNum)
3143 this->m_tlmOut_OutputPort[portNum].
invoke(
Channel ID for canceledCount.
Serialization/Deserialization operation was successful.
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 addCallPort(InputTimePort *callPort)
Register an input port.
message to exit active component task
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
static constexpr FwSizeType CAPACITY
void invoke(const Fw::StringBase &filename, const Svc::SeqArgs &args) const
Invoke a port connection.
FwIdType FwOpcodeType
The type of a command opcode.
static constexpr FwSizeType CAPACITY
FwIdType getIdBase() const
PlatformSizeType FwSizeType
Svc::InputCmdSeqInPort * get_seqRunIn_InputPort(FwIndexType portNum)
Status receive(U8 *destination, FwSizeType capacity, BlockingType blockType, FwSizeType &actualSize, FwQueuePriorityType &priority) override
receive a message from the queue through delegate
virtual void RUN_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command RUN.
Status
status returned from the queue send function
bool isConnected_seqRunOut_OutputPort(FwIndexType portNum) const
static constexpr FwIndexType getNum_seqDoneIn_InputPorts()
Svc::InputCmdSeqInPort * get_seqStartIn_InputPort(FwIndexType portNum)
void addCallPort(InputCmdSeqCancelPort *callPort)
Register an input port.
void init()
Initialization function.
Dispatches a sequence with arguments to the first available sequencer.
SerializeStatus deserializeTo(U8 &val, Endianness mode=Endianness::BIG) override
Deserialize an 8-bit unsigned integer value.
bool isConnected_timeCaller_OutputPort(FwIndexType portNum) const
virtual void RUN_ARGS_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdStringArg &fileName, const Svc::BlockState &block, const Svc::SeqArgs &buffer)=0
virtual void seqStartIn_handler(FwIndexType portNum, const Fw::StringBase &filename, const Svc::SeqArgs &args)=0
Handler for input port seqStartIn.
virtual const CHAR * toChar() const =0
Convert to a C-style char*.
virtual void CANCEL_NAME_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdStringArg &fileName)=0
virtual void RUN_ARGS_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command RUN_ARGS.
void init()
Initialization function.
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.
No time base has been established (Required)
SerializeStatus serializeFrom(U8 val, Endianness mode=Endianness::BIG) override
Serialize an 8-bit unsigned integer value.
virtual void seqRunIn_preMsgHook(FwIndexType portNum, const Fw::StringBase &filename, const Svc::SeqArgs &args)
Pre-message hook for async input port seqRunIn.
void tlmWrite_canceledCount(U32 arg, Fw::Time _tlmTime=Fw::Time()) const
Channel ID for dispatchedCount.
void addCallPort(InputCmdRegPort *callPort)
Register an input port.
void CANCEL_ALL_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
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].
Os::Queue m_queue
queue object for active component
static constexpr FwIndexType getNum_logOut_OutputPorts()
virtual void CANCEL_ALL_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CANCEL_ALL.
void addCallPort(InputTlmPort *callPort)
Register an input port.
void RUN_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void init()
Object initializer.
SerializeStatus
forward declaration for string
bool isConnected_logOut_OutputPort(FwIndexType portNum) const
static constexpr FwIndexType getNum_cmdRegOut_OutputPorts()
virtual void LOG_STATUS_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
Message will block until space is available.
bool isConnected_seqCancelOut_OutputPort(FwIndexType portNum) const
void log_WARNING_LO_CancelSequenceNotFound(const Fw::StringBase &filename) const
Log event CancelSequenceNotFound.
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 invoke(FwOpcodeType opCode) const
Invoke a port connection.
void init()
Initialization function.
Fw::InputCmdPort * get_cmdIn_InputPort(FwIndexType portNum)
#define FW_OBJECT_NAMES
Indicates whether or not object names are stored (more memory, can be used for tracking objects) ...
void init()
Initialization function.
Less important informational events.
Os::Queue::Status createQueue(FwSizeType depth, FwSizeType msgSize)
#define FW_MIN(a, b)
MIN macro (deprecated in C++, use std::min)
A less serious but recoverable event.
void set_seqRunOut_OutputPort(FwIndexType portNum, Svc::InputCmdSeqInPort *port)
Connect port to seqRunOut[portNum].
virtual void CANCEL_ALL_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
Channel ID for sequencersAvailable.
void invoke(Fw::Time &time) const
Invoke a port connection.
Serializable::SizeType getDeserializeSizeLeft() const override
Get remaining deserialization buffer size.
void set_seqCancelOut_OutputPort(FwIndexType portNum, Svc::InputCmdSeqCancelPort *port)
Connect port to seqCancelOut[portNum].
void invoke(FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response) const
Invoke a port connection.
FwIdType FwChanIdType
The type of a telemetry channel identifier.
SeqDispatcherComponentBase(const char *compName="")
Construct SeqDispatcherComponentBase object.
Status send(const U8 *buffer, FwSizeType size, FwQueuePriorityType priority, BlockingType blockType) override
send a message into the queue through delegate
static constexpr FwIndexType getNum_cmdIn_InputPorts()
Sequencer blocking state.
bool isConnected_cmdResponseOut_OutputPort(FwIndexType portNum) const
static constexpr FwIndexType getNum_cmdResponseOut_OutputPorts()
void resetDeser() override
Reset deserialization pointer to beginning of buffer.
void seqRunOut_out(FwIndexType portNum, const Fw::StringBase &filename, const Svc::SeqArgs &args) const
Invoke output port seqRunOut.
Dispatches a sequence to the first available sequencer.
A string backed by an external buffer.
A serious but recoverable event.
Errors dispatching messages.
void log_WARNING_LO_UnexpectedSequenceStarted(U16 idx, const Fw::StringBase &newSequence) const
Log event UnexpectedSequenceStarted.
void invoke(FwChanIdType id, Fw::Time &timeTag, Fw::TlmBuffer &val) const
Invoke a port connection.
const char * toChar() const
Convert to a C-style char*.
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.
FormatStatus format(const CHAR *formatString,...)
write formatted string to buffer
void init()
Initialization function.
uint8_t U8
8-bit unsigned integer
static constexpr FwSizeType CAPACITY
void tlmWrite(FwChanIdType id, Fw::TlmBuffer &_tlmBuff, Fw::Time _tlmTime=Fw::Time()) const
Command failed to deserialize.
void log_WARNING_HI_NoAvailableSequencers() const
Log event NoAvailableSequencers.
PlatformQueuePriorityType FwQueuePriorityType
The type of queue priorities used.
Channel ID for errorCount.
Important informational events.
void invoke(FwEventIdType id, Fw::Time &timeTag, const Fw::LogSeverity &severity, Fw::LogBuffer &args) const
Invoke a port connection.
void log_ACTIVITY_LO_LogSequencerStatus(U16 idx, const Svc::SeqDispatcher_CmdSequencerState &state, const Fw::StringBase &filename) const
Log event LogSequencerStatus.
Cancels any running sequence matching the given file name.
A message was sent requesting an exit of the loop.
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.
The size of the serial representation.
void invoke() const
Invoke a port connection.
void addCallPort(InputLogPort *callPort)
Register an input port.
void addCallPort(InputCmdSeqInPort *callPort)
Register an input port.
static constexpr FwIndexType getNum_tlmOut_OutputPorts()
void init()
Initialization function.
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)
RateGroupDivider component implementation.
message sent/received okay
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_seqCancelOut_OutputPorts()
static constexpr FwIndexType getNum_seqRunIn_InputPorts()
void CANCEL_NAME_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
Message will return with status when space is unavailable.
virtual void RUN_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdStringArg &fileName, const Svc::BlockState &block)=0
Implementation of malloc based allocator.
static constexpr FwIndexType getNum_timeCaller_OutputPorts()
static constexpr SizeType BUFFER_SIZE(SizeType maxLength)
Get the size of a null-terminated string buffer.
void seqCancelOut_out(FwIndexType portNum) const
Invoke output port seqCancelOut.
void init()
Initialization function.
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.
Logs via Events the state of each connected command sequencer.
void log_ACTIVITY_HI_SequenceCanceled(U16 idx, const Fw::StringBase &filename) const
Log event SequenceCanceled.
void log_WARNING_HI_ConflictingSequenceStarted(U16 idx, const Fw::StringBase &newSequence, const Fw::StringBase &sequenceInInternalState) const
Log event ConflictingSequenceStarted.
virtual void CANCEL_NAME_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CANCEL_NAME.
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].
void addCallPort(InputCmdResponsePort *callPort)
Register an input port.
SerializeStatus serializeTo(SerialBufferBase &buffer, Endianness mode=Endianness::BIG) const override
Serialize the contents of this object to a buffer.
BYTE cmdPortSize[Fw::CmdPortBuffer::CAPACITY]