9 #if FW_ENABLE_TEXT_LOGGING 19 COMPCMDSTAT_CMDRESPONSE,
26 CMD_CMD_CLEAR_TRACKING,
41 class ComponentIpcSerializableBuffer :
51 MAX_DATA_SIZE =
sizeof(BuffUnion),
53 SERIALIZATION_SIZE = DATA_OFFSET + MAX_DATA_SIZE
57 return sizeof(m_buff);
64 const U8* getBuffAddr()
const {
70 U8 m_buff[SERIALIZATION_SIZE];
88 #if !FW_DIRECT_PORT_CALLS 95 this->m_CmdDisp_InputPort[port].
init();
100 this->m_CmdDisp_InputPort[port].
setPortNum(port);
102 #if FW_OBJECT_NAMES == 1 106 this->m_objName.toChar(),
109 this->m_CmdDisp_InputPort[port].setObjName(portName.
toChar());
114 #if !FW_DIRECT_PORT_CALLS 121 this->m_compCmdReg_InputPort[port].
init();
126 this->m_compCmdReg_InputPort[port].
setPortNum(port);
128 #if FW_OBJECT_NAMES == 1 132 this->m_objName.toChar(),
135 this->m_compCmdReg_InputPort[port].setObjName(portName.
toChar());
140 #if !FW_DIRECT_PORT_CALLS 147 this->m_compCmdStat_InputPort[port].
init();
152 this->m_compCmdStat_InputPort[port].
setPortNum(port);
154 #if FW_OBJECT_NAMES == 1 158 this->m_objName.toChar(),
161 this->m_compCmdStat_InputPort[port].setObjName(portName.
toChar());
166 #if !FW_DIRECT_PORT_CALLS 173 this->m_pingIn_InputPort[port].
init();
178 this->m_pingIn_InputPort[port].
setPortNum(port);
180 #if FW_OBJECT_NAMES == 1 184 this->m_objName.toChar(),
187 this->m_pingIn_InputPort[port].setObjName(portName.
toChar());
192 #if !FW_DIRECT_PORT_CALLS 199 this->m_run_InputPort[port].
init();
206 #if FW_OBJECT_NAMES == 1 210 this->m_objName.toChar(),
213 this->m_run_InputPort[port].setObjName(portName.
toChar());
218 #if !FW_DIRECT_PORT_CALLS 225 this->m_seqCmdBuff_InputPort[port].
init();
230 this->m_seqCmdBuff_InputPort[port].
setPortNum(port);
232 #if FW_OBJECT_NAMES == 1 236 this->m_objName.toChar(),
239 this->m_seqCmdBuff_InputPort[port].setObjName(portName.
toChar());
244 #if !FW_DIRECT_PORT_CALLS 251 this->m_CmdReg_OutputPort[port].
init();
253 #if FW_OBJECT_NAMES == 1 257 this->m_objName.toChar(),
260 this->m_CmdReg_OutputPort[port].setObjName(portName.
toChar());
265 #if !FW_DIRECT_PORT_CALLS 272 this->m_CmdStatus_OutputPort[port].
init();
274 #if FW_OBJECT_NAMES == 1 278 this->m_objName.toChar(),
281 this->m_CmdStatus_OutputPort[port].setObjName(portName.
toChar());
286 #if !FW_DIRECT_PORT_CALLS 293 this->m_Log_OutputPort[port].
init();
295 #if FW_OBJECT_NAMES == 1 299 this->m_objName.toChar(),
302 this->m_Log_OutputPort[port].setObjName(portName.
toChar());
307 #if !FW_DIRECT_PORT_CALLS && FW_ENABLE_TEXT_LOGGING 311 port < static_cast<FwIndexType>(this->getNum_LogText_OutputPorts());
314 this->m_LogText_OutputPort[port].
init();
316 #if FW_OBJECT_NAMES == 1 320 this->m_objName.toChar(),
323 this->m_LogText_OutputPort[port].setObjName(portName.
toChar());
328 #if !FW_DIRECT_PORT_CALLS 335 this->m_Time_OutputPort[port].
init();
337 #if FW_OBJECT_NAMES == 1 341 this->m_objName.toChar(),
344 this->m_Time_OutputPort[port].setObjName(portName.
toChar());
349 #if !FW_DIRECT_PORT_CALLS 356 this->m_Tlm_OutputPort[port].
init();
358 #if FW_OBJECT_NAMES == 1 362 this->m_objName.toChar(),
365 this->m_Tlm_OutputPort[port].setObjName(portName.
toChar());
370 #if !FW_DIRECT_PORT_CALLS 377 this->m_compCmdSend_OutputPort[port].
init();
379 #if FW_OBJECT_NAMES == 1 383 this->m_objName.toChar(),
386 this->m_compCmdSend_OutputPort[port].setObjName(portName.
toChar());
391 #if !FW_DIRECT_PORT_CALLS 398 this->m_pingOut_OutputPort[port].
init();
400 #if FW_OBJECT_NAMES == 1 404 this->m_objName.toChar(),
407 this->m_pingOut_OutputPort[port].setObjName(portName.
toChar());
412 #if !FW_DIRECT_PORT_CALLS 419 this->m_seqCmdStatus_OutputPort[port].
init();
421 #if FW_OBJECT_NAMES == 1 425 this->m_objName.toChar(),
428 this->m_seqCmdStatus_OutputPort[port].setObjName(portName.
toChar());
436 static_cast<FwSizeType>(ComponentIpcSerializableBuffer::SERIALIZATION_SIZE)
440 static_cast<FwAssertArgType>(qStat)
444 #if !FW_DIRECT_PORT_CALLS 455 static_cast<FwAssertArgType>(portNum)
458 return &this->m_CmdDisp_InputPort[portNum];
463 #if !FW_DIRECT_PORT_CALLS 474 static_cast<FwAssertArgType>(portNum)
477 return &this->m_compCmdReg_InputPort[portNum];
485 static_cast<FwAssertArgType>(portNum)
488 return &this->m_compCmdStat_InputPort[portNum];
496 static_cast<FwAssertArgType>(portNum)
499 return &this->m_pingIn_InputPort[portNum];
507 static_cast<FwAssertArgType>(portNum)
510 return &this->m_run_InputPort[portNum];
518 static_cast<FwAssertArgType>(portNum)
521 return &this->m_seqCmdBuff_InputPort[portNum];
526 #if !FW_DIRECT_PORT_CALLS 540 static_cast<FwAssertArgType>(portNum)
543 this->m_CmdReg_OutputPort[portNum].
addCallPort(port);
554 static_cast<FwAssertArgType>(portNum)
557 this->m_CmdStatus_OutputPort[portNum].
addCallPort(port);
568 static_cast<FwAssertArgType>(portNum)
574 #if FW_ENABLE_TEXT_LOGGING == 1 576 void CommandDispatcherComponentBase ::
577 set_LogText_OutputPort(
583 (0 <= portNum) && (portNum < this->getNum_LogText_OutputPorts()),
584 static_cast<FwAssertArgType>(portNum)
587 this->m_LogText_OutputPort[portNum].addCallPort(port);
600 static_cast<FwAssertArgType>(portNum)
603 this->m_Time_OutputPort[portNum].
addCallPort(port);
614 static_cast<FwAssertArgType>(portNum)
622 #if !FW_DIRECT_PORT_CALLS 636 static_cast<FwAssertArgType>(portNum)
639 this->m_compCmdSend_OutputPort[portNum].
addCallPort(port);
650 static_cast<FwAssertArgType>(portNum)
653 this->m_pingOut_OutputPort[portNum].
addCallPort(port);
664 static_cast<FwAssertArgType>(portNum)
667 this->m_seqCmdStatus_OutputPort[portNum].
addCallPort(port);
672 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION 681 Fw::InputSerializePort* port
686 static_cast<FwAssertArgType>(portNum)
689 this->m_CmdReg_OutputPort[portNum].registerSerialPort(port);
695 Fw::InputSerializePort* port
700 static_cast<FwAssertArgType>(portNum)
703 this->m_CmdStatus_OutputPort[portNum].registerSerialPort(port);
709 Fw::InputSerializePort* port
714 static_cast<FwAssertArgType>(portNum)
717 this->m_Log_OutputPort[portNum].registerSerialPort(port);
720 #if FW_ENABLE_TEXT_LOGGING == 1 722 void CommandDispatcherComponentBase ::
723 set_LogText_OutputPort(
725 Fw::InputSerializePort* port
729 (0 <= portNum) && (portNum < this->getNum_LogText_OutputPorts()),
730 static_cast<FwAssertArgType>(portNum)
733 this->m_LogText_OutputPort[portNum].registerSerialPort(port);
741 Fw::InputSerializePort* port
746 static_cast<FwAssertArgType>(portNum)
749 this->m_Time_OutputPort[portNum].registerSerialPort(port);
755 Fw::InputSerializePort* port
760 static_cast<FwAssertArgType>(portNum)
763 this->m_Tlm_OutputPort[portNum].registerSerialPort(port);
768 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION 777 Fw::InputSerializePort* port
782 static_cast<FwAssertArgType>(portNum)
785 this->m_compCmdSend_OutputPort[portNum].registerSerialPort(port);
791 Fw::InputSerializePort* port
796 static_cast<FwAssertArgType>(portNum)
799 this->m_pingOut_OutputPort[portNum].registerSerialPort(port);
805 Fw::InputSerializePort* port
810 static_cast<FwAssertArgType>(portNum)
813 this->m_seqCmdStatus_OutputPort[portNum].registerSerialPort(port);
854 Fw::ActiveComponentBase(compName)
856 this->m_CommandDroppedQueueOverflowThrottle = 0;
865 #if !FW_DIRECT_PORT_CALLS 876 static_cast<FwAssertArgType>(portNum)
879 return this->m_CmdReg_OutputPort[portNum].
isConnected();
887 static_cast<FwAssertArgType>(portNum)
890 return this->m_CmdStatus_OutputPort[portNum].
isConnected();
898 static_cast<FwAssertArgType>(portNum)
901 return this->m_Log_OutputPort[portNum].
isConnected();
904 #if FW_ENABLE_TEXT_LOGGING == 1 906 bool CommandDispatcherComponentBase ::
907 isConnected_LogText_OutputPort(
FwIndexType portNum)
const 910 (0 <= portNum) && (portNum < this->getNum_LogText_OutputPorts()),
911 static_cast<FwAssertArgType>(portNum)
914 return this->m_LogText_OutputPort[portNum].isConnected();
924 static_cast<FwAssertArgType>(portNum)
927 return this->m_Time_OutputPort[portNum].
isConnected();
935 static_cast<FwAssertArgType>(portNum)
938 return this->m_Tlm_OutputPort[portNum].
isConnected();
943 #if !FW_DIRECT_PORT_CALLS 954 static_cast<FwAssertArgType>(portNum)
957 return this->m_compCmdSend_OutputPort[portNum].
isConnected();
965 static_cast<FwAssertArgType>(portNum)
968 return this->m_pingOut_OutputPort[portNum].
isConnected();
976 static_cast<FwAssertArgType>(portNum)
979 return this->m_seqCmdStatus_OutputPort[portNum].
isConnected();
1000 FW_ASSERT(opCode >= idBase, static_cast<FwAssertArgType>(opCode), static_cast<FwAssertArgType>(idBase));
1003 switch (opCode - idBase) {
1060 static_cast<FwAssertArgType>(portNum)
1087 static_cast<FwAssertArgType>(portNum)
1097 ComponentIpcSerializableBuffer msg;
1101 _status = msg.serializeFrom(
1102 static_cast<FwEnumStoreType>(COMPCMDSTAT_CMDRESPONSE)
1106 static_cast<FwAssertArgType>(_status)
1110 _status = msg.serializeFrom(portNum);
1113 static_cast<FwAssertArgType>(_status)
1117 _status = msg.serializeFrom(opCode);
1120 static_cast<FwAssertArgType>(_status)
1124 _status = msg.serializeFrom(cmdSeq);
1127 static_cast<FwAssertArgType>(_status)
1131 _status = msg.serializeFrom(response);
1134 static_cast<FwAssertArgType>(_status)
1143 static_cast<FwAssertArgType>(qStatus)
1156 static_cast<FwAssertArgType>(portNum)
1164 ComponentIpcSerializableBuffer msg;
1168 _status = msg.serializeFrom(
1169 static_cast<FwEnumStoreType>(PINGIN_PING)
1173 static_cast<FwAssertArgType>(_status)
1177 _status = msg.serializeFrom(portNum);
1180 static_cast<FwAssertArgType>(_status)
1184 _status = msg.serializeFrom(key);
1187 static_cast<FwAssertArgType>(_status)
1196 static_cast<FwAssertArgType>(qStatus)
1209 static_cast<FwAssertArgType>(portNum)
1217 ComponentIpcSerializableBuffer msg;
1221 _status = msg.serializeFrom(
1222 static_cast<FwEnumStoreType>(RUN_SCHED)
1226 static_cast<FwAssertArgType>(_status)
1230 _status = msg.serializeFrom(portNum);
1233 static_cast<FwAssertArgType>(_status)
1237 _status = msg.serializeFrom(context);
1240 static_cast<FwAssertArgType>(_status)
1249 static_cast<FwAssertArgType>(qStatus)
1263 static_cast<FwAssertArgType>(portNum)
1272 ComponentIpcSerializableBuffer msg;
1276 _status = msg.serializeFrom(
1277 static_cast<FwEnumStoreType>(SEQCMDBUFF_COM)
1281 static_cast<FwAssertArgType>(_status)
1285 _status = msg.serializeFrom(portNum);
1288 static_cast<FwAssertArgType>(_status)
1292 _status = msg.serializeFrom(data);
1295 static_cast<FwAssertArgType>(_status)
1299 _status = msg.serializeFrom(context);
1302 static_cast<FwAssertArgType>(_status)
1309 if (qStatus == Os::Queue::Status::FULL) {
1316 static_cast<FwAssertArgType>(qStatus)
1367 #if !FW_DIRECT_PORT_CALLS 1383 static_cast<FwAssertArgType>(portNum)
1387 this->m_compCmdSend_OutputPort[portNum].isConnected(),
1388 static_cast<FwAssertArgType>(portNum)
1390 this->m_compCmdSend_OutputPort[portNum].
invoke(
1405 static_cast<FwAssertArgType>(portNum)
1409 this->m_pingOut_OutputPort[portNum].isConnected(),
1410 static_cast<FwAssertArgType>(portNum)
1412 this->m_pingOut_OutputPort[portNum].
invoke(
1427 static_cast<FwAssertArgType>(portNum)
1431 this->m_seqCmdStatus_OutputPort[portNum].isConnected(),
1432 static_cast<FwAssertArgType>(portNum)
1434 this->m_seqCmdStatus_OutputPort[portNum].
invoke(
1455 this->CmdStatus_out(0, opCode, cmdSeq, response);
1476 ComponentIpcSerializableBuffer msg;
1480 _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_CMD_NO_OP));
1483 static_cast<FwAssertArgType>(_status)
1489 _status = msg.serializeFrom(port);
1492 static_cast<FwAssertArgType>(_status)
1495 _status = msg.serializeFrom(opCode);
1498 static_cast<FwAssertArgType>(_status)
1501 _status = msg.serializeFrom(cmdSeq);
1504 static_cast<FwAssertArgType>(_status)
1507 _status = msg.serializeFrom(args);
1510 static_cast<FwAssertArgType>(_status)
1519 static_cast<FwAssertArgType>(qStatus)
1535 ComponentIpcSerializableBuffer msg;
1539 _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_CMD_NO_OP_STRING));
1542 static_cast<FwAssertArgType>(_status)
1548 _status = msg.serializeFrom(port);
1551 static_cast<FwAssertArgType>(_status)
1554 _status = msg.serializeFrom(opCode);
1557 static_cast<FwAssertArgType>(_status)
1560 _status = msg.serializeFrom(cmdSeq);
1563 static_cast<FwAssertArgType>(_status)
1566 _status = msg.serializeFrom(args);
1569 static_cast<FwAssertArgType>(_status)
1578 static_cast<FwAssertArgType>(qStatus)
1594 ComponentIpcSerializableBuffer msg;
1598 _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_CMD_TEST_CMD_1));
1601 static_cast<FwAssertArgType>(_status)
1607 _status = msg.serializeFrom(port);
1610 static_cast<FwAssertArgType>(_status)
1613 _status = msg.serializeFrom(opCode);
1616 static_cast<FwAssertArgType>(_status)
1619 _status = msg.serializeFrom(cmdSeq);
1622 static_cast<FwAssertArgType>(_status)
1625 _status = msg.serializeFrom(args);
1628 static_cast<FwAssertArgType>(_status)
1637 static_cast<FwAssertArgType>(qStatus)
1653 ComponentIpcSerializableBuffer msg;
1657 _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_CMD_CLEAR_TRACKING));
1660 static_cast<FwAssertArgType>(_status)
1666 _status = msg.serializeFrom(port);
1669 static_cast<FwAssertArgType>(_status)
1672 _status = msg.serializeFrom(opCode);
1675 static_cast<FwAssertArgType>(_status)
1678 _status = msg.serializeFrom(cmdSeq);
1681 static_cast<FwAssertArgType>(_status)
1684 _status = msg.serializeFrom(args);
1687 static_cast<FwAssertArgType>(_status)
1696 static_cast<FwAssertArgType>(qStatus)
1766 this->Time_out(0, _logTime);
1776 #if FW_AMPCS_COMPATIBLE 1781 static_cast<FwAssertArgType>(_status)
1785 #if FW_AMPCS_COMPATIBLE 1792 static_cast<FwAssertArgType>(_status)
1798 static_cast<FwAssertArgType>(_status)
1801 #if FW_AMPCS_COMPATIBLE 1804 static_cast<U8>(
sizeof(I32))
1808 static_cast<FwAssertArgType>(_status)
1814 static_cast<FwAssertArgType>(_status)
1817 #if FW_AMPCS_COMPATIBLE 1820 static_cast<U8>(
sizeof(I32))
1824 static_cast<FwAssertArgType>(_status)
1830 static_cast<FwAssertArgType>(_status)
1843 #if FW_ENABLE_TEXT_LOGGING 1844 if (this->isConnected_LogText_OutputPort(0)) {
1845 #if FW_OBJECT_NAMES == 1 1846 const char* _formatString =
1847 "(%s) %s: Opcode 0x%" PRIx32
" registered to port %" PRIi32
" slot %" PRIi32
"";
1849 const char* _formatString =
1850 "%s: Opcode 0x%" PRIx32
" registered to port %" PRIi32
" slot %" PRIi32
"";
1857 this->m_objName.toChar(),
1859 "OpCodeRegistered ",
1885 this->Time_out(0, _logTime);
1895 #if FW_AMPCS_COMPATIBLE 1900 static_cast<FwAssertArgType>(_status)
1904 #if FW_AMPCS_COMPATIBLE 1911 static_cast<FwAssertArgType>(_status)
1917 static_cast<FwAssertArgType>(_status)
1920 #if FW_AMPCS_COMPATIBLE 1923 static_cast<U8>(
sizeof(I32))
1927 static_cast<FwAssertArgType>(_status)
1933 static_cast<FwAssertArgType>(_status)
1946 #if FW_ENABLE_TEXT_LOGGING 1947 if (this->isConnected_LogText_OutputPort(0)) {
1948 #if FW_OBJECT_NAMES == 1 1949 const char* _formatString =
1950 "(%s) %s: Opcode 0x%" PRIx32
" dispatched to port %" PRIi32
"";
1952 const char* _formatString =
1953 "%s: Opcode 0x%" PRIx32
" dispatched to port %" PRIi32
"";
1960 this->m_objName.toChar(),
1962 "OpCodeDispatched ",
1984 this->Time_out(0, _logTime);
1994 #if FW_AMPCS_COMPATIBLE 1999 static_cast<FwAssertArgType>(_status)
2003 #if FW_AMPCS_COMPATIBLE 2010 static_cast<FwAssertArgType>(_status)
2016 static_cast<FwAssertArgType>(_status)
2029 #if FW_ENABLE_TEXT_LOGGING 2030 if (this->isConnected_LogText_OutputPort(0)) {
2031 #if FW_OBJECT_NAMES == 1 2032 const char* _formatString =
2033 "(%s) %s: Opcode 0x%" PRIx32
" completed";
2035 const char* _formatString =
2036 "%s: Opcode 0x%" PRIx32
" completed";
2043 this->m_objName.toChar(),
2069 this->Time_out(0, _logTime);
2079 #if FW_AMPCS_COMPATIBLE 2084 static_cast<FwAssertArgType>(_status)
2088 #if FW_AMPCS_COMPATIBLE 2095 static_cast<FwAssertArgType>(_status)
2101 static_cast<FwAssertArgType>(_status)
2104 #if FW_AMPCS_COMPATIBLE 2111 static_cast<FwAssertArgType>(_status)
2117 static_cast<FwAssertArgType>(_status)
2130 #if FW_ENABLE_TEXT_LOGGING 2131 if (this->isConnected_LogText_OutputPort(0)) {
2132 #if FW_OBJECT_NAMES == 1 2133 const char* _formatString =
2134 "(%s) %s: Opcode 0x%" PRIx32
" completed with error %s";
2136 const char* _formatString =
2137 "%s: Opcode 0x%" PRIx32
" completed with error %s";
2141 error.toString(errorStr);
2147 this->m_objName.toChar(),
2171 this->Time_out(0, _logTime);
2181 #if FW_AMPCS_COMPATIBLE 2186 static_cast<FwAssertArgType>(_status)
2190 #if FW_AMPCS_COMPATIBLE 2197 static_cast<FwAssertArgType>(_status)
2203 static_cast<FwAssertArgType>(_status)
2216 #if FW_ENABLE_TEXT_LOGGING 2217 if (this->isConnected_LogText_OutputPort(0)) {
2218 #if FW_OBJECT_NAMES == 1 2219 const char* _formatString =
2220 "(%s) %s: Received malformed command packet. Status: %s";
2222 const char* _formatString =
2223 "%s: Received malformed command packet. Status: %s";
2227 Status.toString(StatusStr);
2233 this->m_objName.toChar(),
2235 "MalformedCommand ",
2256 this->Time_out(0, _logTime);
2266 #if FW_AMPCS_COMPATIBLE 2271 static_cast<FwAssertArgType>(_status)
2275 #if FW_AMPCS_COMPATIBLE 2282 static_cast<FwAssertArgType>(_status)
2288 static_cast<FwAssertArgType>(_status)
2301 #if FW_ENABLE_TEXT_LOGGING 2302 if (this->isConnected_LogText_OutputPort(0)) {
2303 #if FW_OBJECT_NAMES == 1 2304 const char* _formatString =
2305 "(%s) %s: Invalid opcode 0x%" PRIx32
" received";
2307 const char* _formatString =
2308 "%s: Invalid opcode 0x%" PRIx32
" received";
2315 this->m_objName.toChar(),
2338 this->Time_out(0, _logTime);
2348 #if FW_AMPCS_COMPATIBLE 2353 static_cast<FwAssertArgType>(_status)
2357 #if FW_AMPCS_COMPATIBLE 2364 static_cast<FwAssertArgType>(_status)
2370 static_cast<FwAssertArgType>(_status)
2383 #if FW_ENABLE_TEXT_LOGGING 2384 if (this->isConnected_LogText_OutputPort(0)) {
2385 #if FW_OBJECT_NAMES == 1 2386 const char* _formatString =
2387 "(%s) %s: Too many outstanding commands. opcode=0x%" PRIx32
"";
2389 const char* _formatString =
2390 "%s: Too many outstanding commands. opcode=0x%" PRIx32
"";
2397 this->m_objName.toChar(),
2420 this->Time_out(0, _logTime);
2429 #if FW_AMPCS_COMPATIBLE 2435 static_cast<FwAssertArgType>(_status)
2449 #if FW_ENABLE_TEXT_LOGGING 2450 if (this->isConnected_LogText_OutputPort(0)) {
2451 #if FW_OBJECT_NAMES == 1 2452 const char* _formatString =
2453 "(%s) %s: Received a NO-OP command";
2455 const char* _formatString =
2456 "%s: Received a NO-OP command";
2463 this->m_objName.toChar(),
2485 this->Time_out(0, _logTime);
2495 #if FW_AMPCS_COMPATIBLE 2500 static_cast<FwAssertArgType>(_status)
2510 static_cast<FwAssertArgType>(_status)
2523 #if FW_ENABLE_TEXT_LOGGING 2524 if (this->isConnected_LogText_OutputPort(0)) {
2525 #if FW_OBJECT_NAMES == 1 2526 const char* _formatString =
2527 "(%s) %s: Received a NO-OP string=%s";
2529 const char* _formatString =
2530 "%s: Received a NO-OP string=%s";
2537 this->m_objName.toChar(),
2539 "NoOpStringReceived ",
2564 this->Time_out(0, _logTime);
2574 #if FW_AMPCS_COMPATIBLE 2579 static_cast<FwAssertArgType>(_status)
2583 #if FW_AMPCS_COMPATIBLE 2586 static_cast<U8>(
sizeof(I32))
2590 static_cast<FwAssertArgType>(_status)
2596 static_cast<FwAssertArgType>(_status)
2599 #if FW_AMPCS_COMPATIBLE 2602 static_cast<U8>(
sizeof(
F32))
2606 static_cast<FwAssertArgType>(_status)
2612 static_cast<FwAssertArgType>(_status)
2615 #if FW_AMPCS_COMPATIBLE 2618 static_cast<U8>(
sizeof(
U8))
2622 static_cast<FwAssertArgType>(_status)
2628 static_cast<FwAssertArgType>(_status)
2641 #if FW_ENABLE_TEXT_LOGGING 2642 if (this->isConnected_LogText_OutputPort(0)) {
2643 #if FW_OBJECT_NAMES == 1 2644 const char* _formatString =
2645 "(%s) %s: TEST_CMD_1 args: I32: %" PRIi32
", F32: %f, U8: %" PRIu8
"";
2647 const char* _formatString =
2648 "%s: TEST_CMD_1 args: I32: %" PRIi32
", F32: %f, U8: %" PRIu8
"";
2655 this->m_objName.toChar(),
2659 static_cast<F64>(arg2),
2683 this->Time_out(0, _logTime);
2693 #if FW_AMPCS_COMPATIBLE 2698 static_cast<FwAssertArgType>(_status)
2702 #if FW_AMPCS_COMPATIBLE 2709 static_cast<FwAssertArgType>(_status)
2715 static_cast<FwAssertArgType>(_status)
2718 #if FW_AMPCS_COMPATIBLE 2721 static_cast<U8>(
sizeof(I32))
2725 static_cast<FwAssertArgType>(_status)
2731 static_cast<FwAssertArgType>(_status)
2744 #if FW_ENABLE_TEXT_LOGGING 2745 if (this->isConnected_LogText_OutputPort(0)) {
2746 #if FW_OBJECT_NAMES == 1 2747 const char* _formatString =
2748 "(%s) %s: Opcode 0x%" PRIx32
" is already registered to port %" PRIi32
"";
2750 const char* _formatString =
2751 "%s: Opcode 0x%" PRIx32
" is already registered to port %" PRIi32
"";
2758 this->m_objName.toChar(),
2760 "OpCodeReregistered ",
2787 this->m_CommandDroppedQueueOverflowThrottle++;
2793 this->Time_out(0, _logTime);
2803 #if FW_AMPCS_COMPATIBLE 2808 static_cast<FwAssertArgType>(_status)
2812 #if FW_AMPCS_COMPATIBLE 2819 static_cast<FwAssertArgType>(_status)
2825 static_cast<FwAssertArgType>(_status)
2828 #if FW_AMPCS_COMPATIBLE 2831 static_cast<U8>(
sizeof(U32))
2835 static_cast<FwAssertArgType>(_status)
2841 static_cast<FwAssertArgType>(_status)
2854 #if FW_ENABLE_TEXT_LOGGING 2855 if (this->isConnected_LogText_OutputPort(0)) {
2856 #if FW_OBJECT_NAMES == 1 2857 const char* _formatString =
2858 "(%s) %s: Opcode 0x%" PRIx32
" was dropped due to buffer overflow and not processed. Context %" PRIu32
"";
2860 const char* _formatString =
2861 "%s: Opcode 0x%" PRIx32
" was dropped due to buffer overflow and not processed. Context %" PRIu32
"";
2868 this->m_objName.toChar(),
2870 "CommandDroppedQueueOverflow ",
2894 this->m_CommandDroppedQueueOverflowThrottle = 0;
2913 this->Time_out(0, _tlmTime);
2939 if (not this->m_first_update_CommandsDispatched) {
2941 if (arg == this->m_last_CommandsDispatched) {
2945 this->m_last_CommandsDispatched = arg;
2949 this->m_first_update_CommandsDispatched =
false;
2950 this->m_last_CommandsDispatched = arg;
2958 static_cast<FwAssertArgType>(_stat)
2976 if (not this->m_first_update_CommandErrors) {
2978 if (arg == this->m_last_CommandErrors) {
2982 this->m_last_CommandErrors = arg;
2986 this->m_first_update_CommandErrors =
false;
2987 this->m_last_CommandErrors = arg;
2995 static_cast<FwAssertArgType>(_stat)
3013 if (not this->m_first_update_CommandsDropped) {
3015 if (arg == this->m_last_CommandsDropped) {
3019 this->m_last_CommandsDropped = arg;
3023 this->m_first_update_CommandsDropped =
false;
3024 this->m_last_CommandsDropped = arg;
3032 static_cast<FwAssertArgType>(_stat)
3052 this->Time_out(0, _time);
3070 this->m_guardedPortMutex.
lock();
3076 this->m_guardedPortMutex.
unLock();
3086 ComponentIpcSerializableBuffer _msg;
3096 static_cast<FwAssertArgType>(_msgStatus)
3106 static_cast<FwAssertArgType>(_deserStatus)
3109 MsgTypeEnum _msgType =
static_cast<MsgTypeEnum
>(_desMsg);
3111 if (_msgType == COMMANDDISPATCHER_COMPONENT_EXIT) {
3116 _deserStatus = _msg.deserializeTo(portNum);
3119 static_cast<FwAssertArgType>(_deserStatus)
3124 case COMPCMDSTAT_CMDRESPONSE: {
3127 _deserStatus = _msg.deserializeTo(opCode);
3130 static_cast<FwAssertArgType>(_deserStatus)
3135 _deserStatus = _msg.deserializeTo(cmdSeq);
3138 static_cast<FwAssertArgType>(_deserStatus)
3143 _deserStatus = _msg.deserializeTo(response);
3146 static_cast<FwAssertArgType>(_deserStatus)
3163 _deserStatus = _msg.deserializeTo(key);
3166 static_cast<FwAssertArgType>(_deserStatus)
3181 _deserStatus = _msg.deserializeTo(context);
3184 static_cast<FwAssertArgType>(_deserStatus)
3196 case SEQCMDBUFF_COM: {
3199 _deserStatus = _msg.deserializeTo(data);
3202 static_cast<FwAssertArgType>(_deserStatus)
3207 _deserStatus = _msg.deserializeTo(context);
3210 static_cast<FwAssertArgType>(_deserStatus)
3223 case CMD_CMD_NO_OP: {
3226 _deserStatus = _msg.deserializeTo(_opCode);
3229 static_cast<FwAssertArgType>(_deserStatus)
3234 _deserStatus = _msg.deserializeTo(_cmdSeq);
3237 static_cast<FwAssertArgType>(_deserStatus)
3242 _deserStatus = _msg.deserializeTo(args);
3245 static_cast<FwAssertArgType>(_deserStatus)
3253 #if FW_CMD_CHECK_RESIDUAL 3270 case CMD_CMD_NO_OP_STRING: {
3273 _deserStatus = _msg.deserializeTo(_opCode);
3276 static_cast<FwAssertArgType>(_deserStatus)
3281 _deserStatus = _msg.deserializeTo(_cmdSeq);
3284 static_cast<FwAssertArgType>(_deserStatus)
3289 _deserStatus = _msg.deserializeTo(args);
3292 static_cast<FwAssertArgType>(_deserStatus)
3315 #if FW_CMD_CHECK_RESIDUAL 3335 case CMD_CMD_TEST_CMD_1: {
3338 _deserStatus = _msg.deserializeTo(_opCode);
3341 static_cast<FwAssertArgType>(_deserStatus)
3346 _deserStatus = _msg.deserializeTo(_cmdSeq);
3349 static_cast<FwAssertArgType>(_deserStatus)
3354 _deserStatus = _msg.deserializeTo(args);
3357 static_cast<FwAssertArgType>(_deserStatus)
3410 #if FW_CMD_CHECK_RESIDUAL 3432 case CMD_CMD_CLEAR_TRACKING: {
3435 _deserStatus = _msg.deserializeTo(_opCode);
3438 static_cast<FwAssertArgType>(_deserStatus)
3443 _deserStatus = _msg.deserializeTo(_cmdSeq);
3446 static_cast<FwAssertArgType>(_deserStatus)
3451 _deserStatus = _msg.deserializeTo(args);
3454 static_cast<FwAssertArgType>(_deserStatus)
3462 #if FW_CMD_CHECK_RESIDUAL 3489 void CommandDispatcherComponentBase ::
3500 compPtr->CmdDisp_handlerBase(
3512 void CommandDispatcherComponentBase ::
3521 compPtr->compCmdReg_handlerBase(
3527 void CommandDispatcherComponentBase ::
3538 compPtr->compCmdStat_handlerBase(
3546 void CommandDispatcherComponentBase ::
3555 compPtr->pingIn_handlerBase(
3561 void CommandDispatcherComponentBase ::
3570 compPtr->run_handlerBase(
3576 void CommandDispatcherComponentBase ::
3586 compPtr->seqCmdBuff_handlerBase(
3593 #if !FW_DIRECT_PORT_CALLS 3599 void CommandDispatcherComponentBase ::
3607 static_cast<FwAssertArgType>(portNum)
3611 this->m_CmdReg_OutputPort[portNum].isConnected(),
3612 static_cast<FwAssertArgType>(portNum)
3614 this->m_CmdReg_OutputPort[portNum].
invoke(
3619 void CommandDispatcherComponentBase ::
3629 static_cast<FwAssertArgType>(portNum)
3633 this->m_CmdStatus_OutputPort[portNum].isConnected(),
3634 static_cast<FwAssertArgType>(portNum)
3636 this->m_CmdStatus_OutputPort[portNum].
invoke(
3643 void CommandDispatcherComponentBase ::
3654 static_cast<FwAssertArgType>(portNum)
3658 this->m_Log_OutputPort[portNum].isConnected(),
3659 static_cast<FwAssertArgType>(portNum)
3661 this->m_Log_OutputPort[portNum].
invoke(
3669 #if FW_ENABLE_TEXT_LOGGING 3671 void CommandDispatcherComponentBase ::
3681 (0 <= portNum) && (portNum < this->getNum_LogText_OutputPorts()),
3682 static_cast<FwAssertArgType>(portNum)
3686 this->m_LogText_OutputPort[portNum].isConnected(),
3687 static_cast<FwAssertArgType>(portNum)
3689 this->m_LogText_OutputPort[portNum].invoke(
3699 void CommandDispatcherComponentBase ::
3707 static_cast<FwAssertArgType>(portNum)
3711 this->m_Time_OutputPort[portNum].isConnected(),
3712 static_cast<FwAssertArgType>(portNum)
3714 this->m_Time_OutputPort[portNum].
invoke(
3719 void CommandDispatcherComponentBase ::
3729 static_cast<FwAssertArgType>(portNum)
3733 this->m_Tlm_OutputPort[portNum].isConnected(),
3734 static_cast<FwAssertArgType>(portNum)
3736 this->m_Tlm_OutputPort[portNum].
invoke(
Serialization/Deserialization operation was successful.
Throttle reset count for CommandDroppedQueueOverflow.
void addCallPort(InputTimePort *callPort)
Register an input port.
void set_seqCmdStatus_OutputPort(FwIndexType portNum, Fw::InputCmdResponsePort *port)
Connect port to seqCmdStatus[portNum].
static constexpr FwIndexType getNum_run_InputPorts()
static constexpr FwSizeType CAPACITY
virtual void CMD_NO_OP_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CMD_NO_OP.
void seqCmdStatus_out(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response) const
Invoke output port seqCmdStatus.
FwIdType FwOpcodeType
The type of a command opcode.
Channel ID for CommandsDispatched.
SerializeStatus serializeFrom(U8 val, Endianness mode=Endianness::BIG) override
Serialize an 8-bit unsigned integer value.
static constexpr FwIndexType getNum_Log_OutputPorts()
void invoke(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args) const
Invoke a port connection.
void log_ACTIVITY_HI_NoOpReceived() const
FwIdType getIdBase() const
PlatformSizeType FwSizeType
Svc::InputSchedPort * get_run_InputPort(FwIndexType portNum)
void pingIn_handlerBase(FwIndexType portNum, U32 key)
Handler base-class function for input port pingIn.
Channel ID for CommandErrors.
Status receive(U8 *destination, FwSizeType capacity, BlockingType blockType, FwSizeType &actualSize, FwQueuePriorityType &priority) override
receive a message from the queue through delegate
CommandDispatcherComponentBase(const char *compName="")
Construct CommandDispatcherComponentBase object.
void regCommands()
Register commands with the Command Dispatcher.
void log_WARNING_HI_CommandDroppedQueueOverflow(FwOpcodeType OpCode, U32 Context)
Status
status returned from the queue send function
Fw::InputCmdRegPort * get_compCmdReg_InputPort(FwIndexType portNum)
void CMD_NO_OP_STRING_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
virtual void run_preMsgHook(FwIndexType portNum, U32 context)
Pre-message hook for async input port run.
virtual void unLock()
Unlock the guarded mutex.
void unLock()
unlock the mutex and assert success
Fw::InputCmdPort * get_CmdDisp_InputPort(FwIndexType portNum)
void invoke(U32 key) const
Invoke a port connection.
virtual const CHAR * toChar() const =0
Convert to a C-style char*.
virtual void pingIn_preMsgHook(FwIndexType portNum, U32 key)
Pre-message hook for async input port pingIn.
virtual void compCmdStat_handler(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response)=0
Handler for input port compCmdStat.
bool isConnected_CmdReg_OutputPort(FwIndexType portNum) const
virtual void run_handler(FwIndexType portNum, U32 context)=0
Handler for input port run.
Received a malformed command packet.
virtual void CMD_NO_OP_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
void log_ACTIVITY_HI_TestCmd1Args(I32 arg1, F32 arg2, U8 arg3) const
void compCmdSend_out(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args) const
Invoke output port compCmdSend.
void init()
Initialization function.
Enum representing a command response.
static constexpr FwIndexType getNum_CmdDisp_InputPorts()
No time base has been established (Required)
void addCallPort(InputCmdRegPort *callPort)
Register an input port.
virtual void pingIn_handler(FwIndexType portNum, U32 key)=0
Handler for input port pingIn.
static constexpr FwIndexType getNum_pingIn_InputPorts()
bool isConnected_Time_OutputPort(FwIndexType portNum) const
Exceeded the number of commands that can be simultaneously executed.
static constexpr FwIndexType getNum_pingOut_OutputPorts()
void log_DIAGNOSTIC_OpCodeReregistered(FwOpcodeType Opcode, I32 port) const
Os::Queue m_queue
queue object for active component
static constexpr FwIndexType getNum_CmdStatus_OutputPorts()
Software diagnostic events.
Svc::InputPingPort * get_pingIn_InputPort(FwIndexType portNum)
static constexpr FwIndexType getNum_Tlm_OutputPorts()
void addCallPort(InputTlmPort *callPort)
Register an input port.
Received an invalid opcode.
void init()
Object initializer.
virtual void CMD_TEST_CMD_1_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CMD_TEST_CMD_1.
The size of the serial representation.
SerializeStatus
forward declaration for string
float F32
32-bit floating point
This log event message returns the TEST_CMD_1 arguments.
The command dispatcher has successfully received a NO-OP command.
Message will block until space is available.
void log_COMMAND_OpCodeCompleted(FwOpcodeType Opcode) const
FwIdType FwEventIdType
The type of an event identifier.
void log_ACTIVITY_HI_NoOpStringReceived(const Fw::StringBase &message) const
void tlmWrite_CommandsDispatched(U32 arg, Fw::Time _tlmTime=Fw::Time())
message to exit active component task
static constexpr FwIndexType getNum_CmdReg_OutputPorts()
void invoke(FwOpcodeType opCode) const
Invoke a port connection.
static constexpr FwSizeType CAPACITY
void set_CmdReg_OutputPort(FwIndexType portNum, Fw::InputCmdRegPort *port)
Connect port to CmdReg[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.
Os::Queue::Status createQueue(FwSizeType depth, FwSizeType msgSize)
static constexpr FwSizeType CAPACITY
#define FW_MIN(a, b)
MIN macro (deprecated in C++, use std::min)
An activity related to commanding.
void set_compCmdSend_OutputPort(FwIndexType portNum, Fw::InputCmdPort *port)
Connect port to compCmdSend[portNum].
void log_WARNING_HI_MalformedCommand(Fw::DeserialStatus Status) const
void init()
Initialization function.
void addCallPort(InputCmdPort *callPort)
Register an input port.
Op code completed with error event.
void tlmWrite_CommandsDropped(U32 arg, Fw::Time _tlmTime=Fw::Time())
void invoke(Fw::Time &time) const
Invoke a port connection.
virtual ~CommandDispatcherComponentBase()
Destroy CommandDispatcherComponentBase object.
Status
Generic OK/ERROR status.
Fw::InputCmdResponsePort * get_compCmdStat_InputPort(FwIndexType portNum)
Serializable::SizeType getDeserializeSizeLeft() const override
Get remaining deserialization buffer size.
void invoke(FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response) const
Invoke a port connection.
static constexpr FwIndexType getNum_Time_OutputPorts()
FwIdType FwChanIdType
The type of a telemetry channel identifier.
void addCallPort(InputPingPort *callPort)
Register an input port.
bool isConnected_compCmdSend_OutputPort(FwIndexType portNum) const
Status send(const U8 *buffer, FwSizeType size, FwQueuePriorityType priority, BlockingType blockType) override
send a message into the queue through delegate
virtual void CMD_TEST_CMD_1_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, I32 arg1, F32 arg2, U8 arg3)=0
void log_WARNING_HI_CommandDroppedQueueOverflow_ThrottleClear()
Reset throttle value for CommandDroppedQueueOverflow.
void init()
Initialization function.
virtual void compCmdReg_handler(FwIndexType portNum, FwOpcodeType opCode)=0
Handler for input port compCmdReg.
void resetDeser() override
Reset deserialization pointer to beginning of buffer.
void tlmWrite_CommandErrors(U32 arg, Fw::Time _tlmTime=Fw::Time())
void pingOut_out(FwIndexType portNum, U32 key) const
Invoke output port pingOut.
virtual void compCmdStat_preMsgHook(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response)
Pre-message hook for async input port compCmdStat.
A serious but recoverable event.
Errors dispatching messages.
void invoke(FwChanIdType id, Fw::Time &timeTag, Fw::TlmBuffer &val) const
Invoke a port connection.
static constexpr FwIndexType getNum_compCmdReg_InputPorts()
const char * toChar() const
Convert to a C-style char*.
Enum representing event severity.
void log_WARNING_HI_InvalidCommand(FwOpcodeType Opcode) const
void tlmWrite(FwChanIdType id, Fw::TlmBuffer &_tlmBuff, Fw::Time _tlmTime=Fw::Time()) const
FormatStatus format(const CHAR *formatString,...)
write formatted string to buffer
void init()
Initialization function.
void compCmdStat_handlerBase(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response)
Handler base-class function for input port compCmdStat.
bool isConnected_pingOut_OutputPort(FwIndexType portNum) const
uint8_t U8
8-bit unsigned integer
static constexpr FwSizeType CAPACITY
void CmdDisp_handlerBase(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
Handler base-class function for input port CmdDisp.
void log_COMMAND_OpCodeError(FwOpcodeType Opcode, Fw::CmdResponse error) const
Command failed to deserialize.
The command dispatcher has successfully received a NO-OP command from GUI with a string.
bool isConnected_Tlm_OutputPort(FwIndexType portNum) const
Channel ID for CommandsDropped.
PlatformQueuePriorityType FwQueuePriorityType
The type of queue priorities used.
Important informational events.
bool isConnected_Log_OutputPort(FwIndexType portNum) const
void invoke(FwEventIdType id, Fw::Time &timeTag, const Fw::LogSeverity &severity, Fw::LogBuffer &args) const
Invoke a port connection.
bool isConnected_CmdStatus_OutputPort(FwIndexType portNum) const
A message was sent requesting an exit of the loop.
PlatformIndexType FwIndexType
void run_handlerBase(FwIndexType portNum, U32 context)
Handler base-class function for input port run.
void log_DIAGNOSTIC_OpCodeRegistered(FwOpcodeType Opcode, I32 port, I32 slot) const
Log event OpCodeRegistered.
virtual void CMD_CLEAR_TRACKING_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CMD_CLEAR_TRACKING.
void set_Tlm_OutputPort(FwIndexType portNum, Fw::InputTlmPort *port)
Connect port to Tlm[portNum].
void CMD_CLEAR_TRACKING_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
double F64
64-bit floating point (double). Required for compiler-supplied double promotion.
bool isConnected_seqCmdStatus_OutputPort(FwIndexType portNum) const
void addCallPort(InputLogPort *callPort)
Register an input port.
void seqCmdBuff_handlerBase(FwIndexType portNum, Fw::ComBuffer &data, U32 context)
Handler base-class function for input port seqCmdBuff.
virtual void CMD_NO_OP_STRING_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdStringArg &arg1)=0
void init()
Initialization function.
virtual void CMD_NO_OP_STRING_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CMD_NO_OP_STRING.
RateGroupDivider component implementation.
message sent/received okay
SerializeStatus deserializeTo(U8 &val, Endianness mode=Endianness::BIG) override
Deserialize an 8-bit unsigned integer value.
virtual void seqCmdBuff_overflowHook(FwIndexType portNum, Fw::ComBuffer &data, U32 context)=0
Overflow hook for async input port seqCmdBuff.
virtual void CMD_CLEAR_TRACKING_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
static constexpr FwIndexType getNum_seqCmdBuff_InputPorts()
Message will return with status when space is unavailable.
void CMD_NO_OP_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
Implementation of malloc based allocator.
static constexpr FwIndexType getNum_compCmdSend_OutputPorts()
virtual void seqCmdBuff_handler(FwIndexType portNum, Fw::ComBuffer &data, U32 context)=0
Handler for input port seqCmdBuff.
Op code dispatched event.
static constexpr FwIndexType getNum_compCmdStat_InputPorts()
virtual void seqCmdBuff_preMsgHook(FwIndexType portNum, Fw::ComBuffer &data, U32 context)
Pre-message hook for async input port seqCmdBuff.
void init()
Initialization function.
Fw::InputComPort * get_seqCmdBuff_InputPort(FwIndexType portNum)
void compCmdReg_handlerBase(FwIndexType portNum, FwOpcodeType opCode)
Handler base-class function for input port compCmdReg.
void set_pingOut_OutputPort(FwIndexType portNum, Svc::InputPingPort *port)
Connect port to pingOut[portNum].
static constexpr FwIndexType getNum_seqCmdStatus_OutputPorts()
void log_WARNING_HI_TooManyCommands(FwOpcodeType Opcode) const
virtual void lock()
Lock the guarded mutex.
This log event reports the Command Sequence Buffer port queue has overflowed.
void cmdResponse_out(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdResponse response)
Emit command response.
static constexpr FwSizeType CAPACITY
void log_COMMAND_OpCodeDispatched(FwOpcodeType Opcode, I32 port) const
void set_Log_OutputPort(FwIndexType portNum, Fw::InputLogPort *port)
Connect port to Log[portNum].
void set_Time_OutputPort(FwIndexType portNum, Fw::InputTimePort *port)
Connect port to Time[portNum].
Clear command tracking info to recover from components not returning status.
void set_CmdStatus_OutputPort(FwIndexType portNum, Fw::InputCmdResponsePort *port)
Connect port to CmdStatus[portNum].
void addCallPort(InputCmdResponsePort *callPort)
Register an input port.
The size of the serial representation.
void lock()
lock the mutex and assert success
Op code reregistered event.
SerializeStatus serializeTo(SerialBufferBase &buffer, Endianness mode=Endianness::BIG) const override
Serialize the contents of this object to a buffer.
void CMD_TEST_CMD_1_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)