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
56 ComponentIpcSerializableBuffer() :
Fw::LinearBufferBase(m_buff, sizeof(m_buff)) {
62 U8 m_buff[SERIALIZATION_SIZE];
80 #if !FW_DIRECT_PORT_CALLS 87 this->m_CmdDisp_InputPort[port].
init();
92 this->m_CmdDisp_InputPort[port].
setPortNum(port);
94 #if FW_OBJECT_NAMES == 1 98 this->m_objName.toChar(),
101 this->m_CmdDisp_InputPort[port].setObjName(portName.
toChar());
106 #if !FW_DIRECT_PORT_CALLS 113 this->m_compCmdReg_InputPort[port].
init();
118 this->m_compCmdReg_InputPort[port].
setPortNum(port);
120 #if FW_OBJECT_NAMES == 1 124 this->m_objName.toChar(),
127 this->m_compCmdReg_InputPort[port].setObjName(portName.
toChar());
132 #if !FW_DIRECT_PORT_CALLS 139 this->m_compCmdStat_InputPort[port].
init();
144 this->m_compCmdStat_InputPort[port].
setPortNum(port);
146 #if FW_OBJECT_NAMES == 1 150 this->m_objName.toChar(),
153 this->m_compCmdStat_InputPort[port].setObjName(portName.
toChar());
158 #if !FW_DIRECT_PORT_CALLS 165 this->m_pingIn_InputPort[port].
init();
170 this->m_pingIn_InputPort[port].
setPortNum(port);
172 #if FW_OBJECT_NAMES == 1 176 this->m_objName.toChar(),
179 this->m_pingIn_InputPort[port].setObjName(portName.
toChar());
184 #if !FW_DIRECT_PORT_CALLS 191 this->m_run_InputPort[port].
init();
198 #if FW_OBJECT_NAMES == 1 202 this->m_objName.toChar(),
205 this->m_run_InputPort[port].setObjName(portName.
toChar());
210 #if !FW_DIRECT_PORT_CALLS 217 this->m_seqCmdBuff_InputPort[port].
init();
222 this->m_seqCmdBuff_InputPort[port].
setPortNum(port);
224 #if FW_OBJECT_NAMES == 1 228 this->m_objName.toChar(),
231 this->m_seqCmdBuff_InputPort[port].setObjName(portName.
toChar());
236 #if !FW_DIRECT_PORT_CALLS 243 this->m_CmdReg_OutputPort[port].
init();
245 #if FW_OBJECT_NAMES == 1 249 this->m_objName.toChar(),
252 this->m_CmdReg_OutputPort[port].setObjName(portName.
toChar());
257 #if !FW_DIRECT_PORT_CALLS 264 this->m_CmdStatus_OutputPort[port].
init();
266 #if FW_OBJECT_NAMES == 1 270 this->m_objName.toChar(),
273 this->m_CmdStatus_OutputPort[port].setObjName(portName.
toChar());
278 #if !FW_DIRECT_PORT_CALLS 285 this->m_Log_OutputPort[port].
init();
287 #if FW_OBJECT_NAMES == 1 291 this->m_objName.toChar(),
294 this->m_Log_OutputPort[port].setObjName(portName.
toChar());
299 #if !FW_DIRECT_PORT_CALLS && FW_ENABLE_TEXT_LOGGING 303 port < static_cast<FwIndexType>(this->getNum_LogText_OutputPorts());
306 this->m_LogText_OutputPort[port].
init();
308 #if FW_OBJECT_NAMES == 1 312 this->m_objName.toChar(),
315 this->m_LogText_OutputPort[port].setObjName(portName.
toChar());
320 #if !FW_DIRECT_PORT_CALLS 327 this->m_Time_OutputPort[port].
init();
329 #if FW_OBJECT_NAMES == 1 333 this->m_objName.toChar(),
336 this->m_Time_OutputPort[port].setObjName(portName.
toChar());
341 #if !FW_DIRECT_PORT_CALLS 348 this->m_Tlm_OutputPort[port].
init();
350 #if FW_OBJECT_NAMES == 1 354 this->m_objName.toChar(),
357 this->m_Tlm_OutputPort[port].setObjName(portName.
toChar());
362 #if !FW_DIRECT_PORT_CALLS 369 this->m_compCmdSend_OutputPort[port].
init();
371 #if FW_OBJECT_NAMES == 1 375 this->m_objName.toChar(),
378 this->m_compCmdSend_OutputPort[port].setObjName(portName.
toChar());
383 #if !FW_DIRECT_PORT_CALLS 390 this->m_pingOut_OutputPort[port].
init();
392 #if FW_OBJECT_NAMES == 1 396 this->m_objName.toChar(),
399 this->m_pingOut_OutputPort[port].setObjName(portName.
toChar());
404 #if !FW_DIRECT_PORT_CALLS 411 this->m_seqCmdStatus_OutputPort[port].
init();
413 #if FW_OBJECT_NAMES == 1 417 this->m_objName.toChar(),
420 this->m_seqCmdStatus_OutputPort[port].setObjName(portName.
toChar());
428 static_cast<FwSizeType>(ComponentIpcSerializableBuffer::SERIALIZATION_SIZE)
432 static_cast<FwAssertArgType>(qStat)
436 #if !FW_DIRECT_PORT_CALLS 447 static_cast<FwAssertArgType>(portNum)
450 return &this->m_CmdDisp_InputPort[portNum];
455 #if !FW_DIRECT_PORT_CALLS 466 static_cast<FwAssertArgType>(portNum)
469 return &this->m_compCmdReg_InputPort[portNum];
477 static_cast<FwAssertArgType>(portNum)
480 return &this->m_compCmdStat_InputPort[portNum];
488 static_cast<FwAssertArgType>(portNum)
491 return &this->m_pingIn_InputPort[portNum];
499 static_cast<FwAssertArgType>(portNum)
502 return &this->m_run_InputPort[portNum];
510 static_cast<FwAssertArgType>(portNum)
513 return &this->m_seqCmdBuff_InputPort[portNum];
518 #if !FW_DIRECT_PORT_CALLS 532 static_cast<FwAssertArgType>(portNum)
535 this->m_CmdReg_OutputPort[portNum].
addCallPort(port);
546 static_cast<FwAssertArgType>(portNum)
549 this->m_CmdStatus_OutputPort[portNum].
addCallPort(port);
560 static_cast<FwAssertArgType>(portNum)
566 #if FW_ENABLE_TEXT_LOGGING == 1 568 void CommandDispatcherComponentBase ::
569 set_LogText_OutputPort(
575 (0 <= portNum) && (portNum < this->getNum_LogText_OutputPorts()),
576 static_cast<FwAssertArgType>(portNum)
579 this->m_LogText_OutputPort[portNum].addCallPort(port);
592 static_cast<FwAssertArgType>(portNum)
595 this->m_Time_OutputPort[portNum].
addCallPort(port);
606 static_cast<FwAssertArgType>(portNum)
614 #if !FW_DIRECT_PORT_CALLS 628 static_cast<FwAssertArgType>(portNum)
631 this->m_compCmdSend_OutputPort[portNum].
addCallPort(port);
642 static_cast<FwAssertArgType>(portNum)
645 this->m_pingOut_OutputPort[portNum].
addCallPort(port);
656 static_cast<FwAssertArgType>(portNum)
659 this->m_seqCmdStatus_OutputPort[portNum].
addCallPort(port);
664 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION 673 Fw::InputSerializePort* port
678 static_cast<FwAssertArgType>(portNum)
681 this->m_CmdReg_OutputPort[portNum].registerSerialPort(port);
687 Fw::InputSerializePort* port
692 static_cast<FwAssertArgType>(portNum)
695 this->m_CmdStatus_OutputPort[portNum].registerSerialPort(port);
701 Fw::InputSerializePort* port
706 static_cast<FwAssertArgType>(portNum)
709 this->m_Log_OutputPort[portNum].registerSerialPort(port);
712 #if FW_ENABLE_TEXT_LOGGING == 1 714 void CommandDispatcherComponentBase ::
715 set_LogText_OutputPort(
717 Fw::InputSerializePort* port
721 (0 <= portNum) && (portNum < this->getNum_LogText_OutputPorts()),
722 static_cast<FwAssertArgType>(portNum)
725 this->m_LogText_OutputPort[portNum].registerSerialPort(port);
733 Fw::InputSerializePort* port
738 static_cast<FwAssertArgType>(portNum)
741 this->m_Time_OutputPort[portNum].registerSerialPort(port);
747 Fw::InputSerializePort* port
752 static_cast<FwAssertArgType>(portNum)
755 this->m_Tlm_OutputPort[portNum].registerSerialPort(port);
760 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION 769 Fw::InputSerializePort* port
774 static_cast<FwAssertArgType>(portNum)
777 this->m_compCmdSend_OutputPort[portNum].registerSerialPort(port);
783 Fw::InputSerializePort* port
788 static_cast<FwAssertArgType>(portNum)
791 this->m_pingOut_OutputPort[portNum].registerSerialPort(port);
797 Fw::InputSerializePort* port
802 static_cast<FwAssertArgType>(portNum)
805 this->m_seqCmdStatus_OutputPort[portNum].registerSerialPort(port);
846 Fw::ActiveComponentBase(compName)
848 this->m_CommandDroppedQueueOverflowThrottle = 0;
857 #if !FW_DIRECT_PORT_CALLS 868 static_cast<FwAssertArgType>(portNum)
871 return this->m_CmdReg_OutputPort[portNum].
isConnected();
879 static_cast<FwAssertArgType>(portNum)
882 return this->m_CmdStatus_OutputPort[portNum].
isConnected();
890 static_cast<FwAssertArgType>(portNum)
893 return this->m_Log_OutputPort[portNum].
isConnected();
896 #if FW_ENABLE_TEXT_LOGGING == 1 898 bool CommandDispatcherComponentBase ::
899 isConnected_LogText_OutputPort(
FwIndexType portNum)
const 902 (0 <= portNum) && (portNum < this->getNum_LogText_OutputPorts()),
903 static_cast<FwAssertArgType>(portNum)
906 return this->m_LogText_OutputPort[portNum].isConnected();
916 static_cast<FwAssertArgType>(portNum)
919 return this->m_Time_OutputPort[portNum].
isConnected();
927 static_cast<FwAssertArgType>(portNum)
930 return this->m_Tlm_OutputPort[portNum].
isConnected();
935 #if !FW_DIRECT_PORT_CALLS 946 static_cast<FwAssertArgType>(portNum)
949 return this->m_compCmdSend_OutputPort[portNum].
isConnected();
957 static_cast<FwAssertArgType>(portNum)
960 return this->m_pingOut_OutputPort[portNum].
isConnected();
968 static_cast<FwAssertArgType>(portNum)
971 return this->m_seqCmdStatus_OutputPort[portNum].
isConnected();
992 FW_ASSERT(opCode >= idBase, static_cast<FwAssertArgType>(opCode), static_cast<FwAssertArgType>(idBase));
995 switch (opCode - idBase) {
1052 static_cast<FwAssertArgType>(portNum)
1079 static_cast<FwAssertArgType>(portNum)
1089 ComponentIpcSerializableBuffer msg;
1093 _status = msg.serializeFrom(
1094 static_cast<FwEnumStoreType>(COMPCMDSTAT_CMDRESPONSE)
1098 static_cast<FwAssertArgType>(_status)
1102 _status = msg.serializeFrom(portNum);
1105 static_cast<FwAssertArgType>(_status)
1109 _status = msg.serializeFrom(opCode);
1112 static_cast<FwAssertArgType>(_status)
1116 _status = msg.serializeFrom(cmdSeq);
1119 static_cast<FwAssertArgType>(_status)
1123 _status = msg.serializeFrom(response);
1126 static_cast<FwAssertArgType>(_status)
1135 static_cast<FwAssertArgType>(qStatus)
1148 static_cast<FwAssertArgType>(portNum)
1156 ComponentIpcSerializableBuffer msg;
1160 _status = msg.serializeFrom(
1161 static_cast<FwEnumStoreType>(PINGIN_PING)
1165 static_cast<FwAssertArgType>(_status)
1169 _status = msg.serializeFrom(portNum);
1172 static_cast<FwAssertArgType>(_status)
1176 _status = msg.serializeFrom(key);
1179 static_cast<FwAssertArgType>(_status)
1186 if (qStatus == Os::Queue::Status::FULL) {
1193 static_cast<FwAssertArgType>(qStatus)
1206 static_cast<FwAssertArgType>(portNum)
1214 ComponentIpcSerializableBuffer msg;
1218 _status = msg.serializeFrom(
1219 static_cast<FwEnumStoreType>(RUN_SCHED)
1223 static_cast<FwAssertArgType>(_status)
1227 _status = msg.serializeFrom(portNum);
1230 static_cast<FwAssertArgType>(_status)
1234 _status = msg.serializeFrom(context);
1237 static_cast<FwAssertArgType>(_status)
1246 static_cast<FwAssertArgType>(qStatus)
1260 static_cast<FwAssertArgType>(portNum)
1269 ComponentIpcSerializableBuffer msg;
1273 _status = msg.serializeFrom(
1274 static_cast<FwEnumStoreType>(SEQCMDBUFF_COM)
1278 static_cast<FwAssertArgType>(_status)
1282 _status = msg.serializeFrom(portNum);
1285 static_cast<FwAssertArgType>(_status)
1289 _status = msg.serializeFrom(data);
1292 static_cast<FwAssertArgType>(_status)
1296 _status = msg.serializeFrom(context);
1299 static_cast<FwAssertArgType>(_status)
1306 if (qStatus == Os::Queue::Status::FULL) {
1313 static_cast<FwAssertArgType>(qStatus)
1364 #if !FW_DIRECT_PORT_CALLS 1380 static_cast<FwAssertArgType>(portNum)
1384 this->m_compCmdSend_OutputPort[portNum].isConnected(),
1385 static_cast<FwAssertArgType>(portNum)
1387 this->m_compCmdSend_OutputPort[portNum].
invoke(
1402 static_cast<FwAssertArgType>(portNum)
1406 this->m_pingOut_OutputPort[portNum].isConnected(),
1407 static_cast<FwAssertArgType>(portNum)
1409 this->m_pingOut_OutputPort[portNum].
invoke(
1424 static_cast<FwAssertArgType>(portNum)
1428 this->m_seqCmdStatus_OutputPort[portNum].isConnected(),
1429 static_cast<FwAssertArgType>(portNum)
1431 this->m_seqCmdStatus_OutputPort[portNum].
invoke(
1452 this->CmdStatus_out(0, opCode, cmdSeq, response);
1473 ComponentIpcSerializableBuffer msg;
1477 _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_CMD_NO_OP));
1480 static_cast<FwAssertArgType>(_status)
1486 _status = msg.serializeFrom(port);
1489 static_cast<FwAssertArgType>(_status)
1492 _status = msg.serializeFrom(opCode);
1495 static_cast<FwAssertArgType>(_status)
1498 _status = msg.serializeFrom(cmdSeq);
1501 static_cast<FwAssertArgType>(_status)
1504 _status = msg.serializeFrom(args);
1507 static_cast<FwAssertArgType>(_status)
1516 static_cast<FwAssertArgType>(qStatus)
1532 ComponentIpcSerializableBuffer msg;
1536 _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_CMD_NO_OP_STRING));
1539 static_cast<FwAssertArgType>(_status)
1545 _status = msg.serializeFrom(port);
1548 static_cast<FwAssertArgType>(_status)
1551 _status = msg.serializeFrom(opCode);
1554 static_cast<FwAssertArgType>(_status)
1557 _status = msg.serializeFrom(cmdSeq);
1560 static_cast<FwAssertArgType>(_status)
1563 _status = msg.serializeFrom(args);
1566 static_cast<FwAssertArgType>(_status)
1575 static_cast<FwAssertArgType>(qStatus)
1591 ComponentIpcSerializableBuffer msg;
1595 _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_CMD_TEST_CMD_1));
1598 static_cast<FwAssertArgType>(_status)
1604 _status = msg.serializeFrom(port);
1607 static_cast<FwAssertArgType>(_status)
1610 _status = msg.serializeFrom(opCode);
1613 static_cast<FwAssertArgType>(_status)
1616 _status = msg.serializeFrom(cmdSeq);
1619 static_cast<FwAssertArgType>(_status)
1622 _status = msg.serializeFrom(args);
1625 static_cast<FwAssertArgType>(_status)
1634 static_cast<FwAssertArgType>(qStatus)
1650 ComponentIpcSerializableBuffer msg;
1654 _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_CMD_CLEAR_TRACKING));
1657 static_cast<FwAssertArgType>(_status)
1663 _status = msg.serializeFrom(port);
1666 static_cast<FwAssertArgType>(_status)
1669 _status = msg.serializeFrom(opCode);
1672 static_cast<FwAssertArgType>(_status)
1675 _status = msg.serializeFrom(cmdSeq);
1678 static_cast<FwAssertArgType>(_status)
1681 _status = msg.serializeFrom(args);
1684 static_cast<FwAssertArgType>(_status)
1693 static_cast<FwAssertArgType>(qStatus)
1763 this->Time_out(0, _logTime);
1773 #if FW_AMPCS_COMPATIBLE 1778 static_cast<FwAssertArgType>(_status)
1782 #if FW_AMPCS_COMPATIBLE 1789 static_cast<FwAssertArgType>(_status)
1795 static_cast<FwAssertArgType>(_status)
1798 #if FW_AMPCS_COMPATIBLE 1801 static_cast<U8>(
sizeof(I32))
1805 static_cast<FwAssertArgType>(_status)
1811 static_cast<FwAssertArgType>(_status)
1814 #if FW_AMPCS_COMPATIBLE 1817 static_cast<U8>(
sizeof(I32))
1821 static_cast<FwAssertArgType>(_status)
1827 static_cast<FwAssertArgType>(_status)
1840 #if FW_ENABLE_TEXT_LOGGING 1841 if (this->isConnected_LogText_OutputPort(0)) {
1842 #if FW_OBJECT_NAMES == 1 1843 const char* _formatString =
1844 "(%s) %s: Opcode 0x%" PRIx32
" registered to port %" PRIi32
" slot %" PRIi32
"";
1846 const char* _formatString =
1847 "%s: Opcode 0x%" PRIx32
" registered to port %" PRIi32
" slot %" PRIi32
"";
1851 (void) _logString.
format(
1854 this->m_objName.toChar(),
1856 "OpCodeRegistered ",
1882 this->Time_out(0, _logTime);
1892 #if FW_AMPCS_COMPATIBLE 1897 static_cast<FwAssertArgType>(_status)
1901 #if FW_AMPCS_COMPATIBLE 1908 static_cast<FwAssertArgType>(_status)
1914 static_cast<FwAssertArgType>(_status)
1917 #if FW_AMPCS_COMPATIBLE 1920 static_cast<U8>(
sizeof(I32))
1924 static_cast<FwAssertArgType>(_status)
1930 static_cast<FwAssertArgType>(_status)
1943 #if FW_ENABLE_TEXT_LOGGING 1944 if (this->isConnected_LogText_OutputPort(0)) {
1945 #if FW_OBJECT_NAMES == 1 1946 const char* _formatString =
1947 "(%s) %s: Opcode 0x%" PRIx32
" dispatched to port %" PRIi32
"";
1949 const char* _formatString =
1950 "%s: Opcode 0x%" PRIx32
" dispatched to port %" PRIi32
"";
1954 (void) _logString.
format(
1957 this->m_objName.toChar(),
1959 "OpCodeDispatched ",
1981 this->Time_out(0, _logTime);
1991 #if FW_AMPCS_COMPATIBLE 1996 static_cast<FwAssertArgType>(_status)
2000 #if FW_AMPCS_COMPATIBLE 2007 static_cast<FwAssertArgType>(_status)
2013 static_cast<FwAssertArgType>(_status)
2026 #if FW_ENABLE_TEXT_LOGGING 2027 if (this->isConnected_LogText_OutputPort(0)) {
2028 #if FW_OBJECT_NAMES == 1 2029 const char* _formatString =
2030 "(%s) %s: Opcode 0x%" PRIx32
" completed";
2032 const char* _formatString =
2033 "%s: Opcode 0x%" PRIx32
" completed";
2037 (void) _logString.
format(
2040 this->m_objName.toChar(),
2066 this->Time_out(0, _logTime);
2076 #if FW_AMPCS_COMPATIBLE 2081 static_cast<FwAssertArgType>(_status)
2085 #if FW_AMPCS_COMPATIBLE 2092 static_cast<FwAssertArgType>(_status)
2098 static_cast<FwAssertArgType>(_status)
2101 #if FW_AMPCS_COMPATIBLE 2108 static_cast<FwAssertArgType>(_status)
2114 static_cast<FwAssertArgType>(_status)
2127 #if FW_ENABLE_TEXT_LOGGING 2128 if (this->isConnected_LogText_OutputPort(0)) {
2129 #if FW_OBJECT_NAMES == 1 2130 const char* _formatString =
2131 "(%s) %s: Opcode 0x%" PRIx32
" completed with error %s";
2133 const char* _formatString =
2134 "%s: Opcode 0x%" PRIx32
" completed with error %s";
2138 error.toString(errorStr);
2141 (void) _logString.
format(
2144 this->m_objName.toChar(),
2168 this->Time_out(0, _logTime);
2178 #if FW_AMPCS_COMPATIBLE 2183 static_cast<FwAssertArgType>(_status)
2187 #if FW_AMPCS_COMPATIBLE 2194 static_cast<FwAssertArgType>(_status)
2200 static_cast<FwAssertArgType>(_status)
2213 #if FW_ENABLE_TEXT_LOGGING 2214 if (this->isConnected_LogText_OutputPort(0)) {
2215 #if FW_OBJECT_NAMES == 1 2216 const char* _formatString =
2217 "(%s) %s: Received malformed command packet. Status: %s";
2219 const char* _formatString =
2220 "%s: Received malformed command packet. Status: %s";
2224 Status.toString(StatusStr);
2227 (void) _logString.
format(
2230 this->m_objName.toChar(),
2232 "MalformedCommand ",
2253 this->Time_out(0, _logTime);
2263 #if FW_AMPCS_COMPATIBLE 2268 static_cast<FwAssertArgType>(_status)
2272 #if FW_AMPCS_COMPATIBLE 2279 static_cast<FwAssertArgType>(_status)
2285 static_cast<FwAssertArgType>(_status)
2298 #if FW_ENABLE_TEXT_LOGGING 2299 if (this->isConnected_LogText_OutputPort(0)) {
2300 #if FW_OBJECT_NAMES == 1 2301 const char* _formatString =
2302 "(%s) %s: Invalid opcode 0x%" PRIx32
" received";
2304 const char* _formatString =
2305 "%s: Invalid opcode 0x%" PRIx32
" received";
2309 (void) _logString.
format(
2312 this->m_objName.toChar(),
2335 this->Time_out(0, _logTime);
2345 #if FW_AMPCS_COMPATIBLE 2350 static_cast<FwAssertArgType>(_status)
2354 #if FW_AMPCS_COMPATIBLE 2361 static_cast<FwAssertArgType>(_status)
2367 static_cast<FwAssertArgType>(_status)
2380 #if FW_ENABLE_TEXT_LOGGING 2381 if (this->isConnected_LogText_OutputPort(0)) {
2382 #if FW_OBJECT_NAMES == 1 2383 const char* _formatString =
2384 "(%s) %s: Too many outstanding commands. opcode=0x%" PRIx32
"";
2386 const char* _formatString =
2387 "%s: Too many outstanding commands. opcode=0x%" PRIx32
"";
2391 (void) _logString.
format(
2394 this->m_objName.toChar(),
2417 this->Time_out(0, _logTime);
2426 #if FW_AMPCS_COMPATIBLE 2432 static_cast<FwAssertArgType>(_status)
2446 #if FW_ENABLE_TEXT_LOGGING 2447 if (this->isConnected_LogText_OutputPort(0)) {
2448 #if FW_OBJECT_NAMES == 1 2449 const char* _formatString =
2450 "(%s) %s: Received a NO-OP command";
2452 const char* _formatString =
2453 "%s: Received a NO-OP command";
2457 (void) _logString.
format(
2460 this->m_objName.toChar(),
2482 this->Time_out(0, _logTime);
2492 #if FW_AMPCS_COMPATIBLE 2497 static_cast<FwAssertArgType>(_status)
2507 static_cast<FwAssertArgType>(_status)
2520 #if FW_ENABLE_TEXT_LOGGING 2521 if (this->isConnected_LogText_OutputPort(0)) {
2522 #if FW_OBJECT_NAMES == 1 2523 const char* _formatString =
2524 "(%s) %s: Received a NO-OP string=%s";
2526 const char* _formatString =
2527 "%s: Received a NO-OP string=%s";
2531 (void) _logString.
format(
2534 this->m_objName.toChar(),
2536 "NoOpStringReceived ",
2561 this->Time_out(0, _logTime);
2571 #if FW_AMPCS_COMPATIBLE 2576 static_cast<FwAssertArgType>(_status)
2580 #if FW_AMPCS_COMPATIBLE 2583 static_cast<U8>(
sizeof(I32))
2587 static_cast<FwAssertArgType>(_status)
2593 static_cast<FwAssertArgType>(_status)
2596 #if FW_AMPCS_COMPATIBLE 2599 static_cast<U8>(
sizeof(
F32))
2603 static_cast<FwAssertArgType>(_status)
2609 static_cast<FwAssertArgType>(_status)
2612 #if FW_AMPCS_COMPATIBLE 2615 static_cast<U8>(
sizeof(
U8))
2619 static_cast<FwAssertArgType>(_status)
2625 static_cast<FwAssertArgType>(_status)
2638 #if FW_ENABLE_TEXT_LOGGING 2639 if (this->isConnected_LogText_OutputPort(0)) {
2640 #if FW_OBJECT_NAMES == 1 2641 const char* _formatString =
2642 "(%s) %s: TEST_CMD_1 args: I32: %" PRIi32
", F32: %f, U8: %" PRIu8
"";
2644 const char* _formatString =
2645 "%s: TEST_CMD_1 args: I32: %" PRIi32
", F32: %f, U8: %" PRIu8
"";
2649 (void) _logString.
format(
2652 this->m_objName.toChar(),
2656 static_cast<F64>(arg2),
2680 this->Time_out(0, _logTime);
2690 #if FW_AMPCS_COMPATIBLE 2695 static_cast<FwAssertArgType>(_status)
2699 #if FW_AMPCS_COMPATIBLE 2706 static_cast<FwAssertArgType>(_status)
2712 static_cast<FwAssertArgType>(_status)
2715 #if FW_AMPCS_COMPATIBLE 2718 static_cast<U8>(
sizeof(I32))
2722 static_cast<FwAssertArgType>(_status)
2728 static_cast<FwAssertArgType>(_status)
2741 #if FW_ENABLE_TEXT_LOGGING 2742 if (this->isConnected_LogText_OutputPort(0)) {
2743 #if FW_OBJECT_NAMES == 1 2744 const char* _formatString =
2745 "(%s) %s: Opcode 0x%" PRIx32
" is already registered to port %" PRIi32
"";
2747 const char* _formatString =
2748 "%s: Opcode 0x%" PRIx32
" is already registered to port %" PRIi32
"";
2752 (void) _logString.
format(
2755 this->m_objName.toChar(),
2757 "OpCodeReregistered ",
2784 this->m_CommandDroppedQueueOverflowThrottle++;
2790 this->Time_out(0, _logTime);
2800 #if FW_AMPCS_COMPATIBLE 2805 static_cast<FwAssertArgType>(_status)
2809 #if FW_AMPCS_COMPATIBLE 2816 static_cast<FwAssertArgType>(_status)
2822 static_cast<FwAssertArgType>(_status)
2825 #if FW_AMPCS_COMPATIBLE 2828 static_cast<U8>(
sizeof(U32))
2832 static_cast<FwAssertArgType>(_status)
2838 static_cast<FwAssertArgType>(_status)
2851 #if FW_ENABLE_TEXT_LOGGING 2852 if (this->isConnected_LogText_OutputPort(0)) {
2853 #if FW_OBJECT_NAMES == 1 2854 const char* _formatString =
2855 "(%s) %s: Opcode 0x%" PRIx32
" was dropped due to buffer overflow and not processed. Context %" PRIu32
"";
2857 const char* _formatString =
2858 "%s: Opcode 0x%" PRIx32
" was dropped due to buffer overflow and not processed. Context %" PRIu32
"";
2862 (void) _logString.
format(
2865 this->m_objName.toChar(),
2867 "CommandDroppedQueueOverflow ",
2891 this->m_CommandDroppedQueueOverflowThrottle = 0;
2910 this->Time_out(0, _tlmTime);
2936 if (not this->m_first_update_CommandsDispatched) {
2938 if (arg == this->m_last_CommandsDispatched) {
2942 this->m_last_CommandsDispatched = arg;
2946 this->m_first_update_CommandsDispatched =
false;
2947 this->m_last_CommandsDispatched = arg;
2955 static_cast<FwAssertArgType>(_stat)
2973 if (not this->m_first_update_CommandErrors) {
2975 if (arg == this->m_last_CommandErrors) {
2979 this->m_last_CommandErrors = arg;
2983 this->m_first_update_CommandErrors =
false;
2984 this->m_last_CommandErrors = arg;
2992 static_cast<FwAssertArgType>(_stat)
3010 if (not this->m_first_update_CommandsDropped) {
3012 if (arg == this->m_last_CommandsDropped) {
3016 this->m_last_CommandsDropped = arg;
3020 this->m_first_update_CommandsDropped =
false;
3021 this->m_last_CommandsDropped = arg;
3029 static_cast<FwAssertArgType>(_stat)
3049 this->Time_out(0, _time);
3067 this->m_guardedPortMutex.
lock();
3073 this->m_guardedPortMutex.
unLock();
3083 ComponentIpcSerializableBuffer _msg;
3093 static_cast<FwAssertArgType>(_msgStatus)
3103 static_cast<FwAssertArgType>(_deserStatus)
3106 MsgTypeEnum _msgType =
static_cast<MsgTypeEnum
>(_desMsg);
3108 if (_msgType == COMMANDDISPATCHER_COMPONENT_EXIT) {
3113 _deserStatus = _msg.deserializeTo(portNum);
3116 static_cast<FwAssertArgType>(_deserStatus)
3121 case COMPCMDSTAT_CMDRESPONSE: {
3124 _deserStatus = _msg.deserializeTo(opCode);
3127 static_cast<FwAssertArgType>(_deserStatus)
3132 _deserStatus = _msg.deserializeTo(cmdSeq);
3135 static_cast<FwAssertArgType>(_deserStatus)
3140 _deserStatus = _msg.deserializeTo(response);
3143 static_cast<FwAssertArgType>(_deserStatus)
3160 _deserStatus = _msg.deserializeTo(key);
3163 static_cast<FwAssertArgType>(_deserStatus)
3178 _deserStatus = _msg.deserializeTo(context);
3181 static_cast<FwAssertArgType>(_deserStatus)
3193 case SEQCMDBUFF_COM: {
3196 _deserStatus = _msg.deserializeTo(data);
3199 static_cast<FwAssertArgType>(_deserStatus)
3204 _deserStatus = _msg.deserializeTo(context);
3207 static_cast<FwAssertArgType>(_deserStatus)
3220 case CMD_CMD_NO_OP: {
3223 _deserStatus = _msg.deserializeTo(_opCode);
3226 static_cast<FwAssertArgType>(_deserStatus)
3231 _deserStatus = _msg.deserializeTo(_cmdSeq);
3234 static_cast<FwAssertArgType>(_deserStatus)
3239 _deserStatus = _msg.deserializeTo(args);
3242 static_cast<FwAssertArgType>(_deserStatus)
3250 #if FW_CMD_CHECK_RESIDUAL 3267 case CMD_CMD_NO_OP_STRING: {
3270 _deserStatus = _msg.deserializeTo(_opCode);
3273 static_cast<FwAssertArgType>(_deserStatus)
3278 _deserStatus = _msg.deserializeTo(_cmdSeq);
3281 static_cast<FwAssertArgType>(_deserStatus)
3286 _deserStatus = _msg.deserializeTo(args);
3289 static_cast<FwAssertArgType>(_deserStatus)
3312 #if FW_CMD_CHECK_RESIDUAL 3332 case CMD_CMD_TEST_CMD_1: {
3335 _deserStatus = _msg.deserializeTo(_opCode);
3338 static_cast<FwAssertArgType>(_deserStatus)
3343 _deserStatus = _msg.deserializeTo(_cmdSeq);
3346 static_cast<FwAssertArgType>(_deserStatus)
3351 _deserStatus = _msg.deserializeTo(args);
3354 static_cast<FwAssertArgType>(_deserStatus)
3407 #if FW_CMD_CHECK_RESIDUAL 3429 case CMD_CMD_CLEAR_TRACKING: {
3432 _deserStatus = _msg.deserializeTo(_opCode);
3435 static_cast<FwAssertArgType>(_deserStatus)
3440 _deserStatus = _msg.deserializeTo(_cmdSeq);
3443 static_cast<FwAssertArgType>(_deserStatus)
3448 _deserStatus = _msg.deserializeTo(args);
3451 static_cast<FwAssertArgType>(_deserStatus)
3459 #if FW_CMD_CHECK_RESIDUAL 3486 void CommandDispatcherComponentBase ::
3497 compPtr->CmdDisp_handlerBase(
3509 void CommandDispatcherComponentBase ::
3518 compPtr->compCmdReg_handlerBase(
3524 void CommandDispatcherComponentBase ::
3535 compPtr->compCmdStat_handlerBase(
3543 void CommandDispatcherComponentBase ::
3552 compPtr->pingIn_handlerBase(
3558 void CommandDispatcherComponentBase ::
3567 compPtr->run_handlerBase(
3573 void CommandDispatcherComponentBase ::
3583 compPtr->seqCmdBuff_handlerBase(
3590 #if !FW_DIRECT_PORT_CALLS 3596 void CommandDispatcherComponentBase ::
3604 static_cast<FwAssertArgType>(portNum)
3608 this->m_CmdReg_OutputPort[portNum].isConnected(),
3609 static_cast<FwAssertArgType>(portNum)
3611 this->m_CmdReg_OutputPort[portNum].
invoke(
3616 void CommandDispatcherComponentBase ::
3626 static_cast<FwAssertArgType>(portNum)
3630 this->m_CmdStatus_OutputPort[portNum].isConnected(),
3631 static_cast<FwAssertArgType>(portNum)
3633 this->m_CmdStatus_OutputPort[portNum].
invoke(
3640 void CommandDispatcherComponentBase ::
3651 static_cast<FwAssertArgType>(portNum)
3655 this->m_Log_OutputPort[portNum].isConnected(),
3656 static_cast<FwAssertArgType>(portNum)
3658 this->m_Log_OutputPort[portNum].
invoke(
3666 #if FW_ENABLE_TEXT_LOGGING 3668 void CommandDispatcherComponentBase ::
3678 (0 <= portNum) && (portNum < this->getNum_LogText_OutputPorts()),
3679 static_cast<FwAssertArgType>(portNum)
3683 this->m_LogText_OutputPort[portNum].isConnected(),
3684 static_cast<FwAssertArgType>(portNum)
3686 this->m_LogText_OutputPort[portNum].invoke(
3696 void CommandDispatcherComponentBase ::
3704 static_cast<FwAssertArgType>(portNum)
3708 this->m_Time_OutputPort[portNum].isConnected(),
3709 static_cast<FwAssertArgType>(portNum)
3711 this->m_Time_OutputPort[portNum].
invoke(
3716 void CommandDispatcherComponentBase ::
3726 static_cast<FwAssertArgType>(portNum)
3730 this->m_Tlm_OutputPort[portNum].isConnected(),
3731 static_cast<FwAssertArgType>(portNum)
3733 this->m_Tlm_OutputPort[portNum].
invoke(
Serialization/Deserialization operation was successful.
This log event message returns the TEST_CMD_1 arguments.
Channel ID for CommandsDispatched.
void addCallPort(InputTimePort *callPort)
Register an input port.
void set_seqCmdStatus_OutputPort(FwIndexType portNum, Fw::InputCmdResponsePort *port)
Connect port to seqCmdStatus[portNum].
message to exit active component task
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.
The command dispatcher has successfully received a NO-OP command from GUI with a string.
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.
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)
void log_COMMAND_OpCodeError(FwOpcodeType Opcode, const Fw::CmdResponse &error) const
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)
Exceeded the number of commands that can be simultaneously executed.
virtual void run_preMsgHook(FwIndexType portNum, U32 context)
Pre-message hook for async input port run.
BYTE pingInPortSize[Svc::PingPortBuffer::CAPACITY]
virtual void unLock()
Unlock the guarded mutex.
SerializeStatus deserializeTo(U8 &val, Endianness mode=Endianness::BIG) override
Deserialize an 8-bit unsigned integer value.
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.
void init()
Initialization function.
Enum representing a command response.
static constexpr FwIndexType getNum_CmdDisp_InputPorts()
No time base has been established (Required)
SerializeStatus serializeFrom(U8 val, Endianness mode=Endianness::BIG) override
Serialize an 8-bit unsigned integer value.
void addCallPort(InputCmdRegPort *callPort)
Register an input port.
virtual void pingIn_handler(FwIndexType portNum, U32 key)=0
Handler for input port pingIn.
Received a malformed command packet.
static constexpr FwIndexType getNum_pingIn_InputPorts()
bool isConnected_Time_OutputPort(FwIndexType portNum) const
static constexpr FwIndexType getNum_pingOut_OutputPorts()
Channel ID for CommandsDropped.
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.
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.
Received an invalid opcode.
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].
#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 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.
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()
void unLock()
unlock the mutex and assert success
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.
The size of the serial representation.
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
Throttle reset count for CommandDroppedQueueOverflow.
void CmdDisp_handlerBase(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
Handler base-class function for input port CmdDisp.
Command failed to deserialize.
bool isConnected_Tlm_OutputPort(FwIndexType portNum) const
void lock()
lock the mutex and assert success
PlatformQueuePriorityType FwQueuePriorityType
The type of queue priorities used.
This log event reports the Command Sequence Buffer port queue has overflowed.
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)
Channel ID for CommandErrors.
void log_WARNING_HI_MalformedCommand(const Fw::DeserialStatus &Status) const
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.
void incNumMsgDropped()
increment the number of messages dropped
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
virtual void seqCmdBuff_overflowHook(FwIndexType portNum, Fw::ComBuffer &data, U32 context)=0
Overflow hook for async input port seqCmdBuff.
Clear command tracking info to recover from components not returning status.
virtual void CMD_CLEAR_TRACKING_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
The size of the serial representation.
static constexpr FwIndexType getNum_seqCmdBuff_InputPorts()
Op code reregistered event.
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 dispatched 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.
The command dispatcher has successfully received a NO-OP command.
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.
Op code completed with error event.
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.
SerializeStatus serializeTo(SerialBufferBase &buffer, Endianness mode=Endianness::BIG) const override
Serialize the contents of this object to a buffer.
BYTE cmdPortSize[Fw::CmdPortBuffer::CAPACITY]
void CMD_TEST_CMD_1_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)