F´ Flight Software - C/C++ Documentation devel
A framework for building embedded system applications to NASA flight quality standards.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Svc::HealthImpl Class Reference

Health component implementation class. More...

#include <Svc/Health/HealthComponentImpl.hpp>

Inheritance diagram for Svc::HealthImpl:
Svc::HealthComponentBase Fw::QueuedComponentBase Fw::PassiveComponentBase Fw::ObjBase

Classes

struct  PingEntry
 struct for ping entry More...
 

Public Member Functions

 HealthImpl (const char *const compName)
 HealthImpl constructor.
 
void init (const NATIVE_INT_TYPE queueDepth, const NATIVE_INT_TYPE instance)
 HealthImpl initialization function.
 
void setPingEntries (PingEntry *pingEntries, NATIVE_INT_TYPE numPingEntries, U32 watchDogCode)
 Set ping entry tables.
 
 ~HealthImpl ()
 Component destructor.
 
- Public Member Functions inherited from Svc::HealthComponentBase
void init (NATIVE_INT_TYPE queueDepth, NATIVE_INT_TYPE instance=0)
 Initialize HealthComponentBase object.
 
Fw::InputCmdPortget_CmdDisp_InputPort (NATIVE_INT_TYPE portNum)
 
Svc::InputPingPortget_PingReturn_InputPort (NATIVE_INT_TYPE portNum)
 
Svc::InputSchedPortget_Run_InputPort (NATIVE_INT_TYPE portNum)
 
void set_CmdReg_OutputPort (NATIVE_INT_TYPE portNum, Fw::InputCmdRegPort *port)
 Connect port to CmdReg[portNum].
 
void set_CmdStatus_OutputPort (NATIVE_INT_TYPE portNum, Fw::InputCmdResponsePort *port)
 Connect port to CmdStatus[portNum].
 
void set_Log_OutputPort (NATIVE_INT_TYPE portNum, Fw::InputLogPort *port)
 Connect port to Log[portNum].
 
void set_Time_OutputPort (NATIVE_INT_TYPE portNum, Fw::InputTimePort *port)
 Connect port to Time[portNum].
 
void set_Tlm_OutputPort (NATIVE_INT_TYPE portNum, Fw::InputTlmPort *port)
 Connect port to Tlm[portNum].
 
void set_PingSend_OutputPort (NATIVE_INT_TYPE portNum, Svc::InputPingPort *port)
 Connect port to PingSend[portNum].
 
void set_WdogStroke_OutputPort (NATIVE_INT_TYPE portNum, Svc::InputWatchDogPort *port)
 Connect port to WdogStroke[portNum].
 
void regCommands ()
 Register commands with the Command Dispatcher.
 
- Public Member Functions inherited from Fw::PassiveComponentBase
void setIdBase (const U32)
 Set the ID base.
 
U32 getIdBase () const
 

Protected Member Functions

virtual void doOtherChecks ()
 additional checks function
 
- Protected Member Functions inherited from Svc::HealthComponentBase
 HealthComponentBase (const char *compName="")
 Construct HealthComponentBase object.
 
virtual ~HealthComponentBase ()
 Destroy HealthComponentBase object.
 
NATIVE_INT_TYPE getNum_CmdDisp_InputPorts () const
 
NATIVE_INT_TYPE getNum_PingReturn_InputPorts () const
 
NATIVE_INT_TYPE getNum_Run_InputPorts () const
 
NATIVE_INT_TYPE getNum_CmdReg_OutputPorts () const
 
NATIVE_INT_TYPE getNum_CmdStatus_OutputPorts () const
 
NATIVE_INT_TYPE getNum_Log_OutputPorts () const
 
NATIVE_INT_TYPE getNum_Time_OutputPorts () const
 
NATIVE_INT_TYPE getNum_Tlm_OutputPorts () const
 
NATIVE_INT_TYPE getNum_PingSend_OutputPorts () const
 
NATIVE_INT_TYPE getNum_WdogStroke_OutputPorts () const
 
bool isConnected_CmdReg_OutputPort (NATIVE_INT_TYPE portNum)
 
bool isConnected_CmdStatus_OutputPort (NATIVE_INT_TYPE portNum)
 
bool isConnected_Log_OutputPort (NATIVE_INT_TYPE portNum)
 
bool isConnected_Time_OutputPort (NATIVE_INT_TYPE portNum)
 
bool isConnected_Tlm_OutputPort (NATIVE_INT_TYPE portNum)
 
bool isConnected_PingSend_OutputPort (NATIVE_INT_TYPE portNum)
 
bool isConnected_WdogStroke_OutputPort (NATIVE_INT_TYPE portNum)
 
void PingReturn_handlerBase (NATIVE_INT_TYPE portNum, U32 key)
 Handler base-class function for input port PingReturn.
 
void Run_handlerBase (NATIVE_INT_TYPE portNum, NATIVE_UINT_TYPE context)
 Handler base-class function for input port Run.
 
virtual void PingReturn_preMsgHook (NATIVE_INT_TYPE portNum, U32 key)
 Pre-message hook for async input port PingReturn.
 
void PingSend_out (NATIVE_INT_TYPE portNum, U32 key)
 Invoke output port PingSend.
 
void WdogStroke_out (NATIVE_INT_TYPE portNum, U32 code)
 Invoke output port WdogStroke.
 
void cmdResponse_out (FwOpcodeType opCode, U32 cmdSeq, Fw::CmdResponse response)
 Emit command response.
 
void HLTH_ENABLE_cmdHandlerBase (FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
 
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 HLTH_ENABLE_preMsgHook (FwOpcodeType opCode, U32 cmdSeq)
 Pre-message hook for command HLTH_ENABLE.
 
virtual void HLTH_PING_ENABLE_preMsgHook (FwOpcodeType opCode, U32 cmdSeq)
 Pre-message hook for command HLTH_PING_ENABLE.
 
virtual void HLTH_CHNG_PING_preMsgHook (FwOpcodeType opCode, U32 cmdSeq)
 Pre-message hook for command HLTH_CHNG_PING.
 
void log_WARNING_HI_HLTH_PING_WARN (const Fw::LogStringArg &entry)
 
void log_FATAL_HLTH_PING_LATE (const Fw::LogStringArg &entry)
 
void log_FATAL_HLTH_PING_WRONG_KEY (const Fw::LogStringArg &entry, U32 badKey)
 
void log_ACTIVITY_HI_HLTH_CHECK_ENABLE (Fw::Enabled enabled)
 
void log_ACTIVITY_HI_HLTH_CHECK_PING (Fw::Enabled enabled, const Fw::LogStringArg &entry)
 
void log_WARNING_LO_HLTH_CHECK_LOOKUP_ERROR (const Fw::LogStringArg &entry)
 
void log_ACTIVITY_HI_HLTH_PING_UPDATED (const Fw::LogStringArg &entry, U32 warn, U32 fatal)
 
void log_WARNING_HI_HLTH_PING_INVALID_VALUES (const Fw::LogStringArg &entry, U32 warn, U32 fatal)
 
void tlmWrite_PingLateWarnings (U32 arg, Fw::Time _tlmTime=Fw::Time())
 
Fw::Time getTime ()
 
virtual MsgDispatchStatus doDispatch ()
 Called in the message loop to dispatch a message from the queue.
 
- Protected Member Functions inherited from Fw::QueuedComponentBase
 QueuedComponentBase (const char *name)
 Constructor.
 
virtual ~QueuedComponentBase ()
 Destructor.
 
void init (NATIVE_INT_TYPE instance)
 initialization function
 
Os::Queue::QueueStatus createQueue (NATIVE_INT_TYPE depth, NATIVE_INT_TYPE msgSize)
 
NATIVE_INT_TYPE getNumMsgsDropped ()
 return number of messages dropped
 
void incNumMsgDropped ()
 increment the number of messages dropped
 
- Protected Member Functions inherited from Fw::PassiveComponentBase
 PassiveComponentBase (const char *name)
 Named constructor.
 
virtual ~PassiveComponentBase ()
 Destructor.
 
void init (NATIVE_INT_TYPE instance)
 Initialization function.
 
NATIVE_INT_TYPE getInstance () const
 
- Protected Member Functions inherited from Fw::ObjBase
 ObjBase (const char *name)
 ObjBase constructor.
 
virtual ~ObjBase ()
 Destructor.
 
void init ()
 Object initializer.
 

Additional Inherited Members

- Public Types inherited from Fw::QueuedComponentBase
enum  MsgDispatchStatus { MSG_DISPATCH_OK , MSG_DISPATCH_EMPTY , MSG_DISPATCH_ERROR , MSG_DISPATCH_EXIT }
 
- Protected Types inherited from Svc::HealthComponentBase
enum  { NUM_CMDDISP_INPUT_PORTS = 1 }
 Enumerations for numbers of special input ports. More...
 
enum  { NUM_PINGRETURN_INPUT_PORTS = 25 , NUM_RUN_INPUT_PORTS = 1 }
 Enumerations for numbers of typed input ports. More...
 
enum  {
  NUM_CMDREG_OUTPUT_PORTS = 1 , NUM_CMDSTATUS_OUTPUT_PORTS = 1 , NUM_LOG_OUTPUT_PORTS = 1 , NUM_LOGTEXT_OUTPUT_PORTS = 1 ,
  NUM_TIME_OUTPUT_PORTS = 1 , NUM_TLM_OUTPUT_PORTS = 1
}
 Enumerations for numbers of special output ports. More...
 
enum  { NUM_PINGSEND_OUTPUT_PORTS = 25 , NUM_WDOGSTROKE_OUTPUT_PORTS = 1 }
 Enumerations for numbers of typed output ports. More...
 
enum  { OPCODE_HLTH_ENABLE = 0x0 , OPCODE_HLTH_PING_ENABLE = 0x1 , OPCODE_HLTH_CHNG_PING = 0x2 }
 Command opcodes. More...
 
enum  {
  EVENTID_HLTH_PING_WARN = 0x0 , EVENTID_HLTH_PING_LATE = 0x1 , EVENTID_HLTH_PING_WRONG_KEY = 0x2 , EVENTID_HLTH_CHECK_ENABLE = 0x3 ,
  EVENTID_HLTH_CHECK_PING = 0x4 , EVENTID_HLTH_CHECK_LOOKUP_ERROR = 0x5 , EVENTID_HLTH_PING_UPDATED = 0x6 , EVENTID_HLTH_PING_INVALID_VALUES = 0x7
}
 Event IDs. More...
 
enum  { CHANNELID_PINGLATEWARNINGS = 0x0 }
 Channel IDs. More...
 
- Protected Attributes inherited from Fw::QueuedComponentBase
Os::Queue m_queue
 queue object for active component
 

Detailed Description

Health component implementation class.

The health component iterates through each entry in its table and checks its status. If a ping entry tracker is enabled, it will ping its corresponding port with a provided key. If a ping return is outstanding, a counter is decremented, and its value is checked against warning and fault thresholds. A watchdog is always stroked in the run handler.

Definition at line 32 of file HealthComponentImpl.hpp.

Constructor & Destructor Documentation

◆ HealthImpl()

Svc::HealthImpl::HealthImpl ( const char *const compName)

HealthImpl constructor.

The constructor for Health

Parameters
compNamecomponent name

Definition at line 23 of file HealthComponentImpl.cpp.

◆ ~HealthImpl()

Svc::HealthImpl::~HealthImpl ( )

Component destructor.

The destructor for HealthImpl is empty

Definition at line 64 of file HealthComponentImpl.cpp.

Member Function Documentation

◆ doOtherChecks()

void Svc::HealthImpl::doOtherChecks ( )
protectedvirtual

additional checks function

Does additional checks based on the platform

Definition at line 24 of file HealthComponentStubChecks.cpp.

◆ init()

void Svc::HealthImpl::init ( const NATIVE_INT_TYPE queueDepth,
const NATIVE_INT_TYPE instance )

HealthImpl initialization function.

Initializes the autocoded base class, ping table, and data members

Parameters
queueDepthDepth of queue
instanceThe instance number

Definition at line 39 of file HealthComponentImpl.cpp.

◆ setPingEntries()

void Svc::HealthImpl::setPingEntries ( PingEntry * pingEntries,
NATIVE_INT_TYPE numPingEntries,
U32 watchDogCode )

Set ping entry tables.

Provides a table of ping entries

Parameters
pingEntriesPointer to provided ping table entries
numPingEntriesNumber of ping entries in table
watchDogCodeValue that is sent to watchdog

Definition at line 45 of file HealthComponentImpl.cpp.


The documentation for this class was generated from the following files: