F´ Flight Software - C/C++ Documentation  NASA-v1.6.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 
18 #include <Svc/ActiveRateGroup/ActiveRateGroupComponentAc.hpp>
19 
20 namespace Svc {
21 
30 
31  class ActiveRateGroupImpl : public ActiveRateGroupComponentBase {
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 
62  PRIVATE:
63 
72 
73  void CycleIn_handler(NATIVE_INT_TYPE portNum, Svc::TimerVal& cycleStart);
74 
82 
83  void CycleIn_preMsgHook(NATIVE_INT_TYPE portNum, Svc::TimerVal& cycleStart);
84 
91 
92  void PingIn_handler(NATIVE_INT_TYPE portNum, U32 key);
93 
99 
100  void preamble();
101 
102  U32 m_cycles;
103  U32 m_maxTime;
104  volatile bool m_cycleStarted;
105  NATIVE_UINT_TYPE m_contexts[NUM_RATEGROUPMEMBEROUT_OUTPUT_PORTS];
106  NATIVE_INT_TYPE m_overrunThrottle;
107  U32 m_cycleSlips;
108  };
109 
110 }
111 
112 #endif
Svc::ActiveRateGroupImpl
Executes a set of components as part of a rate group.
Definition: ActiveRateGroupImpl.hpp:31
Svc::ActiveRateGroupImpl::~ActiveRateGroupImpl
~ActiveRateGroupImpl()
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
Svc::ActiveRateGroupImpl::init
void init(NATIVE_INT_TYPE queueDepth, NATIVE_INT_TYPE instance)
ActiveRateGroupImpl initialization function.
Definition: ActiveRateGroupImpl.cpp:42
NATIVE_UINT_TYPE
unsigned int NATIVE_UINT_TYPE
native unsigned integer type declaration
Definition: BasicTypes.hpp:30
Svc
Definition: ActiveRateGroupImplCfg.hpp:18
NATIVE_INT_TYPE
int NATIVE_INT_TYPE
native integer type declaration
Definition: BasicTypes.hpp:29