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.
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.
Exceeded the number of commands that can be simultaneously executed.
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.
SerializeStatus serializeFrom(U8 val, Endianness mode=Endianness::BIG) override
Serialize an 8-bit unsigned integer value.
static constexpr FwIndexType getNum_Log_OutputPorts()
This log event reports the Command Sequence Buffer port queue has overflowed.
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.
Status receive(U8 *destination, FwSizeType capacity, BlockingType blockType, FwSizeType &actualSize, FwQueuePriorityType &priority) override
receive a message from the queue through delegate
Channel ID for CommandsDropped.
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)
const char * toChar() const
Convert to a C-style char*.
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.
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.
Op code dispatched event.
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
The command dispatcher has successfully received a NO-OP command from GUI with a string.
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()
The command dispatcher has successfully received a NO-OP command.
This log event message returns the TEST_CMD_1 arguments.
Software diagnostic events.
Svc::InputPingPort * get_pingIn_InputPort(FwIndexType portNum)
static constexpr FwIndexType getNum_Tlm_OutputPorts()
Channel ID for CommandErrors.
void addCallPort(InputTlmPort *callPort)
Register an input port.
void init()
Object initializer.
virtual void CMD_TEST_CMD_1_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CMD_TEST_CMD_1.
SerializeStatus
forward declaration for string
float F32
32-bit floating point
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())
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].
The size of the serial representation.
#define FW_OBJECT_NAMES
Indicates whether or not object names are stored (more memory, can be used for tracking objects) ...
void init()
Initialization function.
Throttle reset count for CommandDroppedQueueOverflow.
Received an invalid opcode.
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.
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.
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.
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()
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.
bool isConnected_Tlm_OutputPort(FwIndexType portNum) const
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
The size of the serial representation.
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.
Received a malformed command packet.
void set_Tlm_OutputPort(FwIndexType portNum, Fw::InputTlmPort *port)
Connect port to Tlm[portNum].
Op code reregistered event.
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.
static constexpr FwIndexType getNum_compCmdStat_InputPorts()
Op code completed with error event.
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.
Channel ID for CommandsDispatched.
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].
void set_CmdStatus_OutputPort(FwIndexType portNum, Fw::InputCmdResponsePort *port)
Connect port to CmdStatus[portNum].
void addCallPort(InputCmdResponsePort *callPort)
Register an input port.
void lock()
lock the mutex and assert success
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.
Clear command tracking info to recover from components not returning status.
void CMD_TEST_CMD_1_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)