9 #if FW_ENABLE_TEXT_LOGGING 19 SEQDONEIN_CMDRESPONSE,
38 class ComponentIpcSerializableBuffer :
48 MAX_DATA_SIZE =
sizeof(BuffUnion),
50 SERIALIZATION_SIZE = DATA_OFFSET + MAX_DATA_SIZE
54 return sizeof(m_buff);
61 const U8* getBuffAddr()
const {
67 U8 m_buff[SERIALIZATION_SIZE];
85 #if !FW_DIRECT_PORT_CALLS 92 this->m_cmdIn_InputPort[port].
init();
97 this->m_cmdIn_InputPort[port].
setPortNum(port);
99 #if FW_OBJECT_NAMES == 1 103 this->m_objName.toChar(),
106 this->m_cmdIn_InputPort[port].setObjName(portName.
toChar());
111 #if !FW_DIRECT_PORT_CALLS 118 this->m_seqDoneIn_InputPort[port].
init();
123 this->m_seqDoneIn_InputPort[port].
setPortNum(port);
125 #if FW_OBJECT_NAMES == 1 129 this->m_objName.toChar(),
132 this->m_seqDoneIn_InputPort[port].setObjName(portName.
toChar());
137 #if !FW_DIRECT_PORT_CALLS 144 this->m_seqRunIn_InputPort[port].
init();
149 this->m_seqRunIn_InputPort[port].
setPortNum(port);
151 #if FW_OBJECT_NAMES == 1 155 this->m_objName.toChar(),
158 this->m_seqRunIn_InputPort[port].setObjName(portName.
toChar());
163 #if !FW_DIRECT_PORT_CALLS 170 this->m_seqStartIn_InputPort[port].
init();
175 this->m_seqStartIn_InputPort[port].
setPortNum(port);
177 #if FW_OBJECT_NAMES == 1 181 this->m_objName.toChar(),
184 this->m_seqStartIn_InputPort[port].setObjName(portName.
toChar());
189 #if !FW_DIRECT_PORT_CALLS 196 this->m_cmdRegOut_OutputPort[port].
init();
198 #if FW_OBJECT_NAMES == 1 202 this->m_objName.toChar(),
205 this->m_cmdRegOut_OutputPort[port].setObjName(portName.
toChar());
210 #if !FW_DIRECT_PORT_CALLS 217 this->m_cmdResponseOut_OutputPort[port].
init();
219 #if FW_OBJECT_NAMES == 1 223 this->m_objName.toChar(),
226 this->m_cmdResponseOut_OutputPort[port].setObjName(portName.
toChar());
231 #if !FW_DIRECT_PORT_CALLS 238 this->m_logOut_OutputPort[port].
init();
240 #if FW_OBJECT_NAMES == 1 244 this->m_objName.toChar(),
247 this->m_logOut_OutputPort[port].setObjName(portName.
toChar());
252 #if !FW_DIRECT_PORT_CALLS && FW_ENABLE_TEXT_LOGGING 256 port < static_cast<FwIndexType>(this->getNum_logTextOut_OutputPorts());
259 this->m_logTextOut_OutputPort[port].
init();
261 #if FW_OBJECT_NAMES == 1 265 this->m_objName.toChar(),
268 this->m_logTextOut_OutputPort[port].setObjName(portName.
toChar());
273 #if !FW_DIRECT_PORT_CALLS 280 this->m_timeCaller_OutputPort[port].
init();
282 #if FW_OBJECT_NAMES == 1 286 this->m_objName.toChar(),
289 this->m_timeCaller_OutputPort[port].setObjName(portName.
toChar());
294 #if !FW_DIRECT_PORT_CALLS 301 this->m_tlmOut_OutputPort[port].
init();
303 #if FW_OBJECT_NAMES == 1 307 this->m_objName.toChar(),
310 this->m_tlmOut_OutputPort[port].setObjName(portName.
toChar());
315 #if !FW_DIRECT_PORT_CALLS 322 this->m_seqRunOut_OutputPort[port].
init();
324 #if FW_OBJECT_NAMES == 1 328 this->m_objName.toChar(),
331 this->m_seqRunOut_OutputPort[port].setObjName(portName.
toChar());
339 static_cast<FwSizeType>(ComponentIpcSerializableBuffer::SERIALIZATION_SIZE)
343 static_cast<FwAssertArgType>(qStat)
347 #if !FW_DIRECT_PORT_CALLS 358 static_cast<FwAssertArgType>(portNum)
361 return &this->m_cmdIn_InputPort[portNum];
366 #if !FW_DIRECT_PORT_CALLS 377 static_cast<FwAssertArgType>(portNum)
380 return &this->m_seqDoneIn_InputPort[portNum];
388 static_cast<FwAssertArgType>(portNum)
391 return &this->m_seqRunIn_InputPort[portNum];
399 static_cast<FwAssertArgType>(portNum)
402 return &this->m_seqStartIn_InputPort[portNum];
407 #if !FW_DIRECT_PORT_CALLS 421 static_cast<FwAssertArgType>(portNum)
424 this->m_cmdRegOut_OutputPort[portNum].
addCallPort(port);
435 static_cast<FwAssertArgType>(portNum)
438 this->m_cmdResponseOut_OutputPort[portNum].
addCallPort(port);
449 static_cast<FwAssertArgType>(portNum)
452 this->m_logOut_OutputPort[portNum].
addCallPort(port);
455 #if FW_ENABLE_TEXT_LOGGING == 1 457 void SeqDispatcherComponentBase ::
458 set_logTextOut_OutputPort(
464 (0 <= portNum) && (portNum < this->getNum_logTextOut_OutputPorts()),
465 static_cast<FwAssertArgType>(portNum)
468 this->m_logTextOut_OutputPort[portNum].addCallPort(port);
481 static_cast<FwAssertArgType>(portNum)
484 this->m_timeCaller_OutputPort[portNum].
addCallPort(port);
495 static_cast<FwAssertArgType>(portNum)
498 this->m_tlmOut_OutputPort[portNum].
addCallPort(port);
503 #if !FW_DIRECT_PORT_CALLS 517 static_cast<FwAssertArgType>(portNum)
520 this->m_seqRunOut_OutputPort[portNum].
addCallPort(port);
525 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION 534 Fw::InputSerializePort* port
539 static_cast<FwAssertArgType>(portNum)
542 this->m_cmdRegOut_OutputPort[portNum].registerSerialPort(port);
548 Fw::InputSerializePort* port
553 static_cast<FwAssertArgType>(portNum)
556 this->m_cmdResponseOut_OutputPort[portNum].registerSerialPort(port);
562 Fw::InputSerializePort* port
567 static_cast<FwAssertArgType>(portNum)
570 this->m_logOut_OutputPort[portNum].registerSerialPort(port);
573 #if FW_ENABLE_TEXT_LOGGING == 1 575 void SeqDispatcherComponentBase ::
576 set_logTextOut_OutputPort(
578 Fw::InputSerializePort* port
582 (0 <= portNum) && (portNum < this->getNum_logTextOut_OutputPorts()),
583 static_cast<FwAssertArgType>(portNum)
586 this->m_logTextOut_OutputPort[portNum].registerSerialPort(port);
594 Fw::InputSerializePort* port
599 static_cast<FwAssertArgType>(portNum)
602 this->m_timeCaller_OutputPort[portNum].registerSerialPort(port);
608 Fw::InputSerializePort* port
613 static_cast<FwAssertArgType>(portNum)
616 this->m_tlmOut_OutputPort[portNum].registerSerialPort(port);
621 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION 630 Fw::InputSerializePort* port
635 static_cast<FwAssertArgType>(portNum)
638 this->m_seqRunOut_OutputPort[portNum].registerSerialPort(port);
674 Fw::ActiveComponentBase(compName)
685 #if !FW_DIRECT_PORT_CALLS 696 static_cast<FwAssertArgType>(portNum)
699 return this->m_cmdRegOut_OutputPort[portNum].
isConnected();
707 static_cast<FwAssertArgType>(portNum)
710 return this->m_cmdResponseOut_OutputPort[portNum].
isConnected();
718 static_cast<FwAssertArgType>(portNum)
721 return this->m_logOut_OutputPort[portNum].
isConnected();
724 #if FW_ENABLE_TEXT_LOGGING == 1 726 bool SeqDispatcherComponentBase ::
727 isConnected_logTextOut_OutputPort(
FwIndexType portNum)
const 730 (0 <= portNum) && (portNum < this->getNum_logTextOut_OutputPorts()),
731 static_cast<FwAssertArgType>(portNum)
734 return this->m_logTextOut_OutputPort[portNum].isConnected();
744 static_cast<FwAssertArgType>(portNum)
747 return this->m_timeCaller_OutputPort[portNum].
isConnected();
755 static_cast<FwAssertArgType>(portNum)
758 return this->m_tlmOut_OutputPort[portNum].
isConnected();
763 #if !FW_DIRECT_PORT_CALLS 774 static_cast<FwAssertArgType>(portNum)
777 return this->m_seqRunOut_OutputPort[portNum].
isConnected();
798 FW_ASSERT(opCode >= idBase, static_cast<FwAssertArgType>(opCode), static_cast<FwAssertArgType>(idBase));
801 switch (opCode - idBase) {
851 static_cast<FwAssertArgType>(portNum)
861 ComponentIpcSerializableBuffer msg;
865 _status = msg.serializeFrom(
866 static_cast<FwEnumStoreType>(SEQDONEIN_CMDRESPONSE)
870 static_cast<FwAssertArgType>(_status)
874 _status = msg.serializeFrom(portNum);
877 static_cast<FwAssertArgType>(_status)
881 _status = msg.serializeFrom(opCode);
884 static_cast<FwAssertArgType>(_status)
888 _status = msg.serializeFrom(cmdSeq);
891 static_cast<FwAssertArgType>(_status)
895 _status = msg.serializeFrom(response);
898 static_cast<FwAssertArgType>(_status)
907 static_cast<FwAssertArgType>(qStatus)
921 static_cast<FwAssertArgType>(portNum)
930 ComponentIpcSerializableBuffer msg;
934 _status = msg.serializeFrom(
935 static_cast<FwEnumStoreType>(SEQRUNIN_CMDSEQIN)
939 static_cast<FwAssertArgType>(_status)
943 _status = msg.serializeFrom(portNum);
946 static_cast<FwAssertArgType>(_status)
953 static_cast<FwAssertArgType>(_status)
957 _status = msg.serializeFrom(args);
960 static_cast<FwAssertArgType>(_status)
969 static_cast<FwAssertArgType>(qStatus)
983 static_cast<FwAssertArgType>(portNum)
992 ComponentIpcSerializableBuffer msg;
996 _status = msg.serializeFrom(
997 static_cast<FwEnumStoreType>(SEQSTARTIN_CMDSEQIN)
1001 static_cast<FwAssertArgType>(_status)
1005 _status = msg.serializeFrom(portNum);
1008 static_cast<FwAssertArgType>(_status)
1015 static_cast<FwAssertArgType>(_status)
1019 _status = msg.serializeFrom(args);
1022 static_cast<FwAssertArgType>(_status)
1031 static_cast<FwAssertArgType>(qStatus)
1074 #if !FW_DIRECT_PORT_CALLS 1089 static_cast<FwAssertArgType>(portNum)
1093 this->m_seqRunOut_OutputPort[portNum].isConnected(),
1094 static_cast<FwAssertArgType>(portNum)
1096 this->m_seqRunOut_OutputPort[portNum].
invoke(
1116 this->cmdResponseOut_out(0, opCode, cmdSeq, response);
1137 ComponentIpcSerializableBuffer msg;
1141 _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_RUN));
1144 static_cast<FwAssertArgType>(_status)
1150 _status = msg.serializeFrom(port);
1153 static_cast<FwAssertArgType>(_status)
1156 _status = msg.serializeFrom(opCode);
1159 static_cast<FwAssertArgType>(_status)
1162 _status = msg.serializeFrom(cmdSeq);
1165 static_cast<FwAssertArgType>(_status)
1168 _status = msg.serializeFrom(args);
1171 static_cast<FwAssertArgType>(_status)
1180 static_cast<FwAssertArgType>(qStatus)
1196 ComponentIpcSerializableBuffer msg;
1200 _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_RUN_ARGS));
1203 static_cast<FwAssertArgType>(_status)
1209 _status = msg.serializeFrom(port);
1212 static_cast<FwAssertArgType>(_status)
1215 _status = msg.serializeFrom(opCode);
1218 static_cast<FwAssertArgType>(_status)
1221 _status = msg.serializeFrom(cmdSeq);
1224 static_cast<FwAssertArgType>(_status)
1227 _status = msg.serializeFrom(args);
1230 static_cast<FwAssertArgType>(_status)
1239 static_cast<FwAssertArgType>(qStatus)
1255 ComponentIpcSerializableBuffer msg;
1259 _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_LOG_STATUS));
1262 static_cast<FwAssertArgType>(_status)
1268 _status = msg.serializeFrom(port);
1271 static_cast<FwAssertArgType>(_status)
1274 _status = msg.serializeFrom(opCode);
1277 static_cast<FwAssertArgType>(_status)
1280 _status = msg.serializeFrom(cmdSeq);
1283 static_cast<FwAssertArgType>(_status)
1286 _status = msg.serializeFrom(args);
1289 static_cast<FwAssertArgType>(_status)
1298 static_cast<FwAssertArgType>(qStatus)
1353 this->timeCaller_out(0, _logTime);
1363 #if FW_AMPCS_COMPATIBLE 1368 static_cast<FwAssertArgType>(_status)
1372 #if FW_AMPCS_COMPATIBLE 1375 static_cast<U8>(
sizeof(U16))
1379 static_cast<FwAssertArgType>(_status)
1385 static_cast<FwAssertArgType>(_status)
1398 #if FW_ENABLE_TEXT_LOGGING 1399 if (this->isConnected_logTextOut_OutputPort(0)) {
1400 #if FW_OBJECT_NAMES == 1 1401 const char* _formatString =
1402 "(%s) %s: Invalid sequence index %" PRIu16
"";
1404 const char* _formatString =
1405 "%s: Invalid sequence index %" PRIu16
"";
1412 this->m_objName.toChar(),
1414 "InvalidSequencer ",
1418 this->logTextOut_out(
1435 this->timeCaller_out(0, _logTime);
1444 #if FW_AMPCS_COMPATIBLE 1450 static_cast<FwAssertArgType>(_status)
1464 #if FW_ENABLE_TEXT_LOGGING 1465 if (this->isConnected_logTextOut_OutputPort(0)) {
1466 #if FW_OBJECT_NAMES == 1 1467 const char* _formatString =
1468 "(%s) %s: No available cmd sequencers to dispatch a sequence to";
1470 const char* _formatString =
1471 "%s: No available cmd sequencers to dispatch a sequence to";
1478 this->m_objName.toChar(),
1480 "NoAvailableSequencers " 1483 this->logTextOut_out(
1500 this->timeCaller_out(0, _logTime);
1510 #if FW_AMPCS_COMPATIBLE 1515 static_cast<FwAssertArgType>(_status)
1519 #if FW_AMPCS_COMPATIBLE 1522 static_cast<U8>(
sizeof(U16))
1526 static_cast<FwAssertArgType>(_status)
1532 static_cast<FwAssertArgType>(_status)
1545 #if FW_ENABLE_TEXT_LOGGING 1546 if (this->isConnected_logTextOut_OutputPort(0)) {
1547 #if FW_OBJECT_NAMES == 1 1548 const char* _formatString =
1549 "(%s) %s: Sequencer %" PRIu16
" completed a sequence with no matching start notification";
1551 const char* _formatString =
1552 "%s: Sequencer %" PRIu16
" completed a sequence with no matching start notification";
1559 this->m_objName.toChar(),
1561 "UnknownSequenceFinished ",
1565 this->logTextOut_out(
1586 this->timeCaller_out(0, _logTime);
1596 #if FW_AMPCS_COMPATIBLE 1601 static_cast<FwAssertArgType>(_status)
1605 #if FW_AMPCS_COMPATIBLE 1608 static_cast<U8>(
sizeof(U16))
1612 static_cast<FwAssertArgType>(_status)
1618 static_cast<FwAssertArgType>(_status)
1627 static_cast<FwAssertArgType>(_status)
1636 static_cast<FwAssertArgType>(_status)
1649 #if FW_ENABLE_TEXT_LOGGING 1650 if (this->isConnected_logTextOut_OutputPort(0)) {
1651 #if FW_OBJECT_NAMES == 1 1652 const char* _formatString =
1653 "(%s) %s: Sequencer %" PRIu16
" started a sequence %s while still running %s";
1655 const char* _formatString =
1656 "%s: Sequencer %" PRIu16
" started a sequence %s while still running %s";
1663 this->m_objName.toChar(),
1665 "ConflictingSequenceStarted ",
1668 sequenceInInternalState.
toChar()
1671 this->logTextOut_out(
1691 this->timeCaller_out(0, _logTime);
1701 #if FW_AMPCS_COMPATIBLE 1706 static_cast<FwAssertArgType>(_status)
1710 #if FW_AMPCS_COMPATIBLE 1713 static_cast<U8>(
sizeof(U16))
1717 static_cast<FwAssertArgType>(_status)
1723 static_cast<FwAssertArgType>(_status)
1732 static_cast<FwAssertArgType>(_status)
1745 #if FW_ENABLE_TEXT_LOGGING 1746 if (this->isConnected_logTextOut_OutputPort(0)) {
1747 #if FW_OBJECT_NAMES == 1 1748 const char* _formatString =
1749 "(%s) %s: Sequencer %" PRIu16
" was externally commanded to start a sequence %s";
1751 const char* _formatString =
1752 "%s: Sequencer %" PRIu16
" was externally commanded to start a sequence %s";
1759 this->m_objName.toChar(),
1761 "UnexpectedSequenceStarted ",
1766 this->logTextOut_out(
1787 this->timeCaller_out(0, _logTime);
1797 #if FW_AMPCS_COMPATIBLE 1802 static_cast<FwAssertArgType>(_status)
1806 #if FW_AMPCS_COMPATIBLE 1809 static_cast<U8>(
sizeof(U16))
1813 static_cast<FwAssertArgType>(_status)
1819 static_cast<FwAssertArgType>(_status)
1822 #if FW_AMPCS_COMPATIBLE 1829 static_cast<FwAssertArgType>(_status)
1835 static_cast<FwAssertArgType>(_status)
1844 static_cast<FwAssertArgType>(_status)
1857 #if FW_ENABLE_TEXT_LOGGING 1858 if (this->isConnected_logTextOut_OutputPort(0)) {
1859 #if FW_OBJECT_NAMES == 1 1860 const char* _formatString =
1861 "(%s) %s: Sequencer %" PRIu16
" with state %s is running file %s";
1863 const char* _formatString =
1864 "%s: Sequencer %" PRIu16
" with state %s is running file %s";
1868 state.toString(stateStr);
1874 this->m_objName.toChar(),
1876 "LogSequencerStatus ",
1882 this->logTextOut_out(
1909 this->timeCaller_out(0, _tlmTime);
1939 static_cast<FwAssertArgType>(_stat)
1961 static_cast<FwAssertArgType>(_stat)
1983 static_cast<FwAssertArgType>(_stat)
2003 this->timeCaller_out(0, _time);
2018 ComponentIpcSerializableBuffer _msg;
2028 static_cast<FwAssertArgType>(_msgStatus)
2038 static_cast<FwAssertArgType>(_deserStatus)
2041 MsgTypeEnum _msgType =
static_cast<MsgTypeEnum
>(_desMsg);
2043 if (_msgType == SEQDISPATCHER_COMPONENT_EXIT) {
2048 _deserStatus = _msg.deserializeTo(portNum);
2051 static_cast<FwAssertArgType>(_deserStatus)
2056 case SEQDONEIN_CMDRESPONSE: {
2059 _deserStatus = _msg.deserializeTo(opCode);
2062 static_cast<FwAssertArgType>(_deserStatus)
2067 _deserStatus = _msg.deserializeTo(cmdSeq);
2070 static_cast<FwAssertArgType>(_deserStatus)
2075 _deserStatus = _msg.deserializeTo(response);
2078 static_cast<FwAssertArgType>(_deserStatus)
2092 case SEQRUNIN_CMDSEQIN: {
2095 Fw::ExternalString filename(__fprime_ac_filename_buffer,
sizeof __fprime_ac_filename_buffer);
2096 _deserStatus = _msg.deserializeTo(filename);
2099 static_cast<FwAssertArgType>(_deserStatus)
2104 _deserStatus = _msg.deserializeTo(args);
2107 static_cast<FwAssertArgType>(_deserStatus)
2120 case SEQSTARTIN_CMDSEQIN: {
2123 Fw::ExternalString filename(__fprime_ac_filename_buffer,
sizeof __fprime_ac_filename_buffer);
2124 _deserStatus = _msg.deserializeTo(filename);
2127 static_cast<FwAssertArgType>(_deserStatus)
2132 _deserStatus = _msg.deserializeTo(args);
2135 static_cast<FwAssertArgType>(_deserStatus)
2151 _deserStatus = _msg.deserializeTo(_opCode);
2154 static_cast<FwAssertArgType>(_deserStatus)
2159 _deserStatus = _msg.deserializeTo(_cmdSeq);
2162 static_cast<FwAssertArgType>(_deserStatus)
2167 _deserStatus = _msg.deserializeTo(args);
2170 static_cast<FwAssertArgType>(_deserStatus)
2208 #if FW_CMD_CHECK_RESIDUAL 2229 case CMD_RUN_ARGS: {
2232 _deserStatus = _msg.deserializeTo(_opCode);
2235 static_cast<FwAssertArgType>(_deserStatus)
2240 _deserStatus = _msg.deserializeTo(_cmdSeq);
2243 static_cast<FwAssertArgType>(_deserStatus)
2248 _deserStatus = _msg.deserializeTo(args);
2251 static_cast<FwAssertArgType>(_deserStatus)
2304 #if FW_CMD_CHECK_RESIDUAL 2326 case CMD_LOG_STATUS: {
2329 _deserStatus = _msg.deserializeTo(_opCode);
2332 static_cast<FwAssertArgType>(_deserStatus)
2337 _deserStatus = _msg.deserializeTo(_cmdSeq);
2340 static_cast<FwAssertArgType>(_deserStatus)
2345 _deserStatus = _msg.deserializeTo(args);
2348 static_cast<FwAssertArgType>(_deserStatus)
2356 #if FW_CMD_CHECK_RESIDUAL 2383 void SeqDispatcherComponentBase ::
2394 compPtr->cmdIn_handlerBase(
2406 void SeqDispatcherComponentBase ::
2417 compPtr->seqDoneIn_handlerBase(
2425 void SeqDispatcherComponentBase ::
2435 compPtr->seqRunIn_handlerBase(
2442 void SeqDispatcherComponentBase ::
2452 compPtr->seqStartIn_handlerBase(
2459 #if !FW_DIRECT_PORT_CALLS 2465 void SeqDispatcherComponentBase ::
2473 static_cast<FwAssertArgType>(portNum)
2477 this->m_cmdRegOut_OutputPort[portNum].isConnected(),
2478 static_cast<FwAssertArgType>(portNum)
2480 this->m_cmdRegOut_OutputPort[portNum].
invoke(
2485 void SeqDispatcherComponentBase ::
2495 static_cast<FwAssertArgType>(portNum)
2499 this->m_cmdResponseOut_OutputPort[portNum].isConnected(),
2500 static_cast<FwAssertArgType>(portNum)
2502 this->m_cmdResponseOut_OutputPort[portNum].
invoke(
2509 void SeqDispatcherComponentBase ::
2520 static_cast<FwAssertArgType>(portNum)
2524 this->m_logOut_OutputPort[portNum].isConnected(),
2525 static_cast<FwAssertArgType>(portNum)
2527 this->m_logOut_OutputPort[portNum].
invoke(
2535 #if FW_ENABLE_TEXT_LOGGING 2537 void SeqDispatcherComponentBase ::
2547 (0 <= portNum) && (portNum < this->getNum_logTextOut_OutputPorts()),
2548 static_cast<FwAssertArgType>(portNum)
2552 this->m_logTextOut_OutputPort[portNum].isConnected(),
2553 static_cast<FwAssertArgType>(portNum)
2555 this->m_logTextOut_OutputPort[portNum].invoke(
2565 void SeqDispatcherComponentBase ::
2573 static_cast<FwAssertArgType>(portNum)
2577 this->m_timeCaller_OutputPort[portNum].isConnected(),
2578 static_cast<FwAssertArgType>(portNum)
2580 this->m_timeCaller_OutputPort[portNum].
invoke(
2585 void SeqDispatcherComponentBase ::
2595 static_cast<FwAssertArgType>(portNum)
2599 this->m_tlmOut_OutputPort[portNum].isConnected(),
2600 static_cast<FwAssertArgType>(portNum)
2602 this->m_tlmOut_OutputPort[portNum].
invoke(
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.
Channel ID for dispatchedCount.
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.
SerializeStatus serializeFrom(U8 val, Endianness mode=Endianness::BIG) override
Serialize an 8-bit unsigned integer value.
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
Wait or don't wait for something.
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)
Channel ID for sequencersAvailable.
const char * toChar() const
Convert to a C-style char*.
void init()
Initialization function.
bool isConnected_timeCaller_OutputPort(FwIndexType portNum) const
virtual void seqStartIn_handler(FwIndexType portNum, const Fw::StringBase &filename, const Svc::SeqArgs &args)=0
Handler for input port seqStartIn.
virtual const CHAR * toChar() const =0
Convert to a C-style char*.
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)
virtual void seqRunIn_preMsgHook(FwIndexType portNum, const Fw::StringBase &filename, const Svc::SeqArgs &args)
Pre-message hook for async input port seqRunIn.
void addCallPort(InputCmdRegPort *callPort)
Register an input port.
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()
Channel ID for errorCount.
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.
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 log_ACTIVITY_LO_LogSequencerStatus(U16 idx, Svc::SeqDispatcher_CmdSequencerState state, const Fw::StringBase &filename) const
Log event LogSequencerStatus.
Fw::InputCmdPort * get_cmdIn_InputPort(FwIndexType portNum)
#define FW_OBJECT_NAMES
Indicates whether or not object names are stored (more memory, can be used for tracking objects) ...
void init()
Initialization function.
Dispatches a sequence with arguments to the first available sequencer.
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].
void invoke(Fw::Time &time) const
Invoke a port connection.
Serializable::SizeType getDeserializeSizeLeft() const override
Get remaining deserialization buffer size.
const char * toChar() const
Convert to a C-style char*.
void invoke(FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response) const
Invoke a port connection.
virtual void RUN_ARGS_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdStringArg &fileName, Fw::Wait block, Svc::SeqArgs buffer)=0
FwIdType FwChanIdType
The type of a telemetry channel identifier.
SeqDispatcherComponentBase(const char *compName="")
Construct SeqDispatcherComponentBase object.
virtual void RUN_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdStringArg &fileName, Fw::Wait block)=0
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()
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.
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.
void invoke(FwEventIdType id, Fw::Time &timeTag, const Fw::LogSeverity &severity, Fw::LogBuffer &args) const
Invoke a port connection.
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 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
SerializeStatus deserializeTo(U8 &val, Endianness mode=Endianness::BIG) override
Deserialize an 8-bit unsigned integer value.
void log_WARNING_HI_InvalidSequencer(U16 idx) const
Log event InvalidSequencer.
The size of the serial representation.
void set_cmdRegOut_OutputPort(FwIndexType portNum, Fw::InputCmdRegPort *port)
Connect port to cmdRegOut[portNum].
Dispatches a sequence to the first available sequencer.
static constexpr FwIndexType getNum_seqRunIn_InputPorts()
Message will return with status when space is unavailable.
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 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_WARNING_HI_ConflictingSequenceStarted(U16 idx, const Fw::StringBase &newSequence, const Fw::StringBase &sequenceInInternalState) const
Log event ConflictingSequenceStarted.
virtual void seqRunIn_handler(FwIndexType portNum, const Fw::StringBase &filename, const Svc::SeqArgs &args)=0
Handler for input port seqRunIn.
static constexpr FwIndexType getNum_seqStartIn_InputPorts()
void tlmWrite_dispatchedCount(U32 arg, Fw::Time _tlmTime=Fw::Time()) const
void set_timeCaller_OutputPort(FwIndexType portNum, Fw::InputTimePort *port)
Connect port to timeCaller[portNum].
Logs via Events the state of each connected command sequencer.
void addCallPort(InputCmdResponsePort *callPort)
Register an input port.
message to exit active component task
SerializeStatus serializeTo(SerialBufferBase &buffer, Endianness mode=Endianness::BIG) const override
Serialize the contents of this object to a buffer.