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 #if FW_ENABLE_TEXT_LOGGING == 1
21 #include "Fw/Log/LogTextPortAc.hpp"
22 #endif
23 #if !FW_DIRECT_PORT_CALLS
25 #endif
26 #if !FW_DIRECT_PORT_CALLS
28 #endif
29 #include "Fw/Prm/PrmGetPortAc.hpp"
30 #include "Fw/Prm/PrmSetPortAc.hpp"
31 #include "Fw/Time/TimePortAc.hpp"
32 #include "Os/Mutex.hpp"
33 #include "Svc/Ping/PingPortAc.hpp"
41 
42 namespace Svc {
43 
50  {
51 
52  // ----------------------------------------------------------------------
53  // Friend classes
54  // ----------------------------------------------------------------------
55 
57  friend class PrmDbTesterBase;
59  friend class PrmDbTester;
60 
61  protected:
62 
63  // ----------------------------------------------------------------------
64  // Constants
65  // ----------------------------------------------------------------------
66 
68  enum {
70  };
71 
73  enum {
77  };
78 
80  enum {
86  };
87 
89  enum {
91  };
92 
94  enum {
98  };
99 
101  enum {
115  };
116 
118  enum {
120  };
121 
122  public:
123 
124  // ----------------------------------------------------------------------
125  // Component initialization
126  // ----------------------------------------------------------------------
127 
129  void init(
130  FwSizeType queueDepth,
131  FwEnumStoreType instance = 0
132  );
133 
134 #if !FW_DIRECT_PORT_CALLS
135 
136  public:
137 
138  // ----------------------------------------------------------------------
139  // Getters for special input ports
140  // ----------------------------------------------------------------------
141 
146  FwIndexType portNum
147  );
148 
149 #endif
150 
151 #if !FW_DIRECT_PORT_CALLS
152 
153  public:
154 
155  // ----------------------------------------------------------------------
156  // Getters for typed input ports
157  // ----------------------------------------------------------------------
158 
163  FwIndexType portNum
164  );
165 
170  FwIndexType portNum
171  );
172 
177  FwIndexType portNum
178  );
179 
180 #endif
181 
182 #if !FW_DIRECT_PORT_CALLS
183 
184  public:
185 
186  // ----------------------------------------------------------------------
187  // Connect input ports to special output ports
188  // ----------------------------------------------------------------------
189 
192  FwIndexType portNum,
193  Fw::InputCmdRegPort* port
194  );
195 
198  FwIndexType portNum,
200  );
201 
203  void set_Log_OutputPort(
204  FwIndexType portNum,
205  Fw::InputLogPort* port
206  );
207 
208 #if FW_ENABLE_TEXT_LOGGING == 1
209 
211  void set_LogText_OutputPort(
212  FwIndexType portNum,
213  Fw::InputLogTextPort* port
214  );
215 
216 #endif
217 
219  void set_Time_OutputPort(
220  FwIndexType portNum,
221  Fw::InputTimePort* port
222  );
223 
224 #endif
225 
226 #if !FW_DIRECT_PORT_CALLS
227 
228  public:
229 
230  // ----------------------------------------------------------------------
231  // Connect typed input ports to typed output ports
232  // ----------------------------------------------------------------------
233 
236  FwIndexType portNum,
237  Svc::InputPingPort* port
238  );
239 
240 #endif
241 
242 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION
243 
244  public:
245 
246  // ----------------------------------------------------------------------
247  // Connect serial input ports to special output ports
248  // ----------------------------------------------------------------------
249 
252  FwIndexType portNum,
253  Fw::InputSerializePort* port
254  );
255 
258  FwIndexType portNum,
259  Fw::InputSerializePort* port
260  );
261 
263  void set_Log_OutputPort(
264  FwIndexType portNum,
265  Fw::InputSerializePort* port
266  );
267 
268 #if FW_ENABLE_TEXT_LOGGING == 1
269 
271  void set_LogText_OutputPort(
272  FwIndexType portNum,
273  Fw::InputSerializePort* port
274  );
275 
276 #endif
277 
279  void set_Time_OutputPort(
280  FwIndexType portNum,
281  Fw::InputSerializePort* port
282  );
283 
284 #endif
285 
286 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION
287 
288  public:
289 
290  // ----------------------------------------------------------------------
291  // Connect serial input ports to typed output ports
292  // ----------------------------------------------------------------------
293 
296  FwIndexType portNum,
297  Fw::InputSerializePort* port
298  );
299 
300 #endif
301 
302  public:
303 
304  // ----------------------------------------------------------------------
305  // Command registration
306  // ----------------------------------------------------------------------
307 
311  void regCommands();
312 
313  protected:
314 
315  // ----------------------------------------------------------------------
316  // Component construction and destruction
317  // ----------------------------------------------------------------------
318 
321  const char* compName = ""
322  );
323 
325  virtual ~PrmDbComponentBase();
326 
327  protected:
328 
329  // ----------------------------------------------------------------------
330  // Getters for numbers of special input ports
331  // ----------------------------------------------------------------------
332 
338  }
339 
340  protected:
341 
342  // ----------------------------------------------------------------------
343  // Getters for numbers of typed input ports
344  // ----------------------------------------------------------------------
345 
350  return NUM_GETPRM_INPUT_PORTS;
351  }
352 
357  return NUM_PINGIN_INPUT_PORTS;
358  }
359 
364  return NUM_SETPRM_INPUT_PORTS;
365  }
366 
367  protected:
368 
369  // ----------------------------------------------------------------------
370  // Getters for numbers of special output ports
371  // ----------------------------------------------------------------------
372 
378  }
379 
385  }
386 
390  static constexpr FwIndexType getNum_Log_OutputPorts() {
391  return NUM_LOG_OUTPUT_PORTS;
392  }
393 
394 #if FW_ENABLE_TEXT_LOGGING == 1
395 
399  static constexpr FwIndexType getNum_LogText_OutputPorts() {
401  }
402 
403 #endif
404 
409  return NUM_TIME_OUTPUT_PORTS;
410  }
411 
412  protected:
413 
414  // ----------------------------------------------------------------------
415  // Getters for numbers of typed output ports
416  // ----------------------------------------------------------------------
417 
423  }
424 
425  protected:
426 
427  // ----------------------------------------------------------------------
428  // Connection status queries for special output ports
429  // ----------------------------------------------------------------------
430 
435  FwIndexType portNum
436  ) const;
437 
442  FwIndexType portNum
443  ) const;
444 
449  FwIndexType portNum
450  ) const;
451 
452 #if FW_ENABLE_TEXT_LOGGING == 1
453 
457  bool isConnected_LogText_OutputPort(
458  FwIndexType portNum
459  ) const;
460 
461 #endif
462 
467  FwIndexType portNum
468  ) const;
469 
470  protected:
471 
472  // ----------------------------------------------------------------------
473  // Connection status queries for typed output ports
474  // ----------------------------------------------------------------------
475 
480  FwIndexType portNum
481  ) const;
482 
483 #if FW_DIRECT_PORT_CALLS
484  public:
485 #else
486  protected:
487 #endif
488 
489  // ----------------------------------------------------------------------
490  // Port handler base-class functions for special input ports
491  //
492  // Call these functions directly to bypass the corresponding ports
493  // ----------------------------------------------------------------------
494 
496  void CmdDisp_handlerBase(
497  FwIndexType portNum,
498  FwOpcodeType opCode,
499  U32 cmdSeq,
500  Fw::CmdArgBuffer& args
501  );
502 
503  protected:
504 
505  // ----------------------------------------------------------------------
506  // Handlers to implement for typed input ports
507  // ----------------------------------------------------------------------
508 
511  FwIndexType portNum,
512  FwPrmIdType id,
513  Fw::ParamBuffer& val
514  ) = 0;
516 
518  virtual void pingIn_handler(
519  FwIndexType portNum,
520  U32 key
521  ) = 0;
522 
524  virtual void setPrm_handler(
525  FwIndexType portNum,
526  FwPrmIdType id,
527  Fw::ParamBuffer& val
528  ) = 0;
529 
530 #if FW_DIRECT_PORT_CALLS
531  public:
532 #else
533  protected:
534 #endif
535 
536  // ----------------------------------------------------------------------
537  // Port handler base-class functions for typed input ports
538  //
539  // Call these functions directly to bypass the corresponding ports
540  // ----------------------------------------------------------------------
541 
544  FwIndexType portNum,
545  FwPrmIdType id,
546  Fw::ParamBuffer& val
547  );
549 
551  void pingIn_handlerBase(
552  FwIndexType portNum,
553  U32 key
554  );
555 
557  void setPrm_handlerBase(
558  FwIndexType portNum,
559  FwPrmIdType id,
560  Fw::ParamBuffer& val
561  );
562 
563  protected:
564 
565  // ----------------------------------------------------------------------
566  // Pre-message hooks for typed async input ports
567  //
568  // Each of these functions is invoked just before processing a message
569  // on the corresponding port. By default, they do nothing. You can
570  // override them to provide specific pre-message behavior.
571  // ----------------------------------------------------------------------
572 
574  virtual void pingIn_preMsgHook(
575  FwIndexType portNum,
576  U32 key
577  );
578 
580  virtual void setPrm_preMsgHook(
581  FwIndexType portNum,
582  FwPrmIdType id,
583  Fw::ParamBuffer& val
584  );
585 
586  protected:
587 
588  // ----------------------------------------------------------------------
589  // Invocation functions for typed output ports
590  // ----------------------------------------------------------------------
591 
593  void pingOut_out(
594  FwIndexType portNum,
595  U32 key
596  ) const;
597 
598  protected:
599 
600  // ----------------------------------------------------------------------
601  // Command response
602  // ----------------------------------------------------------------------
603 
605  void cmdResponse_out(
606  FwOpcodeType opCode,
607  U32 cmdSeq,
608  Fw::CmdResponse response
609  );
610 
611  protected:
612 
613  // ----------------------------------------------------------------------
614  // Command handlers to implement
615  // ----------------------------------------------------------------------
616 
620  virtual void PRM_SAVE_FILE_cmdHandler(
621  FwOpcodeType opCode,
622  U32 cmdSeq
623  ) = 0;
624 
628  virtual void PRM_LOAD_FILE_cmdHandler(
629  FwOpcodeType opCode,
630  U32 cmdSeq,
631  const Fw::CmdStringArg& fileName,
632  Svc::PrmDb_Merge merge
633  ) = 0;
634 
638  virtual void PRM_COMMIT_STAGED_cmdHandler(
639  FwOpcodeType opCode,
640  U32 cmdSeq
641  ) = 0;
642 
643  protected:
644 
645  // ----------------------------------------------------------------------
646  // Command handler base-class functions
647  //
648  // Call these functions directly to bypass the command input port
649  // ----------------------------------------------------------------------
650 
655  FwOpcodeType opCode,
656  U32 cmdSeq,
657  Fw::CmdArgBuffer& args
658  );
659 
664  FwOpcodeType opCode,
665  U32 cmdSeq,
666  Fw::CmdArgBuffer& args
667  );
668 
673  FwOpcodeType opCode,
674  U32 cmdSeq,
675  Fw::CmdArgBuffer& args
676  );
677 
678  protected:
679 
680  // ----------------------------------------------------------------------
681  // Pre-message hooks for async commands
682  //
683  // Each of these functions is invoked just before processing the
684  // corresponding command. By default they do nothing. You can
685  // override them to provide specific pre-command behavior.
686  // ----------------------------------------------------------------------
687 
689  virtual void PRM_SAVE_FILE_preMsgHook(
690  FwOpcodeType opCode,
691  U32 cmdSeq
692  );
693 
695  virtual void PRM_LOAD_FILE_preMsgHook(
696  FwOpcodeType opCode,
697  U32 cmdSeq
698  );
699 
701  virtual void PRM_COMMIT_STAGED_preMsgHook(
702  FwOpcodeType opCode,
703  U32 cmdSeq
704  );
705 
706  protected:
707 
708  // ----------------------------------------------------------------------
709  // Event logging functions
710  // ----------------------------------------------------------------------
711 
716  FwPrmIdType Id
717  );
718 
723  FwPrmIdType Id
724  ) const;
725 
730  FwPrmIdType Id
731  ) const;
732 
737  FwPrmIdType Id
738  ) const;
739 
745  I32 record,
746  I32 error
747  ) const;
748 
753  U32 records
754  ) const;
755 
761  I32 record,
762  I32 error
763  ) const;
764 
769  const Fw::StringBase& databaseString,
770  U32 recordsTotal,
771  U32 recordsAdded,
772  U32 recordsUpdated
773  ) const;
774 
779 
784  const Fw::StringBase& databaseStringSrc,
785  const Fw::StringBase& databaseStringDest
786  ) const;
787 
792 
797  Svc::PrmDb_PrmDbFileLoadState currentState,
798  Svc::PrmDb_PrmLoadAction attemptedAction
799  ) const;
800 
805  U32 readCrc,
806  U32 compCrc
807  ) const;
808 
809  protected:
810 
811  // ----------------------------------------------------------------------
812  // Event throttle reset functions
813  // ----------------------------------------------------------------------
814 
817 
818  protected:
819 
820  // ----------------------------------------------------------------------
821  // Time
822  // ----------------------------------------------------------------------
823 
827  Fw::Time getTime() const;
828 
829  protected:
830 
831  // ----------------------------------------------------------------------
832  // Mutex operations for guarded ports
833  //
834  // You can override these operations to provide more sophisticated
835  // synchronization
836  // ----------------------------------------------------------------------
837 
839  virtual void lock();
840 
842  virtual void unLock();
843 
844  private:
845 
846  // ----------------------------------------------------------------------
847  // Message dispatch functions
848  // ----------------------------------------------------------------------
849 
851  virtual MsgDispatchStatus doDispatch();
852 
853  private:
854 
855  // ----------------------------------------------------------------------
856  // Calls for messages received on special input ports
857  // ----------------------------------------------------------------------
858 
860  static void m_p_CmdDisp_in(
861  Fw::PassiveComponentBase* callComp,
862  FwIndexType portNum,
863  FwOpcodeType opCode,
864  U32 cmdSeq,
865  Fw::CmdArgBuffer& args
866  );
867 
868  private:
869 
870  // ----------------------------------------------------------------------
871  // Calls for messages received on typed input ports
872  // ----------------------------------------------------------------------
873 
875  static Fw::ParamValid m_p_getPrm_in(
876  Fw::PassiveComponentBase* callComp,
877  FwIndexType portNum,
878  FwPrmIdType id,
879  Fw::ParamBuffer& val
880  );
882 
884  static void m_p_pingIn_in(
885  Fw::PassiveComponentBase* callComp,
886  FwIndexType portNum,
887  U32 key
888  );
889 
891  static void m_p_setPrm_in(
892  Fw::PassiveComponentBase* callComp,
893  FwIndexType portNum,
894  FwPrmIdType id,
895  Fw::ParamBuffer& val
896  );
897 
898  private:
899 
900  // ----------------------------------------------------------------------
901  // Invocation functions for special output ports
902  // ----------------------------------------------------------------------
903 
905  void CmdReg_out(
906  FwIndexType portNum,
907  FwOpcodeType opCode
908  ) const;
909 
911  void CmdStatus_out(
912  FwIndexType portNum,
913  FwOpcodeType opCode,
914  U32 cmdSeq,
915  const Fw::CmdResponse& response
916  ) const;
917 
919  void Log_out(
920  FwIndexType portNum,
921  FwEventIdType id,
922  Fw::Time& timeTag,
923  const Fw::LogSeverity& severity,
924  Fw::LogBuffer& args
925  ) const;
926 
927 #if FW_ENABLE_TEXT_LOGGING
928 
930  void LogText_out(
931  FwIndexType portNum,
932  FwEventIdType id,
933  Fw::Time& timeTag,
934  const Fw::LogSeverity& severity,
935  Fw::TextLogString& text
936  ) const;
937 
938 #endif
939 
941  void Time_out(
942  FwIndexType portNum,
943  Fw::Time& time
944  ) const;
945 
946 #if !FW_DIRECT_PORT_CALLS
947 
948  private:
949 
950  // ----------------------------------------------------------------------
951  // Special input ports
952  // ----------------------------------------------------------------------
953 
955  Fw::InputCmdPort m_CmdDisp_InputPort[NUM_CMDDISP_INPUT_PORTS];
956 
957 #endif
958 
959 #if !FW_DIRECT_PORT_CALLS
960 
961  private:
962 
963  // ----------------------------------------------------------------------
964  // Typed input ports
965  // ----------------------------------------------------------------------
966 
968  Fw::InputPrmGetPort m_getPrm_InputPort[NUM_GETPRM_INPUT_PORTS];
969 
971  Svc::InputPingPort m_pingIn_InputPort[NUM_PINGIN_INPUT_PORTS];
972 
974  Fw::InputPrmSetPort m_setPrm_InputPort[NUM_SETPRM_INPUT_PORTS];
975 
976 #endif
977 
978 #if !FW_DIRECT_PORT_CALLS
979 
980  private:
981 
982  // ----------------------------------------------------------------------
983  // Special output ports
984  // ----------------------------------------------------------------------
985 
987  Fw::OutputCmdRegPort m_CmdReg_OutputPort[NUM_CMDREG_OUTPUT_PORTS];
988 
991 
993  Fw::OutputLogPort m_Log_OutputPort[NUM_LOG_OUTPUT_PORTS];
994 
995 #if FW_ENABLE_TEXT_LOGGING == 1
996 
998  Fw::OutputLogTextPort m_LogText_OutputPort[NUM_LOGTEXT_OUTPUT_PORTS];
999 
1000 #endif
1001 
1003  Fw::OutputTimePort m_Time_OutputPort[NUM_TIME_OUTPUT_PORTS];
1004 
1005 #endif
1006 
1007 #if !FW_DIRECT_PORT_CALLS
1008 
1009  private:
1010 
1011  // ----------------------------------------------------------------------
1012  // Typed output ports
1013  // ----------------------------------------------------------------------
1014 
1016  Svc::OutputPingPort m_pingOut_OutputPort[NUM_PINGOUT_OUTPUT_PORTS];
1017 
1018 #endif
1019 
1020  private:
1021 
1022  // ----------------------------------------------------------------------
1023  // Counter values for event throttling
1024  // ----------------------------------------------------------------------
1025 
1027  std::atomic<FwIndexType> m_PrmIdNotFoundThrottle;
1028 
1029  private:
1030 
1031  // ----------------------------------------------------------------------
1032  // Mutexes
1033  // ----------------------------------------------------------------------
1034 
1036  Os::Mutex m_guardedPortMutex;
1037 
1038  };
1039 
1040 }
1041 
1042 #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.
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
Parameter ID not found in database.
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 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
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
Command to save parameter image to file. Uses file name passed to constructor.
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)
All parameters Copied from one DB to another.
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.
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)
Parameter file load failed, not staging any update.
Commits the backup database to become the prime (active) database.
PlatformIndexType FwIndexType
static constexpr FwIndexType getNum_CmdStatus_OutputPorts()
void set_CmdStatus_OutputPort(FwIndexType portNum, Fw::InputCmdResponsePort *port)
Connect port to CmdStatus[portNum].
Parameter ID updated in database.
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.
Loads a file from storage into the staging database. The file could have selective IDs and not the wh...
void log_WARNING_HI_PrmFileBadCrc(U32 readCrc, U32 compCrc) const
void log_WARNING_HI_PrmDbFileLoadFailed() const