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)
1188 static_cast<FwAssertArgType>(qStatus)
1201 static_cast<FwAssertArgType>(portNum)
1209 ComponentIpcSerializableBuffer msg;
1213 _status = msg.serializeFrom(
1214 static_cast<FwEnumStoreType>(RUN_SCHED)
1218 static_cast<FwAssertArgType>(_status)
1222 _status = msg.serializeFrom(portNum);
1225 static_cast<FwAssertArgType>(_status)
1229 _status = msg.serializeFrom(context);
1232 static_cast<FwAssertArgType>(_status)
1241 static_cast<FwAssertArgType>(qStatus)
1255 static_cast<FwAssertArgType>(portNum)
1264 ComponentIpcSerializableBuffer msg;
1268 _status = msg.serializeFrom(
1269 static_cast<FwEnumStoreType>(SEQCMDBUFF_COM)
1273 static_cast<FwAssertArgType>(_status)
1277 _status = msg.serializeFrom(portNum);
1280 static_cast<FwAssertArgType>(_status)
1284 _status = msg.serializeFrom(data);
1287 static_cast<FwAssertArgType>(_status)
1291 _status = msg.serializeFrom(context);
1294 static_cast<FwAssertArgType>(_status)
1301 if (qStatus == Os::Queue::Status::FULL) {
1308 static_cast<FwAssertArgType>(qStatus)
1359 #if !FW_DIRECT_PORT_CALLS 1375 static_cast<FwAssertArgType>(portNum)
1379 this->m_compCmdSend_OutputPort[portNum].isConnected(),
1380 static_cast<FwAssertArgType>(portNum)
1382 this->m_compCmdSend_OutputPort[portNum].
invoke(
1397 static_cast<FwAssertArgType>(portNum)
1401 this->m_pingOut_OutputPort[portNum].isConnected(),
1402 static_cast<FwAssertArgType>(portNum)
1404 this->m_pingOut_OutputPort[portNum].
invoke(
1419 static_cast<FwAssertArgType>(portNum)
1423 this->m_seqCmdStatus_OutputPort[portNum].isConnected(),
1424 static_cast<FwAssertArgType>(portNum)
1426 this->m_seqCmdStatus_OutputPort[portNum].
invoke(
1447 this->CmdStatus_out(0, opCode, cmdSeq, response);
1468 ComponentIpcSerializableBuffer msg;
1472 _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_CMD_NO_OP));
1475 static_cast<FwAssertArgType>(_status)
1481 _status = msg.serializeFrom(port);
1484 static_cast<FwAssertArgType>(_status)
1487 _status = msg.serializeFrom(opCode);
1490 static_cast<FwAssertArgType>(_status)
1493 _status = msg.serializeFrom(cmdSeq);
1496 static_cast<FwAssertArgType>(_status)
1499 _status = msg.serializeFrom(args);
1502 static_cast<FwAssertArgType>(_status)
1511 static_cast<FwAssertArgType>(qStatus)
1527 ComponentIpcSerializableBuffer msg;
1531 _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_CMD_NO_OP_STRING));
1534 static_cast<FwAssertArgType>(_status)
1540 _status = msg.serializeFrom(port);
1543 static_cast<FwAssertArgType>(_status)
1546 _status = msg.serializeFrom(opCode);
1549 static_cast<FwAssertArgType>(_status)
1552 _status = msg.serializeFrom(cmdSeq);
1555 static_cast<FwAssertArgType>(_status)
1558 _status = msg.serializeFrom(args);
1561 static_cast<FwAssertArgType>(_status)
1570 static_cast<FwAssertArgType>(qStatus)
1586 ComponentIpcSerializableBuffer msg;
1590 _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_CMD_TEST_CMD_1));
1593 static_cast<FwAssertArgType>(_status)
1599 _status = msg.serializeFrom(port);
1602 static_cast<FwAssertArgType>(_status)
1605 _status = msg.serializeFrom(opCode);
1608 static_cast<FwAssertArgType>(_status)
1611 _status = msg.serializeFrom(cmdSeq);
1614 static_cast<FwAssertArgType>(_status)
1617 _status = msg.serializeFrom(args);
1620 static_cast<FwAssertArgType>(_status)
1629 static_cast<FwAssertArgType>(qStatus)
1645 ComponentIpcSerializableBuffer msg;
1649 _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_CMD_CLEAR_TRACKING));
1652 static_cast<FwAssertArgType>(_status)
1658 _status = msg.serializeFrom(port);
1661 static_cast<FwAssertArgType>(_status)
1664 _status = msg.serializeFrom(opCode);
1667 static_cast<FwAssertArgType>(_status)
1670 _status = msg.serializeFrom(cmdSeq);
1673 static_cast<FwAssertArgType>(_status)
1676 _status = msg.serializeFrom(args);
1679 static_cast<FwAssertArgType>(_status)
1688 static_cast<FwAssertArgType>(qStatus)
1758 this->Time_out(0, _logTime);
1768 #if FW_AMPCS_COMPATIBLE 1773 static_cast<FwAssertArgType>(_status)
1777 #if FW_AMPCS_COMPATIBLE 1784 static_cast<FwAssertArgType>(_status)
1790 static_cast<FwAssertArgType>(_status)
1793 #if FW_AMPCS_COMPATIBLE 1796 static_cast<U8>(
sizeof(I32))
1800 static_cast<FwAssertArgType>(_status)
1806 static_cast<FwAssertArgType>(_status)
1809 #if FW_AMPCS_COMPATIBLE 1812 static_cast<U8>(
sizeof(I32))
1816 static_cast<FwAssertArgType>(_status)
1822 static_cast<FwAssertArgType>(_status)
1835 #if FW_ENABLE_TEXT_LOGGING 1836 if (this->isConnected_LogText_OutputPort(0)) {
1837 #if FW_OBJECT_NAMES == 1 1838 const char* _formatString =
1839 "(%s) %s: Opcode 0x%" PRIx32
" registered to port %" PRIi32
" slot %" PRIi32
"";
1841 const char* _formatString =
1842 "%s: Opcode 0x%" PRIx32
" registered to port %" PRIi32
" slot %" PRIi32
"";
1846 (void) _logString.
format(
1849 this->m_objName.toChar(),
1851 "OpCodeRegistered ",
1877 this->Time_out(0, _logTime);
1887 #if FW_AMPCS_COMPATIBLE 1892 static_cast<FwAssertArgType>(_status)
1896 #if FW_AMPCS_COMPATIBLE 1903 static_cast<FwAssertArgType>(_status)
1909 static_cast<FwAssertArgType>(_status)
1912 #if FW_AMPCS_COMPATIBLE 1915 static_cast<U8>(
sizeof(I32))
1919 static_cast<FwAssertArgType>(_status)
1925 static_cast<FwAssertArgType>(_status)
1938 #if FW_ENABLE_TEXT_LOGGING 1939 if (this->isConnected_LogText_OutputPort(0)) {
1940 #if FW_OBJECT_NAMES == 1 1941 const char* _formatString =
1942 "(%s) %s: Opcode 0x%" PRIx32
" dispatched to port %" PRIi32
"";
1944 const char* _formatString =
1945 "%s: Opcode 0x%" PRIx32
" dispatched to port %" PRIi32
"";
1949 (void) _logString.
format(
1952 this->m_objName.toChar(),
1954 "OpCodeDispatched ",
1976 this->Time_out(0, _logTime);
1986 #if FW_AMPCS_COMPATIBLE 1991 static_cast<FwAssertArgType>(_status)
1995 #if FW_AMPCS_COMPATIBLE 2002 static_cast<FwAssertArgType>(_status)
2008 static_cast<FwAssertArgType>(_status)
2021 #if FW_ENABLE_TEXT_LOGGING 2022 if (this->isConnected_LogText_OutputPort(0)) {
2023 #if FW_OBJECT_NAMES == 1 2024 const char* _formatString =
2025 "(%s) %s: Opcode 0x%" PRIx32
" completed";
2027 const char* _formatString =
2028 "%s: Opcode 0x%" PRIx32
" completed";
2032 (void) _logString.
format(
2035 this->m_objName.toChar(),
2061 this->Time_out(0, _logTime);
2071 #if FW_AMPCS_COMPATIBLE 2076 static_cast<FwAssertArgType>(_status)
2080 #if FW_AMPCS_COMPATIBLE 2087 static_cast<FwAssertArgType>(_status)
2093 static_cast<FwAssertArgType>(_status)
2096 #if FW_AMPCS_COMPATIBLE 2103 static_cast<FwAssertArgType>(_status)
2109 static_cast<FwAssertArgType>(_status)
2122 #if FW_ENABLE_TEXT_LOGGING 2123 if (this->isConnected_LogText_OutputPort(0)) {
2124 #if FW_OBJECT_NAMES == 1 2125 const char* _formatString =
2126 "(%s) %s: Opcode 0x%" PRIx32
" completed with error %s";
2128 const char* _formatString =
2129 "%s: Opcode 0x%" PRIx32
" completed with error %s";
2133 error.toString(errorStr);
2136 (void) _logString.
format(
2139 this->m_objName.toChar(),
2163 this->Time_out(0, _logTime);
2173 #if FW_AMPCS_COMPATIBLE 2178 static_cast<FwAssertArgType>(_status)
2182 #if FW_AMPCS_COMPATIBLE 2189 static_cast<FwAssertArgType>(_status)
2195 static_cast<FwAssertArgType>(_status)
2208 #if FW_ENABLE_TEXT_LOGGING 2209 if (this->isConnected_LogText_OutputPort(0)) {
2210 #if FW_OBJECT_NAMES == 1 2211 const char* _formatString =
2212 "(%s) %s: Received malformed command packet. Status: %s";
2214 const char* _formatString =
2215 "%s: Received malformed command packet. Status: %s";
2219 Status.toString(StatusStr);
2222 (void) _logString.
format(
2225 this->m_objName.toChar(),
2227 "MalformedCommand ",
2248 this->Time_out(0, _logTime);
2258 #if FW_AMPCS_COMPATIBLE 2263 static_cast<FwAssertArgType>(_status)
2267 #if FW_AMPCS_COMPATIBLE 2274 static_cast<FwAssertArgType>(_status)
2280 static_cast<FwAssertArgType>(_status)
2293 #if FW_ENABLE_TEXT_LOGGING 2294 if (this->isConnected_LogText_OutputPort(0)) {
2295 #if FW_OBJECT_NAMES == 1 2296 const char* _formatString =
2297 "(%s) %s: Invalid opcode 0x%" PRIx32
" received";
2299 const char* _formatString =
2300 "%s: Invalid opcode 0x%" PRIx32
" received";
2304 (void) _logString.
format(
2307 this->m_objName.toChar(),
2330 this->Time_out(0, _logTime);
2340 #if FW_AMPCS_COMPATIBLE 2345 static_cast<FwAssertArgType>(_status)
2349 #if FW_AMPCS_COMPATIBLE 2356 static_cast<FwAssertArgType>(_status)
2362 static_cast<FwAssertArgType>(_status)
2375 #if FW_ENABLE_TEXT_LOGGING 2376 if (this->isConnected_LogText_OutputPort(0)) {
2377 #if FW_OBJECT_NAMES == 1 2378 const char* _formatString =
2379 "(%s) %s: Too many outstanding commands. opcode=0x%" PRIx32
"";
2381 const char* _formatString =
2382 "%s: Too many outstanding commands. opcode=0x%" PRIx32
"";
2386 (void) _logString.
format(
2389 this->m_objName.toChar(),
2412 this->Time_out(0, _logTime);
2421 #if FW_AMPCS_COMPATIBLE 2427 static_cast<FwAssertArgType>(_status)
2441 #if FW_ENABLE_TEXT_LOGGING 2442 if (this->isConnected_LogText_OutputPort(0)) {
2443 #if FW_OBJECT_NAMES == 1 2444 const char* _formatString =
2445 "(%s) %s: Received a NO-OP command";
2447 const char* _formatString =
2448 "%s: Received a NO-OP command";
2452 (void) _logString.
format(
2455 this->m_objName.toChar(),
2477 this->Time_out(0, _logTime);
2487 #if FW_AMPCS_COMPATIBLE 2492 static_cast<FwAssertArgType>(_status)
2502 static_cast<FwAssertArgType>(_status)
2515 #if FW_ENABLE_TEXT_LOGGING 2516 if (this->isConnected_LogText_OutputPort(0)) {
2517 #if FW_OBJECT_NAMES == 1 2518 const char* _formatString =
2519 "(%s) %s: Received a NO-OP string=%s";
2521 const char* _formatString =
2522 "%s: Received a NO-OP string=%s";
2526 (void) _logString.
format(
2529 this->m_objName.toChar(),
2531 "NoOpStringReceived ",
2556 this->Time_out(0, _logTime);
2566 #if FW_AMPCS_COMPATIBLE 2571 static_cast<FwAssertArgType>(_status)
2575 #if FW_AMPCS_COMPATIBLE 2578 static_cast<U8>(
sizeof(I32))
2582 static_cast<FwAssertArgType>(_status)
2588 static_cast<FwAssertArgType>(_status)
2591 #if FW_AMPCS_COMPATIBLE 2594 static_cast<U8>(
sizeof(
F32))
2598 static_cast<FwAssertArgType>(_status)
2604 static_cast<FwAssertArgType>(_status)
2607 #if FW_AMPCS_COMPATIBLE 2610 static_cast<U8>(
sizeof(
U8))
2614 static_cast<FwAssertArgType>(_status)
2620 static_cast<FwAssertArgType>(_status)
2633 #if FW_ENABLE_TEXT_LOGGING 2634 if (this->isConnected_LogText_OutputPort(0)) {
2635 #if FW_OBJECT_NAMES == 1 2636 const char* _formatString =
2637 "(%s) %s: TEST_CMD_1 args: I32: %" PRIi32
", F32: %f, U8: %" PRIu8
"";
2639 const char* _formatString =
2640 "%s: TEST_CMD_1 args: I32: %" PRIi32
", F32: %f, U8: %" PRIu8
"";
2644 (void) _logString.
format(
2647 this->m_objName.toChar(),
2651 static_cast<F64>(arg2),
2675 this->Time_out(0, _logTime);
2685 #if FW_AMPCS_COMPATIBLE 2690 static_cast<FwAssertArgType>(_status)
2694 #if FW_AMPCS_COMPATIBLE 2701 static_cast<FwAssertArgType>(_status)
2707 static_cast<FwAssertArgType>(_status)
2710 #if FW_AMPCS_COMPATIBLE 2713 static_cast<U8>(
sizeof(I32))
2717 static_cast<FwAssertArgType>(_status)
2723 static_cast<FwAssertArgType>(_status)
2736 #if FW_ENABLE_TEXT_LOGGING 2737 if (this->isConnected_LogText_OutputPort(0)) {
2738 #if FW_OBJECT_NAMES == 1 2739 const char* _formatString =
2740 "(%s) %s: Opcode 0x%" PRIx32
" is already registered to port %" PRIi32
"";
2742 const char* _formatString =
2743 "%s: Opcode 0x%" PRIx32
" is already registered to port %" PRIi32
"";
2747 (void) _logString.
format(
2750 this->m_objName.toChar(),
2752 "OpCodeReregistered ",
2779 this->m_CommandDroppedQueueOverflowThrottle++;
2785 this->Time_out(0, _logTime);
2795 #if FW_AMPCS_COMPATIBLE 2800 static_cast<FwAssertArgType>(_status)
2804 #if FW_AMPCS_COMPATIBLE 2811 static_cast<FwAssertArgType>(_status)
2817 static_cast<FwAssertArgType>(_status)
2820 #if FW_AMPCS_COMPATIBLE 2823 static_cast<U8>(
sizeof(U32))
2827 static_cast<FwAssertArgType>(_status)
2833 static_cast<FwAssertArgType>(_status)
2846 #if FW_ENABLE_TEXT_LOGGING 2847 if (this->isConnected_LogText_OutputPort(0)) {
2848 #if FW_OBJECT_NAMES == 1 2849 const char* _formatString =
2850 "(%s) %s: Opcode 0x%" PRIx32
" was dropped due to buffer overflow and not processed. Context %" PRIu32
"";
2852 const char* _formatString =
2853 "%s: Opcode 0x%" PRIx32
" was dropped due to buffer overflow and not processed. Context %" PRIu32
"";
2857 (void) _logString.
format(
2860 this->m_objName.toChar(),
2862 "CommandDroppedQueueOverflow ",
2886 this->m_CommandDroppedQueueOverflowThrottle = 0;
2905 this->Time_out(0, _tlmTime);
2931 if (not this->m_first_update_CommandsDispatched) {
2933 if (arg == this->m_last_CommandsDispatched) {
2937 this->m_last_CommandsDispatched = arg;
2941 this->m_first_update_CommandsDispatched =
false;
2942 this->m_last_CommandsDispatched = arg;
2950 static_cast<FwAssertArgType>(_stat)
2968 if (not this->m_first_update_CommandErrors) {
2970 if (arg == this->m_last_CommandErrors) {
2974 this->m_last_CommandErrors = arg;
2978 this->m_first_update_CommandErrors =
false;
2979 this->m_last_CommandErrors = arg;
2987 static_cast<FwAssertArgType>(_stat)
3005 if (not this->m_first_update_CommandsDropped) {
3007 if (arg == this->m_last_CommandsDropped) {
3011 this->m_last_CommandsDropped = arg;
3015 this->m_first_update_CommandsDropped =
false;
3016 this->m_last_CommandsDropped = arg;
3024 static_cast<FwAssertArgType>(_stat)
3044 this->Time_out(0, _time);
3062 this->m_guardedPortMutex.
lock();
3068 this->m_guardedPortMutex.
unLock();
3078 ComponentIpcSerializableBuffer _msg;
3088 static_cast<FwAssertArgType>(_msgStatus)
3098 static_cast<FwAssertArgType>(_deserStatus)
3101 MsgTypeEnum _msgType =
static_cast<MsgTypeEnum
>(_desMsg);
3103 if (_msgType == COMMANDDISPATCHER_COMPONENT_EXIT) {
3108 _deserStatus = _msg.deserializeTo(portNum);
3111 static_cast<FwAssertArgType>(_deserStatus)
3116 case COMPCMDSTAT_CMDRESPONSE: {
3119 _deserStatus = _msg.deserializeTo(opCode);
3122 static_cast<FwAssertArgType>(_deserStatus)
3127 _deserStatus = _msg.deserializeTo(cmdSeq);
3130 static_cast<FwAssertArgType>(_deserStatus)
3135 _deserStatus = _msg.deserializeTo(response);
3138 static_cast<FwAssertArgType>(_deserStatus)
3155 _deserStatus = _msg.deserializeTo(key);
3158 static_cast<FwAssertArgType>(_deserStatus)
3173 _deserStatus = _msg.deserializeTo(context);
3176 static_cast<FwAssertArgType>(_deserStatus)
3188 case SEQCMDBUFF_COM: {
3191 _deserStatus = _msg.deserializeTo(data);
3194 static_cast<FwAssertArgType>(_deserStatus)
3199 _deserStatus = _msg.deserializeTo(context);
3202 static_cast<FwAssertArgType>(_deserStatus)
3215 case CMD_CMD_NO_OP: {
3218 _deserStatus = _msg.deserializeTo(_opCode);
3221 static_cast<FwAssertArgType>(_deserStatus)
3226 _deserStatus = _msg.deserializeTo(_cmdSeq);
3229 static_cast<FwAssertArgType>(_deserStatus)
3234 _deserStatus = _msg.deserializeTo(args);
3237 static_cast<FwAssertArgType>(_deserStatus)
3245 #if FW_CMD_CHECK_RESIDUAL 3262 case CMD_CMD_NO_OP_STRING: {
3265 _deserStatus = _msg.deserializeTo(_opCode);
3268 static_cast<FwAssertArgType>(_deserStatus)
3273 _deserStatus = _msg.deserializeTo(_cmdSeq);
3276 static_cast<FwAssertArgType>(_deserStatus)
3281 _deserStatus = _msg.deserializeTo(args);
3284 static_cast<FwAssertArgType>(_deserStatus)
3307 #if FW_CMD_CHECK_RESIDUAL 3327 case CMD_CMD_TEST_CMD_1: {
3330 _deserStatus = _msg.deserializeTo(_opCode);
3333 static_cast<FwAssertArgType>(_deserStatus)
3338 _deserStatus = _msg.deserializeTo(_cmdSeq);
3341 static_cast<FwAssertArgType>(_deserStatus)
3346 _deserStatus = _msg.deserializeTo(args);
3349 static_cast<FwAssertArgType>(_deserStatus)
3402 #if FW_CMD_CHECK_RESIDUAL 3424 case CMD_CMD_CLEAR_TRACKING: {
3427 _deserStatus = _msg.deserializeTo(_opCode);
3430 static_cast<FwAssertArgType>(_deserStatus)
3435 _deserStatus = _msg.deserializeTo(_cmdSeq);
3438 static_cast<FwAssertArgType>(_deserStatus)
3443 _deserStatus = _msg.deserializeTo(args);
3446 static_cast<FwAssertArgType>(_deserStatus)
3454 #if FW_CMD_CHECK_RESIDUAL 3481 void CommandDispatcherComponentBase ::
3492 compPtr->CmdDisp_handlerBase(
3504 void CommandDispatcherComponentBase ::
3513 compPtr->compCmdReg_handlerBase(
3519 void CommandDispatcherComponentBase ::
3530 compPtr->compCmdStat_handlerBase(
3538 void CommandDispatcherComponentBase ::
3547 compPtr->pingIn_handlerBase(
3553 void CommandDispatcherComponentBase ::
3562 compPtr->run_handlerBase(
3568 void CommandDispatcherComponentBase ::
3578 compPtr->seqCmdBuff_handlerBase(
3585 #if !FW_DIRECT_PORT_CALLS 3591 void CommandDispatcherComponentBase ::
3599 static_cast<FwAssertArgType>(portNum)
3603 this->m_CmdReg_OutputPort[portNum].isConnected(),
3604 static_cast<FwAssertArgType>(portNum)
3606 this->m_CmdReg_OutputPort[portNum].
invoke(
3611 void CommandDispatcherComponentBase ::
3621 static_cast<FwAssertArgType>(portNum)
3625 this->m_CmdStatus_OutputPort[portNum].isConnected(),
3626 static_cast<FwAssertArgType>(portNum)
3628 this->m_CmdStatus_OutputPort[portNum].
invoke(
3635 void CommandDispatcherComponentBase ::
3646 static_cast<FwAssertArgType>(portNum)
3650 this->m_Log_OutputPort[portNum].isConnected(),
3651 static_cast<FwAssertArgType>(portNum)
3653 this->m_Log_OutputPort[portNum].
invoke(
3661 #if FW_ENABLE_TEXT_LOGGING 3663 void CommandDispatcherComponentBase ::
3673 (0 <= portNum) && (portNum < this->getNum_LogText_OutputPorts()),
3674 static_cast<FwAssertArgType>(portNum)
3678 this->m_LogText_OutputPort[portNum].isConnected(),
3679 static_cast<FwAssertArgType>(portNum)
3681 this->m_LogText_OutputPort[portNum].invoke(
3691 void CommandDispatcherComponentBase ::
3699 static_cast<FwAssertArgType>(portNum)
3703 this->m_Time_OutputPort[portNum].isConnected(),
3704 static_cast<FwAssertArgType>(portNum)
3706 this->m_Time_OutputPort[portNum].
invoke(
3711 void CommandDispatcherComponentBase ::
3721 static_cast<FwAssertArgType>(portNum)
3725 this->m_Tlm_OutputPort[portNum].isConnected(),
3726 static_cast<FwAssertArgType>(portNum)
3728 this->m_Tlm_OutputPort[portNum].
invoke(
Channel ID for CommandErrors.
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
The command dispatcher has successfully received a NO-OP command from GUI with a string.
virtual void CMD_NO_OP_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CMD_NO_OP.
This log event reports the Command Sequence Buffer port queue has overflowed.
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.
Op code dispatched event.
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)
message to exit active component task
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.
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.
The command dispatcher has successfully received a NO-OP command.
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.
static constexpr FwIndexType getNum_pingIn_InputPorts()
bool isConnected_Time_OutputPort(FwIndexType portNum) const
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.
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
Channel ID for CommandsDispatched.
float F32
32-bit floating point
Message will block until space is available.
This log event message returns the TEST_CMD_1 arguments.
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.
Op code reregistered event.
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()
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())
Received a malformed command packet.
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.
Channel ID for CommandsDropped.
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.
Command failed to deserialize.
bool isConnected_Tlm_OutputPort(FwIndexType portNum) const
PlatformQueuePriorityType FwQueuePriorityType
The type of queue priorities used.
The size of the serial representation.
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.
The size of the serial representation.
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)
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.
virtual void CMD_NO_OP_STRING_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CMD_NO_OP_STRING.
Exceeded the number of commands that can be simultaneously executed.
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
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()
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.
Received an invalid opcode.
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].
Op code completed with error event.
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].
Throttle reset count for CommandDroppedQueueOverflow.
void addCallPort(InputCmdResponsePort *callPort)
Register an input port.
void lock()
lock the mutex and assert success
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)