F´ Flight Software - C/C++ Documentation devel
A framework for building embedded system applications to NASA flight quality standards.
Loading...
Searching...
No Matches
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 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() 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
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.
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.
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.
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].
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.
@ EVENTID_GROUNDINTERFACEERROR
An error in the ground interface, here to make the UTs happy.
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)