F´ Flight Software - C/C++ Documentation
A framework for building embedded system applications to NASA flight quality standards.
Loading...
Searching...
No Matches
FileUplinkComponentAc.hpp
Go to the documentation of this file.
1// ======================================================================
2// \title FileUplinkComponentAc.hpp
3// \author Generated by fpp-to-cpp
4// \brief hpp file for FileUplink component base class
5// ======================================================================
6
7#ifndef Svc_FileUplinkComponentAc_HPP
8#define Svc_FileUplinkComponentAc_HPP
9
10#include "FpConfig.hpp"
13#include "Fw/Log/LogPortAc.hpp"
14#include "Fw/Log/LogString.hpp"
15#if FW_ENABLE_TEXT_LOGGING == 1
17#endif
21#include "Fw/Tlm/TlmPortAc.hpp"
22#include "Fw/Tlm/TlmString.hpp"
24
25namespace Svc {
26
33 {
34
35 // ----------------------------------------------------------------------
36 // Friend classes
37 // ----------------------------------------------------------------------
38
41
42 PROTECTED:
43
44 // ----------------------------------------------------------------------
45 // Constants
46 // ----------------------------------------------------------------------
47
49 enum {
52 };
53
55 enum {
60 };
61
63 enum {
66 };
67
69 enum {
80 };
81
83 enum {
89 };
90
92 enum {
96 };
97
98 public:
99
100 // ----------------------------------------------------------------------
101 // Component initialization
102 // ----------------------------------------------------------------------
103
105 void init(
106 FwSizeType queueDepth,
107 FwEnumStoreType instance = 0
108 );
109
110 public:
111
112 // ----------------------------------------------------------------------
113 // Getters for typed input ports
114 // ----------------------------------------------------------------------
115
120 FwIndexType portNum
121 );
122
127 FwIndexType portNum
128 );
129
130 public:
131
132 // ----------------------------------------------------------------------
133 // Connect input ports to special output ports
134 // ----------------------------------------------------------------------
135
136#if FW_ENABLE_TEXT_LOGGING == 1
137
139 void set_LogText_OutputPort(
140 FwIndexType portNum,
142 );
143
144#endif
145
148 FwIndexType portNum,
149 Fw::InputLogPort* port
150 );
151
154 FwIndexType portNum,
155 Fw::InputTimePort* port
156 );
157
160 FwIndexType portNum,
161 Fw::InputTlmPort* port
162 );
163
164 public:
165
166 // ----------------------------------------------------------------------
167 // Connect typed input ports to typed output ports
168 // ----------------------------------------------------------------------
169
172 FwIndexType portNum,
174 );
175
178 FwIndexType portNum,
179 Svc::InputPingPort* port
180 );
181
182#if FW_PORT_SERIALIZATION
183
184 public:
185
186 // ----------------------------------------------------------------------
187 // Connect serial input ports to special output ports
188 // ----------------------------------------------------------------------
189
190#if FW_ENABLE_TEXT_LOGGING == 1
191
193 void set_LogText_OutputPort(
194 FwIndexType portNum,
195 Fw::InputSerializePort* port
196 );
197
198#endif
199
202 FwIndexType portNum,
203 Fw::InputSerializePort* port
204 );
205
208 FwIndexType portNum,
209 Fw::InputSerializePort* port
210 );
211
214 FwIndexType portNum,
215 Fw::InputSerializePort* port
216 );
217
218#endif
219
220#if FW_PORT_SERIALIZATION
221
222 public:
223
224 // ----------------------------------------------------------------------
225 // Connect serial input ports to typed output ports
226 // ----------------------------------------------------------------------
227
230 FwIndexType portNum,
231 Fw::InputSerializePort* port
232 );
233
236 FwIndexType portNum,
237 Fw::InputSerializePort* port
238 );
239
240#endif
241
242 PROTECTED:
243
244 // ----------------------------------------------------------------------
245 // Component construction and destruction
246 // ----------------------------------------------------------------------
247
250 const char* compName = ""
251 );
252
254 virtual ~FileUplinkComponentBase();
255
256 PROTECTED:
257
258 // ----------------------------------------------------------------------
259 // Getters for numbers of typed input ports
260 // ----------------------------------------------------------------------
261
266
271
272 PROTECTED:
273
274 // ----------------------------------------------------------------------
275 // Getters for numbers of special output ports
276 // ----------------------------------------------------------------------
277
278#if FW_ENABLE_TEXT_LOGGING == 1
279
283 FwIndexType getNum_LogText_OutputPorts() const;
284
285#endif
286
291
296
301
302 PROTECTED:
303
304 // ----------------------------------------------------------------------
305 // Getters for numbers of typed output ports
306 // ----------------------------------------------------------------------
307
312
317
318 PROTECTED:
319
320 // ----------------------------------------------------------------------
321 // Connection status queries for special output ports
322 // ----------------------------------------------------------------------
323
324#if FW_ENABLE_TEXT_LOGGING == 1
325
329 bool isConnected_LogText_OutputPort(
330 FwIndexType portNum
331 );
332
333#endif
334
339 FwIndexType portNum
340 );
341
346 FwIndexType portNum
347 );
348
353 FwIndexType portNum
354 );
355
356 PROTECTED:
357
358 // ----------------------------------------------------------------------
359 // Connection status queries for typed output ports
360 // ----------------------------------------------------------------------
361
366 FwIndexType portNum
367 );
368
373 FwIndexType portNum
374 );
375
376 PROTECTED:
377
378 // ----------------------------------------------------------------------
379 // Handlers to implement for typed input ports
380 // ----------------------------------------------------------------------
381
384 FwIndexType portNum,
385 Fw::Buffer& fwBuffer
386 ) = 0;
387
389 virtual void pingIn_handler(
390 FwIndexType portNum,
391 U32 key
392 ) = 0;
393
394 PROTECTED:
395
396 // ----------------------------------------------------------------------
397 // Port handler base-class functions for typed input ports
398 //
399 // Call these functions directly to bypass the corresponding ports
400 // ----------------------------------------------------------------------
401
404 FwIndexType portNum,
405 Fw::Buffer& fwBuffer
406 );
407
410 FwIndexType portNum,
411 U32 key
412 );
413
414 PROTECTED:
415
416 // ----------------------------------------------------------------------
417 // Pre-message hooks for typed async input ports
418 //
419 // Each of these functions is invoked just before processing a message
420 // on the corresponding port. By default, they do nothing. You can
421 // override them to provide specific pre-message behavior.
422 // ----------------------------------------------------------------------
423
425 virtual void bufferSendIn_preMsgHook(
426 FwIndexType portNum,
427 Fw::Buffer& fwBuffer
428 );
429
431 virtual void pingIn_preMsgHook(
432 FwIndexType portNum,
433 U32 key
434 );
435
436 PROTECTED:
437
438 // ----------------------------------------------------------------------
439 // Invocation functions for typed output ports
440 // ----------------------------------------------------------------------
441
444 FwIndexType portNum,
445 Fw::Buffer& fwBuffer
446 );
447
449 void pingOut_out(
450 FwIndexType portNum,
451 U32 key
452 );
453
454 PROTECTED:
455
456 // ----------------------------------------------------------------------
457 // Event logging functions
458 // ----------------------------------------------------------------------
459
464 const Fw::StringBase& fileName,
465 U32 computed,
466 U32 read
467 ) const;
468
473 const Fw::StringBase& fileName
474 ) const;
475
480 const Fw::StringBase& fileName
481 ) const;
482
487 const Fw::StringBase& fileName
488 );
489
494 U32 packetType,
495 U32 mode
496 );
497
502 U32 packetIndex,
503 const Fw::StringBase& fileName
504 );
505
510 U32 packetIndex,
511 U32 lastPacketIndex
512 );
513
518 U32 packetIndex
519 );
520
525
530 I32 status
531 ) const;
532
533 PROTECTED:
534
535 // ----------------------------------------------------------------------
536 // Event throttle reset functions
537 // ----------------------------------------------------------------------
538
541
544
547
550
553
554 PROTECTED:
555
556 // ----------------------------------------------------------------------
557 // Telemetry write functions
558 // ----------------------------------------------------------------------
559
564 U32 arg,
565 Fw::Time _tlmTime = Fw::Time()
566 ) const;
567
572 U32 arg,
573 Fw::Time _tlmTime = Fw::Time()
574 ) const;
575
580 U32 arg,
581 Fw::Time _tlmTime = Fw::Time()
582 ) const;
583
584 PROTECTED:
585
586 // ----------------------------------------------------------------------
587 // Time
588 // ----------------------------------------------------------------------
589
594
595 PRIVATE:
596
597 // ----------------------------------------------------------------------
598 // Message dispatch functions
599 // ----------------------------------------------------------------------
600
602 virtual MsgDispatchStatus doDispatch();
603
604 PRIVATE:
605
606 // ----------------------------------------------------------------------
607 // Calls for messages received on typed input ports
608 // ----------------------------------------------------------------------
609
611 static void m_p_bufferSendIn_in(
612 Fw::PassiveComponentBase* callComp,
613 FwIndexType portNum,
614 Fw::Buffer& fwBuffer
615 );
616
618 static void m_p_pingIn_in(
619 Fw::PassiveComponentBase* callComp,
620 FwIndexType portNum,
621 U32 key
622 );
623
624 PRIVATE:
625
626 // ----------------------------------------------------------------------
627 // Typed input ports
628 // ----------------------------------------------------------------------
629
632
634 Svc::InputPingPort m_pingIn_InputPort[NUM_PINGIN_INPUT_PORTS];
635
636 PRIVATE:
637
638 // ----------------------------------------------------------------------
639 // Special output ports
640 // ----------------------------------------------------------------------
641
642#if FW_ENABLE_TEXT_LOGGING == 1
643
646
647#endif
648
650 Fw::OutputLogPort m_eventOut_OutputPort[NUM_EVENTOUT_OUTPUT_PORTS];
651
653 Fw::OutputTimePort m_timeCaller_OutputPort[NUM_TIMECALLER_OUTPUT_PORTS];
654
656 Fw::OutputTlmPort m_tlmOut_OutputPort[NUM_TLMOUT_OUTPUT_PORTS];
657
658 PRIVATE:
659
660 // ----------------------------------------------------------------------
661 // Typed output ports
662 // ----------------------------------------------------------------------
663
666
668 Svc::OutputPingPort m_pingOut_OutputPort[NUM_PINGOUT_OUTPUT_PORTS];
669
670 PRIVATE:
671
672 // ----------------------------------------------------------------------
673 // Counter values for event throttling
674 // ----------------------------------------------------------------------
675
677 FwIndexType m_FileWriteErrorThrottle;
678
680 FwIndexType m_InvalidReceiveModeThrottle;
681
683 FwIndexType m_PacketOutOfBoundsThrottle;
684
686 FwIndexType m_PacketOutOfOrderThrottle;
687
689 FwIndexType m_PacketDuplicateThrottle;
690
691 };
692
693}
694
695#endif
I32 FwEnumStoreType
Definition FpConfig.h:64
PlatformSizeType FwSizeType
Definition FpConfig.h:35
PlatformIndexType FwIndexType
Definition FpConfig.h:25
C++-compatible configuration header for fprime configuration.
void init()
Object initializer.
Definition ObjBase.cpp:27