F´ Flight Software - C/C++ Documentation  NASA-v1.5.0
A framework for building embedded system applications to NASA flight quality standards.
ActiveRateGroupImpl.hpp
Go to the documentation of this file.
1 /*
2 * \author: Tim Canham
3 * \file:
4 * \brief
5 *
6 * This file implements the ActiveRateGroup component,
7 * which invokes a set of components the comprise the rate group.
8 *
9 * Copyright 2014-2015, by the California Institute of Technology.
10 * ALL RIGHTS RESERVED. United States Government Sponsorship
11 * acknowledged.
12 *
13 */
14 
15 #ifndef SVC_ACTIVERATEGROUP_IMPL_HPP
16 #define SVC_ACTIVERATEGROUP_IMPL_HPP
17 
19 
20 namespace Svc {
21 
30 
32  public:
33 
44  ActiveRateGroupImpl(const char* compName, NATIVE_UINT_TYPE contexts[], NATIVE_UINT_TYPE numContexts);
45 
53 
54  void init(NATIVE_INT_TYPE queueDepth, NATIVE_INT_TYPE instance);
55 
59 
61 
63 
72 
74 
82 
84 
91 
92  void PingIn_handler(NATIVE_INT_TYPE portNum, U32 key);
93 
99 
100  void preamble(void);
101 
102  U32 m_cycles;
103  U32 m_maxTime;
104  volatile bool m_cycleStarted;
108  };
109 
110 }
111 
112 #endif
PRIVATE
#define PRIVATE
overridable private for unit testing
Definition: BasicTypes.hpp:118
Svc::ActiveRateGroupImpl::m_overrunThrottle
NATIVE_INT_TYPE m_overrunThrottle
throttle value for overrun events
Definition: ActiveRateGroupImpl.hpp:106
Svc::ActiveRateGroupImpl
Executes a set of components as part of a rate group.
Definition: ActiveRateGroupImpl.hpp:31
Svc::ActiveRateGroupImpl::m_cycleStarted
volatile bool m_cycleStarted
indicate that cycle has started. Used to detect overruns.
Definition: ActiveRateGroupImpl.hpp:104
Svc::ActiveRateGroupComponentBase::portNum
PRIVATE NATIVE_INT_TYPE portNum
Definition: ActiveRateGroupComponentAc.hpp:567
Svc::ActiveRateGroupImpl::m_cycleSlips
U32 m_cycleSlips
tracks number of cycle slips
Definition: ActiveRateGroupImpl.hpp:107
ActiveRateGroupComponentAc.hpp
Svc::ActiveRateGroupImpl::m_maxTime
U32 m_maxTime
maximum execution time in microseconds
Definition: ActiveRateGroupImpl.hpp:103
Svc::ActiveRateGroupImpl::preamble
void preamble(void)
Task preamble.
Definition: ActiveRateGroupImpl.cpp:50
Svc::ActiveRateGroupComponentBase::NUM_RATEGROUPMEMBEROUT_OUTPUT_PORTS
@ NUM_RATEGROUPMEMBEROUT_OUTPUT_PORTS
Definition: ActiveRateGroupComponentAc.hpp:370
Svc::ActiveRateGroupImpl::~ActiveRateGroupImpl
~ActiveRateGroupImpl(void)
ActiveRateGroupImpl destructor.
Definition: ActiveRateGroupImpl.cpp:46
Svc::ActiveRateGroupImpl::ActiveRateGroupImpl
ActiveRateGroupImpl(const char *compName, NATIVE_UINT_TYPE contexts[], NATIVE_UINT_TYPE numContexts)
ActiveRateGroupImpl constructor.
Definition: ActiveRateGroupImpl.cpp:23
Svc::TimerVal
Serializable class for carrying timer values.
Definition: TimerVal.hpp:22
Fw::ObjBase::init
void init(void)
Object initializer.
Definition: ObjBase.cpp:26
NATIVE_UINT_TYPE
unsigned int NATIVE_UINT_TYPE
native unsigned integer type declaration
Definition: BasicTypes.hpp:30
Svc::ActiveRateGroupImpl::m_contexts
NATIVE_UINT_TYPE m_contexts[NUM_RATEGROUPMEMBEROUT_OUTPUT_PORTS]
Must match number of output ports.
Definition: ActiveRateGroupImpl.hpp:105
Svc::ActiveRateGroupComponentBase
Auto-generated base for ActiveRateGroup component.
Definition: ActiveRateGroupComponentAc.hpp:45
Svc::ActiveRateGroupImpl::PingIn_handler
void PingIn_handler(NATIVE_INT_TYPE portNum, U32 key)
Input ping port handler.
Definition: ActiveRateGroupImpl.cpp:107
Svc::ActiveRateGroupImpl::cycleStart
PRIVATE Svc::TimerVal & cycleStart
Definition: ActiveRateGroupImpl.hpp:73
Svc::ActiveRateGroupImpl::CycleIn_preMsgHook
void CycleIn_preMsgHook(NATIVE_INT_TYPE portNum, Svc::TimerVal &cycleStart)
Input cycle port pre message hook.
Definition: ActiveRateGroupImpl.cpp:102
Svc
Definition: ActiveLoggerComponentAc.cpp:22
NATIVE_INT_TYPE
int NATIVE_INT_TYPE
native integer type declaration
Definition: BasicTypes.hpp:29
Svc::ActiveRateGroupImpl::m_cycles
U32 m_cycles
cycles executed
Definition: ActiveRateGroupImpl.hpp:102