F´ Flight Software - C/C++ Documentation  NASA-v2.0.1
A framework for building embedded system applications to NASA flight quality standards.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
HealthComponentImpl.hpp
Go to the documentation of this file.
1 // ======================================================================
2 // \title Health.hpp
3 // \author Tim, J.Perez
4 // \brief hpp file for Health component implementation class
5 //
6 // \copyright
7 // Copyright 2009-2015, by the California Institute of Technology.
8 // ALL RIGHTS RESERVED. United States Government Sponsorship
9 // acknowledged.
10 //
11 // ======================================================================
12 
13 #ifndef Health_HPP
14 #define Health_HPP
15 
16 #include <Svc/Health/HealthComponentAc.hpp>
18 
19 namespace Svc {
20 
31 
32  class HealthImpl: public HealthComponentBase {
33 
34  public:
45  struct PingEntry {
49  };
50 
56  HealthImpl(const char * const compName);
57 
64  void init(const NATIVE_INT_TYPE queueDepth, const NATIVE_INT_TYPE instance);
65 
73  void setPingEntries(PingEntry* pingEntries, NATIVE_INT_TYPE numPingEntries, U32 watchDogCode);
74 
78  ~HealthImpl(void);
79 
80  PROTECTED:
81 
85  virtual void doOtherChecks(void);
86 
87  PRIVATE:
88 
95  void PingReturn_handler(const NATIVE_INT_TYPE portNum, U32 key);
96 
103  void Run_handler(const NATIVE_INT_TYPE portNum, NATIVE_UINT_TYPE context);
104 
112  void HLTH_ENABLE_cmdHandler(const FwOpcodeType opCode, U32 cmdSeq, HealthEnabled enable);
113 
122  void HLTH_PING_ENABLE_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdStringArg& entry, PingEnabled enable);
123 
133  void HLTH_CHNG_PING_cmdHandler(const FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdStringArg& entry, U32 warningValue, U32 fatalValue);
134 
138  struct PingTracker {
139  PingEntry entry;
140  U32 cycleCount;
141  U32 key;
142  PingEnabled enabled;
143  } m_pingTrackerEntries[NUM_PINGSEND_OUTPUT_PORTS];
144 
145  NATIVE_INT_TYPE findEntry(Fw::CmdStringArg entry);
146 
148  U32 m_numPingEntries;
149  U32 m_key;
150  U32 m_watchDogCode;
151  U32 m_warnings;
152  HealthEnabled m_enabled;
153  U32 queue_depth;
154 
155  };
156 
157 } // end namespace Svc
158 
159 #endif
Svc::HealthImpl::doOtherChecks
virtual void doOtherChecks(void)
additional checks function
Definition: HealthComponentStubChecks.cpp:24
Fw::EightyCharString
Definition: EightyCharString.hpp:10
Svc::HealthImpl::PingEntry::warnCycles
NATIVE_UINT_TYPE warnCycles
number of cycles before WARNING
Definition: HealthComponentImpl.hpp:46
Fw::CmdStringArg
Definition: CmdString.hpp:11
Svc::HealthImpl::~HealthImpl
~HealthImpl(void)
Component destructor.
Definition: HealthComponentImpl.cpp:64
Svc::HealthImpl
Health component implementation class.
Definition: HealthComponentImpl.hpp:32
EightyCharString.hpp
FwOpcodeType
#define FwOpcodeType
Type representation for a command opcode.
Definition: FpConfig.hpp:62
NATIVE_UINT_TYPE
unsigned int NATIVE_UINT_TYPE
native unsigned integer type declaration
Definition: BasicTypes.hpp:30
Svc::HealthImpl::setPingEntries
void setPingEntries(PingEntry *pingEntries, NATIVE_INT_TYPE numPingEntries, U32 watchDogCode)
Set ping entry tables.
Definition: HealthComponentImpl.cpp:45
Svc::HealthImpl::HealthImpl
HealthImpl(const char *const compName)
HealthImpl constructor.
Definition: HealthComponentImpl.cpp:23
Svc::HealthImpl::init
void init(const NATIVE_INT_TYPE queueDepth, const NATIVE_INT_TYPE instance)
HealthImpl initialization function.
Definition: HealthComponentImpl.cpp:39
Svc::HealthImpl::PingEntry
struct for ping entry
Definition: HealthComponentImpl.hpp:45
Svc::HealthImpl::PingEntry::fatalCycles
NATIVE_UINT_TYPE fatalCycles
number of cycles before FATAL
Definition: HealthComponentImpl.hpp:47
Svc
Definition: ActiveRateGroupImplCfg.hpp:18
Svc::HealthImpl::PingEntry::entryName
Fw::EightyCharString entryName
the name of the entry
Definition: HealthComponentImpl.hpp:48
NATIVE_INT_TYPE
int NATIVE_INT_TYPE
native integer type declaration
Definition: BasicTypes.hpp:29