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(
This log event message returns the TEST_CMD_1 arguments.
Serialization/Deserialization operation was successful.
The size of the serial representation.
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.
Clear command tracking info to recover from components not returning status.
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
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.
The command dispatcher has successfully received a NO-OP command.
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)
Received an invalid opcode.
const char * toChar() const
Convert to a C-style char*.
virtual void run_preMsgHook(FwIndexType portNum, U32 context)
Pre-message hook for async input port run.
virtual void unLock()
Unlock the guarded mutex.
void unLock()
unlock the mutex and assert success
Fw::InputCmdPort * get_CmdDisp_InputPort(FwIndexType portNum)
void invoke(U32 key) const
Invoke a port 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.
Exceeded the number of commands that can be simultaneously executed.
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 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.
Channel ID for CommandsDispatched.
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.
void init()
Object initializer.
virtual void CMD_TEST_CMD_1_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CMD_TEST_CMD_1.
SerializeStatus
forward declaration for string
float F32
32-bit floating point
Message will block until space is available.
void log_COMMAND_OpCodeCompleted(FwOpcodeType Opcode) const
FwIdType FwEventIdType
The type of an event identifier.
void log_ACTIVITY_HI_NoOpStringReceived(const Fw::StringBase &message) const
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.
Received a malformed command packet.
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)
#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 from GUI with a string.
Status send(const U8 *buffer, FwSizeType size, FwQueuePriorityType priority, BlockingType blockType) override
send a message into the queue through delegate
Op code dispatched event.
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.
This log event reports the Command Sequence Buffer port queue has overflowed.
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.
A message was sent requesting an exit of the loop.
message to exit active component task
void seqCmdStatus_out(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response)
Invoke output port seqCmdStatus.
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.
Op code reregistered event.
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.
The size of the serial representation.
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.
Op code completed with error event.
Throttle reset count for CommandDroppedQueueOverflow.
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)
Channel ID for CommandsDropped.
Channel ID for CommandErrors.
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
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.
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
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)