F´ Flight Software - C/C++ Documentation
A framework for building embedded system applications to NASA flight quality standards.
PrmDbComponentAc.hpp
Go to the documentation of this file.
1 // ======================================================================
2 // \title PrmDbComponentAc.hpp
3 // \author Generated by fpp-to-cpp
4 // \brief hpp file for PrmDb component base class
5 // ======================================================================
6 
7 #ifndef Svc_PrmDbComponentAc_HPP
8 #define Svc_PrmDbComponentAc_HPP
9 
10 #include <atomic>
11 
12 #include "Fw/Cmd/CmdPortAc.hpp"
13 #include "Fw/Cmd/CmdRegPortAc.hpp"
15 #include "Fw/Cmd/CmdString.hpp"
17 #include "Fw/FPrimeBasicTypes.hpp"
18 #include "Fw/Log/LogPortAc.hpp"
19 #include "Fw/Log/LogString.hpp"
20 #include "Fw/Log/LogTextPortAc.hpp"
21 #if !FW_DIRECT_PORT_CALLS
23 #endif
24 #if !FW_DIRECT_PORT_CALLS
26 #endif
27 #include "Fw/Prm/PrmGetPortAc.hpp"
28 #include "Fw/Prm/PrmSetPortAc.hpp"
29 #include "Fw/Time/TimePortAc.hpp"
30 #include "Os/Mutex.hpp"
31 #include "Svc/Ping/PingPortAc.hpp"
39 
40 namespace Svc {
41 
48  {
49 
50  // ----------------------------------------------------------------------
51  // Friend classes
52  // ----------------------------------------------------------------------
53 
55  friend class PrmDbTesterBase;
57  friend class PrmDbTester;
58 
59  protected:
60 
61  // ----------------------------------------------------------------------
62  // Constants
63  // ----------------------------------------------------------------------
64 
66  enum {
68  };
69 
71  enum {
75  };
76 
78  enum {
84  };
85 
87  enum {
89  };
90 
92  enum {
96  };
97 
99  enum {
113  };
114 
116  enum {
118  };
119 
120  public:
121 
122  // ----------------------------------------------------------------------
123  // Component initialization
124  // ----------------------------------------------------------------------
125 
127  void init(
128  FwSizeType queueDepth,
129  FwEnumStoreType instance = 0
130  );
131 
132 #if !FW_DIRECT_PORT_CALLS
133 
134  public:
135 
136  // ----------------------------------------------------------------------
137  // Getters for special input ports
138  // ----------------------------------------------------------------------
139 
144  FwIndexType portNum
145  );
146 
147 #endif
148 
149 #if !FW_DIRECT_PORT_CALLS
150 
151  public:
152 
153  // ----------------------------------------------------------------------
154  // Getters for typed input ports
155  // ----------------------------------------------------------------------
156 
161  FwIndexType portNum
162  );
163 
168  FwIndexType portNum
169  );
170 
175  FwIndexType portNum
176  );
177 
178 #endif
179 
180 #if !FW_DIRECT_PORT_CALLS
181 
182  public:
183 
184  // ----------------------------------------------------------------------
185  // Connect input ports to special output ports
186  // ----------------------------------------------------------------------
187 
190  FwIndexType portNum,
191  Fw::InputCmdRegPort* port
192  );
193 
196  FwIndexType portNum,
198  );
199 
201  void set_Log_OutputPort(
202  FwIndexType portNum,
203  Fw::InputLogPort* port
204  );
205 
206 #if FW_ENABLE_TEXT_LOGGING == 1
207 
209  void set_LogText_OutputPort(
210  FwIndexType portNum,
211  Fw::InputLogTextPort* port
212  );
213 
214 #endif
215 
217  void set_Time_OutputPort(
218  FwIndexType portNum,
219  Fw::InputTimePort* port
220  );
221 
222 #endif
223 
224 #if !FW_DIRECT_PORT_CALLS
225 
226  public:
227 
228  // ----------------------------------------------------------------------
229  // Connect typed input ports to typed output ports
230  // ----------------------------------------------------------------------
231 
234  FwIndexType portNum,
235  Svc::InputPingPort* port
236  );
237 
238 #endif
239 
240 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION
241 
242  public:
243 
244  // ----------------------------------------------------------------------
245  // Connect serial input ports to special output ports
246  // ----------------------------------------------------------------------
247 
250  FwIndexType portNum,
251  Fw::InputSerializePort* port
252  );
253 
256  FwIndexType portNum,
257  Fw::InputSerializePort* port
258  );
259 
261  void set_Log_OutputPort(
262  FwIndexType portNum,
263  Fw::InputSerializePort* port
264  );
265 
266 #if FW_ENABLE_TEXT_LOGGING == 1
267 
269  void set_LogText_OutputPort(
270  FwIndexType portNum,
271  Fw::InputSerializePort* port
272  );
273 
274 #endif
275 
277  void set_Time_OutputPort(
278  FwIndexType portNum,
279  Fw::InputSerializePort* port
280  );
281 
282 #endif
283 
284 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION
285 
286  public:
287 
288  // ----------------------------------------------------------------------
289  // Connect serial input ports to typed output ports
290  // ----------------------------------------------------------------------
291 
294  FwIndexType portNum,
295  Fw::InputSerializePort* port
296  );
297 
298 #endif
299 
300  public:
301 
302  // ----------------------------------------------------------------------
303  // Command registration
304  // ----------------------------------------------------------------------
305 
309  void regCommands();
310 
311  protected:
312 
313  // ----------------------------------------------------------------------
314  // Component construction and destruction
315  // ----------------------------------------------------------------------
316 
319  const char* compName = ""
320  );
321 
323  virtual ~PrmDbComponentBase();
324 
325  protected:
326 
327  // ----------------------------------------------------------------------
328  // Getters for numbers of special input ports
329  // ----------------------------------------------------------------------
330 
336  }
337 
338  protected:
339 
340  // ----------------------------------------------------------------------
341  // Getters for numbers of typed input ports
342  // ----------------------------------------------------------------------
343 
348  return NUM_GETPRM_INPUT_PORTS;
349  }
350 
355  return NUM_PINGIN_INPUT_PORTS;
356  }
357 
362  return NUM_SETPRM_INPUT_PORTS;
363  }
364 
365  protected:
366 
367  // ----------------------------------------------------------------------
368  // Getters for numbers of special output ports
369  // ----------------------------------------------------------------------
370 
376  }
377 
383  }
384 
388  static constexpr FwIndexType getNum_Log_OutputPorts() {
389  return NUM_LOG_OUTPUT_PORTS;
390  }
391 
392 #if FW_ENABLE_TEXT_LOGGING == 1
393 
397  static constexpr FwIndexType getNum_LogText_OutputPorts() {
399  }
400 
401 #endif
402 
407  return NUM_TIME_OUTPUT_PORTS;
408  }
409 
410  protected:
411 
412  // ----------------------------------------------------------------------
413  // Getters for numbers of typed output ports
414  // ----------------------------------------------------------------------
415 
421  }
422 
423  protected:
424 
425  // ----------------------------------------------------------------------
426  // Connection status queries for special output ports
427  // ----------------------------------------------------------------------
428 
433  FwIndexType portNum
434  ) const;
435 
440  FwIndexType portNum
441  ) const;
442 
447  FwIndexType portNum
448  ) const;
449 
450 #if FW_ENABLE_TEXT_LOGGING == 1
451 
455  bool isConnected_LogText_OutputPort(
456  FwIndexType portNum
457  ) const;
458 
459 #endif
460 
465  FwIndexType portNum
466  ) const;
467 
468  protected:
469 
470  // ----------------------------------------------------------------------
471  // Connection status queries for typed output ports
472  // ----------------------------------------------------------------------
473 
478  FwIndexType portNum
479  ) const;
480 
481 #if FW_DIRECT_PORT_CALLS
482  public:
483 #else
484  protected:
485 #endif
486 
487  // ----------------------------------------------------------------------
488  // Port handler base-class functions for special input ports
489  //
490  // Call these functions directly to bypass the corresponding ports
491  // ----------------------------------------------------------------------
492 
494  void CmdDisp_handlerBase(
495  FwIndexType portNum,
496  FwOpcodeType opCode,
497  U32 cmdSeq,
498  Fw::CmdArgBuffer& args
499  );
500 
501  protected:
502 
503  // ----------------------------------------------------------------------
504  // Handlers to implement for typed input ports
505  // ----------------------------------------------------------------------
506 
509  FwIndexType portNum,
510  FwPrmIdType id,
511  Fw::ParamBuffer& val
512  ) = 0;
514 
516  virtual void pingIn_handler(
517  FwIndexType portNum,
518  U32 key
519  ) = 0;
520 
522  virtual void setPrm_handler(
523  FwIndexType portNum,
524  FwPrmIdType id,
525  Fw::ParamBuffer& val
526  ) = 0;
527 
528 #if FW_DIRECT_PORT_CALLS
529  public:
530 #else
531  protected:
532 #endif
533 
534  // ----------------------------------------------------------------------
535  // Port handler base-class functions for typed input ports
536  //
537  // Call these functions directly to bypass the corresponding ports
538  // ----------------------------------------------------------------------
539 
542  FwIndexType portNum,
543  FwPrmIdType id,
544  Fw::ParamBuffer& val
545  );
547 
549  void pingIn_handlerBase(
550  FwIndexType portNum,
551  U32 key
552  );
553 
555  void setPrm_handlerBase(
556  FwIndexType portNum,
557  FwPrmIdType id,
558  Fw::ParamBuffer& val
559  );
560 
561  protected:
562 
563  // ----------------------------------------------------------------------
564  // Pre-message hooks for typed async input ports
565  //
566  // Each of these functions is invoked just before processing a message
567  // on the corresponding port. By default, they do nothing. You can
568  // override them to provide specific pre-message behavior.
569  // ----------------------------------------------------------------------
570 
572  virtual void pingIn_preMsgHook(
573  FwIndexType portNum,
574  U32 key
575  );
576 
578  virtual void setPrm_preMsgHook(
579  FwIndexType portNum,
580  FwPrmIdType id,
581  Fw::ParamBuffer& val
582  );
583 
584  protected:
585 
586  // ----------------------------------------------------------------------
587  // Invocation functions for typed output ports
588  // ----------------------------------------------------------------------
589 
591  void pingOut_out(
592  FwIndexType portNum,
593  U32 key
594  ) const;
595 
596  protected:
597 
598  // ----------------------------------------------------------------------
599  // Command response
600  // ----------------------------------------------------------------------
601 
603  void cmdResponse_out(
604  FwOpcodeType opCode,
605  U32 cmdSeq,
606  Fw::CmdResponse response
607  );
608 
609  protected:
610 
611  // ----------------------------------------------------------------------
612  // Command handlers to implement
613  // ----------------------------------------------------------------------
614 
618  virtual void PRM_SAVE_FILE_cmdHandler(
619  FwOpcodeType opCode,
620  U32 cmdSeq
621  ) = 0;
622 
626  virtual void PRM_LOAD_FILE_cmdHandler(
627  FwOpcodeType opCode,
628  U32 cmdSeq,
629  const Fw::CmdStringArg& fileName,
630  Svc::PrmDb_Merge merge
631  ) = 0;
632 
636  virtual void PRM_COMMIT_STAGED_cmdHandler(
637  FwOpcodeType opCode,
638  U32 cmdSeq
639  ) = 0;
640 
641  protected:
642 
643  // ----------------------------------------------------------------------
644  // Command handler base-class functions
645  //
646  // Call these functions directly to bypass the command input port
647  // ----------------------------------------------------------------------
648 
653  FwOpcodeType opCode,
654  U32 cmdSeq,
655  Fw::CmdArgBuffer& args
656  );
657 
662  FwOpcodeType opCode,
663  U32 cmdSeq,
664  Fw::CmdArgBuffer& args
665  );
666 
671  FwOpcodeType opCode,
672  U32 cmdSeq,
673  Fw::CmdArgBuffer& args
674  );
675 
676  protected:
677 
678  // ----------------------------------------------------------------------
679  // Pre-message hooks for async commands
680  //
681  // Each of these functions is invoked just before processing the
682  // corresponding command. By default they do nothing. You can
683  // override them to provide specific pre-command behavior.
684  // ----------------------------------------------------------------------
685 
687  virtual void PRM_SAVE_FILE_preMsgHook(
688  FwOpcodeType opCode,
689  U32 cmdSeq
690  );
691 
693  virtual void PRM_LOAD_FILE_preMsgHook(
694  FwOpcodeType opCode,
695  U32 cmdSeq
696  );
697 
699  virtual void PRM_COMMIT_STAGED_preMsgHook(
700  FwOpcodeType opCode,
701  U32 cmdSeq
702  );
703 
704  protected:
705 
706  // ----------------------------------------------------------------------
707  // Event logging functions
708  // ----------------------------------------------------------------------
709 
714  FwPrmIdType Id
715  );
716 
721  FwPrmIdType Id
722  ) const;
723 
728  FwPrmIdType Id
729  ) const;
730 
735  FwPrmIdType Id
736  ) const;
737 
743  I32 record,
744  I32 error
745  ) const;
746 
751  U32 records
752  ) const;
753 
759  I32 record,
760  I32 error
761  ) const;
762 
767  const Fw::StringBase& databaseString,
768  U32 recordsTotal,
769  U32 recordsAdded,
770  U32 recordsUpdated
771  ) const;
772 
777 
782  const Fw::StringBase& databaseStringSrc,
783  const Fw::StringBase& databaseStringDest
784  ) const;
785 
790 
795  Svc::PrmDb_PrmDbFileLoadState currentState,
796  Svc::PrmDb_PrmLoadAction attemptedAction
797  ) const;
798 
803  U32 readCrc,
804  U32 compCrc
805  ) const;
806 
807  protected:
808 
809  // ----------------------------------------------------------------------
810  // Event throttle reset functions
811  // ----------------------------------------------------------------------
812 
815 
816  protected:
817 
818  // ----------------------------------------------------------------------
819  // Time
820  // ----------------------------------------------------------------------
821 
825  Fw::Time getTime() const;
826 
827  protected:
828 
829  // ----------------------------------------------------------------------
830  // Mutex operations for guarded ports
831  //
832  // You can override these operations to provide more sophisticated
833  // synchronization
834  // ----------------------------------------------------------------------
835 
837  virtual void lock();
838 
840  virtual void unLock();
841 
842  private:
843 
844  // ----------------------------------------------------------------------
845  // Message dispatch functions
846  // ----------------------------------------------------------------------
847 
849  virtual MsgDispatchStatus doDispatch();
850 
851  private:
852 
853  // ----------------------------------------------------------------------
854  // Calls for messages received on special input ports
855  // ----------------------------------------------------------------------
856 
858  static void m_p_CmdDisp_in(
859  Fw::PassiveComponentBase* callComp,
860  FwIndexType portNum,
861  FwOpcodeType opCode,
862  U32 cmdSeq,
863  Fw::CmdArgBuffer& args
864  );
865 
866  private:
867 
868  // ----------------------------------------------------------------------
869  // Calls for messages received on typed input ports
870  // ----------------------------------------------------------------------
871 
873  static Fw::ParamValid m_p_getPrm_in(
874  Fw::PassiveComponentBase* callComp,
875  FwIndexType portNum,
876  FwPrmIdType id,
877  Fw::ParamBuffer& val
878  );
880 
882  static void m_p_pingIn_in(
883  Fw::PassiveComponentBase* callComp,
884  FwIndexType portNum,
885  U32 key
886  );
887 
889  static void m_p_setPrm_in(
890  Fw::PassiveComponentBase* callComp,
891  FwIndexType portNum,
892  FwPrmIdType id,
893  Fw::ParamBuffer& val
894  );
895 
896  private:
897 
898  // ----------------------------------------------------------------------
899  // Invocation functions for special output ports
900  // ----------------------------------------------------------------------
901 
903  void CmdReg_out(
904  FwIndexType portNum,
905  FwOpcodeType opCode
906  ) const;
907 
909  void CmdStatus_out(
910  FwIndexType portNum,
911  FwOpcodeType opCode,
912  U32 cmdSeq,
913  const Fw::CmdResponse& response
914  ) const;
915 
917  void Log_out(
918  FwIndexType portNum,
919  FwEventIdType id,
920  Fw::Time& timeTag,
921  const Fw::LogSeverity& severity,
922  Fw::LogBuffer& args
923  ) const;
924 
925 #if FW_ENABLE_TEXT_LOGGING
926 
928  void LogText_out(
929  FwIndexType portNum,
930  FwEventIdType id,
931  Fw::Time& timeTag,
932  const Fw::LogSeverity& severity,
933  Fw::TextLogString& text
934  ) const;
935 
936 #endif
937 
939  void Time_out(
940  FwIndexType portNum,
941  Fw::Time& time
942  ) const;
943 
944 #if !FW_DIRECT_PORT_CALLS
945 
946  private:
947 
948  // ----------------------------------------------------------------------
949  // Special input ports
950  // ----------------------------------------------------------------------
951 
953  Fw::InputCmdPort m_CmdDisp_InputPort[NUM_CMDDISP_INPUT_PORTS];
954 
955 #endif
956 
957 #if !FW_DIRECT_PORT_CALLS
958 
959  private:
960 
961  // ----------------------------------------------------------------------
962  // Typed input ports
963  // ----------------------------------------------------------------------
964 
966  Fw::InputPrmGetPort m_getPrm_InputPort[NUM_GETPRM_INPUT_PORTS];
967 
969  Svc::InputPingPort m_pingIn_InputPort[NUM_PINGIN_INPUT_PORTS];
970 
972  Fw::InputPrmSetPort m_setPrm_InputPort[NUM_SETPRM_INPUT_PORTS];
973 
974 #endif
975 
976 #if !FW_DIRECT_PORT_CALLS
977 
978  private:
979 
980  // ----------------------------------------------------------------------
981  // Special output ports
982  // ----------------------------------------------------------------------
983 
985  Fw::OutputCmdRegPort m_CmdReg_OutputPort[NUM_CMDREG_OUTPUT_PORTS];
986 
989 
991  Fw::OutputLogPort m_Log_OutputPort[NUM_LOG_OUTPUT_PORTS];
992 
993 #if FW_ENABLE_TEXT_LOGGING == 1
994 
996  Fw::OutputLogTextPort m_LogText_OutputPort[NUM_LOGTEXT_OUTPUT_PORTS];
997 
998 #endif
999 
1001  Fw::OutputTimePort m_Time_OutputPort[NUM_TIME_OUTPUT_PORTS];
1002 
1003 #endif
1004 
1005 #if !FW_DIRECT_PORT_CALLS
1006 
1007  private:
1008 
1009  // ----------------------------------------------------------------------
1010  // Typed output ports
1011  // ----------------------------------------------------------------------
1012 
1014  Svc::OutputPingPort m_pingOut_OutputPort[NUM_PINGOUT_OUTPUT_PORTS];
1015 
1016 #endif
1017 
1018  private:
1019 
1020  // ----------------------------------------------------------------------
1021  // Counter values for event throttling
1022  // ----------------------------------------------------------------------
1023 
1025  std::atomic<FwIndexType> m_PrmIdNotFoundThrottle;
1026 
1027  private:
1028 
1029  // ----------------------------------------------------------------------
1030  // Mutexes
1031  // ----------------------------------------------------------------------
1032 
1034  Os::Mutex m_guardedPortMutex;
1035 
1036  };
1037 
1038 }
1039 
1040 #endif
void set_CmdReg_OutputPort(FwIndexType portNum, Fw::InputCmdRegPort *port)
Connect port to CmdReg[portNum].
void regCommands()
Register commands with the Command Dispatcher.
State of parameter DB file load operations.
FwIdType FwOpcodeType
The type of a command opcode.
Fw::ParamValid getPrm_handlerBase(FwIndexType portNum, FwPrmIdType id, Fw::ParamBuffer &val)
Handler base-class function for input port getPrm.
All parameters Copied from one DB to another.
void log_WARNING_LO_PrmIdNotFound_ThrottleClear()
Reset throttle value for PrmIdNotFound.
void pingOut_out(FwIndexType portNum, U32 key) const
Invoke output port pingOut.
PlatformSizeType FwSizeType
I32 FwEnumStoreType
void log_ACTIVITY_HI_PrmIdUpdated(FwPrmIdType Id) const
static constexpr FwIndexType getNum_pingOut_OutputPorts()
PrmDbComponentBase(const char *compName="")
Construct PrmDbComponentBase object.
FwIdType FwPrmIdType
The type of a parameter identifier.
void log_ACTIVITY_HI_PrmFileSaveComplete(U32 records) const
static constexpr FwIndexType getNum_Log_OutputPorts()
Fw::InputPrmSetPort * get_setPrm_InputPort(FwIndexType portNum)
friend class PrmDbTesterBase
Friend class tester to support autocoded test harness.
virtual void PRM_COMMIT_STAGED_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command PRM_COMMIT_STAGED.
Loads a file from storage into the staging database. The file could have selective IDs and not the wh...
Enum representing a command response.
friend class PrmDbTester
Friend class tester implementation to support white-box testing.
virtual void PRM_COMMIT_STAGED_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
Commits the backup database to become the prime (active) database.
static constexpr FwIndexType getNum_Time_OutputPorts()
void log_WARNING_HI_PrmFileWriteError(Svc::PrmDb_PrmWriteError stage, I32 record, I32 error) const
void set_Log_OutputPort(FwIndexType portNum, Fw::InputLogPort *port)
Connect port to Log[portNum].
virtual void pingIn_handler(FwIndexType portNum, U32 key)=0
Handler for input port pingIn.
void log_ACTIVITY_HI_PrmFileLoadComplete(const Fw::StringBase &databaseString, U32 recordsTotal, U32 recordsAdded, U32 recordsUpdated) const
void init()
Object initializer.
Definition: ObjBase.cpp:24
virtual ~PrmDbComponentBase()
Destroy PrmDbComponentBase object.
bool isConnected_CmdStatus_OutputPort(FwIndexType portNum) const
virtual void lock()
Lock the guarded mutex.
void log_WARNING_HI_PrmFileReadError(Svc::PrmDb_PrmReadError stage, I32 record, I32 error) const
Parameter file load failed, not staging any update.
FwIdType FwEventIdType
The type of an event identifier.
void CmdDisp_handlerBase(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
Handler base-class function for input port CmdDisp.
bool isConnected_Time_OutputPort(FwIndexType portNum) const
static constexpr FwIndexType getNum_getPrm_InputPorts()
Parameter ID not found in database.
bool isConnected_Log_OutputPort(FwIndexType portNum) const
void log_ACTIVITY_HI_PrmDbCommitComplete() const
Fw::InputCmdPort * get_CmdDisp_InputPort(FwIndexType portNum)
void log_WARNING_LO_PrmDbFileLoadInvalidAction(Svc::PrmDb_PrmDbFileLoadState currentState, Svc::PrmDb_PrmLoadAction attemptedAction) const
virtual void pingIn_preMsgHook(FwIndexType portNum, U32 key)
Pre-message hook for async input port pingIn.
void PRM_COMMIT_STAGED_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
virtual void PRM_LOAD_FILE_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdStringArg &fileName, Svc::PrmDb_Merge merge)=0
bool isConnected_pingOut_OutputPort(FwIndexType portNum) const
void setPrm_handlerBase(FwIndexType portNum, FwPrmIdType id, Fw::ParamBuffer &val)
Handler base-class function for input port setPrm.
virtual void unLock()
Unlock the guarded mutex.
void log_ACTIVITY_HI_PrmIdAdded(FwPrmIdType Id) const
Svc::InputPingPort * get_pingIn_InputPort(FwIndexType portNum)
bool isConnected_CmdReg_OutputPort(FwIndexType portNum) const
void log_ACTIVITY_HI_PrmDbCopyAllComplete(const Fw::StringBase &databaseStringSrc, const Fw::StringBase &databaseStringDest) const
Enum representing event severity.
Command to save parameter image to file. Uses file name passed to constructor.
virtual Fw::ParamValid getPrm_handler(FwIndexType portNum, FwPrmIdType id, Fw::ParamBuffer &val)=0
Handler for input port getPrm.
void PRM_LOAD_FILE_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
virtual void PRM_SAVE_FILE_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command PRM_SAVE_FILE.
void log_WARNING_HI_PrmDbFull(FwPrmIdType Id) const
virtual void PRM_LOAD_FILE_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command PRM_LOAD_FILE.
Auto-generated base for PrmDb component.
void pingIn_handlerBase(FwIndexType portNum, U32 key)
Handler base-class function for input port pingIn.
void PRM_SAVE_FILE_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void log_WARNING_LO_PrmIdNotFound(FwPrmIdType Id)
PlatformIndexType FwIndexType
static constexpr FwIndexType getNum_CmdStatus_OutputPorts()
void set_CmdStatus_OutputPort(FwIndexType portNum, Fw::InputCmdResponsePort *port)
Connect port to CmdStatus[portNum].
virtual void setPrm_handler(FwIndexType portNum, FwPrmIdType id, Fw::ParamBuffer &val)=0
Handler for input port setPrm.
void set_Time_OutputPort(FwIndexType portNum, Fw::InputTimePort *port)
Connect port to Time[portNum].
static constexpr FwIndexType getNum_pingIn_InputPorts()
void cmdResponse_out(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdResponse response)
Emit command response.
RateGroupDivider component implementation.
Enum representing parameter validity.
static constexpr FwIndexType getNum_CmdDisp_InputPorts()
Fw::InputPrmGetPort * get_getPrm_InputPort(FwIndexType portNum)
static constexpr FwIndexType getNum_CmdReg_OutputPorts()
Parameter ID updated in database.
void set_pingOut_OutputPort(FwIndexType portNum, Svc::InputPingPort *port)
Connect port to pingOut[portNum].
virtual void PRM_SAVE_FILE_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
static constexpr FwIndexType getNum_setPrm_InputPorts()
virtual void setPrm_preMsgHook(FwIndexType portNum, FwPrmIdType id, Fw::ParamBuffer &val)
Pre-message hook for async input port setPrm.
void log_WARNING_HI_PrmFileBadCrc(U32 readCrc, U32 compCrc) const
void log_WARNING_HI_PrmDbFileLoadFailed() const