F´ Flight Software - C/C++ Documentation  devel
A framework for building embedded system applications to NASA flight quality standards.
GroundInterfaceComponentAc.hpp
Go to the documentation of this file.
1 // ======================================================================
2 // \title GroundInterfaceComponentAc.hpp
3 // \author Generated by fpp-to-cpp
4 // \brief hpp file for GroundInterface component base class
5 // ======================================================================
6 
7 #ifndef Svc_GroundInterfaceComponentAc_HPP
8 #define Svc_GroundInterfaceComponentAc_HPP
9 
10 #include "FpConfig.hpp"
13 #include "Fw/Com/ComPortAc.hpp"
15 #include "Fw/Log/LogPortAc.hpp"
16 #include "Fw/Log/LogString.hpp"
17 #if FW_ENABLE_TEXT_LOGGING == 1
18 #include "Fw/Log/LogTextPortAc.hpp"
19 #endif
22 #include "Fw/Time/TimePortAc.hpp"
23 #include "Os/Mutex.hpp"
25 
26 namespace Svc {
27 
34  {
35 
36  // ----------------------------------------------------------------------
37  // Friend classes
38  // ----------------------------------------------------------------------
39 
42 
43  PROTECTED:
44 
45  // ----------------------------------------------------------------------
46  // Constants
47  // ----------------------------------------------------------------------
48 
50  enum {
55  };
56 
58  enum {
62  };
63 
65  enum {
72  };
73 
75  enum {
77  };
78 
79  public:
80 
81  // ----------------------------------------------------------------------
82  // Component initialization
83  // ----------------------------------------------------------------------
84 
86  void init(
87  NATIVE_INT_TYPE instance = 0
88  );
89 
90  public:
91 
92  // ----------------------------------------------------------------------
93  // Getters for typed input ports
94  // ----------------------------------------------------------------------
95 
100  NATIVE_INT_TYPE portNum
101  );
102 
107  NATIVE_INT_TYPE portNum
108  );
109 
114  NATIVE_INT_TYPE portNum
115  );
116 
121  NATIVE_INT_TYPE portNum
122  );
123 
124  public:
125 
126  // ----------------------------------------------------------------------
127  // Connect input ports to special output ports
128  // ----------------------------------------------------------------------
129 
131  void set_Log_OutputPort(
132  NATIVE_INT_TYPE portNum,
133  Fw::InputLogPort* port
134  );
135 
136 #if FW_ENABLE_TEXT_LOGGING == 1
137 
139  void set_LogText_OutputPort(
140  NATIVE_INT_TYPE portNum,
141  Fw::InputLogTextPort* port
142  );
143 
144 #endif
145 
147  void set_Time_OutputPort(
148  NATIVE_INT_TYPE portNum,
149  Fw::InputTimePort* port
150  );
151 
152  public:
153 
154  // ----------------------------------------------------------------------
155  // Connect typed input ports to typed output ports
156  // ----------------------------------------------------------------------
157 
160  NATIVE_INT_TYPE portNum,
162  );
163 
166  NATIVE_INT_TYPE portNum,
168  );
169 
172  NATIVE_INT_TYPE portNum,
174  );
175 
178  NATIVE_INT_TYPE portNum,
180  );
181 
184  NATIVE_INT_TYPE portNum,
185  Fw::InputComPort* port
186  );
187 
190  NATIVE_INT_TYPE portNum,
192  );
193 
194 #if FW_PORT_SERIALIZATION
195 
196  public:
197 
198  // ----------------------------------------------------------------------
199  // Connect serial input ports to special output ports
200  // ----------------------------------------------------------------------
201 
203  void set_Log_OutputPort(
204  NATIVE_INT_TYPE portNum,
205  Fw::InputSerializePort* port
206  );
207 
208 #if FW_ENABLE_TEXT_LOGGING == 1
209 
211  void set_LogText_OutputPort(
212  NATIVE_INT_TYPE portNum,
213  Fw::InputSerializePort* port
214  );
215 
216 #endif
217 
219  void set_Time_OutputPort(
220  NATIVE_INT_TYPE portNum,
221  Fw::InputSerializePort* port
222  );
223 
224 #endif
225 
226 #if FW_PORT_SERIALIZATION
227 
228  public:
229 
230  // ----------------------------------------------------------------------
231  // Connect serial input ports to typed output ports
232  // ----------------------------------------------------------------------
233 
236  NATIVE_INT_TYPE portNum,
237  Fw::InputSerializePort* port
238  );
239 
242  NATIVE_INT_TYPE portNum,
243  Fw::InputSerializePort* port
244  );
245 
248  NATIVE_INT_TYPE portNum,
249  Fw::InputSerializePort* port
250  );
251 
254  NATIVE_INT_TYPE portNum,
255  Fw::InputSerializePort* port
256  );
257 
260  NATIVE_INT_TYPE portNum,
261  Fw::InputSerializePort* port
262  );
263 
264 #endif
265 
266  PROTECTED:
267 
268  // ----------------------------------------------------------------------
269  // Component construction and destruction
270  // ----------------------------------------------------------------------
271 
274  const char* compName = ""
275  );
276 
279 
280  PROTECTED:
281 
282  // ----------------------------------------------------------------------
283  // Getters for numbers of typed input ports
284  // ----------------------------------------------------------------------
285 
290 
295 
300 
305 
306  PROTECTED:
307 
308  // ----------------------------------------------------------------------
309  // Getters for numbers of special output ports
310  // ----------------------------------------------------------------------
311 
316 
317 #if FW_ENABLE_TEXT_LOGGING == 1
318 
322  NATIVE_INT_TYPE getNum_LogText_OutputPorts() const;
323 
324 #endif
325 
330 
331  PROTECTED:
332 
333  // ----------------------------------------------------------------------
334  // Getters for numbers of typed output ports
335  // ----------------------------------------------------------------------
336 
341 
346 
351 
356 
361 
366 
367  PROTECTED:
368 
369  // ----------------------------------------------------------------------
370  // Connection status queries for special output ports
371  // ----------------------------------------------------------------------
372 
377  NATIVE_INT_TYPE portNum
378  );
379 
380 #if FW_ENABLE_TEXT_LOGGING == 1
381 
385  bool isConnected_LogText_OutputPort(
386  NATIVE_INT_TYPE portNum
387  );
388 
389 #endif
390 
395  NATIVE_INT_TYPE portNum
396  );
397 
398  PROTECTED:
399 
400  // ----------------------------------------------------------------------
401  // Connection status queries for typed output ports
402  // ----------------------------------------------------------------------
403 
408  NATIVE_INT_TYPE portNum
409  );
410 
415  NATIVE_INT_TYPE portNum
416  );
417 
422  NATIVE_INT_TYPE portNum
423  );
424 
429  NATIVE_INT_TYPE portNum
430  );
431 
436  NATIVE_INT_TYPE portNum
437  );
438 
443  NATIVE_INT_TYPE portNum
444  );
445 
446  PROTECTED:
447 
448  // ----------------------------------------------------------------------
449  // Handlers to implement for typed input ports
450  // ----------------------------------------------------------------------
451 
453  virtual void downlinkPort_handler(
454  NATIVE_INT_TYPE portNum,
455  Fw::ComBuffer& data,
456  U32 context
457  ) = 0;
458 
461  NATIVE_INT_TYPE portNum,
462  Fw::Buffer& fwBuffer
463  ) = 0;
464 
466  virtual void readCallback_handler(
467  NATIVE_INT_TYPE portNum,
468  Fw::Buffer& fwBuffer
469  ) = 0;
470 
472  virtual void schedIn_handler(
473  NATIVE_INT_TYPE portNum,
474  NATIVE_UINT_TYPE context
475  ) = 0;
476 
477  PROTECTED:
478 
479  // ----------------------------------------------------------------------
480  // Port handler base-class functions for typed input ports
481  //
482  // Call these functions directly to bypass the corresponding ports
483  // ----------------------------------------------------------------------
484 
487  NATIVE_INT_TYPE portNum,
488  Fw::ComBuffer& data,
489  U32 context
490  );
491 
494  NATIVE_INT_TYPE portNum,
495  Fw::Buffer& fwBuffer
496  );
497 
500  NATIVE_INT_TYPE portNum,
501  Fw::Buffer& fwBuffer
502  );
503 
505  void schedIn_handlerBase(
506  NATIVE_INT_TYPE portNum,
507  NATIVE_UINT_TYPE context
508  );
509 
510  PROTECTED:
511 
512  // ----------------------------------------------------------------------
513  // Invocation functions for typed output ports
514  // ----------------------------------------------------------------------
515 
518  NATIVE_INT_TYPE portNum,
519  Fw::Buffer& fwBuffer
520  );
521 
524  NATIVE_INT_TYPE portNum,
525  U32 size
526  );
527 
530  NATIVE_INT_TYPE portNum,
531  Fw::Buffer& fwBuffer
532  );
533 
535  void readPoll_out(
536  NATIVE_INT_TYPE portNum,
537  Fw::Buffer& fwBuffer
538  );
539 
541  void uplinkPort_out(
542  NATIVE_INT_TYPE portNum,
543  Fw::ComBuffer& data,
544  U32 context
545  );
546 
548  void write_out(
549  NATIVE_INT_TYPE portNum,
550  Fw::Buffer& fwBuffer
551  );
552 
553  PROTECTED:
554 
555  // ----------------------------------------------------------------------
556  // Event logging functions
557  // ----------------------------------------------------------------------
558 
563 
564  PROTECTED:
565 
566  // ----------------------------------------------------------------------
567  // Time
568  // ----------------------------------------------------------------------
569 
573  Fw::Time getTime();
574 
575  PROTECTED:
576 
577  // ----------------------------------------------------------------------
578  // Mutex operations for guarded ports
579  //
580  // You can override these operations to provide more sophisticated
581  // synchronization
582  // ----------------------------------------------------------------------
583 
585  virtual void lock();
586 
588  virtual void unLock();
589 
590  PRIVATE:
591 
592  // ----------------------------------------------------------------------
593  // Calls for messages received on typed input ports
594  // ----------------------------------------------------------------------
595 
597  static void m_p_downlinkPort_in(
598  Fw::PassiveComponentBase* callComp,
599  NATIVE_INT_TYPE portNum,
600  Fw::ComBuffer& data,
601  U32 context
602  );
603 
605  static void m_p_fileDownlinkBufferSendIn_in(
606  Fw::PassiveComponentBase* callComp,
607  NATIVE_INT_TYPE portNum,
608  Fw::Buffer& fwBuffer
609  );
610 
612  static void m_p_readCallback_in(
613  Fw::PassiveComponentBase* callComp,
614  NATIVE_INT_TYPE portNum,
615  Fw::Buffer& fwBuffer
616  );
617 
619  static void m_p_schedIn_in(
620  Fw::PassiveComponentBase* callComp,
621  NATIVE_INT_TYPE portNum,
622  NATIVE_UINT_TYPE context
623  );
624 
625  PRIVATE:
626 
627  // ----------------------------------------------------------------------
628  // Typed input ports
629  // ----------------------------------------------------------------------
630 
632  Fw::InputComPort m_downlinkPort_InputPort[NUM_DOWNLINKPORT_INPUT_PORTS];
633 
635  Fw::InputBufferSendPort m_fileDownlinkBufferSendIn_InputPort[NUM_FILEDOWNLINKBUFFERSENDIN_INPUT_PORTS];
636 
638  Fw::InputBufferSendPort m_readCallback_InputPort[NUM_READCALLBACK_INPUT_PORTS];
639 
641  Svc::InputSchedPort m_schedIn_InputPort[NUM_SCHEDIN_INPUT_PORTS];
642 
643  PRIVATE:
644 
645  // ----------------------------------------------------------------------
646  // Special output ports
647  // ----------------------------------------------------------------------
648 
650  Fw::OutputLogPort m_Log_OutputPort[NUM_LOG_OUTPUT_PORTS];
651 
652 #if FW_ENABLE_TEXT_LOGGING == 1
653 
655  Fw::OutputLogTextPort m_LogText_OutputPort[NUM_LOGTEXT_OUTPUT_PORTS];
656 
657 #endif
658 
660  Fw::OutputTimePort m_Time_OutputPort[NUM_TIME_OUTPUT_PORTS];
661 
662  PRIVATE:
663 
664  // ----------------------------------------------------------------------
665  // Typed output ports
666  // ----------------------------------------------------------------------
667 
669  Fw::OutputBufferSendPort m_fileDownlinkBufferSendOut_OutputPort[NUM_FILEDOWNLINKBUFFERSENDOUT_OUTPUT_PORTS];
670 
672  Fw::OutputBufferGetPort m_fileUplinkBufferGet_OutputPort[NUM_FILEUPLINKBUFFERGET_OUTPUT_PORTS];
673 
675  Fw::OutputBufferSendPort m_fileUplinkBufferSendOut_OutputPort[NUM_FILEUPLINKBUFFERSENDOUT_OUTPUT_PORTS];
676 
679 
681  Fw::OutputComPort m_uplinkPort_OutputPort[NUM_UPLINKPORT_OUTPUT_PORTS];
682 
685 
686  PRIVATE:
687 
688  // ----------------------------------------------------------------------
689  // Mutexes
690  // ----------------------------------------------------------------------
691 
693  Os::Mutex m_guardedPortMutex;
694 
695  };
696 
697 }
698 
699 #endif
PlatformIntType NATIVE_INT_TYPE
Definition: BasicTypes.h:51
PlatformUIntType NATIVE_UINT_TYPE
Definition: BasicTypes.h:52
C++-compatible configuration header for fprime configuration.
void init()
Object initializer.
Definition: ObjBase.cpp:27
Definition: Time.hpp:9
Auto-generated base for GroundInterface component.
NATIVE_INT_TYPE getNum_fileUplinkBufferSendOut_OutputPorts() const
void set_fileUplinkBufferSendOut_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputBufferSendPort *port)
Connect port to fileUplinkBufferSendOut[portNum].
bool isConnected_fileDownlinkBufferSendOut_OutputPort(NATIVE_INT_TYPE portNum)
void set_fileDownlinkBufferSendOut_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputBufferSendPort *port)
Connect port to fileDownlinkBufferSendOut[portNum].
virtual void readCallback_handler(NATIVE_INT_TYPE portNum, Fw::Buffer &fwBuffer)=0
Handler for input port readCallback.
void fileDownlinkBufferSendOut_out(NATIVE_INT_TYPE portNum, Fw::Buffer &fwBuffer)
Invoke output port fileDownlinkBufferSendOut.
void set_Log_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputLogPort *port)
Connect port to Log[portNum].
void set_readPoll_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputBufferSendPort *port)
Connect port to readPoll[portNum].
bool isConnected_Time_OutputPort(NATIVE_INT_TYPE portNum)
virtual void unLock()
Unlock the guarded mutex.
virtual void lock()
Lock the guarded mutex.
bool isConnected_fileUplinkBufferSendOut_OutputPort(NATIVE_INT_TYPE portNum)
void downlinkPort_handlerBase(NATIVE_INT_TYPE portNum, Fw::ComBuffer &data, U32 context)
Handler base-class function for input port downlinkPort.
void fileDownlinkBufferSendIn_handlerBase(NATIVE_INT_TYPE portNum, Fw::Buffer &fwBuffer)
Handler base-class function for input port fileDownlinkBufferSendIn.
@ EVENTID_GROUNDINTERFACEERROR
An error in the ground interface, here to make the UTs happy.
virtual ~GroundInterfaceComponentBase()
Destroy GroundInterfaceComponentBase object.
bool isConnected_uplinkPort_OutputPort(NATIVE_INT_TYPE portNum)
bool isConnected_write_OutputPort(NATIVE_INT_TYPE portNum)
bool isConnected_Log_OutputPort(NATIVE_INT_TYPE portNum)
void write_out(NATIVE_INT_TYPE portNum, Fw::Buffer &fwBuffer)
Invoke output port write.
Fw::Buffer fileUplinkBufferGet_out(NATIVE_INT_TYPE portNum, U32 size)
Invoke output port fileUplinkBufferGet.
virtual void fileDownlinkBufferSendIn_handler(NATIVE_INT_TYPE portNum, Fw::Buffer &fwBuffer)=0
Handler for input port fileDownlinkBufferSendIn.
void schedIn_handlerBase(NATIVE_INT_TYPE portNum, NATIVE_UINT_TYPE context)
Handler base-class function for input port schedIn.
virtual void downlinkPort_handler(NATIVE_INT_TYPE portNum, Fw::ComBuffer &data, U32 context)=0
Handler for input port downlinkPort.
void readPoll_out(NATIVE_INT_TYPE portNum, Fw::Buffer &fwBuffer)
Invoke output port readPoll.
void fileUplinkBufferSendOut_out(NATIVE_INT_TYPE portNum, Fw::Buffer &fwBuffer)
Invoke output port fileUplinkBufferSendOut.
void set_fileUplinkBufferGet_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputBufferGetPort *port)
Connect port to fileUplinkBufferGet[portNum].
bool isConnected_readPoll_OutputPort(NATIVE_INT_TYPE portNum)
void readCallback_handlerBase(NATIVE_INT_TYPE portNum, Fw::Buffer &fwBuffer)
Handler base-class function for input port readCallback.
GroundInterfaceComponentBase(const char *compName="")
Construct GroundInterfaceComponentBase object.
virtual void schedIn_handler(NATIVE_INT_TYPE portNum, NATIVE_UINT_TYPE context)=0
Handler for input port schedIn.
NATIVE_INT_TYPE getNum_downlinkPort_InputPorts() const
Fw::InputBufferSendPort * get_readCallback_InputPort(NATIVE_INT_TYPE portNum)
friend class GroundInterfaceComponentBaseFriend
Friend class for white-box testing.
bool isConnected_fileUplinkBufferGet_OutputPort(NATIVE_INT_TYPE portNum)
NATIVE_INT_TYPE getNum_fileUplinkBufferGet_OutputPorts() const
NATIVE_INT_TYPE getNum_fileDownlinkBufferSendOut_OutputPorts() const
Fw::InputComPort * get_downlinkPort_InputPort(NATIVE_INT_TYPE portNum)
Fw::InputBufferSendPort * get_fileDownlinkBufferSendIn_InputPort(NATIVE_INT_TYPE portNum)
NATIVE_INT_TYPE getNum_fileDownlinkBufferSendIn_InputPorts() const
void set_Time_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputTimePort *port)
Connect port to Time[portNum].
NATIVE_INT_TYPE getNum_readCallback_InputPorts() const
void set_write_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputBufferSendPort *port)
Connect port to write[portNum].
void uplinkPort_out(NATIVE_INT_TYPE portNum, Fw::ComBuffer &data, U32 context)
Invoke output port uplinkPort.
void set_uplinkPort_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputComPort *port)
Connect port to uplinkPort[portNum].
Svc::InputSchedPort * get_schedIn_InputPort(NATIVE_INT_TYPE portNum)