11 #if FW_ENABLE_TEXT_LOGGING
35 class ComponentIpcSerializableBuffer :
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
109 this->m_CmdDisp_InputPort[port].setObjName(portName);
119 this->m_PingReturn_InputPort[port].
init();
124 this->m_PingReturn_InputPort[port].
setPortNum(port);
126 #if FW_OBJECT_NAMES == 1
141 this->m_PingReturn_InputPort[port].setObjName(portName);
151 this->m_Run_InputPort[port].
init();
158 #if FW_OBJECT_NAMES == 1
173 this->m_Run_InputPort[port].setObjName(portName);
183 this->m_CmdReg_OutputPort[port].
init();
185 #if FW_OBJECT_NAMES == 1
200 this->m_CmdReg_OutputPort[port].setObjName(portName);
210 this->m_CmdStatus_OutputPort[port].
init();
212 #if FW_OBJECT_NAMES == 1
227 this->m_CmdStatus_OutputPort[port].setObjName(portName);
237 this->m_Log_OutputPort[port].
init();
239 #if FW_OBJECT_NAMES == 1
254 this->m_Log_OutputPort[port].setObjName(portName);
258 #if FW_ENABLE_TEXT_LOGGING == 1
262 port < static_cast<PlatformIntType>(this->getNum_LogText_OutputPorts());
265 this->m_LogText_OutputPort[port].
init();
267 #if FW_OBJECT_NAMES == 1
282 this->m_LogText_OutputPort[port].setObjName(portName);
293 this->m_Time_OutputPort[port].
init();
295 #if FW_OBJECT_NAMES == 1
310 this->m_Time_OutputPort[port].setObjName(portName);
320 this->m_Tlm_OutputPort[port].
init();
322 #if FW_OBJECT_NAMES == 1
337 this->m_Tlm_OutputPort[port].setObjName(portName);
347 this->m_PingSend_OutputPort[port].
init();
349 #if FW_OBJECT_NAMES == 1
364 this->m_PingSend_OutputPort[port].setObjName(portName);
374 this->m_WdogStroke_OutputPort[port].
init();
376 #if FW_OBJECT_NAMES == 1
391 this->m_WdogStroke_OutputPort[port].setObjName(portName);
397 ComponentIpcSerializableBuffer::SERIALIZATION_SIZE
417 return &this->m_CmdDisp_InputPort[portNum];
432 return &this->m_PingReturn_InputPort[portNum];
443 return &this->m_Run_InputPort[portNum];
461 this->m_CmdReg_OutputPort[portNum].
addCallPort(port);
475 this->m_CmdStatus_OutputPort[portNum].
addCallPort(port);
492 #if FW_ENABLE_TEXT_LOGGING == 1
494 void HealthComponentBase ::
495 set_LogText_OutputPort(
501 portNum < this->getNum_LogText_OutputPorts(),
505 this->m_LogText_OutputPort[portNum].addCallPort(port);
521 this->m_Time_OutputPort[portNum].
addCallPort(port);
553 this->m_PingSend_OutputPort[portNum].
addCallPort(port);
567 this->m_WdogStroke_OutputPort[portNum].
addCallPort(port);
570 #if FW_PORT_SERIALIZATION
579 Fw::InputSerializePort* port
587 this->m_CmdReg_OutputPort[portNum].registerSerialPort(port);
593 Fw::InputSerializePort* port
601 this->m_CmdStatus_OutputPort[portNum].registerSerialPort(port);
607 Fw::InputSerializePort* port
615 this->m_Log_OutputPort[portNum].registerSerialPort(port);
618 #if FW_ENABLE_TEXT_LOGGING == 1
620 void HealthComponentBase ::
621 set_LogText_OutputPort(
623 Fw::InputSerializePort* port
627 portNum < this->getNum_LogText_OutputPorts(),
631 this->m_LogText_OutputPort[portNum].registerSerialPort(port);
639 Fw::InputSerializePort* port
647 this->m_Time_OutputPort[portNum].registerSerialPort(port);
653 Fw::InputSerializePort* port
661 this->m_Tlm_OutputPort[portNum].registerSerialPort(port);
666 #if FW_PORT_SERIALIZATION
675 Fw::InputSerializePort* port
683 this->m_PingSend_OutputPort[portNum].registerSerialPort(port);
689 Fw::InputSerializePort* port
697 this->m_WdogStroke_OutputPort[portNum].registerSerialPort(port);
709 FW_ASSERT(this->m_CmdReg_OutputPort[0].isConnected());
711 this->m_CmdReg_OutputPort[0].
invoke(
715 this->m_CmdReg_OutputPort[0].
invoke(
719 this->m_CmdReg_OutputPort[0].
invoke(
730 Fw::QueuedComponentBase(compName)
789 #if FW_ENABLE_TEXT_LOGGING == 1
792 getNum_LogText_OutputPorts()
const
839 return this->m_CmdReg_OutputPort[portNum].
isConnected();
850 return this->m_CmdStatus_OutputPort[portNum].
isConnected();
861 return this->m_Log_OutputPort[portNum].
isConnected();
864 #if FW_ENABLE_TEXT_LOGGING == 1
866 bool HealthComponentBase ::
870 portNum < this->getNum_LogText_OutputPorts(),
874 return this->m_LogText_OutputPort[portNum].isConnected();
887 return this->m_Time_OutputPort[portNum].
isConnected();
898 return this->m_Tlm_OutputPort[portNum].
isConnected();
913 return this->m_PingSend_OutputPort[portNum].
isConnected();
924 return this->m_WdogStroke_OutputPort[portNum].
isConnected();
950 ComponentIpcSerializableBuffer msg;
954 _status = msg.serialize(
963 _status = msg.serialize(portNum);
970 _status = msg.serialize(key);
1036 this->m_PingSend_OutputPort[portNum].
invoke(
1051 this->m_WdogStroke_OutputPort[portNum].
invoke(
1067 FW_ASSERT(this->m_CmdStatus_OutputPort[0].isConnected());
1068 this->m_CmdStatus_OutputPort[0].
invoke(opCode, cmdSeq, response);
1089 ComponentIpcSerializableBuffer msg;
1093 _status = msg.serialize(
static_cast<NATIVE_INT_TYPE>(CMD_HLTH_ENABLE));
1102 _status = msg.serialize(port);
1108 _status = msg.serialize(opCode);
1114 _status = msg.serialize(cmdSeq);
1120 _status = msg.serialize(args);
1148 ComponentIpcSerializableBuffer msg;
1152 _status = msg.serialize(
static_cast<NATIVE_INT_TYPE>(CMD_HLTH_PING_ENABLE));
1161 _status = msg.serialize(port);
1167 _status = msg.serialize(opCode);
1173 _status = msg.serialize(cmdSeq);
1179 _status = msg.serialize(args);
1207 ComponentIpcSerializableBuffer msg;
1211 _status = msg.serialize(
static_cast<NATIVE_INT_TYPE>(CMD_HLTH_CHNG_PING));
1220 _status = msg.serialize(port);
1226 _status = msg.serialize(opCode);
1232 _status = msg.serialize(cmdSeq);
1238 _status = msg.serialize(args);
1304 if (this->m_Time_OutputPort[0].isConnected()) {
1305 this->m_Time_OutputPort[0].
invoke(_logTime);
1313 if (this->m_Log_OutputPort[0].isConnected()) {
1317 #if FW_AMPCS_COMPATIBLE
1326 _status = entry.
serialize(_logBuff, 40);
1332 this->m_Log_OutputPort[0].
invoke(
1341 #if FW_ENABLE_TEXT_LOGGING
1342 if (this->m_LogText_OutputPort[0].isConnected()) {
1343 #if FW_OBJECT_NAMES == 1
1344 const char* _formatString =
1345 "(%s) %s: Ping entry %s late warning";
1347 const char* _formatString =
1348 "%s: Ping entry %s late warning";
1367 this->m_LogText_OutputPort[0].invoke(
1382 if (this->m_Time_OutputPort[0].isConnected()) {
1383 this->m_Time_OutputPort[0].
invoke(_logTime);
1391 if (this->m_Log_OutputPort[0].isConnected()) {
1395 #if FW_AMPCS_COMPATIBLE
1397 _status = _logBuff.
serialize(
static_cast<U8>(1 + 1));
1410 _status = _logBuff.
serialize(
static_cast<U32
>(0));
1417 _status = entry.
serialize(_logBuff, 40);
1423 this->m_Log_OutputPort[0].
invoke(
1432 #if FW_ENABLE_TEXT_LOGGING
1433 if (this->m_LogText_OutputPort[0].isConnected()) {
1434 #if FW_OBJECT_NAMES == 1
1435 const char* _formatString =
1436 "(%s) %s: Ping entry %s did not respond";
1438 const char* _formatString =
1439 "%s: Ping entry %s did not respond";
1458 this->m_LogText_OutputPort[0].invoke(
1476 if (this->m_Time_OutputPort[0].isConnected()) {
1477 this->m_Time_OutputPort[0].
invoke(_logTime);
1485 if (this->m_Log_OutputPort[0].isConnected()) {
1489 #if FW_AMPCS_COMPATIBLE
1491 _status = _logBuff.
serialize(
static_cast<U8>(2 + 1));
1504 _status = _logBuff.
serialize(
static_cast<U32
>(0));
1511 _status = entry.
serialize(_logBuff, 40);
1517 #if FW_AMPCS_COMPATIBLE
1520 static_cast<U8>(
sizeof(U32))
1533 this->m_Log_OutputPort[0].
invoke(
1542 #if FW_ENABLE_TEXT_LOGGING
1543 if (this->m_LogText_OutputPort[0].isConnected()) {
1544 #if FW_OBJECT_NAMES == 1
1545 const char* _formatString =
1546 "(%s) %s: Ping entry %s responded with wrong key 0x%" PRIx32
"";
1548 const char* _formatString =
1549 "%s: Ping entry %s responded with wrong key 0x%" PRIx32
"";
1561 "HLTH_PING_WRONG_KEY ",
1569 this->m_LogText_OutputPort[0].invoke(
1584 if (this->m_Time_OutputPort[0].isConnected()) {
1585 this->m_Time_OutputPort[0].
invoke(_logTime);
1593 if (this->m_Log_OutputPort[0].isConnected()) {
1597 #if FW_AMPCS_COMPATIBLE
1606 #if FW_AMPCS_COMPATIBLE
1622 this->m_Log_OutputPort[0].
invoke(
1631 #if FW_ENABLE_TEXT_LOGGING
1632 if (this->m_LogText_OutputPort[0].isConnected()) {
1633 #if FW_OBJECT_NAMES == 1
1634 const char* _formatString =
1635 "(%s) %s: Health checking set to %s";
1637 const char* _formatString =
1638 "%s: Health checking set to %s";
1644 enabled.toString(enabledStr);
1653 "HLTH_CHECK_ENABLE ",
1660 this->m_LogText_OutputPort[0].invoke(
1678 if (this->m_Time_OutputPort[0].isConnected()) {
1679 this->m_Time_OutputPort[0].
invoke(_logTime);
1687 if (this->m_Log_OutputPort[0].isConnected()) {
1691 #if FW_AMPCS_COMPATIBLE
1700 #if FW_AMPCS_COMPATIBLE
1716 _status = entry.
serialize(_logBuff, 40);
1722 this->m_Log_OutputPort[0].
invoke(
1731 #if FW_ENABLE_TEXT_LOGGING
1732 if (this->m_LogText_OutputPort[0].isConnected()) {
1733 #if FW_OBJECT_NAMES == 1
1734 const char* _formatString =
1735 "(%s) %s: Health checking set to %s for %s";
1737 const char* _formatString =
1738 "%s: Health checking set to %s for %s";
1744 enabled.toString(enabledStr);
1761 this->m_LogText_OutputPort[0].invoke(
1776 if (this->m_Time_OutputPort[0].isConnected()) {
1777 this->m_Time_OutputPort[0].
invoke(_logTime);
1785 if (this->m_Log_OutputPort[0].isConnected()) {
1789 #if FW_AMPCS_COMPATIBLE
1798 _status = entry.
serialize(_logBuff, 40);
1804 this->m_Log_OutputPort[0].
invoke(
1813 #if FW_ENABLE_TEXT_LOGGING
1814 if (this->m_LogText_OutputPort[0].isConnected()) {
1815 #if FW_OBJECT_NAMES == 1
1816 const char* _formatString =
1817 "(%s) %s: Couldn't find entry %s";
1819 const char* _formatString =
1820 "%s: Couldn't find entry %s";
1832 "HLTH_CHECK_LOOKUP_ERROR ",
1839 this->m_LogText_OutputPort[0].invoke(
1858 if (this->m_Time_OutputPort[0].isConnected()) {
1859 this->m_Time_OutputPort[0].
invoke(_logTime);
1867 if (this->m_Log_OutputPort[0].isConnected()) {
1871 #if FW_AMPCS_COMPATIBLE
1880 _status = entry.
serialize(_logBuff, 40);
1886 #if FW_AMPCS_COMPATIBLE
1889 static_cast<U8>(
sizeof(U32))
1902 #if FW_AMPCS_COMPATIBLE
1905 static_cast<U8>(
sizeof(U32))
1918 this->m_Log_OutputPort[0].
invoke(
1927 #if FW_ENABLE_TEXT_LOGGING
1928 if (this->m_LogText_OutputPort[0].isConnected()) {
1929 #if FW_OBJECT_NAMES == 1
1930 const char* _formatString =
1931 "(%s) %s: Health ping for %s changed to WARN %" PRIu32
" FATAL %" PRIu32
"";
1933 const char* _formatString =
1934 "%s: Health ping for %s changed to WARN %" PRIu32
" FATAL %" PRIu32
"";
1946 "HLTH_PING_UPDATED ",
1955 this->m_LogText_OutputPort[0].invoke(
1974 if (this->m_Time_OutputPort[0].isConnected()) {
1975 this->m_Time_OutputPort[0].
invoke(_logTime);
1983 if (this->m_Log_OutputPort[0].isConnected()) {
1987 #if FW_AMPCS_COMPATIBLE
1996 _status = entry.
serialize(_logBuff, 40);
2002 #if FW_AMPCS_COMPATIBLE
2005 static_cast<U8>(
sizeof(U32))
2018 #if FW_AMPCS_COMPATIBLE
2021 static_cast<U8>(
sizeof(U32))
2034 this->m_Log_OutputPort[0].
invoke(
2043 #if FW_ENABLE_TEXT_LOGGING
2044 if (this->m_LogText_OutputPort[0].isConnected()) {
2045 #if FW_OBJECT_NAMES == 1
2046 const char* _formatString =
2047 "(%s) %s: Health ping for %s invalid values: WARN %" PRIu32
" FATAL %" PRIu32
"";
2049 const char* _formatString =
2050 "%s: Health ping for %s invalid values: WARN %" PRIu32
" FATAL %" PRIu32
"";
2062 "HLTH_PING_INVALID_VALUES ",
2071 this->m_LogText_OutputPort[0].invoke(
2091 if (this->m_Tlm_OutputPort[0].isConnected()) {
2093 this->m_Time_OutputPort[0].isConnected() &&
2096 this->m_Time_OutputPort[0].
invoke(_tlmTime);
2110 this->m_Tlm_OutputPort[0].
invoke(
2125 if (this->m_Time_OutputPort[0].isConnected()) {
2127 this->m_Time_OutputPort[0].
invoke(_time);
2142 ComponentIpcSerializableBuffer msg;
2170 MsgTypeEnum msgType =
static_cast<MsgTypeEnum
>(desMsg);
2172 if (msgType == HEALTH_COMPONENT_EXIT) {
2177 deserStatus = msg.deserialize(portNum);
2185 case PINGRETURN_PING: {
2188 deserStatus = msg.deserialize(key);
2203 case CMD_HLTH_ENABLE: {
2206 deserStatus = msg.deserialize(opCode);
2214 deserStatus = msg.deserialize(cmdSeq);
2235 if (this->m_CmdStatus_OutputPort[0].isConnected()) {
2248 #if FW_CMD_CHECK_RESIDUAL
2250 if (this->m_CmdStatus_OutputPort[0].isConnected()) {
2268 case CMD_HLTH_PING_ENABLE: {
2271 deserStatus = msg.deserialize(opCode);
2279 deserStatus = msg.deserialize(cmdSeq);
2300 if (this->m_CmdStatus_OutputPort[0].isConnected()) {
2315 if (this->m_CmdStatus_OutputPort[0].isConnected()) {
2328 #if FW_CMD_CHECK_RESIDUAL
2330 if (this->m_CmdStatus_OutputPort[0].isConnected()) {
2349 case CMD_HLTH_CHNG_PING: {
2352 deserStatus = msg.deserialize(opCode);
2360 deserStatus = msg.deserialize(cmdSeq);
2381 if (this->m_CmdStatus_OutputPort[0].isConnected()) {
2396 if (this->m_CmdStatus_OutputPort[0].isConnected()) {
2411 if (this->m_CmdStatus_OutputPort[0].isConnected()) {
2424 #if FW_CMD_CHECK_RESIDUAL
2426 if (this->m_CmdStatus_OutputPort[0].isConnected()) {
2456 void HealthComponentBase ::
2468 const U32 idBase = callComp->
getIdBase();
2469 FW_ASSERT(opCode >= idBase, opCode, idBase);
2472 switch (opCode - idBase) {
2506 void HealthComponentBase ::
2515 compPtr->PingReturn_handlerBase(
2521 void HealthComponentBase ::
2530 compPtr->Run_handlerBase(
PlatformIntType NATIVE_INT_TYPE
uint8_t U8
8-bit unsigned integer
#define FW_NUM_ARRAY_ELEMENTS(a)
number of elements in an array
PlatformUIntType NATIVE_UINT_TYPE
int PlatformIntType
DefaultTypes.hpp provides fallback defaults for the platform types.
#define PRI_PlatformIntType
@ TB_NONE
No time base has been established.
PlatformAssertArgType FwAssertArgType
#define FW_LOG_TEXT_BUFFER_SIZE
Max size of string for text log message.
#define FW_OBJ_NAME_MAX_SIZE
Size of object name (if object names enabled). AC Limits to 80, truncation occurs above 80.
#define FW_OBJECT_NAMES
Indicates whether or not object names are stored (more memory, can be used for tracking objects)
@ ACTIVE_COMPONENT_EXIT
message to exit active component task
Enum representing a command response.
@ FORMAT_ERROR
Command failed to deserialize.
Enabled and disabled states.
@ SERIALIZED_SIZE
The size of the serial representation.
@ WARNING_HI
A serious but recoverable event.
@ ACTIVITY_HI
Important informational events.
@ FATAL
A fatal non-recoverable event.
@ WARNING_LO
A less serious but recoverable event.
const char * toChar() const override
SerializeStatus serialize(SerializeBufferBase &buffer) const override
serialization function
void init()
Object initializer.
void addCallPort(InputCmdRegPort *callPort)
Register an input port.
void invoke(FwOpcodeType opCode)
Invoke a port interface.
void init()
Initialization function.
void init()
Initialization function.
void addCallPort(InputCmdResponsePort *callPort)
Register an input port.
void invoke(FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response)
Invoke a port interface.
void init()
Initialization function.
void invoke(FwEventIdType id, Fw::Time &timeTag, const Fw::LogSeverity &severity, Fw::LogBuffer &args)
Invoke a port interface.
void addCallPort(InputLogPort *callPort)
Register an input port.
void addCallPort(InputTimePort *callPort)
Register an input port.
void invoke(Fw::Time &time)
Invoke a port interface.
void init()
Initialization function.
void addCallPort(InputTlmPort *callPort)
Register an input port.
void init()
Initialization function.
void invoke(FwChanIdType id, Fw::Time &timeTag, Fw::TlmBuffer &val)
Invoke a port interface.
Os::Queue::QueueStatus createQueue(NATIVE_INT_TYPE depth, NATIVE_INT_TYPE msgSize)
Os::Queue m_queue
queue object for active component
@ MSG_DISPATCH_EMPTY
No more messages in the queue.
@ MSG_DISPATCH_OK
Dispatch was normal.
@ MSG_DISPATCH_EXIT
A message was sent requesting an exit of the loop.
@ MSG_DISPATCH_ERROR
Errors dispatching messages.
NATIVE_UINT_TYPE getBuffLeft() const
returns how much deserialization buffer is left
void resetDeser()
reset deserialization to beginning
SerializeStatus deserialize(U8 &val)
deserialize 8-bit unsigned int
SerializeStatus serialize(U8 val)
serialize 8-bit unsigned int
const char * toChar() const
gets char buffer
@ QUEUE_NO_MORE_MSGS
If non-blocking, all the messages have been drained.
@ QUEUE_OK
message sent/received okay
QueueStatus send(const Fw::SerializeBufferBase &buffer, NATIVE_INT_TYPE priority, QueueBlocking block)
send a message
QueueStatus receive(Fw::SerializeBufferBase &buffer, NATIVE_INT_TYPE &priority, QueueBlocking block)
receive a message
@ QUEUE_NONBLOCKING
Queue receive always returns even if there is no message.
Auto-generated base for Health component.
bool isConnected_CmdStatus_OutputPort(NATIVE_INT_TYPE portNum)
NATIVE_INT_TYPE getNum_CmdReg_OutputPorts() const
void tlmWrite_PingLateWarnings(U32 arg, Fw::Time _tlmTime=Fw::Time())
void PingReturn_handlerBase(NATIVE_INT_TYPE portNum, U32 key)
Handler base-class function for input port PingReturn.
NATIVE_INT_TYPE getNum_PingReturn_InputPorts() const
void log_ACTIVITY_HI_HLTH_CHECK_PING(Fw::Enabled enabled, const Fw::LogStringArg &entry)
virtual void PingReturn_handler(NATIVE_INT_TYPE portNum, U32 key)=0
Handler for input port PingReturn.
virtual MsgDispatchStatus doDispatch()
Called in the message loop to dispatch a message from the queue.
virtual void HLTH_PING_ENABLE_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdStringArg &entry, Fw::Enabled enable)=0
void HLTH_PING_ENABLE_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void HLTH_CHNG_PING_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
bool isConnected_Log_OutputPort(NATIVE_INT_TYPE portNum)
void log_FATAL_HLTH_PING_WRONG_KEY(const Fw::LogStringArg &entry, U32 badKey)
virtual void PingReturn_preMsgHook(NATIVE_INT_TYPE portNum, U32 key)
Pre-message hook for async input port PingReturn.
bool isConnected_WdogStroke_OutputPort(NATIVE_INT_TYPE portNum)
Svc::InputPingPort * get_PingReturn_InputPort(NATIVE_INT_TYPE portNum)
void set_PingSend_OutputPort(NATIVE_INT_TYPE portNum, Svc::InputPingPort *port)
Connect port to PingSend[portNum].
void log_FATAL_HLTH_PING_LATE(const Fw::LogStringArg &entry)
void set_CmdReg_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputCmdRegPort *port)
Connect port to CmdReg[portNum].
NATIVE_INT_TYPE getNum_PingSend_OutputPorts() const
@ EVENTID_HLTH_PING_UPDATED
Report changed ping.
@ EVENTID_HLTH_CHECK_LOOKUP_ERROR
Entry was not found.
@ EVENTID_HLTH_CHECK_PING
Report a particular entry on or off.
@ EVENTID_HLTH_CHECK_ENABLE
Report checking turned on or off.
@ EVENTID_HLTH_PING_LATE
Declare FATAL since task is no longer responding.
@ EVENTID_HLTH_PING_INVALID_VALUES
Report changed ping.
@ EVENTID_HLTH_PING_WRONG_KEY
Declare FATAL since task is no longer responding.
@ EVENTID_HLTH_PING_WARN
Warn that a ping target is longer than the warning value.
void set_WdogStroke_OutputPort(NATIVE_INT_TYPE portNum, Svc::InputWatchDogPort *port)
Connect port to WdogStroke[portNum].
void log_WARNING_LO_HLTH_CHECK_LOOKUP_ERROR(const Fw::LogStringArg &entry)
bool isConnected_PingSend_OutputPort(NATIVE_INT_TYPE portNum)
NATIVE_INT_TYPE getNum_CmdDisp_InputPorts() const
virtual ~HealthComponentBase()
Destroy HealthComponentBase object.
Svc::InputSchedPort * get_Run_InputPort(NATIVE_INT_TYPE portNum)
NATIVE_INT_TYPE getNum_Tlm_OutputPorts() const
NATIVE_INT_TYPE getNum_Time_OutputPorts() const
void log_WARNING_HI_HLTH_PING_WARN(const Fw::LogStringArg &entry)
virtual void HLTH_ENABLE_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, Fw::Enabled enable)=0
void HLTH_ENABLE_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
NATIVE_INT_TYPE getNum_CmdStatus_OutputPorts() const
virtual void Run_handler(NATIVE_INT_TYPE portNum, NATIVE_UINT_TYPE context)=0
Handler for input port Run.
void log_ACTIVITY_HI_HLTH_CHECK_ENABLE(Fw::Enabled enabled)
bool isConnected_Tlm_OutputPort(NATIVE_INT_TYPE portNum)
void regCommands()
Register commands with the Command Dispatcher.
void set_Log_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputLogPort *port)
Connect port to Log[portNum].
bool isConnected_CmdReg_OutputPort(NATIVE_INT_TYPE portNum)
void set_Time_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputTimePort *port)
Connect port to Time[portNum].
virtual void HLTH_CHNG_PING_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command HLTH_CHNG_PING.
virtual void HLTH_PING_ENABLE_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command HLTH_PING_ENABLE.
Fw::InputCmdPort * get_CmdDisp_InputPort(NATIVE_INT_TYPE portNum)
void PingSend_out(NATIVE_INT_TYPE portNum, U32 key)
Invoke output port PingSend.
NATIVE_INT_TYPE getNum_WdogStroke_OutputPorts() const
void log_WARNING_HI_HLTH_PING_INVALID_VALUES(const Fw::LogStringArg &entry, U32 warn, U32 fatal)
@ CHANNELID_PINGLATEWARNINGS
Channel ID for PingLateWarnings.
NATIVE_INT_TYPE getNum_Run_InputPorts() const
NATIVE_INT_TYPE getNum_Log_OutputPorts() const
void cmdResponse_out(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdResponse response)
Emit command response.
void set_CmdStatus_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputCmdResponsePort *port)
Connect port to CmdStatus[portNum].
void set_Tlm_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputTlmPort *port)
Connect port to Tlm[portNum].
HealthComponentBase(const char *compName="")
Construct HealthComponentBase object.
bool isConnected_Time_OutputPort(NATIVE_INT_TYPE portNum)
virtual void HLTH_ENABLE_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command HLTH_ENABLE.
void Run_handlerBase(NATIVE_INT_TYPE portNum, NATIVE_UINT_TYPE context)
Handler base-class function for input port Run.
@ OPCODE_HLTH_CHNG_PING
Change ping value.
@ OPCODE_HLTH_ENABLE
A command to enable or disable health checks.
@ OPCODE_HLTH_PING_ENABLE
Ignore a particular ping entry.
void log_ACTIVITY_HI_HLTH_PING_UPDATED(const Fw::LogStringArg &entry, U32 warn, U32 fatal)
void WdogStroke_out(NATIVE_INT_TYPE portNum, U32 code)
Invoke output port WdogStroke.
virtual void HLTH_CHNG_PING_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdStringArg &entry, U32 warningValue, U32 fatalValue)=0
void invoke(U32 key)
Invoke a port interface.
void init()
Initialization function.
void addCallPort(InputPingPort *callPort)
Register an input port.
void invoke(U32 code)
Invoke a port interface.
void init()
Initialization function.
void addCallPort(InputWatchDogPort *callPort)
Register an input port.
SerializeStatus
forward declaration for string
@ FW_SERIALIZE_OK
Serialization/Deserialization operation was successful.