10 #if FW_ENABLE_TEXT_LOGGING
34 class ComponentIpcSerializableBuffer :
49 return sizeof(m_buff);
56 const U8* getBuffAddr()
const {
62 U8 m_buff[SERIALIZATION_SIZE];
86 this->m_CmdDisp_InputPort[port].
init();
91 this->m_CmdDisp_InputPort[port].
setPortNum(port);
93 #if FW_OBJECT_NAMES == 1
97 this->m_objName.toChar(),
100 this->m_CmdDisp_InputPort[port].setObjName(portName.
toChar());
110 this->m_PingReturn_InputPort[port].
init();
115 this->m_PingReturn_InputPort[port].
setPortNum(port);
117 #if FW_OBJECT_NAMES == 1
121 this->m_objName.toChar(),
124 this->m_PingReturn_InputPort[port].setObjName(portName.
toChar());
134 this->m_Run_InputPort[port].
init();
141 #if FW_OBJECT_NAMES == 1
145 this->m_objName.toChar(),
148 this->m_Run_InputPort[port].setObjName(portName.
toChar());
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());
177 this->m_CmdStatus_OutputPort[port].
init();
179 #if FW_OBJECT_NAMES == 1
183 this->m_objName.toChar(),
186 this->m_CmdStatus_OutputPort[port].setObjName(portName.
toChar());
196 this->m_Log_OutputPort[port].
init();
198 #if FW_OBJECT_NAMES == 1
202 this->m_objName.toChar(),
205 this->m_Log_OutputPort[port].setObjName(portName.
toChar());
209 #if FW_ENABLE_TEXT_LOGGING == 1
213 port < static_cast<FwIndexType>(this->getNum_LogText_OutputPorts());
216 this->m_LogText_OutputPort[port].
init();
218 #if FW_OBJECT_NAMES == 1
222 this->m_objName.toChar(),
225 this->m_LogText_OutputPort[port].setObjName(portName.
toChar());
236 this->m_Time_OutputPort[port].
init();
238 #if FW_OBJECT_NAMES == 1
242 this->m_objName.toChar(),
245 this->m_Time_OutputPort[port].setObjName(portName.
toChar());
255 this->m_Tlm_OutputPort[port].
init();
257 #if FW_OBJECT_NAMES == 1
261 this->m_objName.toChar(),
264 this->m_Tlm_OutputPort[port].setObjName(portName.
toChar());
274 this->m_PingSend_OutputPort[port].
init();
276 #if FW_OBJECT_NAMES == 1
280 this->m_objName.toChar(),
283 this->m_PingSend_OutputPort[port].setObjName(portName.
toChar());
293 this->m_WdogStroke_OutputPort[port].
init();
295 #if FW_OBJECT_NAMES == 1
299 this->m_objName.toChar(),
302 this->m_WdogStroke_OutputPort[port].setObjName(portName.
toChar());
308 static_cast<FwSizeType>(ComponentIpcSerializableBuffer::SERIALIZATION_SIZE)
328 return &this->m_CmdDisp_InputPort[portNum];
343 return &this->m_PingReturn_InputPort[portNum];
354 return &this->m_Run_InputPort[portNum];
372 this->m_CmdReg_OutputPort[portNum].
addCallPort(port);
386 this->m_CmdStatus_OutputPort[portNum].
addCallPort(port);
403 #if FW_ENABLE_TEXT_LOGGING == 1
405 void HealthComponentBase ::
406 set_LogText_OutputPort(
412 portNum < this->getNum_LogText_OutputPorts(),
416 this->m_LogText_OutputPort[portNum].addCallPort(port);
432 this->m_Time_OutputPort[portNum].
addCallPort(port);
464 this->m_PingSend_OutputPort[portNum].
addCallPort(port);
478 this->m_WdogStroke_OutputPort[portNum].
addCallPort(port);
481 #if FW_PORT_SERIALIZATION
490 Fw::InputSerializePort* port
498 this->m_CmdReg_OutputPort[portNum].registerSerialPort(port);
504 Fw::InputSerializePort* port
512 this->m_CmdStatus_OutputPort[portNum].registerSerialPort(port);
518 Fw::InputSerializePort* port
526 this->m_Log_OutputPort[portNum].registerSerialPort(port);
529 #if FW_ENABLE_TEXT_LOGGING == 1
531 void HealthComponentBase ::
532 set_LogText_OutputPort(
534 Fw::InputSerializePort* port
538 portNum < this->getNum_LogText_OutputPorts(),
542 this->m_LogText_OutputPort[portNum].registerSerialPort(port);
550 Fw::InputSerializePort* port
558 this->m_Time_OutputPort[portNum].registerSerialPort(port);
564 Fw::InputSerializePort* port
572 this->m_Tlm_OutputPort[portNum].registerSerialPort(port);
577 #if FW_PORT_SERIALIZATION
586 Fw::InputSerializePort* port
594 this->m_PingSend_OutputPort[portNum].registerSerialPort(port);
600 Fw::InputSerializePort* port
608 this->m_WdogStroke_OutputPort[portNum].registerSerialPort(port);
620 FW_ASSERT(this->m_CmdReg_OutputPort[0].isConnected());
622 this->m_CmdReg_OutputPort[0].
invoke(
626 this->m_CmdReg_OutputPort[0].
invoke(
630 this->m_CmdReg_OutputPort[0].
invoke(
641 Fw::QueuedComponentBase(compName)
700 #if FW_ENABLE_TEXT_LOGGING == 1
703 getNum_LogText_OutputPorts()
const
750 return this->m_CmdReg_OutputPort[portNum].
isConnected();
761 return this->m_CmdStatus_OutputPort[portNum].
isConnected();
772 return this->m_Log_OutputPort[portNum].
isConnected();
775 #if FW_ENABLE_TEXT_LOGGING == 1
777 bool HealthComponentBase ::
778 isConnected_LogText_OutputPort(
FwIndexType portNum)
781 portNum < this->getNum_LogText_OutputPorts(),
785 return this->m_LogText_OutputPort[portNum].isConnected();
798 return this->m_Time_OutputPort[portNum].
isConnected();
809 return this->m_Tlm_OutputPort[portNum].
isConnected();
824 return this->m_PingSend_OutputPort[portNum].
isConnected();
835 return this->m_WdogStroke_OutputPort[portNum].
isConnected();
861 ComponentIpcSerializableBuffer msg;
865 _status = msg.serialize(
874 _status = msg.serialize(portNum);
881 _status = msg.serialize(key);
947 this->m_PingSend_OutputPort[portNum].
invoke(
962 this->m_WdogStroke_OutputPort[portNum].
invoke(
978 FW_ASSERT(this->m_CmdStatus_OutputPort[0].isConnected());
979 this->m_CmdStatus_OutputPort[0].
invoke(opCode, cmdSeq, response);
1000 ComponentIpcSerializableBuffer msg;
1004 _status = msg.serialize(
static_cast<FwEnumStoreType>(CMD_HLTH_ENABLE));
1013 _status = msg.serialize(port);
1019 _status = msg.serialize(opCode);
1025 _status = msg.serialize(cmdSeq);
1031 _status = msg.serialize(args);
1059 ComponentIpcSerializableBuffer msg;
1063 _status = msg.serialize(
static_cast<FwEnumStoreType>(CMD_HLTH_PING_ENABLE));
1072 _status = msg.serialize(port);
1078 _status = msg.serialize(opCode);
1084 _status = msg.serialize(cmdSeq);
1090 _status = msg.serialize(args);
1118 ComponentIpcSerializableBuffer msg;
1122 _status = msg.serialize(
static_cast<FwEnumStoreType>(CMD_HLTH_CHNG_PING));
1131 _status = msg.serialize(port);
1137 _status = msg.serialize(opCode);
1143 _status = msg.serialize(cmdSeq);
1149 _status = msg.serialize(args);
1215 if (this->m_Time_OutputPort[0].isConnected()) {
1216 this->m_Time_OutputPort[0].
invoke(_logTime);
1224 if (this->m_Log_OutputPort[0].isConnected()) {
1228 #if FW_AMPCS_COMPATIBLE
1243 this->m_Log_OutputPort[0].
invoke(
1252 #if FW_ENABLE_TEXT_LOGGING
1253 if (this->m_LogText_OutputPort[0].isConnected()) {
1254 #if FW_OBJECT_NAMES == 1
1255 const char* _formatString =
1256 "(%s) %s: Ping entry %s late warning";
1258 const char* _formatString =
1259 "%s: Ping entry %s late warning";
1266 this->m_objName.toChar(),
1272 this->m_LogText_OutputPort[0].invoke(
1287 if (this->m_Time_OutputPort[0].isConnected()) {
1288 this->m_Time_OutputPort[0].
invoke(_logTime);
1296 if (this->m_Log_OutputPort[0].isConnected()) {
1300 #if FW_AMPCS_COMPATIBLE
1302 _status = _logBuff.
serialize(
static_cast<U8>(1 + 1));
1315 _status = _logBuff.
serialize(
static_cast<U32
>(0));
1328 this->m_Log_OutputPort[0].
invoke(
1337 #if FW_ENABLE_TEXT_LOGGING
1338 if (this->m_LogText_OutputPort[0].isConnected()) {
1339 #if FW_OBJECT_NAMES == 1
1340 const char* _formatString =
1341 "(%s) %s: Ping entry %s did not respond";
1343 const char* _formatString =
1344 "%s: Ping entry %s did not respond";
1351 this->m_objName.toChar(),
1357 this->m_LogText_OutputPort[0].invoke(
1375 if (this->m_Time_OutputPort[0].isConnected()) {
1376 this->m_Time_OutputPort[0].
invoke(_logTime);
1384 if (this->m_Log_OutputPort[0].isConnected()) {
1388 #if FW_AMPCS_COMPATIBLE
1390 _status = _logBuff.
serialize(
static_cast<U8>(2 + 1));
1403 _status = _logBuff.
serialize(
static_cast<U32
>(0));
1416 #if FW_AMPCS_COMPATIBLE
1419 static_cast<U8>(
sizeof(U32))
1432 this->m_Log_OutputPort[0].
invoke(
1441 #if FW_ENABLE_TEXT_LOGGING
1442 if (this->m_LogText_OutputPort[0].isConnected()) {
1443 #if FW_OBJECT_NAMES == 1
1444 const char* _formatString =
1445 "(%s) %s: Ping entry %s responded with wrong key 0x%" PRIx32
"";
1447 const char* _formatString =
1448 "%s: Ping entry %s responded with wrong key 0x%" PRIx32
"";
1455 this->m_objName.toChar(),
1457 "HLTH_PING_WRONG_KEY ",
1462 this->m_LogText_OutputPort[0].invoke(
1477 if (this->m_Time_OutputPort[0].isConnected()) {
1478 this->m_Time_OutputPort[0].
invoke(_logTime);
1486 if (this->m_Log_OutputPort[0].isConnected()) {
1490 #if FW_AMPCS_COMPATIBLE
1499 #if FW_AMPCS_COMPATIBLE
1515 this->m_Log_OutputPort[0].
invoke(
1524 #if FW_ENABLE_TEXT_LOGGING
1525 if (this->m_LogText_OutputPort[0].isConnected()) {
1526 #if FW_OBJECT_NAMES == 1
1527 const char* _formatString =
1528 "(%s) %s: Health checking set to %s";
1530 const char* _formatString =
1531 "%s: Health checking set to %s";
1535 enabled.toString(enabledStr);
1541 this->m_objName.toChar(),
1543 "HLTH_CHECK_ENABLE ",
1547 this->m_LogText_OutputPort[0].invoke(
1565 if (this->m_Time_OutputPort[0].isConnected()) {
1566 this->m_Time_OutputPort[0].
invoke(_logTime);
1574 if (this->m_Log_OutputPort[0].isConnected()) {
1578 #if FW_AMPCS_COMPATIBLE
1587 #if FW_AMPCS_COMPATIBLE
1609 this->m_Log_OutputPort[0].
invoke(
1618 #if FW_ENABLE_TEXT_LOGGING
1619 if (this->m_LogText_OutputPort[0].isConnected()) {
1620 #if FW_OBJECT_NAMES == 1
1621 const char* _formatString =
1622 "(%s) %s: Health checking set to %s for %s";
1624 const char* _formatString =
1625 "%s: Health checking set to %s for %s";
1629 enabled.toString(enabledStr);
1635 this->m_objName.toChar(),
1642 this->m_LogText_OutputPort[0].invoke(
1657 if (this->m_Time_OutputPort[0].isConnected()) {
1658 this->m_Time_OutputPort[0].
invoke(_logTime);
1666 if (this->m_Log_OutputPort[0].isConnected()) {
1670 #if FW_AMPCS_COMPATIBLE
1685 this->m_Log_OutputPort[0].
invoke(
1694 #if FW_ENABLE_TEXT_LOGGING
1695 if (this->m_LogText_OutputPort[0].isConnected()) {
1696 #if FW_OBJECT_NAMES == 1
1697 const char* _formatString =
1698 "(%s) %s: Couldn't find entry %s";
1700 const char* _formatString =
1701 "%s: Couldn't find entry %s";
1708 this->m_objName.toChar(),
1710 "HLTH_CHECK_LOOKUP_ERROR ",
1714 this->m_LogText_OutputPort[0].invoke(
1733 if (this->m_Time_OutputPort[0].isConnected()) {
1734 this->m_Time_OutputPort[0].
invoke(_logTime);
1742 if (this->m_Log_OutputPort[0].isConnected()) {
1746 #if FW_AMPCS_COMPATIBLE
1761 #if FW_AMPCS_COMPATIBLE
1764 static_cast<U8>(
sizeof(U32))
1777 #if FW_AMPCS_COMPATIBLE
1780 static_cast<U8>(
sizeof(U32))
1793 this->m_Log_OutputPort[0].
invoke(
1802 #if FW_ENABLE_TEXT_LOGGING
1803 if (this->m_LogText_OutputPort[0].isConnected()) {
1804 #if FW_OBJECT_NAMES == 1
1805 const char* _formatString =
1806 "(%s) %s: Health ping for %s changed to WARN %" PRIu32
" FATAL %" PRIu32
"";
1808 const char* _formatString =
1809 "%s: Health ping for %s changed to WARN %" PRIu32
" FATAL %" PRIu32
"";
1816 this->m_objName.toChar(),
1818 "HLTH_PING_UPDATED ",
1824 this->m_LogText_OutputPort[0].invoke(
1843 if (this->m_Time_OutputPort[0].isConnected()) {
1844 this->m_Time_OutputPort[0].
invoke(_logTime);
1852 if (this->m_Log_OutputPort[0].isConnected()) {
1856 #if FW_AMPCS_COMPATIBLE
1871 #if FW_AMPCS_COMPATIBLE
1874 static_cast<U8>(
sizeof(U32))
1887 #if FW_AMPCS_COMPATIBLE
1890 static_cast<U8>(
sizeof(U32))
1903 this->m_Log_OutputPort[0].
invoke(
1912 #if FW_ENABLE_TEXT_LOGGING
1913 if (this->m_LogText_OutputPort[0].isConnected()) {
1914 #if FW_OBJECT_NAMES == 1
1915 const char* _formatString =
1916 "(%s) %s: Health ping for %s invalid values: WARN %" PRIu32
" FATAL %" PRIu32
"";
1918 const char* _formatString =
1919 "%s: Health ping for %s invalid values: WARN %" PRIu32
" FATAL %" PRIu32
"";
1926 this->m_objName.toChar(),
1928 "HLTH_PING_INVALID_VALUES ",
1934 this->m_LogText_OutputPort[0].invoke(
1954 if (this->m_Tlm_OutputPort[0].isConnected()) {
1956 this->m_Time_OutputPort[0].isConnected() &&
1959 this->m_Time_OutputPort[0].
invoke(_tlmTime);
1973 this->m_Tlm_OutputPort[0].
invoke(
1988 if (this->m_Time_OutputPort[0].isConnected()) {
1990 this->m_Time_OutputPort[0].
invoke(_time);
2005 ComponentIpcSerializableBuffer msg;
2013 if (Os::Queue::Status::EMPTY == msgStatus) {
2033 MsgTypeEnum msgType =
static_cast<MsgTypeEnum
>(desMsg);
2035 if (msgType == HEALTH_COMPONENT_EXIT) {
2040 deserStatus = msg.deserialize(portNum);
2048 case PINGRETURN_PING: {
2051 deserStatus = msg.deserialize(key);
2066 case CMD_HLTH_ENABLE: {
2069 deserStatus = msg.deserialize(opCode);
2077 deserStatus = msg.deserialize(cmdSeq);
2098 if (this->m_CmdStatus_OutputPort[0].isConnected()) {
2111 #if FW_CMD_CHECK_RESIDUAL
2113 if (this->m_CmdStatus_OutputPort[0].isConnected()) {
2131 case CMD_HLTH_PING_ENABLE: {
2134 deserStatus = msg.deserialize(opCode);
2142 deserStatus = msg.deserialize(cmdSeq);
2163 if (this->m_CmdStatus_OutputPort[0].isConnected()) {
2178 if (this->m_CmdStatus_OutputPort[0].isConnected()) {
2191 #if FW_CMD_CHECK_RESIDUAL
2193 if (this->m_CmdStatus_OutputPort[0].isConnected()) {
2212 case CMD_HLTH_CHNG_PING: {
2215 deserStatus = msg.deserialize(opCode);
2223 deserStatus = msg.deserialize(cmdSeq);
2244 if (this->m_CmdStatus_OutputPort[0].isConnected()) {
2259 if (this->m_CmdStatus_OutputPort[0].isConnected()) {
2274 if (this->m_CmdStatus_OutputPort[0].isConnected()) {
2287 #if FW_CMD_CHECK_RESIDUAL
2289 if (this->m_CmdStatus_OutputPort[0].isConnected()) {
2319 void HealthComponentBase ::
2331 const U32 idBase = callComp->
getIdBase();
2335 switch (opCode - idBase) {
2369 void HealthComponentBase ::
2378 compPtr->PingReturn_handlerBase(
2384 void HealthComponentBase ::
2393 compPtr->Run_handlerBase(
#define FW_MIN(a, b)
MIN macro.
uint8_t U8
8-bit unsigned integer
#define FW_NUM_ARRAY_ELEMENTS(a)
number of elements in an array
#define PRI_PlatformIntType
@ TB_NONE
No time base has been established.
PlatformAssertArgType FwAssertArgType
PlatformSizeType FwSizeType
#define FW_LOG_STRING_MAX_SIZE
Max size of log string parameter type.
PlatformQueuePriorityType FwQueuePriorityType
PlatformIndexType FwIndexType
#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.
void init()
Object initializer.
const char * toChar() const
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::Status createQueue(FwSizeType depth, FwSizeType 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 SizeType
void resetDeser()
reset deserialization to beginning
Serializable::SizeType getBuffLeft() const
returns how much deserialization buffer is left
SerializeStatus deserialize(U8 &val)
deserialize 8-bit unsigned int
SerializeStatus serialize(U8 val)
serialize 8-bit unsigned int
virtual const CHAR * toChar() const =0
void format(const CHAR *formatString,...)
write formatted string to buffer
virtual SerializeStatus serialize(SerializeBufferBase &buffer) const
serialization function
const char * toChar() const
Status send(const U8 *buffer, FwSizeType size, FwQueuePriorityType priority, BlockingType blockType) override
send a message into the queue through delegate
Status receive(U8 *destination, FwSizeType capacity, BlockingType blockType, FwSizeType &actualSize, FwQueuePriorityType &priority) override
receive a message from the queue through delegate
@ NONBLOCKING
Message will return with status when space is unavailable.
Status
status returned from the queue send function
@ OP_OK
message sent/received okay
Auto-generated base for Health component.
bool isConnected_WdogStroke_OutputPort(FwIndexType portNum)
Svc::InputSchedPort * get_Run_InputPort(FwIndexType portNum)
Svc::InputPingPort * get_PingReturn_InputPort(FwIndexType portNum)
void log_FATAL_HLTH_PING_WRONG_KEY(const Fw::StringBase &entry, U32 badKey)
FwIndexType getNum_WdogStroke_OutputPorts() const
void WdogStroke_out(FwIndexType portNum, U32 code)
Invoke output port WdogStroke.
void tlmWrite_PingLateWarnings(U32 arg, Fw::Time _tlmTime=Fw::Time())
FwIndexType getNum_CmdStatus_OutputPorts() const
void set_PingSend_OutputPort(FwIndexType portNum, Svc::InputPingPort *port)
Connect port to PingSend[portNum].
bool isConnected_Time_OutputPort(FwIndexType portNum)
void set_CmdStatus_OutputPort(FwIndexType portNum, Fw::InputCmdResponsePort *port)
Connect port to CmdStatus[portNum].
bool isConnected_PingSend_OutputPort(FwIndexType portNum)
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)
virtual void PingReturn_preMsgHook(FwIndexType portNum, U32 key)
Pre-message hook for async input port PingReturn.
@ 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.
bool isConnected_CmdReg_OutputPort(FwIndexType portNum)
void log_ACTIVITY_HI_HLTH_CHECK_PING(Fw::Enabled enabled, const Fw::StringBase &entry)
void PingReturn_handlerBase(FwIndexType portNum, U32 key)
Handler base-class function for input port PingReturn.
virtual ~HealthComponentBase()
Destroy HealthComponentBase object.
virtual void PingReturn_handler(FwIndexType portNum, U32 key)=0
Handler for input port PingReturn.
Fw::InputCmdPort * get_CmdDisp_InputPort(FwIndexType portNum)
void log_ACTIVITY_HI_HLTH_PING_UPDATED(const Fw::StringBase &entry, U32 warn, U32 fatal)
bool isConnected_Log_OutputPort(FwIndexType portNum)
FwIndexType getNum_CmdReg_OutputPorts() const
virtual void HLTH_ENABLE_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, Fw::Enabled enable)=0
FwIndexType getNum_Time_OutputPorts() const
void HLTH_ENABLE_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void log_WARNING_LO_HLTH_CHECK_LOOKUP_ERROR(const Fw::StringBase &entry)
void Run_handlerBase(FwIndexType portNum, U32 context)
Handler base-class function for input port Run.
FwIndexType getNum_PingReturn_InputPorts() const
bool isConnected_CmdStatus_OutputPort(FwIndexType portNum)
void set_Tlm_OutputPort(FwIndexType portNum, Fw::InputTlmPort *port)
Connect port to Tlm[portNum].
void log_ACTIVITY_HI_HLTH_CHECK_ENABLE(Fw::Enabled enabled)
void set_CmdReg_OutputPort(FwIndexType portNum, Fw::InputCmdRegPort *port)
Connect port to CmdReg[portNum].
FwIndexType getNum_CmdDisp_InputPorts() const
FwIndexType getNum_Tlm_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 regCommands()
Register commands with the Command Dispatcher.
bool isConnected_Tlm_OutputPort(FwIndexType portNum)
virtual void HLTH_CHNG_PING_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command HLTH_CHNG_PING.
void set_Time_OutputPort(FwIndexType portNum, Fw::InputTimePort *port)
Connect port to Time[portNum].
FwIndexType getNum_Run_InputPorts() const
FwIndexType getNum_Log_OutputPorts() const
virtual void HLTH_PING_ENABLE_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command HLTH_PING_ENABLE.
void set_WdogStroke_OutputPort(FwIndexType portNum, Svc::InputWatchDogPort *port)
Connect port to WdogStroke[portNum].
void log_WARNING_HI_HLTH_PING_INVALID_VALUES(const Fw::StringBase &entry, U32 warn, U32 fatal)
void cmdResponse_out(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdResponse response)
Emit command response.
FwIndexType getNum_PingSend_OutputPorts() const
void PingSend_out(FwIndexType portNum, U32 key)
Invoke output port PingSend.
HealthComponentBase(const char *compName="")
Construct HealthComponentBase object.
@ CHANNELID_PINGLATEWARNINGS
Channel ID for PingLateWarnings.
void set_Log_OutputPort(FwIndexType portNum, Fw::InputLogPort *port)
Connect port to Log[portNum].
virtual void Run_handler(FwIndexType portNum, U32 context)=0
Handler for input port Run.
virtual void HLTH_ENABLE_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command HLTH_ENABLE.
void log_WARNING_HI_HLTH_PING_WARN(const Fw::StringBase &entry)
void log_FATAL_HLTH_PING_LATE(const Fw::StringBase &entry)
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.
@ OP_OK
Operation succeeded.