F´ Flight Software - C/C++ Documentation NASA-v1.6.0
A framework for building embedded system applications to NASA flight quality standards.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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
19#endif
23#include "Os/Mutex.hpp"
25
26namespace 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 special input ports to special output ports
128 // ----------------------------------------------------------------------
129
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,
142 );
143
144#endif
145
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
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
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();
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
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
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
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
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
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
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.
Input BufferGet port.
Input BufferSend port.
void init()
Object initializer.
Definition ObjBase.cpp:27
Output BufferGet port.
Output BufferSend port.
Auto-generated base for GroundInterface component.
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.
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].
@ EVENTID_GROUNDINTERFACEERROR
An error in the ground interface, here to make the UTs happy.
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.
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)
Fw::InputComPort * get_downlinkPort_InputPort(NATIVE_INT_TYPE portNum)
Fw::InputBufferSendPort * get_fileDownlinkBufferSendIn_InputPort(NATIVE_INT_TYPE portNum)
void set_Time_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputTimePort *port)
Connect port to Time[portNum].
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)