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.
Ignore a particular ping entry.
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
Channel ID for PingLateWarnings.
Report checking turned on or off.
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)
Declare FATAL since task is no longer responding.
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.
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) ...
The size of the serial representation.
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 (deprecated in C++, use std::min)
A less serious but recoverable event.
void init()
Initialization function.
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.
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() override
Reset deserialization pointer to beginning of buffer.
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)
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)
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.
Warn that a ping target is longer than the warning value.
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
A command to enable or disable health checks.
No more messages in the queue.
message to exit active component task
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.
Declare FATAL since task is no longer responding.
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