F´ Flight Software - C/C++ Documentation  NASA-v1.5.0
A framework for building embedded system applications to NASA flight quality standards.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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