9 #if FW_ENABLE_TEXT_LOGGING 34 class ComponentIpcSerializableBuffer :
44 MAX_DATA_SIZE =
sizeof(BuffUnion),
46 SERIALIZATION_SIZE = DATA_OFFSET + MAX_DATA_SIZE
50 return sizeof(m_buff);
57 const U8* getBuffAddr()
const {
63 U8 m_buff[SERIALIZATION_SIZE];
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());
111 this->m_PingReturn_InputPort[port].
init();
116 this->m_PingReturn_InputPort[port].
setPortNum(port);
118 #if FW_OBJECT_NAMES == 1 122 this->m_objName.toChar(),
125 this->m_PingReturn_InputPort[port].setObjName(portName.
toChar());
135 this->m_Run_InputPort[port].
init();
142 #if FW_OBJECT_NAMES == 1 146 this->m_objName.toChar(),
149 this->m_Run_InputPort[port].setObjName(portName.
toChar());
159 this->m_CmdReg_OutputPort[port].
init();
161 #if FW_OBJECT_NAMES == 1 165 this->m_objName.toChar(),
168 this->m_CmdReg_OutputPort[port].setObjName(portName.
toChar());
178 this->m_CmdStatus_OutputPort[port].
init();
180 #if FW_OBJECT_NAMES == 1 184 this->m_objName.toChar(),
187 this->m_CmdStatus_OutputPort[port].setObjName(portName.
toChar());
197 this->m_Log_OutputPort[port].
init();
199 #if FW_OBJECT_NAMES == 1 203 this->m_objName.toChar(),
206 this->m_Log_OutputPort[port].setObjName(portName.
toChar());
210 #if FW_ENABLE_TEXT_LOGGING == 1 214 port < static_cast<FwIndexType>(this->getNum_LogText_OutputPorts());
217 this->m_LogText_OutputPort[port].
init();
219 #if FW_OBJECT_NAMES == 1 223 this->m_objName.toChar(),
226 this->m_LogText_OutputPort[port].setObjName(portName.
toChar());
237 this->m_Time_OutputPort[port].
init();
239 #if FW_OBJECT_NAMES == 1 243 this->m_objName.toChar(),
246 this->m_Time_OutputPort[port].setObjName(portName.
toChar());
256 this->m_Tlm_OutputPort[port].
init();
258 #if FW_OBJECT_NAMES == 1 262 this->m_objName.toChar(),
265 this->m_Tlm_OutputPort[port].setObjName(portName.
toChar());
275 this->m_PingSend_OutputPort[port].
init();
277 #if FW_OBJECT_NAMES == 1 281 this->m_objName.toChar(),
284 this->m_PingSend_OutputPort[port].setObjName(portName.
toChar());
294 this->m_WdogStroke_OutputPort[port].
init();
296 #if FW_OBJECT_NAMES == 1 300 this->m_objName.toChar(),
303 this->m_WdogStroke_OutputPort[port].setObjName(portName.
toChar());
310 static_cast<FwSizeType>(ComponentIpcSerializableBuffer::SERIALIZATION_SIZE)
314 static_cast<FwAssertArgType>(qStat)
327 static_cast<FwAssertArgType>(portNum)
330 return &this->m_CmdDisp_InputPort[portNum];
342 static_cast<FwAssertArgType>(portNum)
345 return &this->m_PingReturn_InputPort[portNum];
353 static_cast<FwAssertArgType>(portNum)
356 return &this->m_Run_InputPort[portNum];
371 static_cast<FwAssertArgType>(portNum)
374 this->m_CmdReg_OutputPort[portNum].
addCallPort(port);
385 static_cast<FwAssertArgType>(portNum)
388 this->m_CmdStatus_OutputPort[portNum].
addCallPort(port);
399 static_cast<FwAssertArgType>(portNum)
405 #if FW_ENABLE_TEXT_LOGGING == 1 407 void HealthComponentBase ::
408 set_LogText_OutputPort(
414 (0 <= portNum) && (portNum < this->getNum_LogText_OutputPorts()),
415 static_cast<FwAssertArgType>(portNum)
418 this->m_LogText_OutputPort[portNum].addCallPort(port);
431 static_cast<FwAssertArgType>(portNum)
434 this->m_Time_OutputPort[portNum].
addCallPort(port);
445 static_cast<FwAssertArgType>(portNum)
463 static_cast<FwAssertArgType>(portNum)
466 this->m_PingSend_OutputPort[portNum].
addCallPort(port);
477 static_cast<FwAssertArgType>(portNum)
480 this->m_WdogStroke_OutputPort[portNum].
addCallPort(port);
483 #if FW_PORT_SERIALIZATION 492 Fw::InputSerializePort* port
497 static_cast<FwAssertArgType>(portNum)
500 this->m_CmdReg_OutputPort[portNum].registerSerialPort(port);
506 Fw::InputSerializePort* port
511 static_cast<FwAssertArgType>(portNum)
514 this->m_CmdStatus_OutputPort[portNum].registerSerialPort(port);
520 Fw::InputSerializePort* port
525 static_cast<FwAssertArgType>(portNum)
528 this->m_Log_OutputPort[portNum].registerSerialPort(port);
531 #if FW_ENABLE_TEXT_LOGGING == 1 533 void HealthComponentBase ::
534 set_LogText_OutputPort(
536 Fw::InputSerializePort* port
540 (0 <= portNum) && (portNum < this->getNum_LogText_OutputPorts()),
541 static_cast<FwAssertArgType>(portNum)
544 this->m_LogText_OutputPort[portNum].registerSerialPort(port);
552 Fw::InputSerializePort* port
557 static_cast<FwAssertArgType>(portNum)
560 this->m_Time_OutputPort[portNum].registerSerialPort(port);
566 Fw::InputSerializePort* port
571 static_cast<FwAssertArgType>(portNum)
574 this->m_Tlm_OutputPort[portNum].registerSerialPort(port);
579 #if FW_PORT_SERIALIZATION 588 Fw::InputSerializePort* port
593 static_cast<FwAssertArgType>(portNum)
596 this->m_PingSend_OutputPort[portNum].registerSerialPort(port);
602 Fw::InputSerializePort* port
607 static_cast<FwAssertArgType>(portNum)
610 this->m_WdogStroke_OutputPort[portNum].registerSerialPort(port);
622 FW_ASSERT(this->m_CmdReg_OutputPort[0].isConnected());
624 this->m_CmdReg_OutputPort[0].
invoke(
628 this->m_CmdReg_OutputPort[0].
invoke(
632 this->m_CmdReg_OutputPort[0].
invoke(
643 Fw::QueuedComponentBase(compName)
702 #if FW_ENABLE_TEXT_LOGGING == 1 705 getNum_LogText_OutputPorts()
const 749 static_cast<FwAssertArgType>(portNum)
752 return this->m_CmdReg_OutputPort[portNum].
isConnected();
760 static_cast<FwAssertArgType>(portNum)
763 return this->m_CmdStatus_OutputPort[portNum].
isConnected();
771 static_cast<FwAssertArgType>(portNum)
774 return this->m_Log_OutputPort[portNum].
isConnected();
777 #if FW_ENABLE_TEXT_LOGGING == 1 779 bool HealthComponentBase ::
780 isConnected_LogText_OutputPort(
FwIndexType portNum)
783 (0 <= portNum) && (portNum < this->getNum_LogText_OutputPorts()),
784 static_cast<FwAssertArgType>(portNum)
787 return this->m_LogText_OutputPort[portNum].isConnected();
797 static_cast<FwAssertArgType>(portNum)
800 return this->m_Time_OutputPort[portNum].
isConnected();
808 static_cast<FwAssertArgType>(portNum)
811 return this->m_Tlm_OutputPort[portNum].
isConnected();
823 static_cast<FwAssertArgType>(portNum)
826 return this->m_PingSend_OutputPort[portNum].
isConnected();
834 static_cast<FwAssertArgType>(portNum)
837 return this->m_WdogStroke_OutputPort[portNum].
isConnected();
855 static_cast<FwAssertArgType>(portNum)
863 ComponentIpcSerializableBuffer msg;
867 _status = msg.serialize(
868 static_cast<FwEnumStoreType>(PINGRETURN_PING)
872 static_cast<FwAssertArgType>(_status)
876 _status = msg.serialize(portNum);
879 static_cast<FwAssertArgType>(_status)
883 _status = msg.serialize(key);
886 static_cast<FwAssertArgType>(_status)
895 static_cast<FwAssertArgType>(qStatus)
908 static_cast<FwAssertArgType>(portNum)
947 static_cast<FwAssertArgType>(portNum)
951 this->m_PingSend_OutputPort[portNum].isConnected(),
952 static_cast<FwAssertArgType>(portNum)
954 this->m_PingSend_OutputPort[portNum].
invoke(
967 static_cast<FwAssertArgType>(portNum)
971 this->m_WdogStroke_OutputPort[portNum].isConnected(),
972 static_cast<FwAssertArgType>(portNum)
974 this->m_WdogStroke_OutputPort[portNum].
invoke(
990 FW_ASSERT(this->m_CmdStatus_OutputPort[0].isConnected());
991 this->m_CmdStatus_OutputPort[0].
invoke(opCode, cmdSeq, response);
1012 ComponentIpcSerializableBuffer msg;
1016 _status = msg.serialize(static_cast<FwEnumStoreType>(CMD_HLTH_ENABLE));
1019 static_cast<FwAssertArgType>(_status)
1025 _status = msg.serialize(port);
1028 static_cast<FwAssertArgType>(_status)
1031 _status = msg.serialize(opCode);
1034 static_cast<FwAssertArgType>(_status)
1037 _status = msg.serialize(cmdSeq);
1040 static_cast<FwAssertArgType>(_status)
1043 _status = msg.serialize(args);
1046 static_cast<FwAssertArgType>(_status)
1055 static_cast<FwAssertArgType>(qStatus)
1071 ComponentIpcSerializableBuffer msg;
1075 _status = msg.serialize(static_cast<FwEnumStoreType>(CMD_HLTH_PING_ENABLE));
1078 static_cast<FwAssertArgType>(_status)
1084 _status = msg.serialize(port);
1087 static_cast<FwAssertArgType>(_status)
1090 _status = msg.serialize(opCode);
1093 static_cast<FwAssertArgType>(_status)
1096 _status = msg.serialize(cmdSeq);
1099 static_cast<FwAssertArgType>(_status)
1102 _status = msg.serialize(args);
1105 static_cast<FwAssertArgType>(_status)
1114 static_cast<FwAssertArgType>(qStatus)
1130 ComponentIpcSerializableBuffer msg;
1134 _status = msg.serialize(static_cast<FwEnumStoreType>(CMD_HLTH_CHNG_PING));
1137 static_cast<FwAssertArgType>(_status)
1143 _status = msg.serialize(port);
1146 static_cast<FwAssertArgType>(_status)
1149 _status = msg.serialize(opCode);
1152 static_cast<FwAssertArgType>(_status)
1155 _status = msg.serialize(cmdSeq);
1158 static_cast<FwAssertArgType>(_status)
1161 _status = msg.serialize(args);
1164 static_cast<FwAssertArgType>(_status)
1173 static_cast<FwAssertArgType>(qStatus)
1227 if (this->m_Time_OutputPort[0].isConnected()) {
1228 this->m_Time_OutputPort[0].
invoke(_logTime);
1236 if (this->m_Log_OutputPort[0].isConnected()) {
1240 #if FW_AMPCS_COMPATIBLE 1242 _status = _logBuff.
serialize(static_cast<U8>(1));
1245 static_cast<FwAssertArgType>(_status)
1252 static_cast<FwAssertArgType>(_status)
1255 this->m_Log_OutputPort[0].
invoke(
1264 #if FW_ENABLE_TEXT_LOGGING 1265 if (this->m_LogText_OutputPort[0].isConnected()) {
1266 #if FW_OBJECT_NAMES == 1 1267 const char* _formatString =
1268 "(%s) %s: Ping entry %s late warning";
1270 const char* _formatString =
1271 "%s: Ping entry %s late warning";
1278 this->m_objName.toChar(),
1284 this->m_LogText_OutputPort[0].invoke(
1299 if (this->m_Time_OutputPort[0].isConnected()) {
1300 this->m_Time_OutputPort[0].
invoke(_logTime);
1308 if (this->m_Log_OutputPort[0].isConnected()) {
1312 #if FW_AMPCS_COMPATIBLE 1314 _status = _logBuff.
serialize(static_cast<U8>(1 + 1));
1317 static_cast<FwAssertArgType>(_status)
1321 _status = _logBuff.
serialize(static_cast<U8>(4));
1324 static_cast<FwAssertArgType>(_status)
1327 _status = _logBuff.
serialize(static_cast<U32>(0));
1330 static_cast<FwAssertArgType>(_status)
1337 static_cast<FwAssertArgType>(_status)
1340 this->m_Log_OutputPort[0].
invoke(
1349 #if FW_ENABLE_TEXT_LOGGING 1350 if (this->m_LogText_OutputPort[0].isConnected()) {
1351 #if FW_OBJECT_NAMES == 1 1352 const char* _formatString =
1353 "(%s) %s: Ping entry %s did not respond";
1355 const char* _formatString =
1356 "%s: Ping entry %s did not respond";
1363 this->m_objName.toChar(),
1369 this->m_LogText_OutputPort[0].invoke(
1387 if (this->m_Time_OutputPort[0].isConnected()) {
1388 this->m_Time_OutputPort[0].
invoke(_logTime);
1396 if (this->m_Log_OutputPort[0].isConnected()) {
1400 #if FW_AMPCS_COMPATIBLE 1402 _status = _logBuff.
serialize(static_cast<U8>(2 + 1));
1405 static_cast<FwAssertArgType>(_status)
1409 _status = _logBuff.
serialize(static_cast<U8>(4));
1412 static_cast<FwAssertArgType>(_status)
1415 _status = _logBuff.
serialize(static_cast<U32>(0));
1418 static_cast<FwAssertArgType>(_status)
1425 static_cast<FwAssertArgType>(_status)
1428 #if FW_AMPCS_COMPATIBLE 1431 static_cast<U8>(
sizeof(U32))
1435 static_cast<FwAssertArgType>(_status)
1441 static_cast<FwAssertArgType>(_status)
1444 this->m_Log_OutputPort[0].
invoke(
1453 #if FW_ENABLE_TEXT_LOGGING 1454 if (this->m_LogText_OutputPort[0].isConnected()) {
1455 #if FW_OBJECT_NAMES == 1 1456 const char* _formatString =
1457 "(%s) %s: Ping entry %s responded with wrong key 0x%" PRIx32
"";
1459 const char* _formatString =
1460 "%s: Ping entry %s responded with wrong key 0x%" PRIx32
"";
1467 this->m_objName.toChar(),
1469 "HLTH_PING_WRONG_KEY ",
1474 this->m_LogText_OutputPort[0].invoke(
1489 if (this->m_Time_OutputPort[0].isConnected()) {
1490 this->m_Time_OutputPort[0].
invoke(_logTime);
1498 if (this->m_Log_OutputPort[0].isConnected()) {
1502 #if FW_AMPCS_COMPATIBLE 1504 _status = _logBuff.
serialize(static_cast<U8>(1));
1507 static_cast<FwAssertArgType>(_status)
1511 #if FW_AMPCS_COMPATIBLE 1518 static_cast<FwAssertArgType>(_status)
1524 static_cast<FwAssertArgType>(_status)
1527 this->m_Log_OutputPort[0].
invoke(
1536 #if FW_ENABLE_TEXT_LOGGING 1537 if (this->m_LogText_OutputPort[0].isConnected()) {
1538 #if FW_OBJECT_NAMES == 1 1539 const char* _formatString =
1540 "(%s) %s: Health checking set to %s";
1542 const char* _formatString =
1543 "%s: Health checking set to %s";
1547 enabled.toString(enabledStr);
1553 this->m_objName.toChar(),
1555 "HLTH_CHECK_ENABLE ",
1559 this->m_LogText_OutputPort[0].invoke(
1577 if (this->m_Time_OutputPort[0].isConnected()) {
1578 this->m_Time_OutputPort[0].
invoke(_logTime);
1586 if (this->m_Log_OutputPort[0].isConnected()) {
1590 #if FW_AMPCS_COMPATIBLE 1592 _status = _logBuff.
serialize(static_cast<U8>(2));
1595 static_cast<FwAssertArgType>(_status)
1599 #if FW_AMPCS_COMPATIBLE 1606 static_cast<FwAssertArgType>(_status)
1612 static_cast<FwAssertArgType>(_status)
1618 static_cast<FwAssertArgType>(_status)
1621 this->m_Log_OutputPort[0].
invoke(
1630 #if FW_ENABLE_TEXT_LOGGING 1631 if (this->m_LogText_OutputPort[0].isConnected()) {
1632 #if FW_OBJECT_NAMES == 1 1633 const char* _formatString =
1634 "(%s) %s: Health checking set to %s for %s";
1636 const char* _formatString =
1637 "%s: Health checking set to %s for %s";
1641 enabled.toString(enabledStr);
1647 this->m_objName.toChar(),
1654 this->m_LogText_OutputPort[0].invoke(
1669 if (this->m_Time_OutputPort[0].isConnected()) {
1670 this->m_Time_OutputPort[0].
invoke(_logTime);
1678 if (this->m_Log_OutputPort[0].isConnected()) {
1682 #if FW_AMPCS_COMPATIBLE 1684 _status = _logBuff.
serialize(static_cast<U8>(1));
1687 static_cast<FwAssertArgType>(_status)
1694 static_cast<FwAssertArgType>(_status)
1697 this->m_Log_OutputPort[0].
invoke(
1706 #if FW_ENABLE_TEXT_LOGGING 1707 if (this->m_LogText_OutputPort[0].isConnected()) {
1708 #if FW_OBJECT_NAMES == 1 1709 const char* _formatString =
1710 "(%s) %s: Couldn't find entry %s";
1712 const char* _formatString =
1713 "%s: Couldn't find entry %s";
1720 this->m_objName.toChar(),
1722 "HLTH_CHECK_LOOKUP_ERROR ",
1726 this->m_LogText_OutputPort[0].invoke(
1745 if (this->m_Time_OutputPort[0].isConnected()) {
1746 this->m_Time_OutputPort[0].
invoke(_logTime);
1754 if (this->m_Log_OutputPort[0].isConnected()) {
1758 #if FW_AMPCS_COMPATIBLE 1760 _status = _logBuff.
serialize(static_cast<U8>(3));
1763 static_cast<FwAssertArgType>(_status)
1770 static_cast<FwAssertArgType>(_status)
1773 #if FW_AMPCS_COMPATIBLE 1776 static_cast<U8>(
sizeof(U32))
1780 static_cast<FwAssertArgType>(_status)
1786 static_cast<FwAssertArgType>(_status)
1789 #if FW_AMPCS_COMPATIBLE 1792 static_cast<U8>(
sizeof(U32))
1796 static_cast<FwAssertArgType>(_status)
1802 static_cast<FwAssertArgType>(_status)
1805 this->m_Log_OutputPort[0].
invoke(
1814 #if FW_ENABLE_TEXT_LOGGING 1815 if (this->m_LogText_OutputPort[0].isConnected()) {
1816 #if FW_OBJECT_NAMES == 1 1817 const char* _formatString =
1818 "(%s) %s: Health ping for %s changed to WARN %" PRIu32
" FATAL %" PRIu32
"";
1820 const char* _formatString =
1821 "%s: Health ping for %s changed to WARN %" PRIu32
" FATAL %" PRIu32
"";
1828 this->m_objName.toChar(),
1830 "HLTH_PING_UPDATED ",
1836 this->m_LogText_OutputPort[0].invoke(
1855 if (this->m_Time_OutputPort[0].isConnected()) {
1856 this->m_Time_OutputPort[0].
invoke(_logTime);
1864 if (this->m_Log_OutputPort[0].isConnected()) {
1868 #if FW_AMPCS_COMPATIBLE 1870 _status = _logBuff.
serialize(static_cast<U8>(3));
1873 static_cast<FwAssertArgType>(_status)
1880 static_cast<FwAssertArgType>(_status)
1883 #if FW_AMPCS_COMPATIBLE 1886 static_cast<U8>(
sizeof(U32))
1890 static_cast<FwAssertArgType>(_status)
1896 static_cast<FwAssertArgType>(_status)
1899 #if FW_AMPCS_COMPATIBLE 1902 static_cast<U8>(
sizeof(U32))
1906 static_cast<FwAssertArgType>(_status)
1912 static_cast<FwAssertArgType>(_status)
1915 this->m_Log_OutputPort[0].
invoke(
1924 #if FW_ENABLE_TEXT_LOGGING 1925 if (this->m_LogText_OutputPort[0].isConnected()) {
1926 #if FW_OBJECT_NAMES == 1 1927 const char* _formatString =
1928 "(%s) %s: Health ping for %s invalid values: WARN %" PRIu32
" FATAL %" PRIu32
"";
1930 const char* _formatString =
1931 "%s: Health ping for %s invalid values: WARN %" PRIu32
" FATAL %" PRIu32
"";
1938 this->m_objName.toChar(),
1940 "HLTH_PING_INVALID_VALUES ",
1946 this->m_LogText_OutputPort[0].invoke(
1966 if (this->m_Tlm_OutputPort[0].isConnected()) {
1968 this->m_Time_OutputPort[0].isConnected() &&
1971 this->m_Time_OutputPort[0].
invoke(_tlmTime);
1978 static_cast<FwAssertArgType>(_stat)
1985 this->m_Tlm_OutputPort[0].
invoke(
2000 if (this->m_Time_OutputPort[0].isConnected()) {
2002 this->m_Time_OutputPort[0].
invoke(_time);
2017 ComponentIpcSerializableBuffer _msg;
2025 if (Os::Queue::Status::EMPTY == _msgStatus) {
2031 static_cast<FwAssertArgType>(_msgStatus)
2042 static_cast<FwAssertArgType>(_deserStatus)
2045 MsgTypeEnum _msgType =
static_cast<MsgTypeEnum
>(_desMsg);
2047 if (_msgType == HEALTH_COMPONENT_EXIT) {
2052 _deserStatus = _msg.deserialize(portNum);
2055 static_cast<FwAssertArgType>(_deserStatus)
2060 case PINGRETURN_PING: {
2063 _deserStatus = _msg.deserialize(key);
2066 static_cast<FwAssertArgType>(_deserStatus)
2078 case CMD_HLTH_ENABLE: {
2081 _deserStatus = _msg.deserialize(_opCode);
2084 static_cast<FwAssertArgType>(_deserStatus)
2089 _deserStatus = _msg.deserialize(_cmdSeq);
2092 static_cast<FwAssertArgType>(_deserStatus)
2097 _deserStatus = _msg.deserialize(args);
2100 static_cast<FwAssertArgType>(_deserStatus)
2110 if (this->m_CmdStatus_OutputPort[0].isConnected()) {
2123 #if FW_CMD_CHECK_RESIDUAL 2125 if (this->m_CmdStatus_OutputPort[0].isConnected()) {
2143 case CMD_HLTH_PING_ENABLE: {
2146 _deserStatus = _msg.deserialize(_opCode);
2149 static_cast<FwAssertArgType>(_deserStatus)
2154 _deserStatus = _msg.deserialize(_cmdSeq);
2157 static_cast<FwAssertArgType>(_deserStatus)
2162 _deserStatus = _msg.deserialize(args);
2165 static_cast<FwAssertArgType>(_deserStatus)
2175 if (this->m_CmdStatus_OutputPort[0].isConnected()) {
2190 if (this->m_CmdStatus_OutputPort[0].isConnected()) {
2203 #if FW_CMD_CHECK_RESIDUAL 2205 if (this->m_CmdStatus_OutputPort[0].isConnected()) {
2224 case CMD_HLTH_CHNG_PING: {
2227 _deserStatus = _msg.deserialize(_opCode);
2230 static_cast<FwAssertArgType>(_deserStatus)
2235 _deserStatus = _msg.deserialize(_cmdSeq);
2238 static_cast<FwAssertArgType>(_deserStatus)
2243 _deserStatus = _msg.deserialize(args);
2246 static_cast<FwAssertArgType>(_deserStatus)
2256 if (this->m_CmdStatus_OutputPort[0].isConnected()) {
2271 if (this->m_CmdStatus_OutputPort[0].isConnected()) {
2286 if (this->m_CmdStatus_OutputPort[0].isConnected()) {
2299 #if FW_CMD_CHECK_RESIDUAL 2301 if (this->m_CmdStatus_OutputPort[0].isConnected()) {
2337 for (
FwSizeType i = 0; i < currentMessageCount; i++) {
2339 if (messageStatus != QueuedComponentBase::MSG_DISPATCH_OK) {
2343 return messageStatus;
2350 void HealthComponentBase ::
2362 const U32 idBase = callComp->
getIdBase();
2363 FW_ASSERT(opCode >= idBase, static_cast<FwAssertArgType>(opCode), static_cast<FwAssertArgType>(idBase));
2366 switch (opCode - idBase) {
2400 void HealthComponentBase ::
2409 compPtr->PingReturn_handlerBase(
2415 void HealthComponentBase ::
2424 compPtr->Run_handlerBase(
Serialization/Deserialization operation was successful.
virtual void HLTH_CHNG_PING_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdStringArg &entry, U32 warningValue, U32 fatalValue)=0
void regCommands()
Register commands with the Command Dispatcher.
void addCallPort(InputTimePort *callPort)
Register an input port.
Auto-generated base for Health component.
virtual void Run_handler(FwIndexType portNum, U32 context)=0
Handler for input port Run.
void cmdResponse_out(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdResponse response)
Emit command response.
virtual ~HealthComponentBase()
Destroy HealthComponentBase object.
Report a particular entry on or off.
void tlmWrite_PingLateWarnings(U32 arg, Fw::Time _tlmTime=Fw::Time()) const
void log_FATAL_HLTH_PING_WRONG_KEY(const Fw::StringBase &entry, U32 badKey) const
PlatformSizeType FwSizeType
void set_CmdStatus_OutputPort(FwIndexType portNum, Fw::InputCmdResponsePort *port)
Connect port to CmdStatus[portNum].
Status receive(U8 *destination, FwSizeType capacity, BlockingType blockType, FwSizeType &actualSize, FwQueuePriorityType &priority) override
receive a message from the queue through delegate
Status
status returned from the queue send function
virtual MsgDispatchStatus doDispatch()
Called in the message loop to dispatch a message from the queue.
#define FW_LOG_STRING_MAX_SIZE
Max size of log string parameter type.
FwIndexType getNum_PingSend_OutputPorts() const
FwIndexType getNum_Time_OutputPorts() const
SerializeStatus serialize(U8 val)
serialize 8-bit unsigned int
const char * toChar() const
virtual void PingReturn_preMsgHook(FwIndexType portNum, U32 key)
Pre-message hook for async input port PingReturn.
void log_WARNING_LO_HLTH_CHECK_LOOKUP_ERROR(const Fw::StringBase &entry) const
U32 FwChanIdType
The type of a telemetry channel identifier.
void log_WARNING_HI_HLTH_PING_INVALID_VALUES(const Fw::StringBase &entry, U32 warn, U32 fatal) const
void invoke(U32 key) const
Invoke a port interface.
bool isConnected_Log_OutputPort(FwIndexType portNum)
bool isConnected_CmdReg_OutputPort(FwIndexType portNum)
void init()
Initialization function.
Enum representing a command response.
bool isConnected_CmdStatus_OutputPort(FwIndexType portNum)
void addCallPort(InputWatchDogPort *callPort)
Register an input port.
void set_WdogStroke_OutputPort(FwIndexType portNum, Svc::InputWatchDogPort *port)
Connect port to WdogStroke[portNum].
void addCallPort(InputCmdRegPort *callPort)
Register an input port.
A command to enable or disable health checks.
virtual void HLTH_ENABLE_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command HLTH_ENABLE.
Os::Queue m_queue
queue object for active component
void set_CmdReg_OutputPort(FwIndexType portNum, Fw::InputCmdRegPort *port)
Connect port to CmdReg[portNum].
void addCallPort(InputTlmPort *callPort)
Register an input port.
void init()
Object initializer.
U32 FwEventIdType
The type of an event identifier.
SerializeStatus
forward declaration for string
FwIndexType getNum_Log_OutputPorts() const
FwIndexType getNum_WdogStroke_OutputPorts() const
Svc::InputPingPort * get_PingReturn_InputPort(FwIndexType portNum)
void invoke(FwOpcodeType opCode) const
Invoke a port interface.
void PingReturn_handlerBase(FwIndexType portNum, U32 key)
Handler base-class function for input port PingReturn.
U32 FwOpcodeType
The type of a command opcode.
#define FW_OBJECT_NAMES
Indicates whether or not object names are stored (more memory, can be used for tracking objects) ...
Serializable::SizeType getBuffLeft() const
returns how much deserialization buffer is left
void init()
Initialization function.
Os::Queue::Status createQueue(FwSizeType depth, FwSizeType msgSize)
#define FW_MIN(a, b)
MIN macro.
Warn that a ping target is longer than the warning value.
A less serious but recoverable event.
Declare FATAL since task is no longer responding.
Ignore a particular ping entry.
void init()
Initialization function.
FwIndexType getNum_CmdReg_OutputPorts() const
FwIndexType getNum_PingReturn_InputPorts() const
FwIndexType getNum_CmdStatus_OutputPorts() const
void invoke(Fw::Time &time) const
Invoke a port interface.
void log_ACTIVITY_HI_HLTH_CHECK_PING(Fw::Enabled enabled, const Fw::StringBase &entry) const
void set_Time_OutputPort(FwIndexType portNum, Fw::InputTimePort *port)
Connect port to Time[portNum].
const char * toChar() const
void invoke(FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response) const
Invoke a port interface.
void addCallPort(InputPingPort *callPort)
Register an input port.
bool isConnected_Time_OutputPort(FwIndexType portNum)
Status send(const U8 *buffer, FwSizeType size, FwQueuePriorityType priority, BlockingType blockType) override
send a message into the queue through delegate
void WdogStroke_out(FwIndexType portNum, U32 code)
Invoke output port WdogStroke.
void HLTH_PING_ENABLE_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void resetDeser()
reset deserialization to beginning
FwIndexType getNum_Run_InputPorts() const
message to exit active component task
A serious but recoverable event.
Errors dispatching messages.
void invoke(FwChanIdType id, Fw::Time &timeTag, Fw::TlmBuffer &val) const
Invoke a port interface.
virtual void HLTH_ENABLE_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, Fw::Enabled enable)=0
void set_PingSend_OutputPort(FwIndexType portNum, Svc::InputPingPort *port)
Connect port to PingSend[portNum].
Enabled and disabled states.
FormatStatus format(const CHAR *formatString,...)
write formatted string to buffer
void init()
Initialization function.
bool isConnected_WdogStroke_OutputPort(FwIndexType portNum)
Report checking turned on or off.
uint8_t U8
8-bit unsigned integer
FwSizeType getMessagesAvailable() const override
get number of messages available
bool isConnected_PingSend_OutputPort(FwIndexType portNum)
Command failed to deserialize.
void log_FATAL_HLTH_PING_LATE(const Fw::StringBase &entry) const
PlatformQueuePriorityType FwQueuePriorityType
The type of queue priorities used.
Important informational events.
The size of the serial representation.
Fw::InputCmdPort * get_CmdDisp_InputPort(FwIndexType portNum)
bool isConnected_Tlm_OutputPort(FwIndexType portNum)
void invoke(FwEventIdType id, Fw::Time &timeTag, const Fw::LogSeverity &severity, Fw::LogBuffer &args) const
Invoke a port interface.
HealthComponentBase(const char *compName="")
Construct HealthComponentBase object.
void invoke(U32 code) const
Invoke a port interface.
virtual void HLTH_PING_ENABLE_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdStringArg &entry, Fw::Enabled enable)=0
virtual void HLTH_CHNG_PING_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command HLTH_CHNG_PING.
A message was sent requesting an exit of the loop.
No time base has been established.
void init()
Initialization function.
SerializeStatus deserialize(U8 &val)
deserialize 8-bit unsigned int
PlatformIndexType FwIndexType
virtual void PingReturn_handler(FwIndexType portNum, U32 key)=0
Handler for input port PingReturn.
A fatal non-recoverable event.
#define FW_NUM_ARRAY_ELEMENTS(a)
number of elements in an array
void addCallPort(InputLogPort *callPort)
Register an input port.
Declare FATAL since task is no longer responding.
void set_Tlm_OutputPort(FwIndexType portNum, Fw::InputTlmPort *port)
Connect port to Tlm[portNum].
void init()
Initialization function.
RateGroupDivider component implementation.
message sent/received okay
Channel ID for PingLateWarnings.
virtual SerializeStatus serialize(SerializeBufferBase &buffer) const
serialization function
Message will return with status when space is unavailable.
FwIndexType getNum_Tlm_OutputPorts() const
Svc::InputSchedPort * get_Run_InputPort(FwIndexType portNum)
void set_Log_OutputPort(FwIndexType portNum, Fw::InputLogPort *port)
Connect port to Log[portNum].
void init()
Initialization function.
MsgDispatchStatus dispatchCurrentMessages()
Dispatch all current messages unless ERROR or EXIT occurs.
void log_ACTIVITY_HI_HLTH_CHECK_ENABLE(Fw::Enabled enabled) const
FwIndexType getNum_CmdDisp_InputPorts() const
No more messages in the queue.
void HLTH_CHNG_PING_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void log_WARNING_HI_HLTH_PING_WARN(const Fw::StringBase &entry) const
void HLTH_ENABLE_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
virtual const CHAR * toChar() const =0
virtual void HLTH_PING_ENABLE_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command HLTH_PING_ENABLE.
void addCallPort(InputCmdResponsePort *callPort)
Register an input port.
void Run_handlerBase(FwIndexType portNum, U32 context)
Handler base-class function for input port Run.
void PingSend_out(FwIndexType portNum, U32 key)
Invoke output port PingSend.
void log_ACTIVITY_HI_HLTH_PING_UPDATED(const Fw::StringBase &entry, U32 warn, U32 fatal) const