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];
81 #if !FW_DIRECT_PORT_CALLS 88 this->m_CmdDisp_InputPort[port].
init();
93 this->m_CmdDisp_InputPort[port].
setPortNum(port);
95 #if FW_OBJECT_NAMES == 1 99 this->m_objName.toChar(),
102 this->m_CmdDisp_InputPort[port].setObjName(portName.
toChar());
107 #if !FW_DIRECT_PORT_CALLS 114 this->m_PingReturn_InputPort[port].
init();
119 this->m_PingReturn_InputPort[port].
setPortNum(port);
121 #if FW_OBJECT_NAMES == 1 125 this->m_objName.toChar(),
128 this->m_PingReturn_InputPort[port].setObjName(portName.
toChar());
133 #if !FW_DIRECT_PORT_CALLS 140 this->m_Run_InputPort[port].
init();
147 #if FW_OBJECT_NAMES == 1 151 this->m_objName.toChar(),
154 this->m_Run_InputPort[port].setObjName(portName.
toChar());
159 #if !FW_DIRECT_PORT_CALLS 166 this->m_CmdReg_OutputPort[port].
init();
168 #if FW_OBJECT_NAMES == 1 172 this->m_objName.toChar(),
175 this->m_CmdReg_OutputPort[port].setObjName(portName.
toChar());
180 #if !FW_DIRECT_PORT_CALLS 187 this->m_CmdStatus_OutputPort[port].
init();
189 #if FW_OBJECT_NAMES == 1 193 this->m_objName.toChar(),
196 this->m_CmdStatus_OutputPort[port].setObjName(portName.
toChar());
201 #if !FW_DIRECT_PORT_CALLS 208 this->m_Log_OutputPort[port].
init();
210 #if FW_OBJECT_NAMES == 1 214 this->m_objName.toChar(),
217 this->m_Log_OutputPort[port].setObjName(portName.
toChar());
222 #if !FW_DIRECT_PORT_CALLS && FW_ENABLE_TEXT_LOGGING 226 port < static_cast<FwIndexType>(this->getNum_LogText_OutputPorts());
229 this->m_LogText_OutputPort[port].
init();
231 #if FW_OBJECT_NAMES == 1 235 this->m_objName.toChar(),
238 this->m_LogText_OutputPort[port].setObjName(portName.
toChar());
243 #if !FW_DIRECT_PORT_CALLS 250 this->m_Time_OutputPort[port].
init();
252 #if FW_OBJECT_NAMES == 1 256 this->m_objName.toChar(),
259 this->m_Time_OutputPort[port].setObjName(portName.
toChar());
264 #if !FW_DIRECT_PORT_CALLS 271 this->m_Tlm_OutputPort[port].
init();
273 #if FW_OBJECT_NAMES == 1 277 this->m_objName.toChar(),
280 this->m_Tlm_OutputPort[port].setObjName(portName.
toChar());
285 #if !FW_DIRECT_PORT_CALLS 292 this->m_PingSend_OutputPort[port].
init();
294 #if FW_OBJECT_NAMES == 1 298 this->m_objName.toChar(),
301 this->m_PingSend_OutputPort[port].setObjName(portName.
toChar());
306 #if !FW_DIRECT_PORT_CALLS 313 this->m_WdogStroke_OutputPort[port].
init();
315 #if FW_OBJECT_NAMES == 1 319 this->m_objName.toChar(),
322 this->m_WdogStroke_OutputPort[port].setObjName(portName.
toChar());
330 static_cast<FwSizeType>(ComponentIpcSerializableBuffer::SERIALIZATION_SIZE)
334 static_cast<FwAssertArgType>(qStat)
338 #if !FW_DIRECT_PORT_CALLS 349 static_cast<FwAssertArgType>(portNum)
352 return &this->m_CmdDisp_InputPort[portNum];
357 #if !FW_DIRECT_PORT_CALLS 368 static_cast<FwAssertArgType>(portNum)
371 return &this->m_PingReturn_InputPort[portNum];
379 static_cast<FwAssertArgType>(portNum)
382 return &this->m_Run_InputPort[portNum];
387 #if !FW_DIRECT_PORT_CALLS 401 static_cast<FwAssertArgType>(portNum)
404 this->m_CmdReg_OutputPort[portNum].
addCallPort(port);
415 static_cast<FwAssertArgType>(portNum)
418 this->m_CmdStatus_OutputPort[portNum].
addCallPort(port);
429 static_cast<FwAssertArgType>(portNum)
435 #if FW_ENABLE_TEXT_LOGGING == 1 437 void HealthComponentBase ::
438 set_LogText_OutputPort(
444 (0 <= portNum) && (portNum < this->getNum_LogText_OutputPorts()),
445 static_cast<FwAssertArgType>(portNum)
448 this->m_LogText_OutputPort[portNum].addCallPort(port);
461 static_cast<FwAssertArgType>(portNum)
464 this->m_Time_OutputPort[portNum].
addCallPort(port);
475 static_cast<FwAssertArgType>(portNum)
483 #if !FW_DIRECT_PORT_CALLS 497 static_cast<FwAssertArgType>(portNum)
500 this->m_PingSend_OutputPort[portNum].
addCallPort(port);
511 static_cast<FwAssertArgType>(portNum)
514 this->m_WdogStroke_OutputPort[portNum].
addCallPort(port);
519 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION 528 Fw::InputSerializePort* port
533 static_cast<FwAssertArgType>(portNum)
536 this->m_CmdReg_OutputPort[portNum].registerSerialPort(port);
542 Fw::InputSerializePort* port
547 static_cast<FwAssertArgType>(portNum)
550 this->m_CmdStatus_OutputPort[portNum].registerSerialPort(port);
556 Fw::InputSerializePort* port
561 static_cast<FwAssertArgType>(portNum)
564 this->m_Log_OutputPort[portNum].registerSerialPort(port);
567 #if FW_ENABLE_TEXT_LOGGING == 1 569 void HealthComponentBase ::
570 set_LogText_OutputPort(
572 Fw::InputSerializePort* port
576 (0 <= portNum) && (portNum < this->getNum_LogText_OutputPorts()),
577 static_cast<FwAssertArgType>(portNum)
580 this->m_LogText_OutputPort[portNum].registerSerialPort(port);
588 Fw::InputSerializePort* port
593 static_cast<FwAssertArgType>(portNum)
596 this->m_Time_OutputPort[portNum].registerSerialPort(port);
602 Fw::InputSerializePort* port
607 static_cast<FwAssertArgType>(portNum)
610 this->m_Tlm_OutputPort[portNum].registerSerialPort(port);
615 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION 624 Fw::InputSerializePort* port
629 static_cast<FwAssertArgType>(portNum)
632 this->m_PingSend_OutputPort[portNum].registerSerialPort(port);
638 Fw::InputSerializePort* port
643 static_cast<FwAssertArgType>(portNum)
646 this->m_WdogStroke_OutputPort[portNum].registerSerialPort(port);
682 Fw::QueuedComponentBase(compName)
693 #if !FW_DIRECT_PORT_CALLS 704 static_cast<FwAssertArgType>(portNum)
707 return this->m_CmdReg_OutputPort[portNum].
isConnected();
715 static_cast<FwAssertArgType>(portNum)
718 return this->m_CmdStatus_OutputPort[portNum].
isConnected();
726 static_cast<FwAssertArgType>(portNum)
729 return this->m_Log_OutputPort[portNum].
isConnected();
732 #if FW_ENABLE_TEXT_LOGGING == 1 734 bool HealthComponentBase ::
735 isConnected_LogText_OutputPort(
FwIndexType portNum)
const 738 (0 <= portNum) && (portNum < this->getNum_LogText_OutputPorts()),
739 static_cast<FwAssertArgType>(portNum)
742 return this->m_LogText_OutputPort[portNum].isConnected();
752 static_cast<FwAssertArgType>(portNum)
755 return this->m_Time_OutputPort[portNum].
isConnected();
763 static_cast<FwAssertArgType>(portNum)
766 return this->m_Tlm_OutputPort[portNum].
isConnected();
771 #if !FW_DIRECT_PORT_CALLS 782 static_cast<FwAssertArgType>(portNum)
785 return this->m_PingSend_OutputPort[portNum].
isConnected();
793 static_cast<FwAssertArgType>(portNum)
796 return this->m_WdogStroke_OutputPort[portNum].
isConnected();
817 FW_ASSERT(opCode >= idBase, static_cast<FwAssertArgType>(opCode), static_cast<FwAssertArgType>(idBase));
820 switch (opCode - idBase) {
868 static_cast<FwAssertArgType>(portNum)
876 ComponentIpcSerializableBuffer msg;
880 _status = msg.serializeFrom(
881 static_cast<FwEnumStoreType>(PINGRETURN_PING)
885 static_cast<FwAssertArgType>(_status)
889 _status = msg.serializeFrom(portNum);
892 static_cast<FwAssertArgType>(_status)
896 _status = msg.serializeFrom(key);
899 static_cast<FwAssertArgType>(_status)
908 static_cast<FwAssertArgType>(qStatus)
921 static_cast<FwAssertArgType>(portNum)
948 #if !FW_DIRECT_PORT_CALLS 962 static_cast<FwAssertArgType>(portNum)
966 this->m_PingSend_OutputPort[portNum].isConnected(),
967 static_cast<FwAssertArgType>(portNum)
969 this->m_PingSend_OutputPort[portNum].
invoke(
982 static_cast<FwAssertArgType>(portNum)
986 this->m_WdogStroke_OutputPort[portNum].isConnected(),
987 static_cast<FwAssertArgType>(portNum)
989 this->m_WdogStroke_OutputPort[portNum].
invoke(
1008 this->CmdStatus_out(0, opCode, cmdSeq, response);
1029 ComponentIpcSerializableBuffer msg;
1033 _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_HLTH_ENABLE));
1036 static_cast<FwAssertArgType>(_status)
1042 _status = msg.serializeFrom(port);
1045 static_cast<FwAssertArgType>(_status)
1048 _status = msg.serializeFrom(opCode);
1051 static_cast<FwAssertArgType>(_status)
1054 _status = msg.serializeFrom(cmdSeq);
1057 static_cast<FwAssertArgType>(_status)
1060 _status = msg.serializeFrom(args);
1063 static_cast<FwAssertArgType>(_status)
1072 static_cast<FwAssertArgType>(qStatus)
1088 ComponentIpcSerializableBuffer msg;
1092 _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_HLTH_PING_ENABLE));
1095 static_cast<FwAssertArgType>(_status)
1101 _status = msg.serializeFrom(port);
1104 static_cast<FwAssertArgType>(_status)
1107 _status = msg.serializeFrom(opCode);
1110 static_cast<FwAssertArgType>(_status)
1113 _status = msg.serializeFrom(cmdSeq);
1116 static_cast<FwAssertArgType>(_status)
1119 _status = msg.serializeFrom(args);
1122 static_cast<FwAssertArgType>(_status)
1131 static_cast<FwAssertArgType>(qStatus)
1147 ComponentIpcSerializableBuffer msg;
1151 _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_HLTH_CHNG_PING));
1154 static_cast<FwAssertArgType>(_status)
1160 _status = msg.serializeFrom(port);
1163 static_cast<FwAssertArgType>(_status)
1166 _status = msg.serializeFrom(opCode);
1169 static_cast<FwAssertArgType>(_status)
1172 _status = msg.serializeFrom(cmdSeq);
1175 static_cast<FwAssertArgType>(_status)
1178 _status = msg.serializeFrom(args);
1181 static_cast<FwAssertArgType>(_status)
1190 static_cast<FwAssertArgType>(qStatus)
1245 this->Time_out(0, _logTime);
1255 #if FW_AMPCS_COMPATIBLE 1260 static_cast<FwAssertArgType>(_status)
1270 static_cast<FwAssertArgType>(_status)
1283 #if FW_ENABLE_TEXT_LOGGING 1284 if (this->isConnected_LogText_OutputPort(0)) {
1285 #if FW_OBJECT_NAMES == 1 1286 const char* _formatString =
1287 "(%s) %s: Ping entry %s late warning";
1289 const char* _formatString =
1290 "%s: Ping entry %s late warning";
1297 this->m_objName.toChar(),
1320 this->Time_out(0, _logTime);
1330 #if FW_AMPCS_COMPATIBLE 1335 static_cast<FwAssertArgType>(_status)
1342 static_cast<FwAssertArgType>(_status)
1348 static_cast<FwAssertArgType>(_status)
1358 static_cast<FwAssertArgType>(_status)
1371 #if FW_ENABLE_TEXT_LOGGING 1372 if (this->isConnected_LogText_OutputPort(0)) {
1373 #if FW_OBJECT_NAMES == 1 1374 const char* _formatString =
1375 "(%s) %s: Ping entry %s did not respond";
1377 const char* _formatString =
1378 "%s: Ping entry %s did not respond";
1385 this->m_objName.toChar(),
1411 this->Time_out(0, _logTime);
1421 #if FW_AMPCS_COMPATIBLE 1426 static_cast<FwAssertArgType>(_status)
1433 static_cast<FwAssertArgType>(_status)
1439 static_cast<FwAssertArgType>(_status)
1449 static_cast<FwAssertArgType>(_status)
1452 #if FW_AMPCS_COMPATIBLE 1455 static_cast<U8>(
sizeof(U32))
1459 static_cast<FwAssertArgType>(_status)
1465 static_cast<FwAssertArgType>(_status)
1478 #if FW_ENABLE_TEXT_LOGGING 1479 if (this->isConnected_LogText_OutputPort(0)) {
1480 #if FW_OBJECT_NAMES == 1 1481 const char* _formatString =
1482 "(%s) %s: Ping entry %s responded with wrong key 0x%" PRIx32
"";
1484 const char* _formatString =
1485 "%s: Ping entry %s responded with wrong key 0x%" PRIx32
"";
1492 this->m_objName.toChar(),
1494 "HLTH_PING_WRONG_KEY ",
1516 this->Time_out(0, _logTime);
1526 #if FW_AMPCS_COMPATIBLE 1531 static_cast<FwAssertArgType>(_status)
1535 #if FW_AMPCS_COMPATIBLE 1542 static_cast<FwAssertArgType>(_status)
1548 static_cast<FwAssertArgType>(_status)
1561 #if FW_ENABLE_TEXT_LOGGING 1562 if (this->isConnected_LogText_OutputPort(0)) {
1563 #if FW_OBJECT_NAMES == 1 1564 const char* _formatString =
1565 "(%s) %s: Health checking set to %s";
1567 const char* _formatString =
1568 "%s: Health checking set to %s";
1572 enabled.toString(enabledStr);
1578 this->m_objName.toChar(),
1580 "HLTH_CHECK_ENABLE ",
1604 this->Time_out(0, _logTime);
1614 #if FW_AMPCS_COMPATIBLE 1619 static_cast<FwAssertArgType>(_status)
1623 #if FW_AMPCS_COMPATIBLE 1630 static_cast<FwAssertArgType>(_status)
1636 static_cast<FwAssertArgType>(_status)
1645 static_cast<FwAssertArgType>(_status)
1658 #if FW_ENABLE_TEXT_LOGGING 1659 if (this->isConnected_LogText_OutputPort(0)) {
1660 #if FW_OBJECT_NAMES == 1 1661 const char* _formatString =
1662 "(%s) %s: Health checking set to %s for %s";
1664 const char* _formatString =
1665 "%s: Health checking set to %s for %s";
1669 enabled.toString(enabledStr);
1675 this->m_objName.toChar(),
1699 this->Time_out(0, _logTime);
1709 #if FW_AMPCS_COMPATIBLE 1714 static_cast<FwAssertArgType>(_status)
1724 static_cast<FwAssertArgType>(_status)
1737 #if FW_ENABLE_TEXT_LOGGING 1738 if (this->isConnected_LogText_OutputPort(0)) {
1739 #if FW_OBJECT_NAMES == 1 1740 const char* _formatString =
1741 "(%s) %s: Couldn't find entry %s";
1743 const char* _formatString =
1744 "%s: Couldn't find entry %s";
1751 this->m_objName.toChar(),
1753 "HLTH_CHECK_LOOKUP_ERROR ",
1778 this->Time_out(0, _logTime);
1788 #if FW_AMPCS_COMPATIBLE 1793 static_cast<FwAssertArgType>(_status)
1803 static_cast<FwAssertArgType>(_status)
1806 #if FW_AMPCS_COMPATIBLE 1809 static_cast<U8>(
sizeof(U32))
1813 static_cast<FwAssertArgType>(_status)
1819 static_cast<FwAssertArgType>(_status)
1822 #if FW_AMPCS_COMPATIBLE 1825 static_cast<U8>(
sizeof(U32))
1829 static_cast<FwAssertArgType>(_status)
1835 static_cast<FwAssertArgType>(_status)
1848 #if FW_ENABLE_TEXT_LOGGING 1849 if (this->isConnected_LogText_OutputPort(0)) {
1850 #if FW_OBJECT_NAMES == 1 1851 const char* _formatString =
1852 "(%s) %s: Health ping for %s changed to WARN %" PRIu32
" FATAL %" PRIu32
"";
1854 const char* _formatString =
1855 "%s: Health ping for %s changed to WARN %" PRIu32
" FATAL %" PRIu32
"";
1862 this->m_objName.toChar(),
1864 "HLTH_PING_UPDATED ",
1891 this->Time_out(0, _logTime);
1901 #if FW_AMPCS_COMPATIBLE 1906 static_cast<FwAssertArgType>(_status)
1916 static_cast<FwAssertArgType>(_status)
1919 #if FW_AMPCS_COMPATIBLE 1922 static_cast<U8>(
sizeof(U32))
1926 static_cast<FwAssertArgType>(_status)
1932 static_cast<FwAssertArgType>(_status)
1935 #if FW_AMPCS_COMPATIBLE 1938 static_cast<U8>(
sizeof(U32))
1942 static_cast<FwAssertArgType>(_status)
1948 static_cast<FwAssertArgType>(_status)
1961 #if FW_ENABLE_TEXT_LOGGING 1962 if (this->isConnected_LogText_OutputPort(0)) {
1963 #if FW_OBJECT_NAMES == 1 1964 const char* _formatString =
1965 "(%s) %s: Health ping for %s invalid values: WARN %" PRIu32
" FATAL %" PRIu32
"";
1967 const char* _formatString =
1968 "%s: Health ping for %s invalid values: WARN %" PRIu32
" FATAL %" PRIu32
"";
1975 this->m_objName.toChar(),
1977 "HLTH_PING_INVALID_VALUES ",
2010 this->Time_out(0, _tlmTime);
2040 static_cast<FwAssertArgType>(_stat)
2060 this->Time_out(0, _time);
2075 ComponentIpcSerializableBuffer _msg;
2083 if (Os::Queue::Status::EMPTY == _msgStatus) {
2089 static_cast<FwAssertArgType>(_msgStatus)
2100 static_cast<FwAssertArgType>(_deserStatus)
2103 MsgTypeEnum _msgType =
static_cast<MsgTypeEnum
>(_desMsg);
2105 if (_msgType == HEALTH_COMPONENT_EXIT) {
2110 _deserStatus = _msg.deserializeTo(portNum);
2113 static_cast<FwAssertArgType>(_deserStatus)
2118 case PINGRETURN_PING: {
2121 _deserStatus = _msg.deserializeTo(key);
2124 static_cast<FwAssertArgType>(_deserStatus)
2136 case CMD_HLTH_ENABLE: {
2139 _deserStatus = _msg.deserializeTo(_opCode);
2142 static_cast<FwAssertArgType>(_deserStatus)
2147 _deserStatus = _msg.deserializeTo(_cmdSeq);
2150 static_cast<FwAssertArgType>(_deserStatus)
2155 _deserStatus = _msg.deserializeTo(args);
2158 static_cast<FwAssertArgType>(_deserStatus)
2181 #if FW_CMD_CHECK_RESIDUAL 2201 case CMD_HLTH_PING_ENABLE: {
2204 _deserStatus = _msg.deserializeTo(_opCode);
2207 static_cast<FwAssertArgType>(_deserStatus)
2212 _deserStatus = _msg.deserializeTo(_cmdSeq);
2215 static_cast<FwAssertArgType>(_deserStatus)
2220 _deserStatus = _msg.deserializeTo(args);
2223 static_cast<FwAssertArgType>(_deserStatus)
2261 #if FW_CMD_CHECK_RESIDUAL 2282 case CMD_HLTH_CHNG_PING: {
2285 _deserStatus = _msg.deserializeTo(_opCode);
2288 static_cast<FwAssertArgType>(_deserStatus)
2293 _deserStatus = _msg.deserializeTo(_cmdSeq);
2296 static_cast<FwAssertArgType>(_deserStatus)
2301 _deserStatus = _msg.deserializeTo(args);
2304 static_cast<FwAssertArgType>(_deserStatus)
2357 #if FW_CMD_CHECK_RESIDUAL 2395 for (
FwSizeType i = 0; i < currentMessageCount; i++) {
2397 if (messageStatus != QueuedComponentBase::MSG_DISPATCH_OK) {
2401 return messageStatus;
2408 void HealthComponentBase ::
2431 void HealthComponentBase ::
2440 compPtr->PingReturn_handlerBase(
2446 void HealthComponentBase ::
2455 compPtr->Run_handlerBase(
2461 #if !FW_DIRECT_PORT_CALLS 2467 void HealthComponentBase ::
2475 static_cast<FwAssertArgType>(portNum)
2479 this->m_CmdReg_OutputPort[portNum].isConnected(),
2480 static_cast<FwAssertArgType>(portNum)
2482 this->m_CmdReg_OutputPort[portNum].
invoke(
2487 void HealthComponentBase ::
2497 static_cast<FwAssertArgType>(portNum)
2501 this->m_CmdStatus_OutputPort[portNum].isConnected(),
2502 static_cast<FwAssertArgType>(portNum)
2504 this->m_CmdStatus_OutputPort[portNum].
invoke(
2511 void HealthComponentBase ::
2522 static_cast<FwAssertArgType>(portNum)
2526 this->m_Log_OutputPort[portNum].isConnected(),
2527 static_cast<FwAssertArgType>(portNum)
2529 this->m_Log_OutputPort[portNum].
invoke(
2537 #if FW_ENABLE_TEXT_LOGGING 2539 void HealthComponentBase ::
2549 (0 <= portNum) && (portNum < this->getNum_LogText_OutputPorts()),
2550 static_cast<FwAssertArgType>(portNum)
2554 this->m_LogText_OutputPort[portNum].isConnected(),
2555 static_cast<FwAssertArgType>(portNum)
2557 this->m_LogText_OutputPort[portNum].invoke(
2567 void HealthComponentBase ::
2575 static_cast<FwAssertArgType>(portNum)
2579 this->m_Time_OutputPort[portNum].isConnected(),
2580 static_cast<FwAssertArgType>(portNum)
2582 this->m_Time_OutputPort[portNum].
invoke(
2587 void HealthComponentBase ::
2597 static_cast<FwAssertArgType>(portNum)
2601 this->m_Tlm_OutputPort[portNum].isConnected(),
2602 static_cast<FwAssertArgType>(portNum)
2604 this->m_Tlm_OutputPort[portNum].
invoke(
Ignore a particular ping entry.
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.
static constexpr FwSizeType CAPACITY
void CmdDisp_handlerBase(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
Handler base-class function for input port CmdDisp.
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
Report checking turned on or off.
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*.
Channel ID for PingLateWarnings.
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 connection.
void tlmWrite(FwChanIdType id, Fw::TlmBuffer &_tlmBuff, Fw::Time _tlmTime=Fw::Time()) const
virtual const CHAR * toChar() const =0
Convert to a C-style char*.
Report a particular entry on or off.
bool isConnected_Tlm_OutputPort(FwIndexType portNum) const
bool isConnected_Log_OutputPort(FwIndexType portNum) const
void init()
Initialization function.
Enum representing a command response.
void PingSend_out(FwIndexType portNum, U32 key) const
Invoke output port PingSend.
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.
bool isConnected_WdogStroke_OutputPort(FwIndexType portNum) const
Os::Queue m_queue
queue object for active component
A command to enable or disable health checks.
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()
void WdogStroke_out(FwIndexType portNum, U32 code) const
Invoke output port WdogStroke.
FwIdType FwEventIdType
The type of an event identifier.
The size of the serial representation.
Svc::InputPingPort * get_PingReturn_InputPort(FwIndexType portNum)
void invoke(FwOpcodeType opCode) const
Invoke a port connection.
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.
static constexpr FwSizeType CAPACITY
#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 (deprecated in C++, use std::min)
A less serious but recoverable event.
void init()
Initialization function.
bool isConnected_CmdStatus_OutputPort(FwIndexType portNum) const
void invoke(Fw::Time &time) const
Invoke a port connection.
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 connection.
FwIdType FwChanIdType
The type of a telemetry channel identifier.
void addCallPort(InputPingPort *callPort)
Register an input port.
Status send(const U8 *buffer, FwSizeType size, FwQueuePriorityType priority, BlockingType blockType) override
send a message into the queue through delegate
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 connection.
Enum representing event severity.
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.
bool isConnected_CmdReg_OutputPort(FwIndexType portNum) const
FormatStatus format(const CHAR *formatString,...)
write formatted string to buffer
void init()
Initialization function.
uint8_t U8
8-bit unsigned integer
FwSizeType getMessagesAvailable() const override
get number of messages available
static constexpr FwIndexType getNum_WdogStroke_OutputPorts()
bool isConnected_Time_OutputPort(FwIndexType portNum) const
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)
void invoke(FwEventIdType id, Fw::Time &timeTag, const Fw::LogSeverity &severity, Fw::LogBuffer &args) const
Invoke a port connection.
HealthComponentBase(const char *compName="")
Construct HealthComponentBase object.
void invoke(U32 code) const
Invoke a port connection.
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.
bool isConnected_PingSend_OutputPort(FwIndexType portNum) const
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.
Warn that a ping target is longer than the warning value.
RateGroupDivider component implementation.
message sent/received okay
SerializeStatus deserializeTo(U8 &val, Endianness mode=Endianness::BIG) override
Deserialize an 8-bit unsigned integer value.
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.
Declare FATAL since task is no longer responding.
void log_ACTIVITY_HI_HLTH_CHECK_ENABLE(Fw::Enabled enabled) const
No more messages in the queue.
Declare FATAL since task is no longer responding.
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.
message to exit active component task
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 log_ACTIVITY_HI_HLTH_PING_UPDATED(const Fw::StringBase &entry, U32 warn, U32 fatal) const