F´ Flight Software - C/C++ Documentation  devel
A framework for building embedded system applications to NASA flight quality standards.
ActiveRateGroup.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-2022, by the California Institute of Technology.
10 * ALL RIGHTS RESERVED. United States Government Sponsorship
11 * acknowledged.
12 *
13 */
14 
15 #ifndef SVC_ACTIVERATEGROUP_HPP
16 #define SVC_ACTIVERATEGROUP_HPP
17 
19 
20 namespace Svc {
21 
30 
32  public:
34 
41  ActiveRateGroup(const char* compName);
42 
50 
51  void init(NATIVE_INT_TYPE queueDepth, NATIVE_INT_TYPE instance);
52 
62 
63  void configure(NATIVE_INT_TYPE contexts[], NATIVE_INT_TYPE numContexts);
64 
68 
70 
71  PRIVATE:
72 
81 
82  void CycleIn_handler(NATIVE_INT_TYPE portNum, Svc::TimerVal& cycleStart);
83 
91 
92  void CycleIn_preMsgHook(NATIVE_INT_TYPE portNum, Svc::TimerVal& cycleStart);
93 
100 
101  void PingIn_handler(NATIVE_INT_TYPE portNum, U32 key);
102 
108 
109  void preamble();
110 
111  U32 m_cycles;
112  U32 m_maxTime;
113  volatile bool m_cycleStarted;
115  NATIVE_INT_TYPE m_numContexts;
116  NATIVE_INT_TYPE m_overrunThrottle;
117  U32 m_cycleSlips;
118  };
119 
120 }
121 
122 #endif
PlatformIntType NATIVE_INT_TYPE
Definition: BasicTypes.h:51
void init()
Object initializer.
Definition: ObjBase.cpp:27
Auto-generated base for ActiveRateGroup component.
Executes a set of components as part of a rate group.
static constexpr NATIVE_INT_TYPE CONNECTION_COUNT_MAX
void configure(NATIVE_INT_TYPE contexts[], NATIVE_INT_TYPE numContexts)
ActiveRateGroup configuration function.
~ActiveRateGroup()
ActiveRateGroup destructor.
ActiveRateGroup(const char *compName)
ActiveRateGroup constructor.
Serializable class for carrying timer values.
Definition: TimerVal.hpp:22