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(
Serialization/Deserialization operation was successful.
Fw::InputCmdResponsePort * get_seqDoneIn_InputPort(FwIndexType portNum)
The size of the serial representation.
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.
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)
message to exit active component task
void addCallPort(InputCmdSeqCancelPort *callPort)
Register an input port.
void init()
Initialization function.
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
Dispatches a sequence to the first available sequencer.
Cancels any running sequence matching the given file name.
Logs via Events the state of each connected command sequencer.
Channel ID for sequencersAvailable.
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.
Channel ID for errorCount.
Channel ID for dispatchedCount.
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
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.
Dispatches a sequence with arguments to the first available sequencer.
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
void invoke(Fw::Time &time) const
Invoke a port connection.
Channel ID for canceledCount.
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.
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.
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.
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.
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.
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]