F´ Flight Software - C/C++ Documentation
A framework for building embedded system applications to NASA flight quality standards.
TlmPacketizerComponentAc.hpp
Go to the documentation of this file.
1 // ======================================================================
2 // \title TlmPacketizerComponentAc.hpp
3 // \author Generated by fpp-to-cpp
4 // \brief hpp file for TlmPacketizer component base class
5 // ======================================================================
6 
7 #ifndef Svc_TlmPacketizerComponentAc_HPP
8 #define Svc_TlmPacketizerComponentAc_HPP
9 
10 #include <atomic>
11 
12 #include "Fw/Cmd/CmdPortAc.hpp"
13 #include "Fw/Cmd/CmdRegPortAc.hpp"
15 #include "Fw/Cmd/CmdString.hpp"
16 #include "Fw/Com/ComPortAc.hpp"
18 #include "Fw/FPrimeBasicTypes.hpp"
19 #include "Fw/Log/LogPortAc.hpp"
20 #include "Fw/Log/LogString.hpp"
21 #if FW_ENABLE_TEXT_LOGGING == 1
22 #include "Fw/Log/LogTextPortAc.hpp"
23 #endif
26 #include "Fw/Time/TimePortAc.hpp"
27 #include "Fw/Tlm/TlmGetPortAc.hpp"
28 #include "Fw/Tlm/TlmPortAc.hpp"
29 #include "Fw/Tlm/TlmString.hpp"
31 #include "Svc/Ping/PingPortAc.hpp"
43 
44 namespace Svc {
45 
52  {
53 
54  // ----------------------------------------------------------------------
55  // Friend classes
56  // ----------------------------------------------------------------------
57 
61  friend class TlmPacketizerTester;
62 
63  protected:
64 
65  // ----------------------------------------------------------------------
66  // Constants
67  // ----------------------------------------------------------------------
68 
70  enum {
72  };
73 
75  enum {
81  };
82 
84  enum {
91  };
92 
94  enum {
97  };
98 
100  enum {
107  };
108 
110  enum {
117  };
118 
120  enum {
123  };
124 
125  public:
126 
127  // ----------------------------------------------------------------------
128  // Component initialization
129  // ----------------------------------------------------------------------
130 
132  void init(
133  FwSizeType queueDepth,
134  FwEnumStoreType instance = 0
135  );
136 
137  public:
138 
139  // ----------------------------------------------------------------------
140  // Getters for special input ports
141  // ----------------------------------------------------------------------
142 
147  FwIndexType portNum
148  );
149 
150  public:
151 
152  // ----------------------------------------------------------------------
153  // Getters for typed input ports
154  // ----------------------------------------------------------------------
155 
160  FwIndexType portNum
161  );
162 
167  FwIndexType portNum
168  );
169 
174  FwIndexType portNum
175  );
176 
181  FwIndexType portNum
182  );
183 
188  FwIndexType portNum
189  );
190 
191  public:
192 
193  // ----------------------------------------------------------------------
194  // Connect input ports to special output ports
195  // ----------------------------------------------------------------------
196 
199  FwIndexType portNum,
200  Fw::InputCmdRegPort* port
201  );
202 
205  FwIndexType portNum,
207  );
208 
211  FwIndexType portNum,
212  Fw::InputLogPort* port
213  );
214 
215 #if FW_ENABLE_TEXT_LOGGING == 1
216 
218  void set_textEventOut_OutputPort(
219  FwIndexType portNum,
220  Fw::InputLogTextPort* port
221  );
222 
223 #endif
224 
227  FwIndexType portNum,
228  Fw::InputTimePort* port
229  );
230 
233  FwIndexType portNum,
234  Fw::InputTlmPort* port
235  );
236 
237  public:
238 
239  // ----------------------------------------------------------------------
240  // Connect typed input ports to typed output ports
241  // ----------------------------------------------------------------------
242 
245  FwIndexType portNum,
246  Fw::InputComPort* port
247  );
248 
251  FwIndexType portNum,
252  Svc::InputPingPort* port
253  );
254 
255 #if FW_PORT_SERIALIZATION
256 
257  public:
258 
259  // ----------------------------------------------------------------------
260  // Connect serial input ports to special output ports
261  // ----------------------------------------------------------------------
262 
265  FwIndexType portNum,
266  Fw::InputSerializePort* port
267  );
268 
271  FwIndexType portNum,
272  Fw::InputSerializePort* port
273  );
274 
277  FwIndexType portNum,
278  Fw::InputSerializePort* port
279  );
280 
281 #if FW_ENABLE_TEXT_LOGGING == 1
282 
284  void set_textEventOut_OutputPort(
285  FwIndexType portNum,
286  Fw::InputSerializePort* port
287  );
288 
289 #endif
290 
293  FwIndexType portNum,
294  Fw::InputSerializePort* port
295  );
296 
299  FwIndexType portNum,
300  Fw::InputSerializePort* port
301  );
302 
303 #endif
304 
305 #if FW_PORT_SERIALIZATION
306 
307  public:
308 
309  // ----------------------------------------------------------------------
310  // Connect serial input ports to typed output ports
311  // ----------------------------------------------------------------------
312 
315  FwIndexType portNum,
316  Fw::InputSerializePort* port
317  );
318 
321  FwIndexType portNum,
322  Fw::InputSerializePort* port
323  );
324 
325 #endif
326 
327  public:
328 
329  // ----------------------------------------------------------------------
330  // Command registration
331  // ----------------------------------------------------------------------
332 
336  void regCommands();
337 
338  protected:
339 
340  // ----------------------------------------------------------------------
341  // Component construction and destruction
342  // ----------------------------------------------------------------------
343 
346  const char* compName = ""
347  );
348 
350  virtual ~TlmPacketizerComponentBase();
351 
352  protected:
353 
354  // ----------------------------------------------------------------------
355  // Getters for numbers of special input ports
356  // ----------------------------------------------------------------------
357 
362  return NUM_CMDIN_INPUT_PORTS;
363  }
364 
365  protected:
366 
367  // ----------------------------------------------------------------------
368  // Getters for numbers of typed input ports
369  // ----------------------------------------------------------------------
370 
374  static constexpr FwIndexType getNum_Run_InputPorts() {
375  return NUM_RUN_INPUT_PORTS;
376  }
377 
382  return NUM_TLMGET_INPUT_PORTS;
383  }
384 
390  }
391 
397  }
398 
403  return NUM_PINGIN_INPUT_PORTS;
404  }
405 
406  protected:
407 
408  // ----------------------------------------------------------------------
409  // Getters for numbers of special output ports
410  // ----------------------------------------------------------------------
411 
417  }
418 
424  }
425 
431  }
432 
433 #if FW_ENABLE_TEXT_LOGGING == 1
434 
438  static constexpr FwIndexType getNum_textEventOut_OutputPorts() {
440  }
441 
442 #endif
443 
449  }
450 
456  }
457 
458  protected:
459 
460  // ----------------------------------------------------------------------
461  // Getters for numbers of typed output ports
462  // ----------------------------------------------------------------------
463 
469  }
470 
476  }
477 
478  protected:
479 
480  // ----------------------------------------------------------------------
481  // Connection status queries for special output ports
482  // ----------------------------------------------------------------------
483 
488  FwIndexType portNum
489  );
490 
495  FwIndexType portNum
496  );
497 
502  FwIndexType portNum
503  );
504 
505 #if FW_ENABLE_TEXT_LOGGING == 1
506 
510  bool isConnected_textEventOut_OutputPort(
511  FwIndexType portNum
512  );
513 
514 #endif
515 
520  FwIndexType portNum
521  );
522 
527  FwIndexType portNum
528  );
529 
530  protected:
531 
532  // ----------------------------------------------------------------------
533  // Connection status queries for typed output ports
534  // ----------------------------------------------------------------------
535 
540  FwIndexType portNum
541  );
542 
547  FwIndexType portNum
548  );
549 
550  protected:
551 
552  // ----------------------------------------------------------------------
553  // Handlers to implement for typed input ports
554  // ----------------------------------------------------------------------
555 
557  virtual void Run_handler(
558  FwIndexType portNum,
559  U32 context
560  ) = 0;
561 
564  FwIndexType portNum,
565  FwChanIdType id,
566  Fw::Time& timeTag,
567  Fw::TlmBuffer& val
568  ) = 0;
571 
573  virtual void TlmRecv_handler(
574  FwIndexType portNum,
575  FwChanIdType id,
576  Fw::Time& timeTag,
577  Fw::TlmBuffer& val
578  ) = 0;
579 
581  virtual void controlIn_handler(
582  FwIndexType portNum,
583  const Svc::TelemetrySection& section,
584  const Fw::Enabled& enabled
585  ) = 0;
586 
588  virtual void pingIn_handler(
589  FwIndexType portNum,
590  U32 key
591  ) = 0;
592 
593  protected:
594 
595  // ----------------------------------------------------------------------
596  // Port handler base-class functions for typed input ports
597  //
598  // Call these functions directly to bypass the corresponding ports
599  // ----------------------------------------------------------------------
600 
602  void Run_handlerBase(
603  FwIndexType portNum,
604  U32 context
605  );
606 
609  FwIndexType portNum,
610  FwChanIdType id,
611  Fw::Time& timeTag,
612  Fw::TlmBuffer& val
613  );
616 
618  void TlmRecv_handlerBase(
619  FwIndexType portNum,
620  FwChanIdType id,
621  Fw::Time& timeTag,
622  Fw::TlmBuffer& val
623  );
624 
627  FwIndexType portNum,
628  const Svc::TelemetrySection& section,
629  const Fw::Enabled& enabled
630  );
631 
633  void pingIn_handlerBase(
634  FwIndexType portNum,
635  U32 key
636  );
637 
638  protected:
639 
640  // ----------------------------------------------------------------------
641  // Pre-message hooks for typed async input ports
642  //
643  // Each of these functions is invoked just before processing a message
644  // on the corresponding port. By default, they do nothing. You can
645  // override them to provide specific pre-message behavior.
646  // ----------------------------------------------------------------------
647 
649  virtual void Run_preMsgHook(
650  FwIndexType portNum,
651  U32 context
652  );
653 
655  virtual void controlIn_preMsgHook(
656  FwIndexType portNum,
657  const Svc::TelemetrySection& section,
658  const Fw::Enabled& enabled
659  );
660 
662  virtual void pingIn_preMsgHook(
663  FwIndexType portNum,
664  U32 key
665  );
666 
667  protected:
668 
669  // ----------------------------------------------------------------------
670  // Invocation functions for typed output ports
671  // ----------------------------------------------------------------------
672 
674  void PktSend_out(
675  FwIndexType portNum,
676  Fw::ComBuffer& data,
677  U32 context
678  );
679 
681  void pingOut_out(
682  FwIndexType portNum,
683  U32 key
684  );
685 
686  protected:
687 
688  // ----------------------------------------------------------------------
689  // Command response
690  // ----------------------------------------------------------------------
691 
693  void cmdResponse_out(
694  FwOpcodeType opCode,
695  U32 cmdSeq,
696  Fw::CmdResponse response
697  );
698 
699  protected:
700 
701  // ----------------------------------------------------------------------
702  // Command handlers to implement
703  // ----------------------------------------------------------------------
704 
708  virtual void SET_LEVEL_cmdHandler(
709  FwOpcodeType opCode,
710  U32 cmdSeq,
711  FwChanIdType level
712  ) = 0;
713 
717  virtual void SEND_PKT_cmdHandler(
718  FwOpcodeType opCode,
719  U32 cmdSeq,
720  U32 id,
721  Svc::TelemetrySection section
722  ) = 0;
723 
727  virtual void ENABLE_SECTION_cmdHandler(
728  FwOpcodeType opCode,
729  U32 cmdSeq,
730  Svc::TelemetrySection section,
731  Fw::Enabled enable
732  ) = 0;
733 
737  virtual void ENABLE_GROUP_cmdHandler(
738  FwOpcodeType opCode,
739  U32 cmdSeq,
740  Svc::TelemetrySection section,
741  FwChanIdType tlmGroup,
742  Fw::Enabled enable
743  ) = 0;
744 
748  virtual void FORCE_GROUP_cmdHandler(
749  FwOpcodeType opCode,
750  U32 cmdSeq,
751  Svc::TelemetrySection section,
752  FwChanIdType tlmGroup,
753  Fw::Enabled enable
754  ) = 0;
755 
760  FwOpcodeType opCode,
761  U32 cmdSeq,
762  Svc::TelemetrySection section,
763  FwChanIdType tlmGroup,
764  Svc::TlmPacketizer_RateLogic rateLogic,
765  U32 minDelta,
766  U32 maxDelta
767  ) = 0;
768 
769  protected:
770 
771  // ----------------------------------------------------------------------
772  // Command handler base-class functions
773  //
774  // Call these functions directly to bypass the command input port
775  // ----------------------------------------------------------------------
776 
781  FwOpcodeType opCode,
782  U32 cmdSeq,
783  Fw::CmdArgBuffer& args
784  );
785 
790  FwOpcodeType opCode,
791  U32 cmdSeq,
792  Fw::CmdArgBuffer& args
793  );
794 
799  FwOpcodeType opCode,
800  U32 cmdSeq,
801  Fw::CmdArgBuffer& args
802  );
803 
808  FwOpcodeType opCode,
809  U32 cmdSeq,
810  Fw::CmdArgBuffer& args
811  );
812 
817  FwOpcodeType opCode,
818  U32 cmdSeq,
819  Fw::CmdArgBuffer& args
820  );
821 
826  FwOpcodeType opCode,
827  U32 cmdSeq,
828  Fw::CmdArgBuffer& args
829  );
830 
831  protected:
832 
833  // ----------------------------------------------------------------------
834  // Pre-message hooks for async commands
835  //
836  // Each of these functions is invoked just before processing the
837  // corresponding command. By default they do nothing. You can
838  // override them to provide specific pre-command behavior.
839  // ----------------------------------------------------------------------
840 
842  virtual void SET_LEVEL_preMsgHook(
843  FwOpcodeType opCode,
844  U32 cmdSeq
845  );
846 
848  virtual void SEND_PKT_preMsgHook(
849  FwOpcodeType opCode,
850  U32 cmdSeq
851  );
852 
854  virtual void ENABLE_SECTION_preMsgHook(
855  FwOpcodeType opCode,
856  U32 cmdSeq
857  );
858 
860  virtual void ENABLE_GROUP_preMsgHook(
861  FwOpcodeType opCode,
862  U32 cmdSeq
863  );
864 
866  virtual void FORCE_GROUP_preMsgHook(
867  FwOpcodeType opCode,
868  U32 cmdSeq
869  );
870 
873  FwOpcodeType opCode,
874  U32 cmdSeq
875  );
876 
877  protected:
878 
879  // ----------------------------------------------------------------------
880  // Event logging functions
881  // ----------------------------------------------------------------------
882 
887  FwChanIdType Id
888  ) const;
889 
894  FwChanIdType id
895  ) const;
896 
901  FwChanIdType level,
902  FwChanIdType max
903  ) const;
904 
909  U32 id
910  ) const;
911 
916  U32 id
917  ) const;
918 
921  Svc::TelemetrySection section,
922  Fw::Enabled enable
923  ) const;
924 
925  protected:
926 
927  // ----------------------------------------------------------------------
928  // Telemetry write functions
929  // ----------------------------------------------------------------------
930 
936  Fw::Time _tlmTime = Fw::Time()
937  ) const;
938 
942  Fw::Time _tlmTime = Fw::Time()
943  ) const;
944 
945  protected:
946 
947  // ----------------------------------------------------------------------
948  // Time
949  // ----------------------------------------------------------------------
950 
954  Fw::Time getTime() const;
955 
956  private:
957 
958  // ----------------------------------------------------------------------
959  // Message dispatch functions
960  // ----------------------------------------------------------------------
961 
963  virtual MsgDispatchStatus doDispatch();
964 
965  private:
966 
967  // ----------------------------------------------------------------------
968  // Calls for messages received on special input ports
969  // ----------------------------------------------------------------------
970 
972  static void m_p_cmdIn_in(
973  Fw::PassiveComponentBase* callComp,
974  FwIndexType portNum,
975  FwOpcodeType opCode,
976  U32 cmdSeq,
977  Fw::CmdArgBuffer& args
978  );
979 
980  private:
981 
982  // ----------------------------------------------------------------------
983  // Calls for messages received on typed input ports
984  // ----------------------------------------------------------------------
985 
987  static void m_p_Run_in(
988  Fw::PassiveComponentBase* callComp,
989  FwIndexType portNum,
990  U32 context
991  );
992 
994  static Fw::TlmValid m_p_TlmGet_in(
995  Fw::PassiveComponentBase* callComp,
996  FwIndexType portNum,
997  FwChanIdType id,
998  Fw::Time& timeTag,
999  Fw::TlmBuffer& val
1000  );
1003 
1005  static void m_p_TlmRecv_in(
1006  Fw::PassiveComponentBase* callComp,
1007  FwIndexType portNum,
1008  FwChanIdType id,
1009  Fw::Time& timeTag,
1010  Fw::TlmBuffer& val
1011  );
1012 
1014  static void m_p_controlIn_in(
1015  Fw::PassiveComponentBase* callComp,
1016  FwIndexType portNum,
1017  const Svc::TelemetrySection& section,
1018  const Fw::Enabled& enabled
1019  );
1020 
1022  static void m_p_pingIn_in(
1023  Fw::PassiveComponentBase* callComp,
1024  FwIndexType portNum,
1025  U32 key
1026  );
1027 
1028  private:
1029 
1030  // ----------------------------------------------------------------------
1031  // Special input ports
1032  // ----------------------------------------------------------------------
1033 
1035  Fw::InputCmdPort m_cmdIn_InputPort[NUM_CMDIN_INPUT_PORTS];
1036 
1037  private:
1038 
1039  // ----------------------------------------------------------------------
1040  // Typed input ports
1041  // ----------------------------------------------------------------------
1042 
1044  Svc::InputSchedPort m_Run_InputPort[NUM_RUN_INPUT_PORTS];
1045 
1047  Fw::InputTlmGetPort m_TlmGet_InputPort[NUM_TLMGET_INPUT_PORTS];
1048 
1050  Fw::InputTlmPort m_TlmRecv_InputPort[NUM_TLMRECV_INPUT_PORTS];
1051 
1054 
1056  Svc::InputPingPort m_pingIn_InputPort[NUM_PINGIN_INPUT_PORTS];
1057 
1058  private:
1059 
1060  // ----------------------------------------------------------------------
1061  // Special output ports
1062  // ----------------------------------------------------------------------
1063 
1065  Fw::OutputCmdRegPort m_cmdRegOut_OutputPort[NUM_CMDREGOUT_OUTPUT_PORTS];
1066 
1068  Fw::OutputCmdResponsePort m_cmdResponseOut_OutputPort[NUM_CMDRESPONSEOUT_OUTPUT_PORTS];
1069 
1071  Fw::OutputLogPort m_eventOut_OutputPort[NUM_EVENTOUT_OUTPUT_PORTS];
1072 
1073 #if FW_ENABLE_TEXT_LOGGING == 1
1074 
1076  Fw::OutputLogTextPort m_textEventOut_OutputPort[NUM_TEXTEVENTOUT_OUTPUT_PORTS];
1077 
1078 #endif
1079 
1081  Fw::OutputTimePort m_timeGetOut_OutputPort[NUM_TIMEGETOUT_OUTPUT_PORTS];
1082 
1084  Fw::OutputTlmPort m_tlmOut_OutputPort[NUM_TLMOUT_OUTPUT_PORTS];
1085 
1086  private:
1087 
1088  // ----------------------------------------------------------------------
1089  // Typed output ports
1090  // ----------------------------------------------------------------------
1091 
1093  Fw::OutputComPort m_PktSend_OutputPort[NUM_PKTSEND_OUTPUT_PORTS];
1094 
1096  Svc::OutputPingPort m_pingOut_OutputPort[NUM_PINGOUT_OUTPUT_PORTS];
1097 
1098  };
1099 
1100 }
1101 
1102 #endif
void SEND_PKT_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
Svc::InputEnableSectionPort * get_controlIn_InputPort(FwIndexType portNum)
friend class TlmPacketizerTesterBase
Friend class tester to support autocoded test harness.
void set_PktSend_OutputPort(FwIndexType portNum, Fw::InputComPort *port)
Connect port to PktSend[portNum].
FwIdType FwOpcodeType
The type of a command opcode.
void pingIn_handlerBase(FwIndexType portNum, U32 key)
Handler base-class function for input port pingIn.
PlatformSizeType FwSizeType
void tlmWrite_GroupConfigs(const Svc::TlmPacketizer_SectionConfigs &arg, Fw::Time _tlmTime=Fw::Time()) const
void FORCE_GROUP_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
Fw::InputCmdPort * get_cmdIn_InputPort(FwIndexType portNum)
I32 FwEnumStoreType
static constexpr FwIndexType getNum_cmdResponseOut_OutputPorts()
virtual void TlmRecv_handler(FwIndexType portNum, FwChanIdType id, Fw::Time &timeTag, Fw::TlmBuffer &val)=0
Handler for input port TlmRecv.
void Run_handlerBase(FwIndexType portNum, U32 context)
Handler base-class function for input port Run.
static constexpr FwIndexType getNum_PktSend_OutputPorts()
Input EnableSection port.
void log_WARNING_LO_NoChan(FwChanIdType Id) const
static constexpr FwIndexType getNum_pingIn_InputPorts()
virtual void FORCE_GROUP_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, Svc::TelemetrySection section, FwChanIdType tlmGroup, Fw::Enabled enable)=0
void TlmRecv_handlerBase(FwIndexType portNum, FwChanIdType id, Fw::Time &timeTag, Fw::TlmBuffer &val)
Handler base-class function for input port TlmRecv.
void controlIn_handlerBase(FwIndexType portNum, const Svc::TelemetrySection &section, const Fw::Enabled &enabled)
Handler base-class function for input port controlIn.
void PktSend_out(FwIndexType portNum, Fw::ComBuffer &data, U32 context)
Invoke output port PktSend.
virtual void controlIn_handler(FwIndexType portNum, const Svc::TelemetrySection &section, const Fw::Enabled &enabled)=0
Handler for input port controlIn.
bool isConnected_tlmOut_OutputPort(FwIndexType portNum)
virtual void SEND_PKT_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, U32 id, Svc::TelemetrySection section)=0
void cmdResponse_out(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdResponse response)
Emit command response.
Enum representing a command response.
virtual void pingIn_preMsgHook(FwIndexType portNum, U32 key)
Pre-message hook for async input port pingIn.
virtual void SET_LEVEL_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, FwChanIdType level)=0
virtual ~TlmPacketizerComponentBase()
Destroy TlmPacketizerComponentBase object.
void tlmWrite_SectionEnabled(const Svc::TlmPacketizer_SectionEnabled &arg, Fw::Time _tlmTime=Fw::Time()) const
Write telemetry channel SectionEnabled.
void set_pingOut_OutputPort(FwIndexType portNum, Svc::InputPingPort *port)
Connect port to pingOut[portNum].
void init()
Object initializer.
Definition: ObjBase.cpp:24
virtual void FORCE_GROUP_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command FORCE_GROUP.
Svc::InputPingPort * get_pingIn_InputPort(FwIndexType portNum)
static constexpr FwIndexType getNum_cmdRegOut_OutputPorts()
Fw::InputTlmGetPort * get_TlmGet_InputPort(FwIndexType portNum)
virtual void CONFIGURE_GROUP_RATES_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CONFIGURE_GROUP_RATES.
virtual void Run_preMsgHook(FwIndexType portNum, U32 context)
Pre-message hook for async input port Run.
static constexpr FwIndexType getNum_timeGetOut_OutputPorts()
Enable / disable telemetry of a group on a section.
virtual void ENABLE_GROUP_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, Svc::TelemetrySection section, FwChanIdType tlmGroup, Fw::Enabled enable)=0
FwIdType FwChanIdType
The type of a telemetry channel identifier.
virtual void CONFIGURE_GROUP_RATES_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, Svc::TelemetrySection section, FwChanIdType tlmGroup, Svc::TlmPacketizer_RateLogic rateLogic, U32 minDelta, U32 maxDelta)=0
virtual void pingIn_handler(FwIndexType portNum, U32 key)=0
Handler for input port pingIn.
virtual void ENABLE_GROUP_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command ENABLE_GROUP.
Force telemetering a group on a section, even if disabled.
bool isConnected_cmdRegOut_OutputPort(FwIndexType portNum)
void set_eventOut_OutputPort(FwIndexType portNum, Fw::InputLogPort *port)
Connect port to eventOut[portNum].
static constexpr FwIndexType getNum_tlmOut_OutputPorts()
virtual void ENABLE_SECTION_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, Svc::TelemetrySection section, Fw::Enabled enable)=0
void set_tlmOut_OutputPort(FwIndexType portNum, Fw::InputTlmPort *port)
Connect port to tlmOut[portNum].
Enabled and disabled states.
friend class TlmPacketizerTester
Friend class tester implementation to support white-box testing.
Fw::TlmValid TlmGet_handlerBase(FwIndexType portNum, FwChanIdType id, Fw::Time &timeTag, Fw::TlmBuffer &val)
Handler base-class function for input port TlmGet.
virtual void Run_handler(FwIndexType portNum, U32 context)=0
Handler for input port Run.
Enable / disable telemetry of a group on a section.
static constexpr FwIndexType getNum_eventOut_OutputPorts()
void ENABLE_GROUP_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void log_WARNING_LO_SectionUnconfigurable(Svc::TelemetrySection section, Fw::Enabled enable) const
Log event SectionUnconfigurable.
void log_WARNING_LO_MaxLevelExceed(FwChanIdType level, FwChanIdType max) const
virtual void controlIn_preMsgHook(FwIndexType portNum, const Svc::TelemetrySection &section, const Fw::Enabled &enabled)
Pre-message hook for async input port controlIn.
PlatformIndexType FwIndexType
TlmPacketizerComponentBase(const char *compName="")
Construct TlmPacketizerComponentBase object.
void log_ACTIVITY_HI_LevelSet(FwChanIdType id) const
void set_timeGetOut_OutputPort(FwIndexType portNum, Fw::InputTimePort *port)
Connect port to timeGetOut[portNum].
void ENABLE_SECTION_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
virtual void SEND_PKT_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command SEND_PKT.
RateGroupDivider component implementation.
bool isConnected_PktSend_OutputPort(FwIndexType portNum)
Svc::InputSchedPort * get_Run_InputPort(FwIndexType portNum)
bool isConnected_pingOut_OutputPort(FwIndexType portNum)
static constexpr FwIndexType getNum_TlmGet_InputPorts()
Fw::InputTlmPort * get_TlmRecv_InputPort(FwIndexType portNum)
Telemetry channel is not part of a telemetry packet.
static constexpr FwIndexType getNum_controlIn_InputPorts()
virtual void ENABLE_SECTION_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command ENABLE_SECTION.
bool isConnected_timeGetOut_OutputPort(FwIndexType portNum)
Set Min and Max Deltas between successive packets.
void regCommands()
Register commands with the Command Dispatcher.
bool isConnected_eventOut_OutputPort(FwIndexType portNum)
bool isConnected_cmdResponseOut_OutputPort(FwIndexType portNum)
void CONFIGURE_GROUP_RATES_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void SET_LEVEL_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
virtual void SET_LEVEL_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command SET_LEVEL.
static constexpr FwIndexType getNum_pingOut_OutputPorts()
static constexpr FwIndexType getNum_Run_InputPorts()
void set_cmdResponseOut_OutputPort(FwIndexType portNum, Fw::InputCmdResponsePort *port)
Connect port to cmdResponseOut[portNum].
void pingOut_out(FwIndexType portNum, U32 key)
Invoke output port pingOut.
virtual Fw::TlmValid TlmGet_handler(FwIndexType portNum, FwChanIdType id, Fw::Time &timeTag, Fw::TlmBuffer &val)=0
Handler for input port TlmGet.
static constexpr FwIndexType getNum_TlmRecv_InputPorts()
void set_cmdRegOut_OutputPort(FwIndexType portNum, Fw::InputCmdRegPort *port)
Connect port to cmdRegOut[portNum].
Auto-generated base for TlmPacketizer component.
static constexpr FwIndexType getNum_cmdIn_InputPorts()