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)
663 static_cast<FwAssertArgType>(portNum)
666 return this->m_CmdReg_OutputPort[portNum].
isConnected();
674 static_cast<FwAssertArgType>(portNum)
677 return this->m_CmdStatus_OutputPort[portNum].
isConnected();
685 static_cast<FwAssertArgType>(portNum)
688 return this->m_Log_OutputPort[portNum].
isConnected();
691 #if FW_ENABLE_TEXT_LOGGING == 1 693 bool HealthComponentBase ::
694 isConnected_LogText_OutputPort(
FwIndexType portNum)
697 (0 <= portNum) && (portNum < this->getNum_LogText_OutputPorts()),
698 static_cast<FwAssertArgType>(portNum)
701 return this->m_LogText_OutputPort[portNum].isConnected();
711 static_cast<FwAssertArgType>(portNum)
714 return this->m_Time_OutputPort[portNum].
isConnected();
722 static_cast<FwAssertArgType>(portNum)
725 return this->m_Tlm_OutputPort[portNum].
isConnected();
737 static_cast<FwAssertArgType>(portNum)
740 return this->m_PingSend_OutputPort[portNum].
isConnected();
748 static_cast<FwAssertArgType>(portNum)
751 return this->m_WdogStroke_OutputPort[portNum].
isConnected();
769 static_cast<FwAssertArgType>(portNum)
777 ComponentIpcSerializableBuffer msg;
781 _status = msg.serializeFrom(
782 static_cast<FwEnumStoreType>(PINGRETURN_PING)
786 static_cast<FwAssertArgType>(_status)
790 _status = msg.serializeFrom(portNum);
793 static_cast<FwAssertArgType>(_status)
797 _status = msg.serializeFrom(key);
800 static_cast<FwAssertArgType>(_status)
809 static_cast<FwAssertArgType>(qStatus)
822 static_cast<FwAssertArgType>(portNum)
861 static_cast<FwAssertArgType>(portNum)
865 this->m_PingSend_OutputPort[portNum].isConnected(),
866 static_cast<FwAssertArgType>(portNum)
868 this->m_PingSend_OutputPort[portNum].
invoke(
881 static_cast<FwAssertArgType>(portNum)
885 this->m_WdogStroke_OutputPort[portNum].isConnected(),
886 static_cast<FwAssertArgType>(portNum)
888 this->m_WdogStroke_OutputPort[portNum].
invoke(
904 FW_ASSERT(this->m_CmdStatus_OutputPort[0].isConnected());
905 this->m_CmdStatus_OutputPort[0].
invoke(opCode, cmdSeq, response);
926 ComponentIpcSerializableBuffer msg;
930 _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_HLTH_ENABLE));
933 static_cast<FwAssertArgType>(_status)
939 _status = msg.serializeFrom(port);
942 static_cast<FwAssertArgType>(_status)
945 _status = msg.serializeFrom(opCode);
948 static_cast<FwAssertArgType>(_status)
951 _status = msg.serializeFrom(cmdSeq);
954 static_cast<FwAssertArgType>(_status)
957 _status = msg.serializeFrom(args);
960 static_cast<FwAssertArgType>(_status)
969 static_cast<FwAssertArgType>(qStatus)
985 ComponentIpcSerializableBuffer msg;
989 _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_HLTH_PING_ENABLE));
992 static_cast<FwAssertArgType>(_status)
998 _status = msg.serializeFrom(port);
1001 static_cast<FwAssertArgType>(_status)
1004 _status = msg.serializeFrom(opCode);
1007 static_cast<FwAssertArgType>(_status)
1010 _status = msg.serializeFrom(cmdSeq);
1013 static_cast<FwAssertArgType>(_status)
1016 _status = msg.serializeFrom(args);
1019 static_cast<FwAssertArgType>(_status)
1028 static_cast<FwAssertArgType>(qStatus)
1044 ComponentIpcSerializableBuffer msg;
1048 _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_HLTH_CHNG_PING));
1051 static_cast<FwAssertArgType>(_status)
1057 _status = msg.serializeFrom(port);
1060 static_cast<FwAssertArgType>(_status)
1063 _status = msg.serializeFrom(opCode);
1066 static_cast<FwAssertArgType>(_status)
1069 _status = msg.serializeFrom(cmdSeq);
1072 static_cast<FwAssertArgType>(_status)
1075 _status = msg.serializeFrom(args);
1078 static_cast<FwAssertArgType>(_status)
1087 static_cast<FwAssertArgType>(qStatus)
1141 if (this->m_Time_OutputPort[0].isConnected()) {
1142 this->m_Time_OutputPort[0].
invoke(_logTime);
1150 if (this->m_Log_OutputPort[0].isConnected()) {
1154 #if FW_AMPCS_COMPATIBLE 1159 static_cast<FwAssertArgType>(_status)
1166 static_cast<FwAssertArgType>(_status)
1169 this->m_Log_OutputPort[0].
invoke(
1178 #if FW_ENABLE_TEXT_LOGGING 1179 if (this->m_LogText_OutputPort[0].isConnected()) {
1180 #if FW_OBJECT_NAMES == 1 1181 const char* _formatString =
1182 "(%s) %s: Ping entry %s late warning";
1184 const char* _formatString =
1185 "%s: Ping entry %s late warning";
1192 this->m_objName.toChar(),
1198 this->m_LogText_OutputPort[0].invoke(
1213 if (this->m_Time_OutputPort[0].isConnected()) {
1214 this->m_Time_OutputPort[0].
invoke(_logTime);
1222 if (this->m_Log_OutputPort[0].isConnected()) {
1226 #if FW_AMPCS_COMPATIBLE 1231 static_cast<FwAssertArgType>(_status)
1238 static_cast<FwAssertArgType>(_status)
1244 static_cast<FwAssertArgType>(_status)
1251 static_cast<FwAssertArgType>(_status)
1254 this->m_Log_OutputPort[0].
invoke(
1263 #if FW_ENABLE_TEXT_LOGGING 1264 if (this->m_LogText_OutputPort[0].isConnected()) {
1265 #if FW_OBJECT_NAMES == 1 1266 const char* _formatString =
1267 "(%s) %s: Ping entry %s did not respond";
1269 const char* _formatString =
1270 "%s: Ping entry %s did not respond";
1277 this->m_objName.toChar(),
1283 this->m_LogText_OutputPort[0].invoke(
1301 if (this->m_Time_OutputPort[0].isConnected()) {
1302 this->m_Time_OutputPort[0].
invoke(_logTime);
1310 if (this->m_Log_OutputPort[0].isConnected()) {
1314 #if FW_AMPCS_COMPATIBLE 1319 static_cast<FwAssertArgType>(_status)
1326 static_cast<FwAssertArgType>(_status)
1332 static_cast<FwAssertArgType>(_status)
1339 static_cast<FwAssertArgType>(_status)
1342 #if FW_AMPCS_COMPATIBLE 1345 static_cast<U8>(
sizeof(U32))
1349 static_cast<FwAssertArgType>(_status)
1355 static_cast<FwAssertArgType>(_status)
1358 this->m_Log_OutputPort[0].
invoke(
1367 #if FW_ENABLE_TEXT_LOGGING 1368 if (this->m_LogText_OutputPort[0].isConnected()) {
1369 #if FW_OBJECT_NAMES == 1 1370 const char* _formatString =
1371 "(%s) %s: Ping entry %s responded with wrong key 0x%" PRIx32
"";
1373 const char* _formatString =
1374 "%s: Ping entry %s responded with wrong key 0x%" PRIx32
"";
1381 this->m_objName.toChar(),
1383 "HLTH_PING_WRONG_KEY ",
1388 this->m_LogText_OutputPort[0].invoke(
1403 if (this->m_Time_OutputPort[0].isConnected()) {
1404 this->m_Time_OutputPort[0].
invoke(_logTime);
1412 if (this->m_Log_OutputPort[0].isConnected()) {
1416 #if FW_AMPCS_COMPATIBLE 1421 static_cast<FwAssertArgType>(_status)
1425 #if FW_AMPCS_COMPATIBLE 1432 static_cast<FwAssertArgType>(_status)
1438 static_cast<FwAssertArgType>(_status)
1441 this->m_Log_OutputPort[0].
invoke(
1450 #if FW_ENABLE_TEXT_LOGGING 1451 if (this->m_LogText_OutputPort[0].isConnected()) {
1452 #if FW_OBJECT_NAMES == 1 1453 const char* _formatString =
1454 "(%s) %s: Health checking set to %s";
1456 const char* _formatString =
1457 "%s: Health checking set to %s";
1461 enabled.toString(enabledStr);
1467 this->m_objName.toChar(),
1469 "HLTH_CHECK_ENABLE ",
1473 this->m_LogText_OutputPort[0].invoke(
1491 if (this->m_Time_OutputPort[0].isConnected()) {
1492 this->m_Time_OutputPort[0].
invoke(_logTime);
1500 if (this->m_Log_OutputPort[0].isConnected()) {
1504 #if FW_AMPCS_COMPATIBLE 1509 static_cast<FwAssertArgType>(_status)
1513 #if FW_AMPCS_COMPATIBLE 1520 static_cast<FwAssertArgType>(_status)
1526 static_cast<FwAssertArgType>(_status)
1532 static_cast<FwAssertArgType>(_status)
1535 this->m_Log_OutputPort[0].
invoke(
1544 #if FW_ENABLE_TEXT_LOGGING 1545 if (this->m_LogText_OutputPort[0].isConnected()) {
1546 #if FW_OBJECT_NAMES == 1 1547 const char* _formatString =
1548 "(%s) %s: Health checking set to %s for %s";
1550 const char* _formatString =
1551 "%s: Health checking set to %s for %s";
1555 enabled.toString(enabledStr);
1561 this->m_objName.toChar(),
1568 this->m_LogText_OutputPort[0].invoke(
1583 if (this->m_Time_OutputPort[0].isConnected()) {
1584 this->m_Time_OutputPort[0].
invoke(_logTime);
1592 if (this->m_Log_OutputPort[0].isConnected()) {
1596 #if FW_AMPCS_COMPATIBLE 1601 static_cast<FwAssertArgType>(_status)
1608 static_cast<FwAssertArgType>(_status)
1611 this->m_Log_OutputPort[0].
invoke(
1620 #if FW_ENABLE_TEXT_LOGGING 1621 if (this->m_LogText_OutputPort[0].isConnected()) {
1622 #if FW_OBJECT_NAMES == 1 1623 const char* _formatString =
1624 "(%s) %s: Couldn't find entry %s";
1626 const char* _formatString =
1627 "%s: Couldn't find entry %s";
1634 this->m_objName.toChar(),
1636 "HLTH_CHECK_LOOKUP_ERROR ",
1640 this->m_LogText_OutputPort[0].invoke(
1659 if (this->m_Time_OutputPort[0].isConnected()) {
1660 this->m_Time_OutputPort[0].
invoke(_logTime);
1668 if (this->m_Log_OutputPort[0].isConnected()) {
1672 #if FW_AMPCS_COMPATIBLE 1677 static_cast<FwAssertArgType>(_status)
1684 static_cast<FwAssertArgType>(_status)
1687 #if FW_AMPCS_COMPATIBLE 1690 static_cast<U8>(
sizeof(U32))
1694 static_cast<FwAssertArgType>(_status)
1700 static_cast<FwAssertArgType>(_status)
1703 #if FW_AMPCS_COMPATIBLE 1706 static_cast<U8>(
sizeof(U32))
1710 static_cast<FwAssertArgType>(_status)
1716 static_cast<FwAssertArgType>(_status)
1719 this->m_Log_OutputPort[0].
invoke(
1728 #if FW_ENABLE_TEXT_LOGGING 1729 if (this->m_LogText_OutputPort[0].isConnected()) {
1730 #if FW_OBJECT_NAMES == 1 1731 const char* _formatString =
1732 "(%s) %s: Health ping for %s changed to WARN %" PRIu32
" FATAL %" PRIu32
"";
1734 const char* _formatString =
1735 "%s: Health ping for %s changed to WARN %" PRIu32
" FATAL %" PRIu32
"";
1742 this->m_objName.toChar(),
1744 "HLTH_PING_UPDATED ",
1750 this->m_LogText_OutputPort[0].invoke(
1769 if (this->m_Time_OutputPort[0].isConnected()) {
1770 this->m_Time_OutputPort[0].
invoke(_logTime);
1778 if (this->m_Log_OutputPort[0].isConnected()) {
1782 #if FW_AMPCS_COMPATIBLE 1787 static_cast<FwAssertArgType>(_status)
1794 static_cast<FwAssertArgType>(_status)
1797 #if FW_AMPCS_COMPATIBLE 1800 static_cast<U8>(
sizeof(U32))
1804 static_cast<FwAssertArgType>(_status)
1810 static_cast<FwAssertArgType>(_status)
1813 #if FW_AMPCS_COMPATIBLE 1816 static_cast<U8>(
sizeof(U32))
1820 static_cast<FwAssertArgType>(_status)
1826 static_cast<FwAssertArgType>(_status)
1829 this->m_Log_OutputPort[0].
invoke(
1838 #if FW_ENABLE_TEXT_LOGGING 1839 if (this->m_LogText_OutputPort[0].isConnected()) {
1840 #if FW_OBJECT_NAMES == 1 1841 const char* _formatString =
1842 "(%s) %s: Health ping for %s invalid values: WARN %" PRIu32
" FATAL %" PRIu32
"";
1844 const char* _formatString =
1845 "%s: Health ping for %s invalid values: WARN %" PRIu32
" FATAL %" PRIu32
"";
1852 this->m_objName.toChar(),
1854 "HLTH_PING_INVALID_VALUES ",
1860 this->m_LogText_OutputPort[0].invoke(
1880 if (this->m_Tlm_OutputPort[0].isConnected()) {
1882 this->m_Time_OutputPort[0].isConnected() &&
1885 this->m_Time_OutputPort[0].
invoke(_tlmTime);
1892 static_cast<FwAssertArgType>(_stat)
1899 this->m_Tlm_OutputPort[0].
invoke(
1914 if (this->m_Time_OutputPort[0].isConnected()) {
1916 this->m_Time_OutputPort[0].
invoke(_time);
1931 ComponentIpcSerializableBuffer _msg;
1939 if (Os::Queue::Status::EMPTY == _msgStatus) {
1945 static_cast<FwAssertArgType>(_msgStatus)
1956 static_cast<FwAssertArgType>(_deserStatus)
1959 MsgTypeEnum _msgType =
static_cast<MsgTypeEnum
>(_desMsg);
1961 if (_msgType == HEALTH_COMPONENT_EXIT) {
1966 _deserStatus = _msg.deserializeTo(portNum);
1969 static_cast<FwAssertArgType>(_deserStatus)
1974 case PINGRETURN_PING: {
1977 _deserStatus = _msg.deserializeTo(key);
1980 static_cast<FwAssertArgType>(_deserStatus)
1992 case CMD_HLTH_ENABLE: {
1995 _deserStatus = _msg.deserializeTo(_opCode);
1998 static_cast<FwAssertArgType>(_deserStatus)
2003 _deserStatus = _msg.deserializeTo(_cmdSeq);
2006 static_cast<FwAssertArgType>(_deserStatus)
2011 _deserStatus = _msg.deserializeTo(args);
2014 static_cast<FwAssertArgType>(_deserStatus)
2024 if (this->m_CmdStatus_OutputPort[0].isConnected()) {
2037 #if FW_CMD_CHECK_RESIDUAL 2039 if (this->m_CmdStatus_OutputPort[0].isConnected()) {
2057 case CMD_HLTH_PING_ENABLE: {
2060 _deserStatus = _msg.deserializeTo(_opCode);
2063 static_cast<FwAssertArgType>(_deserStatus)
2068 _deserStatus = _msg.deserializeTo(_cmdSeq);
2071 static_cast<FwAssertArgType>(_deserStatus)
2076 _deserStatus = _msg.deserializeTo(args);
2079 static_cast<FwAssertArgType>(_deserStatus)
2089 if (this->m_CmdStatus_OutputPort[0].isConnected()) {
2104 if (this->m_CmdStatus_OutputPort[0].isConnected()) {
2117 #if FW_CMD_CHECK_RESIDUAL 2119 if (this->m_CmdStatus_OutputPort[0].isConnected()) {
2138 case CMD_HLTH_CHNG_PING: {
2141 _deserStatus = _msg.deserializeTo(_opCode);
2144 static_cast<FwAssertArgType>(_deserStatus)
2149 _deserStatus = _msg.deserializeTo(_cmdSeq);
2152 static_cast<FwAssertArgType>(_deserStatus)
2157 _deserStatus = _msg.deserializeTo(args);
2160 static_cast<FwAssertArgType>(_deserStatus)
2170 if (this->m_CmdStatus_OutputPort[0].isConnected()) {
2185 if (this->m_CmdStatus_OutputPort[0].isConnected()) {
2200 if (this->m_CmdStatus_OutputPort[0].isConnected()) {
2213 #if FW_CMD_CHECK_RESIDUAL 2215 if (this->m_CmdStatus_OutputPort[0].isConnected()) {
2251 for (
FwSizeType i = 0; i < currentMessageCount; i++) {
2253 if (messageStatus != QueuedComponentBase::MSG_DISPATCH_OK) {
2257 return messageStatus;
2264 void HealthComponentBase ::
2276 const U32 idBase = callComp->
getIdBase();
2277 FW_ASSERT(opCode >= idBase, static_cast<FwAssertArgType>(opCode), static_cast<FwAssertArgType>(idBase));
2280 switch (opCode - idBase) {
2314 void HealthComponentBase ::
2323 compPtr->PingReturn_handlerBase(
2329 void HealthComponentBase ::
2338 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.
FwIdType FwOpcodeType
The type of a command opcode.
SerializeStatus serializeFrom(U8 val, Endianness mode=Endianness::BIG) override
Serialize an 8-bit unsigned integer value.
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
FwIdType getIdBase() 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.
const char * toChar() const
Convert to a C-style char*.
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
static constexpr FwIndexType getNum_Tlm_OutputPorts()
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.
virtual const CHAR * toChar() const =0
Convert to a C-style char*.
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)
No time base has been established (Required)
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.
static constexpr FwIndexType getNum_CmdStatus_OutputPorts()
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.
Declare FATAL since task is no longer responding.
SerializeStatus
forward declaration for string
static constexpr FwIndexType getNum_Log_OutputPorts()
FwIdType FwEventIdType
The type of an event identifier.
Svc::InputPingPort * get_PingReturn_InputPort(FwIndexType portNum)
void invoke(FwOpcodeType opCode) const
Invoke a port interface.
static constexpr FwIndexType getNum_Run_InputPorts()
static constexpr FwIndexType getNum_PingSend_OutputPorts()
void PingReturn_handlerBase(FwIndexType portNum, U32 key)
Handler base-class function for input port PingReturn.
#define FW_OBJECT_NAMES
Indicates whether or not object names are stored (more memory, can be used for tracking objects) ...
void init()
Initialization function.
static constexpr FwIndexType getNum_CmdDisp_InputPorts()
Os::Queue::Status createQueue(FwSizeType depth, FwSizeType msgSize)
#define FW_MIN(a, b)
MIN macro.
A less serious but recoverable event.
void init()
Initialization function.
The size of the serial representation.
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].
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.
FwIdType FwChanIdType
The type of a telemetry channel identifier.
Ignore a particular ping entry.
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)
Report checking turned on or off.
void resetDeser() override
Reset deserialization pointer to beginning of buffer.
Warn that a ping target is longer than the warning value.
A serious but recoverable event.
Errors dispatching messages.
Declare FATAL since task is no longer responding.
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].
A command to enable or disable health checks.
Enabled and disabled states.
FormatStatus format(const CHAR *formatString,...)
write formatted string to buffer
void init()
Initialization function.
bool isConnected_WdogStroke_OutputPort(FwIndexType portNum)
uint8_t U8
8-bit unsigned integer
FwSizeType getMessagesAvailable() const override
get number of messages available
bool isConnected_PingSend_OutputPort(FwIndexType portNum)
static constexpr FwIndexType getNum_WdogStroke_OutputPorts()
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.
Fw::InputCmdPort * get_CmdDisp_InputPort(FwIndexType portNum)
Channel ID for PingLateWarnings.
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.
static constexpr FwIndexType getNum_CmdReg_OutputPorts()
A message was sent requesting an exit of the loop.
void init()
Initialization function.
PlatformIndexType FwIndexType
virtual void PingReturn_handler(FwIndexType portNum, U32 key)=0
Handler for input port PingReturn.
A fatal non-recoverable event.
void addCallPort(InputLogPort *callPort)
Register an input port.
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
SerializeStatus deserializeTo(U8 &val, Endianness mode=Endianness::BIG) override
Deserialize an 8-bit unsigned integer value.
message to exit active component task
Report a particular entry on or off.
Message will return with status when space is unavailable.
Implementation of malloc based allocator.
Svc::InputSchedPort * get_Run_InputPort(FwIndexType portNum)
void set_Log_OutputPort(FwIndexType portNum, Fw::InputLogPort *port)
Connect port to Log[portNum].
static constexpr FwIndexType getNum_PingReturn_InputPorts()
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
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 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.
SerializeStatus serializeTo(SerialBufferBase &buffer, Endianness mode=Endianness::BIG) const override
Serialize the contents of this object to a buffer.
static constexpr FwIndexType getNum_Time_OutputPorts()
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