9 #if FW_ENABLE_TEXT_LOGGING 34 class ComponentIpcSerializableBuffer :
44 MAX_DATA_SIZE =
sizeof(BuffUnion),
46 SERIALIZATION_SIZE = DATA_OFFSET + MAX_DATA_SIZE
49 ComponentIpcSerializableBuffer() :
Fw::LinearBufferBase(m_buff, sizeof(m_buff)) {
55 U8 m_buff[SERIALIZATION_SIZE];
73 #if !FW_DIRECT_PORT_CALLS 80 this->m_CmdDisp_InputPort[port].
init();
85 this->m_CmdDisp_InputPort[port].
setPortNum(port);
87 #if FW_OBJECT_NAMES == 1 91 this->m_objName.toChar(),
94 this->m_CmdDisp_InputPort[port].setObjName(portName.
toChar());
99 #if !FW_DIRECT_PORT_CALLS 106 this->m_PingReturn_InputPort[port].
init();
111 this->m_PingReturn_InputPort[port].
setPortNum(port);
113 #if FW_OBJECT_NAMES == 1 117 this->m_objName.toChar(),
120 this->m_PingReturn_InputPort[port].setObjName(portName.
toChar());
125 #if !FW_DIRECT_PORT_CALLS 132 this->m_Run_InputPort[port].
init();
139 #if FW_OBJECT_NAMES == 1 143 this->m_objName.toChar(),
146 this->m_Run_InputPort[port].setObjName(portName.
toChar());
151 #if !FW_DIRECT_PORT_CALLS 158 this->m_CmdReg_OutputPort[port].
init();
160 #if FW_OBJECT_NAMES == 1 164 this->m_objName.toChar(),
167 this->m_CmdReg_OutputPort[port].setObjName(portName.
toChar());
172 #if !FW_DIRECT_PORT_CALLS 179 this->m_CmdStatus_OutputPort[port].
init();
181 #if FW_OBJECT_NAMES == 1 185 this->m_objName.toChar(),
188 this->m_CmdStatus_OutputPort[port].setObjName(portName.
toChar());
193 #if !FW_DIRECT_PORT_CALLS 200 this->m_Log_OutputPort[port].
init();
202 #if FW_OBJECT_NAMES == 1 206 this->m_objName.toChar(),
209 this->m_Log_OutputPort[port].setObjName(portName.
toChar());
214 #if !FW_DIRECT_PORT_CALLS && FW_ENABLE_TEXT_LOGGING 218 port < static_cast<FwIndexType>(this->getNum_LogText_OutputPorts());
221 this->m_LogText_OutputPort[port].
init();
223 #if FW_OBJECT_NAMES == 1 227 this->m_objName.toChar(),
230 this->m_LogText_OutputPort[port].setObjName(portName.
toChar());
235 #if !FW_DIRECT_PORT_CALLS 242 this->m_Time_OutputPort[port].
init();
244 #if FW_OBJECT_NAMES == 1 248 this->m_objName.toChar(),
251 this->m_Time_OutputPort[port].setObjName(portName.
toChar());
256 #if !FW_DIRECT_PORT_CALLS 263 this->m_Tlm_OutputPort[port].
init();
265 #if FW_OBJECT_NAMES == 1 269 this->m_objName.toChar(),
272 this->m_Tlm_OutputPort[port].setObjName(portName.
toChar());
277 #if !FW_DIRECT_PORT_CALLS 284 this->m_PingSend_OutputPort[port].
init();
286 #if FW_OBJECT_NAMES == 1 290 this->m_objName.toChar(),
293 this->m_PingSend_OutputPort[port].setObjName(portName.
toChar());
298 #if !FW_DIRECT_PORT_CALLS 305 this->m_WdogStroke_OutputPort[port].
init();
307 #if FW_OBJECT_NAMES == 1 311 this->m_objName.toChar(),
314 this->m_WdogStroke_OutputPort[port].setObjName(portName.
toChar());
322 static_cast<FwSizeType>(ComponentIpcSerializableBuffer::SERIALIZATION_SIZE)
326 static_cast<FwAssertArgType>(qStat)
330 #if !FW_DIRECT_PORT_CALLS 341 static_cast<FwAssertArgType>(portNum)
344 return &this->m_CmdDisp_InputPort[portNum];
349 #if !FW_DIRECT_PORT_CALLS 360 static_cast<FwAssertArgType>(portNum)
363 return &this->m_PingReturn_InputPort[portNum];
371 static_cast<FwAssertArgType>(portNum)
374 return &this->m_Run_InputPort[portNum];
379 #if !FW_DIRECT_PORT_CALLS 393 static_cast<FwAssertArgType>(portNum)
396 this->m_CmdReg_OutputPort[portNum].
addCallPort(port);
407 static_cast<FwAssertArgType>(portNum)
410 this->m_CmdStatus_OutputPort[portNum].
addCallPort(port);
421 static_cast<FwAssertArgType>(portNum)
427 #if FW_ENABLE_TEXT_LOGGING == 1 429 void HealthComponentBase ::
430 set_LogText_OutputPort(
436 (0 <= portNum) && (portNum < this->getNum_LogText_OutputPorts()),
437 static_cast<FwAssertArgType>(portNum)
440 this->m_LogText_OutputPort[portNum].addCallPort(port);
453 static_cast<FwAssertArgType>(portNum)
456 this->m_Time_OutputPort[portNum].
addCallPort(port);
467 static_cast<FwAssertArgType>(portNum)
475 #if !FW_DIRECT_PORT_CALLS 489 static_cast<FwAssertArgType>(portNum)
492 this->m_PingSend_OutputPort[portNum].
addCallPort(port);
503 static_cast<FwAssertArgType>(portNum)
506 this->m_WdogStroke_OutputPort[portNum].
addCallPort(port);
511 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION 520 Fw::InputSerializePort* port
525 static_cast<FwAssertArgType>(portNum)
528 this->m_CmdReg_OutputPort[portNum].registerSerialPort(port);
534 Fw::InputSerializePort* port
539 static_cast<FwAssertArgType>(portNum)
542 this->m_CmdStatus_OutputPort[portNum].registerSerialPort(port);
548 Fw::InputSerializePort* port
553 static_cast<FwAssertArgType>(portNum)
556 this->m_Log_OutputPort[portNum].registerSerialPort(port);
559 #if FW_ENABLE_TEXT_LOGGING == 1 561 void HealthComponentBase ::
562 set_LogText_OutputPort(
564 Fw::InputSerializePort* port
568 (0 <= portNum) && (portNum < this->getNum_LogText_OutputPorts()),
569 static_cast<FwAssertArgType>(portNum)
572 this->m_LogText_OutputPort[portNum].registerSerialPort(port);
580 Fw::InputSerializePort* port
585 static_cast<FwAssertArgType>(portNum)
588 this->m_Time_OutputPort[portNum].registerSerialPort(port);
594 Fw::InputSerializePort* port
599 static_cast<FwAssertArgType>(portNum)
602 this->m_Tlm_OutputPort[portNum].registerSerialPort(port);
607 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION 616 Fw::InputSerializePort* port
621 static_cast<FwAssertArgType>(portNum)
624 this->m_PingSend_OutputPort[portNum].registerSerialPort(port);
630 Fw::InputSerializePort* port
635 static_cast<FwAssertArgType>(portNum)
638 this->m_WdogStroke_OutputPort[portNum].registerSerialPort(port);
674 Fw::QueuedComponentBase(compName)
685 #if !FW_DIRECT_PORT_CALLS 696 static_cast<FwAssertArgType>(portNum)
699 return this->m_CmdReg_OutputPort[portNum].
isConnected();
707 static_cast<FwAssertArgType>(portNum)
710 return this->m_CmdStatus_OutputPort[portNum].
isConnected();
718 static_cast<FwAssertArgType>(portNum)
721 return this->m_Log_OutputPort[portNum].
isConnected();
724 #if FW_ENABLE_TEXT_LOGGING == 1 726 bool HealthComponentBase ::
727 isConnected_LogText_OutputPort(
FwIndexType portNum)
const 730 (0 <= portNum) && (portNum < this->getNum_LogText_OutputPorts()),
731 static_cast<FwAssertArgType>(portNum)
734 return this->m_LogText_OutputPort[portNum].isConnected();
744 static_cast<FwAssertArgType>(portNum)
747 return this->m_Time_OutputPort[portNum].
isConnected();
755 static_cast<FwAssertArgType>(portNum)
758 return this->m_Tlm_OutputPort[portNum].
isConnected();
763 #if !FW_DIRECT_PORT_CALLS 774 static_cast<FwAssertArgType>(portNum)
777 return this->m_PingSend_OutputPort[portNum].
isConnected();
785 static_cast<FwAssertArgType>(portNum)
788 return this->m_WdogStroke_OutputPort[portNum].
isConnected();
809 FW_ASSERT(opCode >= idBase, static_cast<FwAssertArgType>(opCode), static_cast<FwAssertArgType>(idBase));
812 switch (opCode - idBase) {
860 static_cast<FwAssertArgType>(portNum)
868 ComponentIpcSerializableBuffer msg;
872 _status = msg.serializeFrom(
873 static_cast<FwEnumStoreType>(PINGRETURN_PING)
877 static_cast<FwAssertArgType>(_status)
881 _status = msg.serializeFrom(portNum);
884 static_cast<FwAssertArgType>(_status)
888 _status = msg.serializeFrom(key);
891 static_cast<FwAssertArgType>(_status)
900 static_cast<FwAssertArgType>(qStatus)
913 static_cast<FwAssertArgType>(portNum)
940 #if !FW_DIRECT_PORT_CALLS 954 static_cast<FwAssertArgType>(portNum)
958 this->m_PingSend_OutputPort[portNum].isConnected(),
959 static_cast<FwAssertArgType>(portNum)
961 this->m_PingSend_OutputPort[portNum].
invoke(
974 static_cast<FwAssertArgType>(portNum)
978 this->m_WdogStroke_OutputPort[portNum].isConnected(),
979 static_cast<FwAssertArgType>(portNum)
981 this->m_WdogStroke_OutputPort[portNum].
invoke(
1000 this->CmdStatus_out(0, opCode, cmdSeq, response);
1021 ComponentIpcSerializableBuffer msg;
1025 _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_HLTH_ENABLE));
1028 static_cast<FwAssertArgType>(_status)
1034 _status = msg.serializeFrom(port);
1037 static_cast<FwAssertArgType>(_status)
1040 _status = msg.serializeFrom(opCode);
1043 static_cast<FwAssertArgType>(_status)
1046 _status = msg.serializeFrom(cmdSeq);
1049 static_cast<FwAssertArgType>(_status)
1052 _status = msg.serializeFrom(args);
1055 static_cast<FwAssertArgType>(_status)
1064 static_cast<FwAssertArgType>(qStatus)
1080 ComponentIpcSerializableBuffer msg;
1084 _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_HLTH_PING_ENABLE));
1087 static_cast<FwAssertArgType>(_status)
1093 _status = msg.serializeFrom(port);
1096 static_cast<FwAssertArgType>(_status)
1099 _status = msg.serializeFrom(opCode);
1102 static_cast<FwAssertArgType>(_status)
1105 _status = msg.serializeFrom(cmdSeq);
1108 static_cast<FwAssertArgType>(_status)
1111 _status = msg.serializeFrom(args);
1114 static_cast<FwAssertArgType>(_status)
1123 static_cast<FwAssertArgType>(qStatus)
1139 ComponentIpcSerializableBuffer msg;
1143 _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_HLTH_CHNG_PING));
1146 static_cast<FwAssertArgType>(_status)
1152 _status = msg.serializeFrom(port);
1155 static_cast<FwAssertArgType>(_status)
1158 _status = msg.serializeFrom(opCode);
1161 static_cast<FwAssertArgType>(_status)
1164 _status = msg.serializeFrom(cmdSeq);
1167 static_cast<FwAssertArgType>(_status)
1170 _status = msg.serializeFrom(args);
1173 static_cast<FwAssertArgType>(_status)
1182 static_cast<FwAssertArgType>(qStatus)
1237 this->Time_out(0, _logTime);
1247 #if FW_AMPCS_COMPATIBLE 1252 static_cast<FwAssertArgType>(_status)
1262 static_cast<FwAssertArgType>(_status)
1275 #if FW_ENABLE_TEXT_LOGGING 1276 if (this->isConnected_LogText_OutputPort(0)) {
1277 #if FW_OBJECT_NAMES == 1 1278 const char* _formatString =
1279 "(%s) %s: Ping entry %s late warning";
1281 const char* _formatString =
1282 "%s: Ping entry %s late warning";
1286 (void) _logString.
format(
1289 this->m_objName.toChar(),
1312 this->Time_out(0, _logTime);
1322 #if FW_AMPCS_COMPATIBLE 1327 static_cast<FwAssertArgType>(_status)
1334 static_cast<FwAssertArgType>(_status)
1340 static_cast<FwAssertArgType>(_status)
1350 static_cast<FwAssertArgType>(_status)
1363 #if FW_ENABLE_TEXT_LOGGING 1364 if (this->isConnected_LogText_OutputPort(0)) {
1365 #if FW_OBJECT_NAMES == 1 1366 const char* _formatString =
1367 "(%s) %s: Ping entry %s did not respond";
1369 const char* _formatString =
1370 "%s: Ping entry %s did not respond";
1374 (void) _logString.
format(
1377 this->m_objName.toChar(),
1403 this->Time_out(0, _logTime);
1413 #if FW_AMPCS_COMPATIBLE 1418 static_cast<FwAssertArgType>(_status)
1425 static_cast<FwAssertArgType>(_status)
1431 static_cast<FwAssertArgType>(_status)
1441 static_cast<FwAssertArgType>(_status)
1444 #if FW_AMPCS_COMPATIBLE 1447 static_cast<U8>(
sizeof(U32))
1451 static_cast<FwAssertArgType>(_status)
1457 static_cast<FwAssertArgType>(_status)
1470 #if FW_ENABLE_TEXT_LOGGING 1471 if (this->isConnected_LogText_OutputPort(0)) {
1472 #if FW_OBJECT_NAMES == 1 1473 const char* _formatString =
1474 "(%s) %s: Ping entry %s responded with wrong key 0x%" PRIx32
"";
1476 const char* _formatString =
1477 "%s: Ping entry %s responded with wrong key 0x%" PRIx32
"";
1481 (void) _logString.
format(
1484 this->m_objName.toChar(),
1486 "HLTH_PING_WRONG_KEY ",
1508 this->Time_out(0, _logTime);
1518 #if FW_AMPCS_COMPATIBLE 1523 static_cast<FwAssertArgType>(_status)
1527 #if FW_AMPCS_COMPATIBLE 1534 static_cast<FwAssertArgType>(_status)
1540 static_cast<FwAssertArgType>(_status)
1553 #if FW_ENABLE_TEXT_LOGGING 1554 if (this->isConnected_LogText_OutputPort(0)) {
1555 #if FW_OBJECT_NAMES == 1 1556 const char* _formatString =
1557 "(%s) %s: Health checking set to %s";
1559 const char* _formatString =
1560 "%s: Health checking set to %s";
1564 enabled.toString(enabledStr);
1567 (void) _logString.
format(
1570 this->m_objName.toChar(),
1572 "HLTH_CHECK_ENABLE ",
1596 this->Time_out(0, _logTime);
1606 #if FW_AMPCS_COMPATIBLE 1611 static_cast<FwAssertArgType>(_status)
1615 #if FW_AMPCS_COMPATIBLE 1622 static_cast<FwAssertArgType>(_status)
1628 static_cast<FwAssertArgType>(_status)
1637 static_cast<FwAssertArgType>(_status)
1650 #if FW_ENABLE_TEXT_LOGGING 1651 if (this->isConnected_LogText_OutputPort(0)) {
1652 #if FW_OBJECT_NAMES == 1 1653 const char* _formatString =
1654 "(%s) %s: Health checking set to %s for %s";
1656 const char* _formatString =
1657 "%s: Health checking set to %s for %s";
1661 enabled.toString(enabledStr);
1664 (void) _logString.
format(
1667 this->m_objName.toChar(),
1691 this->Time_out(0, _logTime);
1701 #if FW_AMPCS_COMPATIBLE 1706 static_cast<FwAssertArgType>(_status)
1716 static_cast<FwAssertArgType>(_status)
1729 #if FW_ENABLE_TEXT_LOGGING 1730 if (this->isConnected_LogText_OutputPort(0)) {
1731 #if FW_OBJECT_NAMES == 1 1732 const char* _formatString =
1733 "(%s) %s: Couldn't find entry %s";
1735 const char* _formatString =
1736 "%s: Couldn't find entry %s";
1740 (void) _logString.
format(
1743 this->m_objName.toChar(),
1745 "HLTH_CHECK_LOOKUP_ERROR ",
1770 this->Time_out(0, _logTime);
1780 #if FW_AMPCS_COMPATIBLE 1785 static_cast<FwAssertArgType>(_status)
1795 static_cast<FwAssertArgType>(_status)
1798 #if FW_AMPCS_COMPATIBLE 1801 static_cast<U8>(
sizeof(U32))
1805 static_cast<FwAssertArgType>(_status)
1811 static_cast<FwAssertArgType>(_status)
1814 #if FW_AMPCS_COMPATIBLE 1817 static_cast<U8>(
sizeof(U32))
1821 static_cast<FwAssertArgType>(_status)
1827 static_cast<FwAssertArgType>(_status)
1840 #if FW_ENABLE_TEXT_LOGGING 1841 if (this->isConnected_LogText_OutputPort(0)) {
1842 #if FW_OBJECT_NAMES == 1 1843 const char* _formatString =
1844 "(%s) %s: Health ping for %s changed to WARN %" PRIu32
" FATAL %" PRIu32
"";
1846 const char* _formatString =
1847 "%s: Health ping for %s changed to WARN %" PRIu32
" FATAL %" PRIu32
"";
1851 (void) _logString.
format(
1854 this->m_objName.toChar(),
1856 "HLTH_PING_UPDATED ",
1883 this->Time_out(0, _logTime);
1893 #if FW_AMPCS_COMPATIBLE 1898 static_cast<FwAssertArgType>(_status)
1908 static_cast<FwAssertArgType>(_status)
1911 #if FW_AMPCS_COMPATIBLE 1914 static_cast<U8>(
sizeof(U32))
1918 static_cast<FwAssertArgType>(_status)
1924 static_cast<FwAssertArgType>(_status)
1927 #if FW_AMPCS_COMPATIBLE 1930 static_cast<U8>(
sizeof(U32))
1934 static_cast<FwAssertArgType>(_status)
1940 static_cast<FwAssertArgType>(_status)
1953 #if FW_ENABLE_TEXT_LOGGING 1954 if (this->isConnected_LogText_OutputPort(0)) {
1955 #if FW_OBJECT_NAMES == 1 1956 const char* _formatString =
1957 "(%s) %s: Health ping for %s invalid values: WARN %" PRIu32
" FATAL %" PRIu32
"";
1959 const char* _formatString =
1960 "%s: Health ping for %s invalid values: WARN %" PRIu32
" FATAL %" PRIu32
"";
1964 (void) _logString.
format(
1967 this->m_objName.toChar(),
1969 "HLTH_PING_INVALID_VALUES ",
2002 this->Time_out(0, _tlmTime);
2032 static_cast<FwAssertArgType>(_stat)
2052 this->Time_out(0, _time);
2067 ComponentIpcSerializableBuffer _msg;
2075 if (Os::Queue::Status::EMPTY == _msgStatus) {
2081 static_cast<FwAssertArgType>(_msgStatus)
2092 static_cast<FwAssertArgType>(_deserStatus)
2095 MsgTypeEnum _msgType =
static_cast<MsgTypeEnum
>(_desMsg);
2097 if (_msgType == HEALTH_COMPONENT_EXIT) {
2102 _deserStatus = _msg.deserializeTo(portNum);
2105 static_cast<FwAssertArgType>(_deserStatus)
2110 case PINGRETURN_PING: {
2113 _deserStatus = _msg.deserializeTo(key);
2116 static_cast<FwAssertArgType>(_deserStatus)
2128 case CMD_HLTH_ENABLE: {
2131 _deserStatus = _msg.deserializeTo(_opCode);
2134 static_cast<FwAssertArgType>(_deserStatus)
2139 _deserStatus = _msg.deserializeTo(_cmdSeq);
2142 static_cast<FwAssertArgType>(_deserStatus)
2147 _deserStatus = _msg.deserializeTo(args);
2150 static_cast<FwAssertArgType>(_deserStatus)
2173 #if FW_CMD_CHECK_RESIDUAL 2193 case CMD_HLTH_PING_ENABLE: {
2196 _deserStatus = _msg.deserializeTo(_opCode);
2199 static_cast<FwAssertArgType>(_deserStatus)
2204 _deserStatus = _msg.deserializeTo(_cmdSeq);
2207 static_cast<FwAssertArgType>(_deserStatus)
2212 _deserStatus = _msg.deserializeTo(args);
2215 static_cast<FwAssertArgType>(_deserStatus)
2253 #if FW_CMD_CHECK_RESIDUAL 2274 case CMD_HLTH_CHNG_PING: {
2277 _deserStatus = _msg.deserializeTo(_opCode);
2280 static_cast<FwAssertArgType>(_deserStatus)
2285 _deserStatus = _msg.deserializeTo(_cmdSeq);
2288 static_cast<FwAssertArgType>(_deserStatus)
2293 _deserStatus = _msg.deserializeTo(args);
2296 static_cast<FwAssertArgType>(_deserStatus)
2349 #if FW_CMD_CHECK_RESIDUAL 2387 for (
FwSizeType i = 0; i < currentMessageCount; i++) {
2389 if (messageStatus != QueuedComponentBase::MSG_DISPATCH_OK) {
2393 return messageStatus;
2400 void HealthComponentBase ::
2423 void HealthComponentBase ::
2432 compPtr->PingReturn_handlerBase(
2438 void HealthComponentBase ::
2447 compPtr->Run_handlerBase(
2453 #if !FW_DIRECT_PORT_CALLS 2459 void HealthComponentBase ::
2467 static_cast<FwAssertArgType>(portNum)
2471 this->m_CmdReg_OutputPort[portNum].isConnected(),
2472 static_cast<FwAssertArgType>(portNum)
2474 this->m_CmdReg_OutputPort[portNum].
invoke(
2479 void HealthComponentBase ::
2489 static_cast<FwAssertArgType>(portNum)
2493 this->m_CmdStatus_OutputPort[portNum].isConnected(),
2494 static_cast<FwAssertArgType>(portNum)
2496 this->m_CmdStatus_OutputPort[portNum].
invoke(
2503 void HealthComponentBase ::
2514 static_cast<FwAssertArgType>(portNum)
2518 this->m_Log_OutputPort[portNum].isConnected(),
2519 static_cast<FwAssertArgType>(portNum)
2521 this->m_Log_OutputPort[portNum].
invoke(
2529 #if FW_ENABLE_TEXT_LOGGING 2531 void HealthComponentBase ::
2541 (0 <= portNum) && (portNum < this->getNum_LogText_OutputPorts()),
2542 static_cast<FwAssertArgType>(portNum)
2546 this->m_LogText_OutputPort[portNum].isConnected(),
2547 static_cast<FwAssertArgType>(portNum)
2549 this->m_LogText_OutputPort[portNum].invoke(
2559 void HealthComponentBase ::
2567 static_cast<FwAssertArgType>(portNum)
2571 this->m_Time_OutputPort[portNum].isConnected(),
2572 static_cast<FwAssertArgType>(portNum)
2574 this->m_Time_OutputPort[portNum].
invoke(
2579 void HealthComponentBase ::
2589 static_cast<FwAssertArgType>(portNum)
2593 this->m_Tlm_OutputPort[portNum].isConnected(),
2594 static_cast<FwAssertArgType>(portNum)
2596 this->m_Tlm_OutputPort[portNum].
invoke(
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.
Channel ID for PingLateWarnings.
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.
A command to enable or disable health checks.
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.
message to exit active component task
Ignore a particular ping entry.
virtual void PingReturn_preMsgHook(FwIndexType portNum, U32 key)
Pre-message hook for async input port PingReturn.
SerializeStatus deserializeTo(U8 &val, Endianness mode=Endianness::BIG) override
Deserialize an 8-bit unsigned integer value.
void log_WARNING_LO_HLTH_CHECK_LOOKUP_ERROR(const Fw::StringBase &entry) const
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 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*.
bool isConnected_Tlm_OutputPort(FwIndexType portNum) const
void log_ACTIVITY_HI_HLTH_CHECK_PING(const Fw::Enabled &enabled, const Fw::StringBase &entry) const
bool isConnected_Log_OutputPort(FwIndexType portNum) const
void log_ACTIVITY_HI_HLTH_CHECK_ENABLE(const Fw::Enabled &enabled) 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].
SerializeStatus serializeFrom(U8 val, Endianness mode=Endianness::BIG) override
Serialize an 8-bit unsigned integer value.
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
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.
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
Report a particular entry on or off.
void invoke(Fw::Time &time) const
Invoke a port connection.
void set_Time_OutputPort(FwIndexType portNum, Fw::InputTimePort *port)
Connect port to Time[portNum].
Serializable::SizeType getDeserializeSizeLeft() const override
Get remaining deserialization buffer size.
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.
virtual void HLTH_ENABLE_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const Fw::Enabled &enable)=0
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 connection.
const char * toChar() const
Convert to a C-style char*.
Enum representing event severity.
Warn that a ping target is longer than the warning value.
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.
virtual void HLTH_PING_ENABLE_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdStringArg &entry, const Fw::Enabled &enable)=0
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_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.
The size of the serial representation.
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
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.
Declare FATAL since task is no longer responding.
MsgDispatchStatus dispatchCurrentMessages()
Dispatch all current messages unless ERROR or EXIT occurs.
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.
BYTE cmdPortSize[Fw::CmdPortBuffer::CAPACITY]
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