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
SystemResourcesComponentAc.hpp
Go to the documentation of this file.
1// ======================================================================
2// \title SystemResourcesComponentAc.hpp
3// \author Generated by fpp-to-cpp
4// \brief hpp file for SystemResources component base class
5// ======================================================================
6
7#ifndef Svc_SystemResourcesComponentAc_HPP
8#define Svc_SystemResourcesComponentAc_HPP
9
10#include "FpConfig.hpp"
11#include "Fw/Cmd/CmdPortAc.hpp"
14#include "Fw/Cmd/CmdString.hpp"
16#include "Fw/Log/LogPortAc.hpp"
17#include "Fw/Log/LogString.hpp"
18#if FW_ENABLE_TEXT_LOGGING == 1
20#endif
24#include "Fw/Tlm/TlmPortAc.hpp"
25#include "Fw/Tlm/TlmString.hpp"
26#include "Os/Mutex.hpp"
29
30namespace Svc {
31
36 {
37
38 // ----------------------------------------------------------------------
39 // Friend classes
40 // ----------------------------------------------------------------------
41
44
45 PROTECTED:
46
47 // ----------------------------------------------------------------------
48 // Constants
49 // ----------------------------------------------------------------------
50
52 enum {
54 };
55
57 enum {
59 };
60
62 enum {
69 };
70
72 enum {
75 };
76
78 enum {
81 };
82
84 enum {
108 };
109
110 public:
111
112 // ----------------------------------------------------------------------
113 // Component initialization
114 // ----------------------------------------------------------------------
115
117 void init(
118 NATIVE_INT_TYPE instance = 0
119 );
120
121 public:
122
123 // ----------------------------------------------------------------------
124 // Getters for special input ports
125 // ----------------------------------------------------------------------
126
131 NATIVE_INT_TYPE portNum
132 );
133
134 public:
135
136 // ----------------------------------------------------------------------
137 // Getters for typed input ports
138 // ----------------------------------------------------------------------
139
144 NATIVE_INT_TYPE portNum
145 );
146
147 public:
148
149 // ----------------------------------------------------------------------
150 // Connect input ports to special output ports
151 // ----------------------------------------------------------------------
152
155 NATIVE_INT_TYPE portNum,
157 );
158
161 NATIVE_INT_TYPE portNum,
163 );
164
167 NATIVE_INT_TYPE portNum,
168 Fw::InputLogPort* port
169 );
170
171#if FW_ENABLE_TEXT_LOGGING == 1
172
174 void set_LogText_OutputPort(
175 NATIVE_INT_TYPE portNum,
177 );
178
179#endif
180
183 NATIVE_INT_TYPE portNum,
184 Fw::InputTimePort* port
185 );
186
189 NATIVE_INT_TYPE portNum,
190 Fw::InputTlmPort* port
191 );
192
193#if FW_PORT_SERIALIZATION
194
195 public:
196
197 // ----------------------------------------------------------------------
198 // Connect serial input ports to special output ports
199 // ----------------------------------------------------------------------
200
203 NATIVE_INT_TYPE portNum,
204 Fw::InputSerializePort* port
205 );
206
209 NATIVE_INT_TYPE portNum,
210 Fw::InputSerializePort* port
211 );
212
215 NATIVE_INT_TYPE portNum,
216 Fw::InputSerializePort* port
217 );
218
219#if FW_ENABLE_TEXT_LOGGING == 1
220
222 void set_LogText_OutputPort(
223 NATIVE_INT_TYPE portNum,
224 Fw::InputSerializePort* port
225 );
226
227#endif
228
231 NATIVE_INT_TYPE portNum,
232 Fw::InputSerializePort* port
233 );
234
237 NATIVE_INT_TYPE portNum,
238 Fw::InputSerializePort* port
239 );
240
241#endif
242
243 public:
244
245 // ----------------------------------------------------------------------
246 // Command registration
247 // ----------------------------------------------------------------------
248
252 void regCommands();
253
254 PROTECTED:
255
256 // ----------------------------------------------------------------------
257 // Component construction and destruction
258 // ----------------------------------------------------------------------
259
262 const char* compName = ""
263 );
264
267
268 PROTECTED:
269
270 // ----------------------------------------------------------------------
271 // Getters for numbers of special input ports
272 // ----------------------------------------------------------------------
273
278
279 PROTECTED:
280
281 // ----------------------------------------------------------------------
282 // Getters for numbers of typed input ports
283 // ----------------------------------------------------------------------
284
289
290 PROTECTED:
291
292 // ----------------------------------------------------------------------
293 // Getters for numbers of special output ports
294 // ----------------------------------------------------------------------
295
300
305
310
311#if FW_ENABLE_TEXT_LOGGING == 1
312
316 NATIVE_INT_TYPE getNum_LogText_OutputPorts() const;
317
318#endif
319
324
329
330 PROTECTED:
331
332 // ----------------------------------------------------------------------
333 // Connection status queries for special output ports
334 // ----------------------------------------------------------------------
335
340 NATIVE_INT_TYPE portNum
341 );
342
347 NATIVE_INT_TYPE portNum
348 );
349
354 NATIVE_INT_TYPE portNum
355 );
356
357#if FW_ENABLE_TEXT_LOGGING == 1
358
362 bool isConnected_LogText_OutputPort(
363 NATIVE_INT_TYPE portNum
364 );
365
366#endif
367
372 NATIVE_INT_TYPE portNum
373 );
374
379 NATIVE_INT_TYPE portNum
380 );
381
382 PROTECTED:
383
384 // ----------------------------------------------------------------------
385 // Handlers to implement for typed input ports
386 // ----------------------------------------------------------------------
387
389 virtual void run_handler(
390 NATIVE_INT_TYPE portNum,
391 NATIVE_UINT_TYPE context
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
403 void run_handlerBase(
404 NATIVE_INT_TYPE portNum,
405 NATIVE_UINT_TYPE context
406 );
407
408 PROTECTED:
409
410 // ----------------------------------------------------------------------
411 // Command response
412 // ----------------------------------------------------------------------
413
415 void cmdResponse_out(
416 FwOpcodeType opCode,
417 U32 cmdSeq,
418 Fw::CmdResponse response
419 );
420
421 PROTECTED:
422
423 // ----------------------------------------------------------------------
424 // Command handlers to implement
425 // ----------------------------------------------------------------------
426
430 virtual void ENABLE_cmdHandler(
431 FwOpcodeType opCode,
432 U32 cmdSeq,
434 ) = 0;
435
439 virtual void VERSION_cmdHandler(
440 FwOpcodeType opCode,
441 U32 cmdSeq
442 ) = 0;
443
444 PROTECTED:
445
446 // ----------------------------------------------------------------------
447 // Command handler base-class functions
448 //
449 // Call these functions directly to bypass the command input port
450 // ----------------------------------------------------------------------
451
456 FwOpcodeType opCode,
457 U32 cmdSeq,
458 Fw::CmdArgBuffer& args
459 );
460
465 FwOpcodeType opCode,
466 U32 cmdSeq,
467 Fw::CmdArgBuffer& args
468 );
469
470 PROTECTED:
471
472 // ----------------------------------------------------------------------
473 // Event logging functions
474 // ----------------------------------------------------------------------
475
480 const Fw::LogStringArg& version
481 );
482
487 const Fw::LogStringArg& version
488 );
489
490 PROTECTED:
491
492 // ----------------------------------------------------------------------
493 // Telemetry write functions
494 // ----------------------------------------------------------------------
495
500 U64 arg,
501 Fw::Time _tlmTime = Fw::Time()
502 );
503
508 U64 arg,
509 Fw::Time _tlmTime = Fw::Time()
510 );
511
516 U64 arg,
517 Fw::Time _tlmTime = Fw::Time()
518 );
519
524 U64 arg,
525 Fw::Time _tlmTime = Fw::Time()
526 );
527
531 void tlmWrite_CPU(
532 F32 arg,
533 Fw::Time _tlmTime = Fw::Time()
534 );
535
539 void tlmWrite_CPU_00(
540 F32 arg,
541 Fw::Time _tlmTime = Fw::Time()
542 );
543
547 void tlmWrite_CPU_01(
548 F32 arg,
549 Fw::Time _tlmTime = Fw::Time()
550 );
551
555 void tlmWrite_CPU_02(
556 F32 arg,
557 Fw::Time _tlmTime = Fw::Time()
558 );
559
563 void tlmWrite_CPU_03(
564 F32 arg,
565 Fw::Time _tlmTime = Fw::Time()
566 );
567
571 void tlmWrite_CPU_04(
572 F32 arg,
573 Fw::Time _tlmTime = Fw::Time()
574 );
575
579 void tlmWrite_CPU_05(
580 F32 arg,
581 Fw::Time _tlmTime = Fw::Time()
582 );
583
587 void tlmWrite_CPU_06(
588 F32 arg,
589 Fw::Time _tlmTime = Fw::Time()
590 );
591
595 void tlmWrite_CPU_07(
596 F32 arg,
597 Fw::Time _tlmTime = Fw::Time()
598 );
599
603 void tlmWrite_CPU_08(
604 F32 arg,
605 Fw::Time _tlmTime = Fw::Time()
606 );
607
611 void tlmWrite_CPU_09(
612 F32 arg,
613 Fw::Time _tlmTime = Fw::Time()
614 );
615
619 void tlmWrite_CPU_10(
620 F32 arg,
621 Fw::Time _tlmTime = Fw::Time()
622 );
623
627 void tlmWrite_CPU_11(
628 F32 arg,
629 Fw::Time _tlmTime = Fw::Time()
630 );
631
635 void tlmWrite_CPU_12(
636 F32 arg,
637 Fw::Time _tlmTime = Fw::Time()
638 );
639
643 void tlmWrite_CPU_13(
644 F32 arg,
645 Fw::Time _tlmTime = Fw::Time()
646 );
647
651 void tlmWrite_CPU_14(
652 F32 arg,
653 Fw::Time _tlmTime = Fw::Time()
654 );
655
659 void tlmWrite_CPU_15(
660 F32 arg,
661 Fw::Time _tlmTime = Fw::Time()
662 );
663
668 const Fw::TlmString& arg,
669 Fw::Time _tlmTime = Fw::Time()
670 );
671
676 const Fw::TlmString& arg,
677 Fw::Time _tlmTime = Fw::Time()
678 );
679
680 PROTECTED:
681
682 // ----------------------------------------------------------------------
683 // Time
684 // ----------------------------------------------------------------------
685
690
691 PROTECTED:
692
693 // ----------------------------------------------------------------------
694 // Mutex operations for guarded ports
695 //
696 // You can override these operations to provide more sophisticated
697 // synchronization
698 // ----------------------------------------------------------------------
699
701 virtual void lock();
702
704 virtual void unLock();
705
706 PRIVATE:
707
708 // ----------------------------------------------------------------------
709 // Calls for messages received on special input ports
710 // ----------------------------------------------------------------------
711
713 static void m_p_CmdDisp_in(
714 Fw::PassiveComponentBase* callComp,
715 NATIVE_INT_TYPE portNum,
716 FwOpcodeType opCode,
717 U32 cmdSeq,
718 Fw::CmdArgBuffer& args
719 );
720
721 PRIVATE:
722
723 // ----------------------------------------------------------------------
724 // Calls for messages received on typed input ports
725 // ----------------------------------------------------------------------
726
728 static void m_p_run_in(
729 Fw::PassiveComponentBase* callComp,
730 NATIVE_INT_TYPE portNum,
731 NATIVE_UINT_TYPE context
732 );
733
734 PRIVATE:
735
736 // ----------------------------------------------------------------------
737 // Special input ports
738 // ----------------------------------------------------------------------
739
741 Fw::InputCmdPort m_CmdDisp_InputPort[NUM_CMDDISP_INPUT_PORTS];
742
743 PRIVATE:
744
745 // ----------------------------------------------------------------------
746 // Typed input ports
747 // ----------------------------------------------------------------------
748
751
752 PRIVATE:
753
754 // ----------------------------------------------------------------------
755 // Special output ports
756 // ----------------------------------------------------------------------
757
760
763
765 Fw::OutputLogPort m_Log_OutputPort[NUM_LOG_OUTPUT_PORTS];
766
767#if FW_ENABLE_TEXT_LOGGING == 1
768
771
772#endif
773
775 Fw::OutputTimePort m_Time_OutputPort[NUM_TIME_OUTPUT_PORTS];
776
778 Fw::OutputTlmPort m_Tlm_OutputPort[NUM_TLM_OUTPUT_PORTS];
779
780 PRIVATE:
781
782 // ----------------------------------------------------------------------
783 // Mutexes
784 // ----------------------------------------------------------------------
785
787 Os::Mutex m_guardedPortMutex;
788
789 };
790
791}
792
793#endif
PlatformIntType NATIVE_INT_TYPE
Definition BasicTypes.h:51
float F32
32-bit floating point
Definition BasicTypes.h:45
PlatformUIntType NATIVE_UINT_TYPE
Definition BasicTypes.h:52
U32 FwOpcodeType
Definition FpConfig.h:56
C++-compatible configuration header for fprime configuration.
Enum representing a command response.
void init()
Object initializer.
Definition ObjBase.cpp:27
Auto-generated base for SystemResources component.
void tlmWrite_CPU_01(F32 arg, Fw::Time _tlmTime=Fw::Time())
void cmdResponse_out(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdResponse response)
Emit command response.
@ CHANNELID_FRAMEWORK_VERSION
Channel ID for FRAMEWORK_VERSION.
@ CHANNELID_NON_VOLATILE_TOTAL
Channel ID for NON_VOLATILE_TOTAL.
@ CHANNELID_MEMORY_USED
Channel ID for MEMORY_USED.
@ CHANNELID_PROJECT_VERSION
Channel ID for PROJECT_VERSION.
@ CHANNELID_MEMORY_TOTAL
Channel ID for MEMORY_TOTAL.
@ CHANNELID_NON_VOLATILE_FREE
Channel ID for NON_VOLATILE_FREE.
void tlmWrite_CPU_02(F32 arg, Fw::Time _tlmTime=Fw::Time())
void tlmWrite_CPU_14(F32 arg, Fw::Time _tlmTime=Fw::Time())
void tlmWrite_PROJECT_VERSION(const Fw::TlmString &arg, Fw::Time _tlmTime=Fw::Time())
virtual void unLock()
Unlock the guarded mutex.
void tlmWrite_MEMORY_USED(U64 arg, Fw::Time _tlmTime=Fw::Time())
void tlmWrite_NON_VOLATILE_TOTAL(U64 arg, Fw::Time _tlmTime=Fw::Time())
void log_ACTIVITY_LO_FRAMEWORK_VERSION(const Fw::LogStringArg &version)
void tlmWrite_NON_VOLATILE_FREE(U64 arg, Fw::Time _tlmTime=Fw::Time())
@ OPCODE_ENABLE
A command to enable or disable system resource telemetry.
Fw::InputCmdPort * get_CmdDisp_InputPort(NATIVE_INT_TYPE portNum)
SystemResourcesComponentBase(const char *compName="")
Construct SystemResourcesComponentBase object.
bool isConnected_Time_OutputPort(NATIVE_INT_TYPE portNum)
void tlmWrite_CPU_00(F32 arg, Fw::Time _tlmTime=Fw::Time())
void tlmWrite_CPU_09(F32 arg, Fw::Time _tlmTime=Fw::Time())
void tlmWrite_FRAMEWORK_VERSION(const Fw::TlmString &arg, Fw::Time _tlmTime=Fw::Time())
bool isConnected_CmdReg_OutputPort(NATIVE_INT_TYPE portNum)
Svc::InputSchedPort * get_run_InputPort(NATIVE_INT_TYPE portNum)
void set_Log_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputLogPort *port)
Connect port to Log[portNum].
void log_ACTIVITY_LO_PROJECT_VERSION(const Fw::LogStringArg &version)
bool isConnected_CmdStatus_OutputPort(NATIVE_INT_TYPE portNum)
void ENABLE_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
bool isConnected_Log_OutputPort(NATIVE_INT_TYPE portNum)
@ EVENTID_FRAMEWORK_VERSION
Version of the git repository.
@ EVENTID_PROJECT_VERSION
Version of the git repository.
void set_Tlm_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputTlmPort *port)
Connect port to Tlm[portNum].
bool isConnected_Tlm_OutputPort(NATIVE_INT_TYPE portNum)
void tlmWrite_CPU_10(F32 arg, Fw::Time _tlmTime=Fw::Time())
void tlmWrite_CPU_06(F32 arg, Fw::Time _tlmTime=Fw::Time())
void tlmWrite_CPU_08(F32 arg, Fw::Time _tlmTime=Fw::Time())
void run_handlerBase(NATIVE_INT_TYPE portNum, NATIVE_UINT_TYPE context)
Handler base-class function for input port run.
virtual void VERSION_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
void tlmWrite_MEMORY_TOTAL(U64 arg, Fw::Time _tlmTime=Fw::Time())
void tlmWrite_CPU_07(F32 arg, Fw::Time _tlmTime=Fw::Time())
virtual void lock()
Lock the guarded mutex.
void tlmWrite_CPU_15(F32 arg, Fw::Time _tlmTime=Fw::Time())
void tlmWrite_CPU_04(F32 arg, Fw::Time _tlmTime=Fw::Time())
friend class SystemResourcesComponentBaseFriend
Friend class for white-box testing.
void tlmWrite_CPU(F32 arg, Fw::Time _tlmTime=Fw::Time())
void set_CmdReg_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputCmdRegPort *port)
Connect port to CmdReg[portNum].
void regCommands()
Register commands with the Command Dispatcher.
void tlmWrite_CPU_12(F32 arg, Fw::Time _tlmTime=Fw::Time())
void tlmWrite_CPU_05(F32 arg, Fw::Time _tlmTime=Fw::Time())
virtual void ENABLE_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, Svc::SystemResourceEnabled enable)=0
void tlmWrite_CPU_11(F32 arg, Fw::Time _tlmTime=Fw::Time())
void VERSION_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void set_Time_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputTimePort *port)
Connect port to Time[portNum].
void tlmWrite_CPU_03(F32 arg, Fw::Time _tlmTime=Fw::Time())
virtual void run_handler(NATIVE_INT_TYPE portNum, NATIVE_UINT_TYPE context)=0
Handler for input port run.
virtual ~SystemResourcesComponentBase()
Destroy SystemResourcesComponentBase object.
void tlmWrite_CPU_13(F32 arg, Fw::Time _tlmTime=Fw::Time())
void set_CmdStatus_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputCmdResponsePort *port)
Connect port to CmdStatus[portNum].
#define U64(C)
Definition sha.h:176