F´ Flight Software - C/C++ Documentation  devel
A framework for building embedded system applications to NASA flight quality standards.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
PassiveRateGroupComponentAc.hpp
Go to the documentation of this file.
1 // ======================================================================
2 // \title PassiveRateGroupComponentAc.hpp
3 // \author Generated by fpp-to-cpp
4 // \brief hpp file for PassiveRateGroup component base class
5 // ======================================================================
6 
7 #ifndef Svc_PassiveRateGroupComponentAc_HPP
8 #define Svc_PassiveRateGroupComponentAc_HPP
9 
10 #include "FpConfig.hpp"
14 #include "Fw/Time/TimePortAc.hpp"
15 #include "Fw/Tlm/TlmPortAc.hpp"
16 #include "Fw/Tlm/TlmString.hpp"
19 
20 namespace Svc {
21 
28  {
29 
30  // ----------------------------------------------------------------------
31  // Friend classes
32  // ----------------------------------------------------------------------
33 
36 
37  PROTECTED:
38 
39  // ----------------------------------------------------------------------
40  // Constants
41  // ----------------------------------------------------------------------
42 
44  enum {
46  };
47 
49  enum {
52  };
53 
55  enum {
57  };
58 
60  enum {
64  };
65 
66  public:
67 
68  // ----------------------------------------------------------------------
69  // Component initialization
70  // ----------------------------------------------------------------------
71 
73  void init(
74  FwEnumStoreType instance = 0
75  );
76 
77  public:
78 
79  // ----------------------------------------------------------------------
80  // Getters for typed input ports
81  // ----------------------------------------------------------------------
82 
87  FwIndexType portNum
88  );
89 
90  public:
91 
92  // ----------------------------------------------------------------------
93  // Connect input ports to special output ports
94  // ----------------------------------------------------------------------
95 
98  FwIndexType portNum,
99  Fw::InputTimePort* port
100  );
101 
103  void set_Tlm_OutputPort(
104  FwIndexType portNum,
105  Fw::InputTlmPort* port
106  );
107 
108  public:
109 
110  // ----------------------------------------------------------------------
111  // Connect typed input ports to typed output ports
112  // ----------------------------------------------------------------------
113 
116  FwIndexType portNum,
117  Svc::InputSchedPort* port
118  );
119 
120 #if FW_PORT_SERIALIZATION
121 
122  public:
123 
124  // ----------------------------------------------------------------------
125  // Connect serial input ports to special output ports
126  // ----------------------------------------------------------------------
127 
129  void set_Time_OutputPort(
130  FwIndexType portNum,
131  Fw::InputSerializePort* port
132  );
133 
135  void set_Tlm_OutputPort(
136  FwIndexType portNum,
137  Fw::InputSerializePort* port
138  );
139 
140 #endif
141 
142 #if FW_PORT_SERIALIZATION
143 
144  public:
145 
146  // ----------------------------------------------------------------------
147  // Connect serial input ports to typed output ports
148  // ----------------------------------------------------------------------
149 
152  FwIndexType portNum,
153  Fw::InputSerializePort* port
154  );
155 
156 #endif
157 
158  PROTECTED:
159 
160  // ----------------------------------------------------------------------
161  // Component construction and destruction
162  // ----------------------------------------------------------------------
163 
166  const char* compName = ""
167  );
168 
171 
172  PROTECTED:
173 
174  // ----------------------------------------------------------------------
175  // Getters for numbers of typed input ports
176  // ----------------------------------------------------------------------
177 
182 
183  PROTECTED:
184 
185  // ----------------------------------------------------------------------
186  // Getters for numbers of special output ports
187  // ----------------------------------------------------------------------
188 
193 
198 
199  PROTECTED:
200 
201  // ----------------------------------------------------------------------
202  // Getters for numbers of typed output ports
203  // ----------------------------------------------------------------------
204 
209 
210  PROTECTED:
211 
212  // ----------------------------------------------------------------------
213  // Connection status queries for special output ports
214  // ----------------------------------------------------------------------
215 
220  FwIndexType portNum
221  );
222 
227  FwIndexType portNum
228  );
229 
230  PROTECTED:
231 
232  // ----------------------------------------------------------------------
233  // Connection status queries for typed output ports
234  // ----------------------------------------------------------------------
235 
240  FwIndexType portNum
241  );
242 
243  PROTECTED:
244 
245  // ----------------------------------------------------------------------
246  // Handlers to implement for typed input ports
247  // ----------------------------------------------------------------------
248 
250  virtual void CycleIn_handler(
251  FwIndexType portNum,
252  Os::RawTime& cycleStart
253  ) = 0;
254 
255  PROTECTED:
256 
257  // ----------------------------------------------------------------------
258  // Port handler base-class functions for typed input ports
259  //
260  // Call these functions directly to bypass the corresponding ports
261  // ----------------------------------------------------------------------
262 
264  void CycleIn_handlerBase(
265  FwIndexType portNum,
266  Os::RawTime& cycleStart
267  );
268 
269  PROTECTED:
270 
271  // ----------------------------------------------------------------------
272  // Invocation functions for typed output ports
273  // ----------------------------------------------------------------------
274 
277  FwIndexType portNum,
278  U32 context
279  );
280 
281  PROTECTED:
282 
283  // ----------------------------------------------------------------------
284  // Telemetry write functions
285  // ----------------------------------------------------------------------
286 
291  U32 arg,
292  Fw::Time _tlmTime = Fw::Time()
293  );
294 
298  void tlmWrite_CycleTime(
299  U32 arg,
300  Fw::Time _tlmTime = Fw::Time()
301  );
302 
306  void tlmWrite_CycleCount(
307  U32 arg,
308  Fw::Time _tlmTime = Fw::Time()
309  );
310 
311  PROTECTED:
312 
313  // ----------------------------------------------------------------------
314  // Time
315  // ----------------------------------------------------------------------
316 
320  Fw::Time getTime();
321 
322  PRIVATE:
323 
324  // ----------------------------------------------------------------------
325  // Calls for messages received on typed input ports
326  // ----------------------------------------------------------------------
327 
329  static void m_p_CycleIn_in(
330  Fw::PassiveComponentBase* callComp,
331  FwIndexType portNum,
332  Os::RawTime& cycleStart
333  );
334 
335  PRIVATE:
336 
337  // ----------------------------------------------------------------------
338  // Typed input ports
339  // ----------------------------------------------------------------------
340 
342  Svc::InputCyclePort m_CycleIn_InputPort[NUM_CYCLEIN_INPUT_PORTS];
343 
344  PRIVATE:
345 
346  // ----------------------------------------------------------------------
347  // Special output ports
348  // ----------------------------------------------------------------------
349 
351  Fw::OutputTimePort m_Time_OutputPort[NUM_TIME_OUTPUT_PORTS];
352 
354  Fw::OutputTlmPort m_Tlm_OutputPort[NUM_TLM_OUTPUT_PORTS];
355 
356  PRIVATE:
357 
358  // ----------------------------------------------------------------------
359  // Typed output ports
360  // ----------------------------------------------------------------------
361 
363  Svc::OutputSchedPort m_RateGroupMemberOut_OutputPort[NUM_RATEGROUPMEMBEROUT_OUTPUT_PORTS];
364 
365  PRIVATE:
366 
367  // ----------------------------------------------------------------------
368  // First update flags for telemetry channels
369  // ----------------------------------------------------------------------
370 
372  bool m_first_update_MaxCycleTime;
373 
374  PRIVATE:
375 
376  // ----------------------------------------------------------------------
377  // Last value storage for telemetry channels
378  // ----------------------------------------------------------------------
379 
381  U32 m_last_MaxCycleTime;
382 
383  };
384 
385 }
386 
387 #endif
I32 FwEnumStoreType
Definition: FpConfig.h:64
PlatformIndexType FwIndexType
Definition: FpConfig.h:25
C++-compatible configuration header for fprime configuration.
void init()
Object initializer.
Definition: ObjBase.cpp:27
Definition: Time.hpp:9
Auto-generated base for PassiveRateGroup component.
PassiveRateGroupComponentBase(const char *compName="")
Construct PassiveRateGroupComponentBase object.
void tlmWrite_CycleTime(U32 arg, Fw::Time _tlmTime=Fw::Time())
void set_Tlm_OutputPort(FwIndexType portNum, Fw::InputTlmPort *port)
Connect port to Tlm[portNum].
bool isConnected_RateGroupMemberOut_OutputPort(FwIndexType portNum)
@ CHANNELID_MAXCYCLETIME
Channel ID for MaxCycleTime.
@ CHANNELID_CYCLECOUNT
Channel ID for CycleCount.
void set_Time_OutputPort(FwIndexType portNum, Fw::InputTimePort *port)
Connect port to Time[portNum].
virtual ~PassiveRateGroupComponentBase()
Destroy PassiveRateGroupComponentBase object.
void set_RateGroupMemberOut_OutputPort(FwIndexType portNum, Svc::InputSchedPort *port)
Connect port to RateGroupMemberOut[portNum].
void tlmWrite_CycleCount(U32 arg, Fw::Time _tlmTime=Fw::Time())
void RateGroupMemberOut_out(FwIndexType portNum, U32 context)
Invoke output port RateGroupMemberOut.
virtual void CycleIn_handler(FwIndexType portNum, Os::RawTime &cycleStart)=0
Handler for input port CycleIn.
friend class PassiveRateGroupComponentBaseFriend
Friend class for white-box testing.
void tlmWrite_MaxCycleTime(U32 arg, Fw::Time _tlmTime=Fw::Time())
Svc::InputCyclePort * get_CycleIn_InputPort(FwIndexType portNum)
void CycleIn_handlerBase(FwIndexType portNum, Os::RawTime &cycleStart)
Handler base-class function for input port CycleIn.