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
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(void);
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(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
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