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];
94 this->m_CmdDisp_InputPort[port].
init();
99 this->m_CmdDisp_InputPort[port].
setPortNum(port);
101 #if FW_OBJECT_NAMES == 1 105 this->m_objName.toChar(),
108 this->m_CmdDisp_InputPort[port].setObjName(portName.
toChar());
118 this->m_compCmdReg_InputPort[port].
init();
123 this->m_compCmdReg_InputPort[port].
setPortNum(port);
125 #if FW_OBJECT_NAMES == 1 129 this->m_objName.toChar(),
132 this->m_compCmdReg_InputPort[port].setObjName(portName.
toChar());
142 this->m_compCmdStat_InputPort[port].
init();
147 this->m_compCmdStat_InputPort[port].
setPortNum(port);
149 #if FW_OBJECT_NAMES == 1 153 this->m_objName.toChar(),
156 this->m_compCmdStat_InputPort[port].setObjName(portName.
toChar());
166 this->m_pingIn_InputPort[port].
init();
171 this->m_pingIn_InputPort[port].
setPortNum(port);
173 #if FW_OBJECT_NAMES == 1 177 this->m_objName.toChar(),
180 this->m_pingIn_InputPort[port].setObjName(portName.
toChar());
190 this->m_run_InputPort[port].
init();
197 #if FW_OBJECT_NAMES == 1 201 this->m_objName.toChar(),
204 this->m_run_InputPort[port].setObjName(portName.
toChar());
214 this->m_seqCmdBuff_InputPort[port].
init();
219 this->m_seqCmdBuff_InputPort[port].
setPortNum(port);
221 #if FW_OBJECT_NAMES == 1 225 this->m_objName.toChar(),
228 this->m_seqCmdBuff_InputPort[port].setObjName(portName.
toChar());
238 this->m_CmdReg_OutputPort[port].
init();
240 #if FW_OBJECT_NAMES == 1 244 this->m_objName.toChar(),
247 this->m_CmdReg_OutputPort[port].setObjName(portName.
toChar());
257 this->m_CmdStatus_OutputPort[port].
init();
259 #if FW_OBJECT_NAMES == 1 263 this->m_objName.toChar(),
266 this->m_CmdStatus_OutputPort[port].setObjName(portName.
toChar());
276 this->m_Log_OutputPort[port].
init();
278 #if FW_OBJECT_NAMES == 1 282 this->m_objName.toChar(),
285 this->m_Log_OutputPort[port].setObjName(portName.
toChar());
289 #if FW_ENABLE_TEXT_LOGGING == 1 293 port < static_cast<FwIndexType>(this->getNum_LogText_OutputPorts());
296 this->m_LogText_OutputPort[port].
init();
298 #if FW_OBJECT_NAMES == 1 302 this->m_objName.toChar(),
305 this->m_LogText_OutputPort[port].setObjName(portName.
toChar());
316 this->m_Time_OutputPort[port].
init();
318 #if FW_OBJECT_NAMES == 1 322 this->m_objName.toChar(),
325 this->m_Time_OutputPort[port].setObjName(portName.
toChar());
335 this->m_Tlm_OutputPort[port].
init();
337 #if FW_OBJECT_NAMES == 1 341 this->m_objName.toChar(),
344 this->m_Tlm_OutputPort[port].setObjName(portName.
toChar());
354 this->m_compCmdSend_OutputPort[port].
init();
356 #if FW_OBJECT_NAMES == 1 360 this->m_objName.toChar(),
363 this->m_compCmdSend_OutputPort[port].setObjName(portName.
toChar());
373 this->m_pingOut_OutputPort[port].
init();
375 #if FW_OBJECT_NAMES == 1 379 this->m_objName.toChar(),
382 this->m_pingOut_OutputPort[port].setObjName(portName.
toChar());
392 this->m_seqCmdStatus_OutputPort[port].
init();
394 #if FW_OBJECT_NAMES == 1 398 this->m_objName.toChar(),
401 this->m_seqCmdStatus_OutputPort[port].setObjName(portName.
toChar());
408 static_cast<FwSizeType>(ComponentIpcSerializableBuffer::SERIALIZATION_SIZE)
412 static_cast<FwAssertArgType>(qStat)
425 static_cast<FwAssertArgType>(portNum)
428 return &this->m_CmdDisp_InputPort[portNum];
440 static_cast<FwAssertArgType>(portNum)
443 return &this->m_compCmdReg_InputPort[portNum];
451 static_cast<FwAssertArgType>(portNum)
454 return &this->m_compCmdStat_InputPort[portNum];
462 static_cast<FwAssertArgType>(portNum)
465 return &this->m_pingIn_InputPort[portNum];
473 static_cast<FwAssertArgType>(portNum)
476 return &this->m_run_InputPort[portNum];
484 static_cast<FwAssertArgType>(portNum)
487 return &this->m_seqCmdBuff_InputPort[portNum];
502 static_cast<FwAssertArgType>(portNum)
505 this->m_CmdReg_OutputPort[portNum].
addCallPort(port);
516 static_cast<FwAssertArgType>(portNum)
519 this->m_CmdStatus_OutputPort[portNum].
addCallPort(port);
530 static_cast<FwAssertArgType>(portNum)
536 #if FW_ENABLE_TEXT_LOGGING == 1 538 void CommandDispatcherComponentBase ::
539 set_LogText_OutputPort(
545 (0 <= portNum) && (portNum < this->getNum_LogText_OutputPorts()),
546 static_cast<FwAssertArgType>(portNum)
549 this->m_LogText_OutputPort[portNum].addCallPort(port);
562 static_cast<FwAssertArgType>(portNum)
565 this->m_Time_OutputPort[portNum].
addCallPort(port);
576 static_cast<FwAssertArgType>(portNum)
594 static_cast<FwAssertArgType>(portNum)
597 this->m_compCmdSend_OutputPort[portNum].
addCallPort(port);
608 static_cast<FwAssertArgType>(portNum)
611 this->m_pingOut_OutputPort[portNum].
addCallPort(port);
622 static_cast<FwAssertArgType>(portNum)
625 this->m_seqCmdStatus_OutputPort[portNum].
addCallPort(port);
628 #if FW_PORT_SERIALIZATION 637 Fw::InputSerializePort* port
642 static_cast<FwAssertArgType>(portNum)
645 this->m_CmdReg_OutputPort[portNum].registerSerialPort(port);
651 Fw::InputSerializePort* port
656 static_cast<FwAssertArgType>(portNum)
659 this->m_CmdStatus_OutputPort[portNum].registerSerialPort(port);
665 Fw::InputSerializePort* port
670 static_cast<FwAssertArgType>(portNum)
673 this->m_Log_OutputPort[portNum].registerSerialPort(port);
676 #if FW_ENABLE_TEXT_LOGGING == 1 678 void CommandDispatcherComponentBase ::
679 set_LogText_OutputPort(
681 Fw::InputSerializePort* port
685 (0 <= portNum) && (portNum < this->getNum_LogText_OutputPorts()),
686 static_cast<FwAssertArgType>(portNum)
689 this->m_LogText_OutputPort[portNum].registerSerialPort(port);
697 Fw::InputSerializePort* port
702 static_cast<FwAssertArgType>(portNum)
705 this->m_Time_OutputPort[portNum].registerSerialPort(port);
711 Fw::InputSerializePort* port
716 static_cast<FwAssertArgType>(portNum)
719 this->m_Tlm_OutputPort[portNum].registerSerialPort(port);
724 #if FW_PORT_SERIALIZATION 733 Fw::InputSerializePort* port
738 static_cast<FwAssertArgType>(portNum)
741 this->m_compCmdSend_OutputPort[portNum].registerSerialPort(port);
747 Fw::InputSerializePort* port
752 static_cast<FwAssertArgType>(portNum)
755 this->m_pingOut_OutputPort[portNum].registerSerialPort(port);
761 Fw::InputSerializePort* port
766 static_cast<FwAssertArgType>(portNum)
769 this->m_seqCmdStatus_OutputPort[portNum].registerSerialPort(port);
781 FW_ASSERT(this->m_CmdReg_OutputPort[0].isConnected());
783 this->m_CmdReg_OutputPort[0].
invoke(
787 this->m_CmdReg_OutputPort[0].
invoke(
791 this->m_CmdReg_OutputPort[0].
invoke(
795 this->m_CmdReg_OutputPort[0].
invoke(
806 Fw::ActiveComponentBase(compName)
808 this->m_CommandDroppedQueueOverflowThrottle = 0;
826 static_cast<FwAssertArgType>(portNum)
829 return this->m_CmdReg_OutputPort[portNum].
isConnected();
837 static_cast<FwAssertArgType>(portNum)
840 return this->m_CmdStatus_OutputPort[portNum].
isConnected();
848 static_cast<FwAssertArgType>(portNum)
851 return this->m_Log_OutputPort[portNum].
isConnected();
854 #if FW_ENABLE_TEXT_LOGGING == 1 856 bool CommandDispatcherComponentBase ::
857 isConnected_LogText_OutputPort(
FwIndexType portNum)
860 (0 <= portNum) && (portNum < this->getNum_LogText_OutputPorts()),
861 static_cast<FwAssertArgType>(portNum)
864 return this->m_LogText_OutputPort[portNum].isConnected();
874 static_cast<FwAssertArgType>(portNum)
877 return this->m_Time_OutputPort[portNum].
isConnected();
885 static_cast<FwAssertArgType>(portNum)
888 return this->m_Tlm_OutputPort[portNum].
isConnected();
900 static_cast<FwAssertArgType>(portNum)
903 return this->m_compCmdSend_OutputPort[portNum].
isConnected();
911 static_cast<FwAssertArgType>(portNum)
914 return this->m_pingOut_OutputPort[portNum].
isConnected();
922 static_cast<FwAssertArgType>(portNum)
925 return this->m_seqCmdStatus_OutputPort[portNum].
isConnected();
943 static_cast<FwAssertArgType>(portNum)
970 static_cast<FwAssertArgType>(portNum)
980 ComponentIpcSerializableBuffer msg;
984 _status = msg.serializeFrom(
985 static_cast<FwEnumStoreType>(COMPCMDSTAT_CMDRESPONSE)
989 static_cast<FwAssertArgType>(_status)
993 _status = msg.serializeFrom(portNum);
996 static_cast<FwAssertArgType>(_status)
1000 _status = msg.serializeFrom(opCode);
1003 static_cast<FwAssertArgType>(_status)
1007 _status = msg.serializeFrom(cmdSeq);
1010 static_cast<FwAssertArgType>(_status)
1014 _status = msg.serializeFrom(response);
1017 static_cast<FwAssertArgType>(_status)
1026 static_cast<FwAssertArgType>(qStatus)
1039 static_cast<FwAssertArgType>(portNum)
1047 ComponentIpcSerializableBuffer msg;
1051 _status = msg.serializeFrom(
1052 static_cast<FwEnumStoreType>(PINGIN_PING)
1056 static_cast<FwAssertArgType>(_status)
1060 _status = msg.serializeFrom(portNum);
1063 static_cast<FwAssertArgType>(_status)
1067 _status = msg.serializeFrom(key);
1070 static_cast<FwAssertArgType>(_status)
1079 static_cast<FwAssertArgType>(qStatus)
1092 static_cast<FwAssertArgType>(portNum)
1100 ComponentIpcSerializableBuffer msg;
1104 _status = msg.serializeFrom(
1105 static_cast<FwEnumStoreType>(RUN_SCHED)
1109 static_cast<FwAssertArgType>(_status)
1113 _status = msg.serializeFrom(portNum);
1116 static_cast<FwAssertArgType>(_status)
1120 _status = msg.serializeFrom(context);
1123 static_cast<FwAssertArgType>(_status)
1132 static_cast<FwAssertArgType>(qStatus)
1146 static_cast<FwAssertArgType>(portNum)
1155 ComponentIpcSerializableBuffer msg;
1159 _status = msg.serializeFrom(
1160 static_cast<FwEnumStoreType>(SEQCMDBUFF_COM)
1164 static_cast<FwAssertArgType>(_status)
1168 _status = msg.serializeFrom(portNum);
1171 static_cast<FwAssertArgType>(_status)
1175 _status = msg.serializeFrom(data);
1178 static_cast<FwAssertArgType>(_status)
1182 _status = msg.serializeFrom(context);
1185 static_cast<FwAssertArgType>(_status)
1192 if (qStatus == Os::Queue::Status::FULL) {
1199 static_cast<FwAssertArgType>(qStatus)
1264 static_cast<FwAssertArgType>(portNum)
1268 this->m_compCmdSend_OutputPort[portNum].isConnected(),
1269 static_cast<FwAssertArgType>(portNum)
1271 this->m_compCmdSend_OutputPort[portNum].
invoke(
1286 static_cast<FwAssertArgType>(portNum)
1290 this->m_pingOut_OutputPort[portNum].isConnected(),
1291 static_cast<FwAssertArgType>(portNum)
1293 this->m_pingOut_OutputPort[portNum].
invoke(
1308 static_cast<FwAssertArgType>(portNum)
1312 this->m_seqCmdStatus_OutputPort[portNum].isConnected(),
1313 static_cast<FwAssertArgType>(portNum)
1315 this->m_seqCmdStatus_OutputPort[portNum].
invoke(
1333 FW_ASSERT(this->m_CmdStatus_OutputPort[0].isConnected());
1334 this->m_CmdStatus_OutputPort[0].
invoke(opCode, cmdSeq, response);
1355 ComponentIpcSerializableBuffer msg;
1359 _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_CMD_NO_OP));
1362 static_cast<FwAssertArgType>(_status)
1368 _status = msg.serializeFrom(port);
1371 static_cast<FwAssertArgType>(_status)
1374 _status = msg.serializeFrom(opCode);
1377 static_cast<FwAssertArgType>(_status)
1380 _status = msg.serializeFrom(cmdSeq);
1383 static_cast<FwAssertArgType>(_status)
1386 _status = msg.serializeFrom(args);
1389 static_cast<FwAssertArgType>(_status)
1398 static_cast<FwAssertArgType>(qStatus)
1414 ComponentIpcSerializableBuffer msg;
1418 _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_CMD_NO_OP_STRING));
1421 static_cast<FwAssertArgType>(_status)
1427 _status = msg.serializeFrom(port);
1430 static_cast<FwAssertArgType>(_status)
1433 _status = msg.serializeFrom(opCode);
1436 static_cast<FwAssertArgType>(_status)
1439 _status = msg.serializeFrom(cmdSeq);
1442 static_cast<FwAssertArgType>(_status)
1445 _status = msg.serializeFrom(args);
1448 static_cast<FwAssertArgType>(_status)
1457 static_cast<FwAssertArgType>(qStatus)
1473 ComponentIpcSerializableBuffer msg;
1477 _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_CMD_TEST_CMD_1));
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_CLEAR_TRACKING));
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)
1644 if (this->m_Time_OutputPort[0].isConnected()) {
1645 this->m_Time_OutputPort[0].
invoke(_logTime);
1653 if (this->m_Log_OutputPort[0].isConnected()) {
1657 #if FW_AMPCS_COMPATIBLE 1662 static_cast<FwAssertArgType>(_status)
1666 #if FW_AMPCS_COMPATIBLE 1673 static_cast<FwAssertArgType>(_status)
1679 static_cast<FwAssertArgType>(_status)
1682 #if FW_AMPCS_COMPATIBLE 1685 static_cast<U8>(
sizeof(I32))
1689 static_cast<FwAssertArgType>(_status)
1695 static_cast<FwAssertArgType>(_status)
1698 #if FW_AMPCS_COMPATIBLE 1701 static_cast<U8>(
sizeof(I32))
1705 static_cast<FwAssertArgType>(_status)
1711 static_cast<FwAssertArgType>(_status)
1714 this->m_Log_OutputPort[0].
invoke(
1723 #if FW_ENABLE_TEXT_LOGGING 1724 if (this->m_LogText_OutputPort[0].isConnected()) {
1725 #if FW_OBJECT_NAMES == 1 1726 const char* _formatString =
1727 "(%s) %s: Opcode 0x%" PRIx32
" registered to port %" PRIi32
" slot %" PRIi32
"";
1729 const char* _formatString =
1730 "%s: Opcode 0x%" PRIx32
" registered to port %" PRIi32
" slot %" PRIi32
"";
1737 this->m_objName.toChar(),
1739 "OpCodeRegistered ",
1745 this->m_LogText_OutputPort[0].invoke(
1763 if (this->m_Time_OutputPort[0].isConnected()) {
1764 this->m_Time_OutputPort[0].
invoke(_logTime);
1772 if (this->m_Log_OutputPort[0].isConnected()) {
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 this->m_Log_OutputPort[0].
invoke(
1826 #if FW_ENABLE_TEXT_LOGGING 1827 if (this->m_LogText_OutputPort[0].isConnected()) {
1828 #if FW_OBJECT_NAMES == 1 1829 const char* _formatString =
1830 "(%s) %s: Opcode 0x%" PRIx32
" dispatched to port %" PRIi32
"";
1832 const char* _formatString =
1833 "%s: Opcode 0x%" PRIx32
" dispatched to port %" PRIi32
"";
1840 this->m_objName.toChar(),
1842 "OpCodeDispatched ",
1847 this->m_LogText_OutputPort[0].invoke(
1862 if (this->m_Time_OutputPort[0].isConnected()) {
1863 this->m_Time_OutputPort[0].
invoke(_logTime);
1871 if (this->m_Log_OutputPort[0].isConnected()) {
1875 #if FW_AMPCS_COMPATIBLE 1880 static_cast<FwAssertArgType>(_status)
1884 #if FW_AMPCS_COMPATIBLE 1891 static_cast<FwAssertArgType>(_status)
1897 static_cast<FwAssertArgType>(_status)
1900 this->m_Log_OutputPort[0].
invoke(
1909 #if FW_ENABLE_TEXT_LOGGING 1910 if (this->m_LogText_OutputPort[0].isConnected()) {
1911 #if FW_OBJECT_NAMES == 1 1912 const char* _formatString =
1913 "(%s) %s: Opcode 0x%" PRIx32
" completed";
1915 const char* _formatString =
1916 "%s: Opcode 0x%" PRIx32
" completed";
1923 this->m_objName.toChar(),
1929 this->m_LogText_OutputPort[0].invoke(
1947 if (this->m_Time_OutputPort[0].isConnected()) {
1948 this->m_Time_OutputPort[0].
invoke(_logTime);
1956 if (this->m_Log_OutputPort[0].isConnected()) {
1960 #if FW_AMPCS_COMPATIBLE 1965 static_cast<FwAssertArgType>(_status)
1969 #if FW_AMPCS_COMPATIBLE 1976 static_cast<FwAssertArgType>(_status)
1982 static_cast<FwAssertArgType>(_status)
1985 #if FW_AMPCS_COMPATIBLE 1992 static_cast<FwAssertArgType>(_status)
1998 static_cast<FwAssertArgType>(_status)
2001 this->m_Log_OutputPort[0].
invoke(
2010 #if FW_ENABLE_TEXT_LOGGING 2011 if (this->m_LogText_OutputPort[0].isConnected()) {
2012 #if FW_OBJECT_NAMES == 1 2013 const char* _formatString =
2014 "(%s) %s: Opcode 0x%" PRIx32
" completed with error %s";
2016 const char* _formatString =
2017 "%s: Opcode 0x%" PRIx32
" completed with error %s";
2021 error.toString(errorStr);
2027 this->m_objName.toChar(),
2034 this->m_LogText_OutputPort[0].invoke(
2049 if (this->m_Time_OutputPort[0].isConnected()) {
2050 this->m_Time_OutputPort[0].
invoke(_logTime);
2058 if (this->m_Log_OutputPort[0].isConnected()) {
2062 #if FW_AMPCS_COMPATIBLE 2067 static_cast<FwAssertArgType>(_status)
2071 #if FW_AMPCS_COMPATIBLE 2078 static_cast<FwAssertArgType>(_status)
2084 static_cast<FwAssertArgType>(_status)
2087 this->m_Log_OutputPort[0].
invoke(
2096 #if FW_ENABLE_TEXT_LOGGING 2097 if (this->m_LogText_OutputPort[0].isConnected()) {
2098 #if FW_OBJECT_NAMES == 1 2099 const char* _formatString =
2100 "(%s) %s: Received malformed command packet. Status: %s";
2102 const char* _formatString =
2103 "%s: Received malformed command packet. Status: %s";
2107 Status.toString(StatusStr);
2113 this->m_objName.toChar(),
2115 "MalformedCommand ",
2119 this->m_LogText_OutputPort[0].invoke(
2134 if (this->m_Time_OutputPort[0].isConnected()) {
2135 this->m_Time_OutputPort[0].
invoke(_logTime);
2143 if (this->m_Log_OutputPort[0].isConnected()) {
2147 #if FW_AMPCS_COMPATIBLE 2152 static_cast<FwAssertArgType>(_status)
2156 #if FW_AMPCS_COMPATIBLE 2163 static_cast<FwAssertArgType>(_status)
2169 static_cast<FwAssertArgType>(_status)
2172 this->m_Log_OutputPort[0].
invoke(
2181 #if FW_ENABLE_TEXT_LOGGING 2182 if (this->m_LogText_OutputPort[0].isConnected()) {
2183 #if FW_OBJECT_NAMES == 1 2184 const char* _formatString =
2185 "(%s) %s: Invalid opcode 0x%" PRIx32
" received";
2187 const char* _formatString =
2188 "%s: Invalid opcode 0x%" PRIx32
" received";
2195 this->m_objName.toChar(),
2201 this->m_LogText_OutputPort[0].invoke(
2216 if (this->m_Time_OutputPort[0].isConnected()) {
2217 this->m_Time_OutputPort[0].
invoke(_logTime);
2225 if (this->m_Log_OutputPort[0].isConnected()) {
2229 #if FW_AMPCS_COMPATIBLE 2234 static_cast<FwAssertArgType>(_status)
2238 #if FW_AMPCS_COMPATIBLE 2245 static_cast<FwAssertArgType>(_status)
2251 static_cast<FwAssertArgType>(_status)
2254 this->m_Log_OutputPort[0].
invoke(
2263 #if FW_ENABLE_TEXT_LOGGING 2264 if (this->m_LogText_OutputPort[0].isConnected()) {
2265 #if FW_OBJECT_NAMES == 1 2266 const char* _formatString =
2267 "(%s) %s: Too many outstanding commands. opcode=0x%" PRIx32
"";
2269 const char* _formatString =
2270 "%s: Too many outstanding commands. opcode=0x%" PRIx32
"";
2277 this->m_objName.toChar(),
2283 this->m_LogText_OutputPort[0].invoke(
2298 if (this->m_Time_OutputPort[0].isConnected()) {
2299 this->m_Time_OutputPort[0].
invoke(_logTime);
2307 if (this->m_Log_OutputPort[0].isConnected()) {
2310 #if FW_AMPCS_COMPATIBLE 2316 static_cast<FwAssertArgType>(_status)
2320 this->m_Log_OutputPort[0].
invoke(
2329 #if FW_ENABLE_TEXT_LOGGING 2330 if (this->m_LogText_OutputPort[0].isConnected()) {
2331 #if FW_OBJECT_NAMES == 1 2332 const char* _formatString =
2333 "(%s) %s: Received a NO-OP command";
2335 const char* _formatString =
2336 "%s: Received a NO-OP command";
2343 this->m_objName.toChar(),
2348 this->m_LogText_OutputPort[0].invoke(
2363 if (this->m_Time_OutputPort[0].isConnected()) {
2364 this->m_Time_OutputPort[0].
invoke(_logTime);
2372 if (this->m_Log_OutputPort[0].isConnected()) {
2376 #if FW_AMPCS_COMPATIBLE 2381 static_cast<FwAssertArgType>(_status)
2388 static_cast<FwAssertArgType>(_status)
2391 this->m_Log_OutputPort[0].
invoke(
2400 #if FW_ENABLE_TEXT_LOGGING 2401 if (this->m_LogText_OutputPort[0].isConnected()) {
2402 #if FW_OBJECT_NAMES == 1 2403 const char* _formatString =
2404 "(%s) %s: Received a NO-OP string=%s";
2406 const char* _formatString =
2407 "%s: Received a NO-OP string=%s";
2414 this->m_objName.toChar(),
2416 "NoOpStringReceived ",
2420 this->m_LogText_OutputPort[0].invoke(
2439 if (this->m_Time_OutputPort[0].isConnected()) {
2440 this->m_Time_OutputPort[0].
invoke(_logTime);
2448 if (this->m_Log_OutputPort[0].isConnected()) {
2452 #if FW_AMPCS_COMPATIBLE 2457 static_cast<FwAssertArgType>(_status)
2461 #if FW_AMPCS_COMPATIBLE 2464 static_cast<U8>(
sizeof(I32))
2468 static_cast<FwAssertArgType>(_status)
2474 static_cast<FwAssertArgType>(_status)
2477 #if FW_AMPCS_COMPATIBLE 2480 static_cast<U8>(
sizeof(
F32))
2484 static_cast<FwAssertArgType>(_status)
2490 static_cast<FwAssertArgType>(_status)
2493 #if FW_AMPCS_COMPATIBLE 2496 static_cast<U8>(
sizeof(
U8))
2500 static_cast<FwAssertArgType>(_status)
2506 static_cast<FwAssertArgType>(_status)
2509 this->m_Log_OutputPort[0].
invoke(
2518 #if FW_ENABLE_TEXT_LOGGING 2519 if (this->m_LogText_OutputPort[0].isConnected()) {
2520 #if FW_OBJECT_NAMES == 1 2521 const char* _formatString =
2522 "(%s) %s: TEST_CMD_1 args: I32: %" PRIi32
", F32: %f, U8: %" PRIu8
"";
2524 const char* _formatString =
2525 "%s: TEST_CMD_1 args: I32: %" PRIi32
", F32: %f, U8: %" PRIu8
"";
2532 this->m_objName.toChar(),
2536 static_cast<F64>(arg2),
2540 this->m_LogText_OutputPort[0].invoke(
2558 if (this->m_Time_OutputPort[0].isConnected()) {
2559 this->m_Time_OutputPort[0].
invoke(_logTime);
2567 if (this->m_Log_OutputPort[0].isConnected()) {
2571 #if FW_AMPCS_COMPATIBLE 2576 static_cast<FwAssertArgType>(_status)
2580 #if FW_AMPCS_COMPATIBLE 2587 static_cast<FwAssertArgType>(_status)
2593 static_cast<FwAssertArgType>(_status)
2596 #if FW_AMPCS_COMPATIBLE 2599 static_cast<U8>(
sizeof(I32))
2603 static_cast<FwAssertArgType>(_status)
2609 static_cast<FwAssertArgType>(_status)
2612 this->m_Log_OutputPort[0].
invoke(
2621 #if FW_ENABLE_TEXT_LOGGING 2622 if (this->m_LogText_OutputPort[0].isConnected()) {
2623 #if FW_OBJECT_NAMES == 1 2624 const char* _formatString =
2625 "(%s) %s: Opcode 0x%" PRIx32
" is already registered to port %" PRIi32
"";
2627 const char* _formatString =
2628 "%s: Opcode 0x%" PRIx32
" is already registered to port %" PRIi32
"";
2635 this->m_objName.toChar(),
2637 "OpCodeReregistered ",
2642 this->m_LogText_OutputPort[0].invoke(
2663 this->m_CommandDroppedQueueOverflowThrottle++;
2668 if (this->m_Time_OutputPort[0].isConnected()) {
2669 this->m_Time_OutputPort[0].
invoke(_logTime);
2677 if (this->m_Log_OutputPort[0].isConnected()) {
2681 #if FW_AMPCS_COMPATIBLE 2686 static_cast<FwAssertArgType>(_status)
2690 #if FW_AMPCS_COMPATIBLE 2697 static_cast<FwAssertArgType>(_status)
2703 static_cast<FwAssertArgType>(_status)
2706 #if FW_AMPCS_COMPATIBLE 2709 static_cast<U8>(
sizeof(U32))
2713 static_cast<FwAssertArgType>(_status)
2719 static_cast<FwAssertArgType>(_status)
2722 this->m_Log_OutputPort[0].
invoke(
2731 #if FW_ENABLE_TEXT_LOGGING 2732 if (this->m_LogText_OutputPort[0].isConnected()) {
2733 #if FW_OBJECT_NAMES == 1 2734 const char* _formatString =
2735 "(%s) %s: Opcode 0x%" PRIx32
" was dropped due to buffer overflow and not processed. Context %" PRIu32
"";
2737 const char* _formatString =
2738 "%s: Opcode 0x%" PRIx32
" was dropped due to buffer overflow and not processed. Context %" PRIu32
"";
2745 this->m_objName.toChar(),
2747 "CommandDroppedQueueOverflow ",
2752 this->m_LogText_OutputPort[0].invoke(
2770 this->m_CommandDroppedQueueOverflowThrottle = 0;
2784 if (not this->m_first_update_CommandsDispatched) {
2786 if (arg == this->m_last_CommandsDispatched) {
2790 this->m_last_CommandsDispatched = arg;
2794 this->m_first_update_CommandsDispatched =
false;
2795 this->m_last_CommandsDispatched = arg;
2798 if (this->m_Tlm_OutputPort[0].isConnected()) {
2800 this->m_Time_OutputPort[0].isConnected() &&
2803 this->m_Time_OutputPort[0].
invoke(_tlmTime);
2810 static_cast<FwAssertArgType>(_stat)
2817 this->m_Tlm_OutputPort[0].
invoke(
2832 if (not this->m_first_update_CommandErrors) {
2834 if (arg == this->m_last_CommandErrors) {
2838 this->m_last_CommandErrors = arg;
2842 this->m_first_update_CommandErrors =
false;
2843 this->m_last_CommandErrors = arg;
2846 if (this->m_Tlm_OutputPort[0].isConnected()) {
2848 this->m_Time_OutputPort[0].isConnected() &&
2851 this->m_Time_OutputPort[0].
invoke(_tlmTime);
2858 static_cast<FwAssertArgType>(_stat)
2865 this->m_Tlm_OutputPort[0].
invoke(
2880 if (not this->m_first_update_CommandsDropped) {
2882 if (arg == this->m_last_CommandsDropped) {
2886 this->m_last_CommandsDropped = arg;
2890 this->m_first_update_CommandsDropped =
false;
2891 this->m_last_CommandsDropped = arg;
2894 if (this->m_Tlm_OutputPort[0].isConnected()) {
2896 this->m_Time_OutputPort[0].isConnected() &&
2899 this->m_Time_OutputPort[0].
invoke(_tlmTime);
2906 static_cast<FwAssertArgType>(_stat)
2913 this->m_Tlm_OutputPort[0].
invoke(
2928 if (this->m_Time_OutputPort[0].isConnected()) {
2930 this->m_Time_OutputPort[0].
invoke(_time);
2948 this->m_guardedPortMutex.
lock();
2954 this->m_guardedPortMutex.
unLock();
2964 ComponentIpcSerializableBuffer _msg;
2974 static_cast<FwAssertArgType>(_msgStatus)
2984 static_cast<FwAssertArgType>(_deserStatus)
2987 MsgTypeEnum _msgType =
static_cast<MsgTypeEnum
>(_desMsg);
2989 if (_msgType == COMMANDDISPATCHER_COMPONENT_EXIT) {
2994 _deserStatus = _msg.deserializeTo(portNum);
2997 static_cast<FwAssertArgType>(_deserStatus)
3002 case COMPCMDSTAT_CMDRESPONSE: {
3005 _deserStatus = _msg.deserializeTo(opCode);
3008 static_cast<FwAssertArgType>(_deserStatus)
3013 _deserStatus = _msg.deserializeTo(cmdSeq);
3016 static_cast<FwAssertArgType>(_deserStatus)
3021 _deserStatus = _msg.deserializeTo(response);
3024 static_cast<FwAssertArgType>(_deserStatus)
3041 _deserStatus = _msg.deserializeTo(key);
3044 static_cast<FwAssertArgType>(_deserStatus)
3059 _deserStatus = _msg.deserializeTo(context);
3062 static_cast<FwAssertArgType>(_deserStatus)
3074 case SEQCMDBUFF_COM: {
3077 _deserStatus = _msg.deserializeTo(data);
3080 static_cast<FwAssertArgType>(_deserStatus)
3085 _deserStatus = _msg.deserializeTo(context);
3088 static_cast<FwAssertArgType>(_deserStatus)
3101 case CMD_CMD_NO_OP: {
3104 _deserStatus = _msg.deserializeTo(_opCode);
3107 static_cast<FwAssertArgType>(_deserStatus)
3112 _deserStatus = _msg.deserializeTo(_cmdSeq);
3115 static_cast<FwAssertArgType>(_deserStatus)
3120 _deserStatus = _msg.deserializeTo(args);
3123 static_cast<FwAssertArgType>(_deserStatus)
3131 #if FW_CMD_CHECK_RESIDUAL 3133 if (this->m_CmdStatus_OutputPort[0].isConnected()) {
3148 case CMD_CMD_NO_OP_STRING: {
3151 _deserStatus = _msg.deserializeTo(_opCode);
3154 static_cast<FwAssertArgType>(_deserStatus)
3159 _deserStatus = _msg.deserializeTo(_cmdSeq);
3162 static_cast<FwAssertArgType>(_deserStatus)
3167 _deserStatus = _msg.deserializeTo(args);
3170 static_cast<FwAssertArgType>(_deserStatus)
3180 if (this->m_CmdStatus_OutputPort[0].isConnected()) {
3193 #if FW_CMD_CHECK_RESIDUAL 3195 if (this->m_CmdStatus_OutputPort[0].isConnected()) {
3213 case CMD_CMD_TEST_CMD_1: {
3216 _deserStatus = _msg.deserializeTo(_opCode);
3219 static_cast<FwAssertArgType>(_deserStatus)
3224 _deserStatus = _msg.deserializeTo(_cmdSeq);
3227 static_cast<FwAssertArgType>(_deserStatus)
3232 _deserStatus = _msg.deserializeTo(args);
3235 static_cast<FwAssertArgType>(_deserStatus)
3245 if (this->m_CmdStatus_OutputPort[0].isConnected()) {
3260 if (this->m_CmdStatus_OutputPort[0].isConnected()) {
3275 if (this->m_CmdStatus_OutputPort[0].isConnected()) {
3288 #if FW_CMD_CHECK_RESIDUAL 3290 if (this->m_CmdStatus_OutputPort[0].isConnected()) {
3310 case CMD_CMD_CLEAR_TRACKING: {
3313 _deserStatus = _msg.deserializeTo(_opCode);
3316 static_cast<FwAssertArgType>(_deserStatus)
3321 _deserStatus = _msg.deserializeTo(_cmdSeq);
3324 static_cast<FwAssertArgType>(_deserStatus)
3329 _deserStatus = _msg.deserializeTo(args);
3332 static_cast<FwAssertArgType>(_deserStatus)
3340 #if FW_CMD_CHECK_RESIDUAL 3342 if (this->m_CmdStatus_OutputPort[0].isConnected()) {
3367 void CommandDispatcherComponentBase ::
3379 const U32 idBase = callComp->
getIdBase();
3380 FW_ASSERT(opCode >= idBase, static_cast<FwAssertArgType>(opCode), static_cast<FwAssertArgType>(idBase));
3383 switch (opCode - idBase) {
3385 compPtr->CMD_NO_OP_cmdHandlerBase(
3394 compPtr->CMD_NO_OP_STRING_cmdHandlerBase(
3403 compPtr->CMD_TEST_CMD_1_cmdHandlerBase(
3412 compPtr->CMD_CLEAR_TRACKING_cmdHandlerBase(
3426 void CommandDispatcherComponentBase ::
3435 compPtr->compCmdReg_handlerBase(
3441 void CommandDispatcherComponentBase ::
3452 compPtr->compCmdStat_handlerBase(
3460 void CommandDispatcherComponentBase ::
3469 compPtr->pingIn_handlerBase(
3475 void CommandDispatcherComponentBase ::
3484 compPtr->run_handlerBase(
3490 void CommandDispatcherComponentBase ::
3500 compPtr->seqCmdBuff_handlerBase(
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()
virtual void CMD_NO_OP_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CMD_NO_OP.
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()
void invoke(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args) const
Invoke a port interface.
void log_ACTIVITY_HI_NoOpReceived() const
message to exit active component task
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)
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.
The command dispatcher has successfully received a NO-OP command from GUI with a string.
void unLock()
unlock the mutex and assert success
Fw::InputCmdPort * get_CmdDisp_InputPort(FwIndexType portNum)
void invoke(U32 key) const
Invoke a port interface.
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.
virtual void run_handler(FwIndexType portNum, U32 context)=0
Handler for input port run.
Throttle reset count for CommandDroppedQueueOverflow.
virtual void CMD_NO_OP_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
void log_ACTIVITY_HI_TestCmd1Args(I32 arg1, F32 arg2, U8 arg3) const
void pingOut_out(FwIndexType portNum, U32 key)
Invoke output port pingOut.
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.
Received a malformed command packet.
static constexpr FwIndexType getNum_pingIn_InputPorts()
static constexpr FwIndexType getNum_pingOut_OutputPorts()
bool isConnected_CmdStatus_OutputPort(FwIndexType portNum)
void compCmdSend_out(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
Invoke output port compCmdSend.
void log_DIAGNOSTIC_OpCodeReregistered(FwOpcodeType Opcode, I32 port) const
Os::Queue m_queue
queue object for active component
static constexpr FwIndexType getNum_CmdStatus_OutputPorts()
bool isConnected_CmdReg_OutputPort(FwIndexType portNum)
Software diagnostic events.
Svc::InputPingPort * get_pingIn_InputPort(FwIndexType portNum)
static constexpr FwIndexType getNum_Tlm_OutputPorts()
void addCallPort(InputTlmPort *callPort)
Register an input port.
Received an invalid opcode.
void init()
Object initializer.
virtual void CMD_TEST_CMD_1_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CMD_TEST_CMD_1.
The size of the serial representation.
SerializeStatus
forward declaration for string
float F32
32-bit floating point
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
bool isConnected_Tlm_OutputPort(FwIndexType portNum)
void tlmWrite_CommandsDispatched(U32 arg, Fw::Time _tlmTime=Fw::Time())
static constexpr FwIndexType getNum_CmdReg_OutputPorts()
void invoke(FwOpcodeType opCode) const
Invoke a port interface.
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.
Clear command tracking info to recover from components not returning status.
Os::Queue::Status createQueue(FwSizeType depth, FwSizeType msgSize)
#define FW_MIN(a, b)
MIN macro.
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 interface.
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 interface.
static constexpr FwIndexType getNum_Time_OutputPorts()
FwIdType FwChanIdType
The type of a telemetry channel identifier.
void addCallPort(InputPingPort *callPort)
Register an input port.
The command dispatcher has successfully received a NO-OP command.
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())
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.
Op code reregistered event.
void invoke(FwChanIdType id, Fw::Time &timeTag, Fw::TlmBuffer &val) const
Invoke a port interface.
static constexpr FwIndexType getNum_compCmdReg_InputPorts()
void log_WARNING_HI_InvalidCommand(FwOpcodeType Opcode) const
bool isConnected_Time_OutputPort(FwIndexType portNum)
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.
uint8_t U8
8-bit unsigned integer
void log_COMMAND_OpCodeError(FwOpcodeType Opcode, Fw::CmdResponse error) const
Command failed to deserialize.
PlatformQueuePriorityType FwQueuePriorityType
The type of queue priorities used.
Important informational events.
void invoke(FwEventIdType id, Fw::Time &timeTag, const Fw::LogSeverity &severity, Fw::LogBuffer &args) const
Invoke a port interface.
Channel ID for CommandErrors.
This log event message returns the TEST_CMD_1 arguments.
A message was sent requesting an exit of the loop.
The size of the serial representation.
void seqCmdStatus_out(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response)
Invoke output port seqCmdStatus.
Exceeded the number of commands that can be simultaneously executed.
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.
Channel ID for CommandsDispatched.
virtual void CMD_CLEAR_TRACKING_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CMD_CLEAR_TRACKING.
void set_Tlm_OutputPort(FwIndexType portNum, Fw::InputTlmPort *port)
Connect port to Tlm[portNum].
void CMD_CLEAR_TRACKING_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
double F64
64-bit floating point (double). Required for compiler-supplied double promotion.
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
bool isConnected_seqCmdStatus_OutputPort(FwIndexType portNum)
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()
bool isConnected_pingOut_OutputPort(FwIndexType portNum)
bool isConnected_Log_OutputPort(FwIndexType portNum)
Message will return with status when space is unavailable.
void CMD_NO_OP_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
This log event reports the Command Sequence Buffer port queue has overflowed.
Implementation of malloc based allocator.
Op code dispatched event.
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
bool isConnected_compCmdSend_OutputPort(FwIndexType portNum)
virtual void lock()
Lock the guarded mutex.
void cmdResponse_out(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdResponse response)
Emit command response.
Channel ID for CommandsDropped.
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
Op code completed with error event.
SerializeStatus serializeTo(SerialBufferBase &buffer, Endianness mode=Endianness::BIG) const override
Serialize the contents of this object to a buffer.
void CMD_TEST_CMD_1_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)