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  const 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 
742  const Svc::PrmDb_PrmWriteError& stage,
743  I32 record,
744  I32 error
745  ) const;
746 
751  U32 records
752  ) const;
753 
758  const Svc::PrmDb_PrmReadError& stage,
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  const Svc::PrmDb_PrmDbFileLoadState& currentState,
796  const 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.
Parameter file load failed, not staging any update.
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_WARNING_LO_PrmDbFileLoadInvalidAction(const Svc::PrmDb_PrmDbFileLoadState &currentState, const Svc::PrmDb_PrmLoadAction &attemptedAction) const
void log_ACTIVITY_HI_PrmIdUpdated(FwPrmIdType Id) const
static constexpr FwIndexType getNum_pingOut_OutputPorts()
PrmDbComponentBase(const char *compName="")
Construct PrmDbComponentBase object.
Parameter ID not found in database.
FwIdType FwPrmIdType
The type of a parameter identifier.
void log_WARNING_HI_PrmFileReadError(const Svc::PrmDb_PrmReadError &stage, I32 record, I32 error) const
void log_ACTIVITY_HI_PrmFileSaveComplete(U32 records) const
Link-time delegating Mutex implementation.
void log_WARNING_HI_PrmFileWriteError(const Svc::PrmDb_PrmWriteError &stage, I32 record, I32 error) 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.
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
static constexpr FwIndexType getNum_Time_OutputPorts()
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
Command to save parameter image to file. Uses file name passed to constructor.
virtual void lock()
Lock the guarded mutex.
Parameter ID updated in database.
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()
bool isConnected_Log_OutputPort(FwIndexType portNum) const
void log_ACTIVITY_HI_PrmDbCommitComplete() const
Fw::InputCmdPort * get_CmdDisp_InputPort(FwIndexType portNum)
virtual void pingIn_preMsgHook(FwIndexType portNum, U32 key)
Pre-message hook for async input port pingIn.
Loads a file from storage into the staging database. The file could have selective IDs and not the wh...
void PRM_COMMIT_STAGED_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
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.
virtual Fw::ParamValid getPrm_handler(FwIndexType portNum, FwPrmIdType id, Fw::ParamBuffer &val)=0
Handler for input port getPrm.
All parameters Copied from one DB to another.
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)
virtual void PRM_LOAD_FILE_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdStringArg &fileName, const Svc::PrmDb_Merge &merge)=0
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()
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
Commits the backup database to become the prime (active) database.