F´ Flight Software - C/C++ Documentation
A framework for building embedded system applications to NASA flight quality standards.
CommandDispatcherComponentAc.hpp
Go to the documentation of this file.
1 // ======================================================================
2 // \title CommandDispatcherComponentAc.hpp
3 // \author Generated by fpp-to-cpp
4 // \brief hpp file for CommandDispatcher component base class
5 // ======================================================================
6 
7 #ifndef Svc_CommandDispatcherComponentAc_HPP
8 #define Svc_CommandDispatcherComponentAc_HPP
9 
10 #include <atomic>
11 
12 #include "Fw/Cmd/CmdPortAc.hpp"
13 #include "Fw/Cmd/CmdRegPortAc.hpp"
16 #include "Fw/Cmd/CmdString.hpp"
17 #include "Fw/Com/ComPortAc.hpp"
19 #include "Fw/FPrimeBasicTypes.hpp"
20 #include "Fw/Log/LogPortAc.hpp"
21 #include "Fw/Log/LogString.hpp"
22 #if FW_ENABLE_TEXT_LOGGING == 1
23 #include "Fw/Log/LogTextPortAc.hpp"
24 #endif
27 #include "Fw/Time/TimePortAc.hpp"
28 #include "Fw/Tlm/TlmPortAc.hpp"
29 #include "Fw/Tlm/TlmString.hpp"
31 #include "Os/Mutex.hpp"
32 #include "Svc/Ping/PingPortAc.hpp"
34 
35 namespace Svc {
36 
43  {
44 
45  // ----------------------------------------------------------------------
46  // Friend classes
47  // ----------------------------------------------------------------------
48 
53 
54  protected:
55 
56  // ----------------------------------------------------------------------
57  // Constants
58  // ----------------------------------------------------------------------
59 
61  enum {
63  };
64 
66  enum {
71  };
72 
74  enum {
81  };
82 
84  enum {
88  };
89 
91  enum {
96  };
97 
99  enum {
111  };
112 
114  enum {
117  };
118 
119  public:
120 
121  // ----------------------------------------------------------------------
122  // Component initialization
123  // ----------------------------------------------------------------------
124 
126  void init(
127  FwSizeType queueDepth,
128  FwEnumStoreType instance = 0
129  );
130 
131  public:
132 
133  // ----------------------------------------------------------------------
134  // Getters for special input ports
135  // ----------------------------------------------------------------------
136 
141  FwIndexType portNum
142  );
143 
144  public:
145 
146  // ----------------------------------------------------------------------
147  // Getters for typed input ports
148  // ----------------------------------------------------------------------
149 
154  FwIndexType portNum
155  );
156 
161  FwIndexType portNum
162  );
163 
168  FwIndexType portNum
169  );
170 
175  FwIndexType portNum
176  );
177 
178  public:
179 
180  // ----------------------------------------------------------------------
181  // Connect input ports to special output ports
182  // ----------------------------------------------------------------------
183 
186  FwIndexType portNum,
187  Fw::InputCmdRegPort* port
188  );
189 
192  FwIndexType portNum,
194  );
195 
197  void set_Log_OutputPort(
198  FwIndexType portNum,
199  Fw::InputLogPort* port
200  );
201 
202 #if FW_ENABLE_TEXT_LOGGING == 1
203 
205  void set_LogText_OutputPort(
206  FwIndexType portNum,
207  Fw::InputLogTextPort* port
208  );
209 
210 #endif
211 
213  void set_Time_OutputPort(
214  FwIndexType portNum,
215  Fw::InputTimePort* port
216  );
217 
219  void set_Tlm_OutputPort(
220  FwIndexType portNum,
221  Fw::InputTlmPort* port
222  );
223 
224  public:
225 
226  // ----------------------------------------------------------------------
227  // Connect typed input ports to typed output ports
228  // ----------------------------------------------------------------------
229 
232  FwIndexType portNum,
233  Fw::InputCmdPort* port
234  );
235 
238  FwIndexType portNum,
239  Svc::InputPingPort* port
240  );
241 
244  FwIndexType portNum,
246  );
247 
248 #if FW_PORT_SERIALIZATION
249 
250  public:
251 
252  // ----------------------------------------------------------------------
253  // Connect serial input ports to special output ports
254  // ----------------------------------------------------------------------
255 
258  FwIndexType portNum,
259  Fw::InputSerializePort* port
260  );
261 
264  FwIndexType portNum,
265  Fw::InputSerializePort* port
266  );
267 
269  void set_Log_OutputPort(
270  FwIndexType portNum,
271  Fw::InputSerializePort* port
272  );
273 
274 #if FW_ENABLE_TEXT_LOGGING == 1
275 
277  void set_LogText_OutputPort(
278  FwIndexType portNum,
279  Fw::InputSerializePort* port
280  );
281 
282 #endif
283 
285  void set_Time_OutputPort(
286  FwIndexType portNum,
287  Fw::InputSerializePort* port
288  );
289 
291  void set_Tlm_OutputPort(
292  FwIndexType portNum,
293  Fw::InputSerializePort* port
294  );
295 
296 #endif
297 
298 #if FW_PORT_SERIALIZATION
299 
300  public:
301 
302  // ----------------------------------------------------------------------
303  // Connect serial input ports to typed output ports
304  // ----------------------------------------------------------------------
305 
308  FwIndexType portNum,
309  Fw::InputSerializePort* port
310  );
311 
314  FwIndexType portNum,
315  Fw::InputSerializePort* port
316  );
317 
320  FwIndexType portNum,
321  Fw::InputSerializePort* port
322  );
323 
324 #endif
325 
326  public:
327 
328  // ----------------------------------------------------------------------
329  // Command registration
330  // ----------------------------------------------------------------------
331 
335  void regCommands();
336 
337  protected:
338 
339  // ----------------------------------------------------------------------
340  // Component construction and destruction
341  // ----------------------------------------------------------------------
342 
345  const char* compName = ""
346  );
347 
350 
351  protected:
352 
353  // ----------------------------------------------------------------------
354  // Getters for numbers of special input ports
355  // ----------------------------------------------------------------------
356 
361 
362  protected:
363 
364  // ----------------------------------------------------------------------
365  // Getters for numbers of typed input ports
366  // ----------------------------------------------------------------------
367 
372 
377 
382 
387 
388  protected:
389 
390  // ----------------------------------------------------------------------
391  // Getters for numbers of special output ports
392  // ----------------------------------------------------------------------
393 
398 
403 
408 
409 #if FW_ENABLE_TEXT_LOGGING == 1
410 
414  FwIndexType getNum_LogText_OutputPorts() const;
415 
416 #endif
417 
422 
427 
428  protected:
429 
430  // ----------------------------------------------------------------------
431  // Getters for numbers of typed output ports
432  // ----------------------------------------------------------------------
433 
438 
443 
448 
449  protected:
450 
451  // ----------------------------------------------------------------------
452  // Connection status queries for special output ports
453  // ----------------------------------------------------------------------
454 
459  FwIndexType portNum
460  );
461 
466  FwIndexType portNum
467  );
468 
473  FwIndexType portNum
474  );
475 
476 #if FW_ENABLE_TEXT_LOGGING == 1
477 
481  bool isConnected_LogText_OutputPort(
482  FwIndexType portNum
483  );
484 
485 #endif
486 
491  FwIndexType portNum
492  );
493 
498  FwIndexType portNum
499  );
500 
501  protected:
502 
503  // ----------------------------------------------------------------------
504  // Connection status queries for typed output ports
505  // ----------------------------------------------------------------------
506 
511  FwIndexType portNum
512  );
513 
518  FwIndexType portNum
519  );
520 
525  FwIndexType portNum
526  );
527 
528  protected:
529 
530  // ----------------------------------------------------------------------
531  // Handlers to implement for typed input ports
532  // ----------------------------------------------------------------------
533 
535  virtual void compCmdReg_handler(
536  FwIndexType portNum,
537  FwOpcodeType opCode
538  ) = 0;
539 
541  virtual void compCmdStat_handler(
542  FwIndexType portNum,
543  FwOpcodeType opCode,
544  U32 cmdSeq,
545  const Fw::CmdResponse& response
546  ) = 0;
547 
549  virtual void pingIn_handler(
550  FwIndexType portNum,
551  U32 key
552  ) = 0;
553 
555  virtual void seqCmdBuff_handler(
556  FwIndexType portNum,
557  Fw::ComBuffer& data,
558  U32 context
559  ) = 0;
560 
561  protected:
562 
563  // ----------------------------------------------------------------------
564  // Port handler base-class functions for typed input ports
565  //
566  // Call these functions directly to bypass the corresponding ports
567  // ----------------------------------------------------------------------
568 
571  FwIndexType portNum,
572  FwOpcodeType opCode
573  );
574 
577  FwIndexType portNum,
578  FwOpcodeType opCode,
579  U32 cmdSeq,
580  const Fw::CmdResponse& response
581  );
582 
584  void pingIn_handlerBase(
585  FwIndexType portNum,
586  U32 key
587  );
588 
591  FwIndexType portNum,
592  Fw::ComBuffer& data,
593  U32 context
594  );
595 
596  protected:
597 
598  // ----------------------------------------------------------------------
599  // Pre-message hooks for typed async input ports
600  //
601  // Each of these functions is invoked just before processing a message
602  // on the corresponding port. By default, they do nothing. You can
603  // override them to provide specific pre-message behavior.
604  // ----------------------------------------------------------------------
605 
607  virtual void compCmdStat_preMsgHook(
608  FwIndexType portNum,
609  FwOpcodeType opCode,
610  U32 cmdSeq,
611  const Fw::CmdResponse& response
612  );
613 
615  virtual void pingIn_preMsgHook(
616  FwIndexType portNum,
617  U32 key
618  );
619 
621  virtual void seqCmdBuff_preMsgHook(
622  FwIndexType portNum,
623  Fw::ComBuffer& data,
624  U32 context
625  );
626 
627  protected:
628 
629  // ----------------------------------------------------------------------
630  // Invocation functions for typed output ports
631  // ----------------------------------------------------------------------
632 
634  void compCmdSend_out(
635  FwIndexType portNum,
636  FwOpcodeType opCode,
637  U32 cmdSeq,
638  Fw::CmdArgBuffer& args
639  );
640 
642  void pingOut_out(
643  FwIndexType portNum,
644  U32 key
645  );
646 
648  void seqCmdStatus_out(
649  FwIndexType portNum,
650  FwOpcodeType opCode,
651  U32 cmdSeq,
652  const Fw::CmdResponse& response
653  );
654 
655  protected:
656 
657  // ----------------------------------------------------------------------
658  // Command response
659  // ----------------------------------------------------------------------
660 
662  void cmdResponse_out(
663  FwOpcodeType opCode,
664  U32 cmdSeq,
665  Fw::CmdResponse response
666  );
667 
668  protected:
669 
670  // ----------------------------------------------------------------------
671  // Command handlers to implement
672  // ----------------------------------------------------------------------
673 
677  virtual void CMD_NO_OP_cmdHandler(
678  FwOpcodeType opCode,
679  U32 cmdSeq
680  ) = 0;
681 
685  virtual void CMD_NO_OP_STRING_cmdHandler(
686  FwOpcodeType opCode,
687  U32 cmdSeq,
688  const Fw::CmdStringArg& arg1
689  ) = 0;
690 
694  virtual void CMD_TEST_CMD_1_cmdHandler(
695  FwOpcodeType opCode,
696  U32 cmdSeq,
697  I32 arg1,
698  F32 arg2,
699  U8 arg3
700  ) = 0;
701 
705  virtual void CMD_CLEAR_TRACKING_cmdHandler(
706  FwOpcodeType opCode,
707  U32 cmdSeq
708  ) = 0;
709 
710  protected:
711 
712  // ----------------------------------------------------------------------
713  // Command handler base-class functions
714  //
715  // Call these functions directly to bypass the command input port
716  // ----------------------------------------------------------------------
717 
722  FwOpcodeType opCode,
723  U32 cmdSeq,
724  Fw::CmdArgBuffer& args
725  );
726 
731  FwOpcodeType opCode,
732  U32 cmdSeq,
733  Fw::CmdArgBuffer& args
734  );
735 
740  FwOpcodeType opCode,
741  U32 cmdSeq,
742  Fw::CmdArgBuffer& args
743  );
744 
749  FwOpcodeType opCode,
750  U32 cmdSeq,
751  Fw::CmdArgBuffer& args
752  );
753 
754  protected:
755 
756  // ----------------------------------------------------------------------
757  // Pre-message hooks for async commands
758  //
759  // Each of these functions is invoked just before processing the
760  // corresponding command. By default they do nothing. You can
761  // override them to provide specific pre-command behavior.
762  // ----------------------------------------------------------------------
763 
765  virtual void CMD_NO_OP_preMsgHook(
766  FwOpcodeType opCode,
767  U32 cmdSeq
768  );
769 
771  virtual void CMD_NO_OP_STRING_preMsgHook(
772  FwOpcodeType opCode,
773  U32 cmdSeq
774  );
775 
777  virtual void CMD_TEST_CMD_1_preMsgHook(
778  FwOpcodeType opCode,
779  U32 cmdSeq
780  );
781 
783  virtual void CMD_CLEAR_TRACKING_preMsgHook(
784  FwOpcodeType opCode,
785  U32 cmdSeq
786  );
787 
788  protected:
789 
790  // ----------------------------------------------------------------------
791  // Event logging functions
792  // ----------------------------------------------------------------------
793 
796  FwOpcodeType Opcode,
797  I32 port,
798  I32 slot
799  ) const;
800 
805  FwOpcodeType Opcode,
806  I32 port
807  ) const;
808 
813  FwOpcodeType Opcode
814  ) const;
815 
820  FwOpcodeType Opcode,
821  Fw::CmdResponse error
822  ) const;
823 
829  ) const;
830 
835  FwOpcodeType Opcode
836  ) const;
837 
842  FwOpcodeType Opcode
843  ) const;
844 
848  void log_ACTIVITY_HI_NoOpReceived() const;
849 
854  const Fw::StringBase& message
855  ) const;
856 
861  I32 arg1,
862  F32 arg2,
863  U8 arg3
864  ) const;
865 
870  FwOpcodeType Opcode,
871  I32 port
872  ) const;
873 
874  protected:
875 
876  // ----------------------------------------------------------------------
877  // Telemetry write functions
878  // ----------------------------------------------------------------------
879 
884  U32 arg,
885  Fw::Time _tlmTime = Fw::Time()
886  );
887 
892  U32 arg,
893  Fw::Time _tlmTime = Fw::Time()
894  );
895 
896  protected:
897 
898  // ----------------------------------------------------------------------
899  // Time
900  // ----------------------------------------------------------------------
901 
905  Fw::Time getTime() const;
906 
907  protected:
908 
909  // ----------------------------------------------------------------------
910  // Mutex operations for guarded ports
911  //
912  // You can override these operations to provide more sophisticated
913  // synchronization
914  // ----------------------------------------------------------------------
915 
917  virtual void lock();
918 
920  virtual void unLock();
921 
922  private:
923 
924  // ----------------------------------------------------------------------
925  // Message dispatch functions
926  // ----------------------------------------------------------------------
927 
929  virtual MsgDispatchStatus doDispatch();
930 
931  private:
932 
933  // ----------------------------------------------------------------------
934  // Calls for messages received on special input ports
935  // ----------------------------------------------------------------------
936 
938  static void m_p_CmdDisp_in(
939  Fw::PassiveComponentBase* callComp,
940  FwIndexType portNum,
941  FwOpcodeType opCode,
942  U32 cmdSeq,
943  Fw::CmdArgBuffer& args
944  );
945 
946  private:
947 
948  // ----------------------------------------------------------------------
949  // Calls for messages received on typed input ports
950  // ----------------------------------------------------------------------
951 
953  static void m_p_compCmdReg_in(
954  Fw::PassiveComponentBase* callComp,
955  FwIndexType portNum,
956  FwOpcodeType opCode
957  );
958 
960  static void m_p_compCmdStat_in(
961  Fw::PassiveComponentBase* callComp,
962  FwIndexType portNum,
963  FwOpcodeType opCode,
964  U32 cmdSeq,
965  const Fw::CmdResponse& response
966  );
967 
969  static void m_p_pingIn_in(
970  Fw::PassiveComponentBase* callComp,
971  FwIndexType portNum,
972  U32 key
973  );
974 
976  static void m_p_seqCmdBuff_in(
977  Fw::PassiveComponentBase* callComp,
978  FwIndexType portNum,
979  Fw::ComBuffer& data,
980  U32 context
981  );
982 
983  private:
984 
985  // ----------------------------------------------------------------------
986  // Special input ports
987  // ----------------------------------------------------------------------
988 
990  Fw::InputCmdPort m_CmdDisp_InputPort[NUM_CMDDISP_INPUT_PORTS];
991 
992  private:
993 
994  // ----------------------------------------------------------------------
995  // Typed input ports
996  // ----------------------------------------------------------------------
997 
999  Fw::InputCmdRegPort m_compCmdReg_InputPort[NUM_COMPCMDREG_INPUT_PORTS];
1000 
1002  Fw::InputCmdResponsePort m_compCmdStat_InputPort[NUM_COMPCMDSTAT_INPUT_PORTS];
1003 
1005  Svc::InputPingPort m_pingIn_InputPort[NUM_PINGIN_INPUT_PORTS];
1006 
1008  Fw::InputComPort m_seqCmdBuff_InputPort[NUM_SEQCMDBUFF_INPUT_PORTS];
1009 
1010  private:
1011 
1012  // ----------------------------------------------------------------------
1013  // Special output ports
1014  // ----------------------------------------------------------------------
1015 
1017  Fw::OutputCmdRegPort m_CmdReg_OutputPort[NUM_CMDREG_OUTPUT_PORTS];
1018 
1020  Fw::OutputCmdResponsePort m_CmdStatus_OutputPort[NUM_CMDSTATUS_OUTPUT_PORTS];
1021 
1023  Fw::OutputLogPort m_Log_OutputPort[NUM_LOG_OUTPUT_PORTS];
1024 
1025 #if FW_ENABLE_TEXT_LOGGING == 1
1026 
1028  Fw::OutputLogTextPort m_LogText_OutputPort[NUM_LOGTEXT_OUTPUT_PORTS];
1029 
1030 #endif
1031 
1033  Fw::OutputTimePort m_Time_OutputPort[NUM_TIME_OUTPUT_PORTS];
1034 
1036  Fw::OutputTlmPort m_Tlm_OutputPort[NUM_TLM_OUTPUT_PORTS];
1037 
1038  private:
1039 
1040  // ----------------------------------------------------------------------
1041  // Typed output ports
1042  // ----------------------------------------------------------------------
1043 
1045  Fw::OutputCmdPort m_compCmdSend_OutputPort[NUM_COMPCMDSEND_OUTPUT_PORTS];
1046 
1048  Svc::OutputPingPort m_pingOut_OutputPort[NUM_PINGOUT_OUTPUT_PORTS];
1049 
1051  Fw::OutputCmdResponsePort m_seqCmdStatus_OutputPort[NUM_SEQCMDSTATUS_OUTPUT_PORTS];
1052 
1053  private:
1054 
1055  // ----------------------------------------------------------------------
1056  // First update flags for telemetry channels
1057  // ----------------------------------------------------------------------
1058 
1060  bool m_first_update_CommandsDispatched;
1061 
1063  bool m_first_update_CommandErrors;
1064 
1065  private:
1066 
1067  // ----------------------------------------------------------------------
1068  // Last value storage for telemetry channels
1069  // ----------------------------------------------------------------------
1070 
1072  U32 m_last_CommandsDispatched;
1073 
1075  U32 m_last_CommandErrors;
1076 
1077  private:
1078 
1079  // ----------------------------------------------------------------------
1080  // Mutexes
1081  // ----------------------------------------------------------------------
1082 
1084  Os::Mutex m_guardedPortMutex;
1085 
1086  };
1087 
1088 }
1089 
1090 #endif
void set_seqCmdStatus_OutputPort(FwIndexType portNum, Fw::InputCmdResponsePort *port)
Connect port to seqCmdStatus[portNum].
virtual void CMD_NO_OP_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CMD_NO_OP.
FwIdType FwOpcodeType
The type of a command opcode.
PlatformSizeType FwSizeType
void pingIn_handlerBase(FwIndexType portNum, U32 key)
Handler base-class function for input port pingIn.
CommandDispatcherComponentBase(const char *compName="")
Construct CommandDispatcherComponentBase object.
I32 FwEnumStoreType
void regCommands()
Register commands with the Command Dispatcher.
Fw::InputCmdRegPort * get_compCmdReg_InputPort(FwIndexType portNum)
void CMD_NO_OP_STRING_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
Deserialization status.
virtual void unLock()
Unlock the guarded mutex.
Fw::InputCmdPort * get_CmdDisp_InputPort(FwIndexType portNum)
virtual void pingIn_preMsgHook(FwIndexType portNum, U32 key)
Pre-message hook for async input port pingIn.
virtual void compCmdStat_handler(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response)=0
Handler for input port compCmdStat.
void log_ACTIVITY_HI_TestCmd1Args(I32 arg1, F32 arg2, U8 arg3) const
virtual void CMD_NO_OP_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
void pingOut_out(FwIndexType portNum, U32 key)
Invoke output port pingOut.
Enum representing a command response.
friend class CommandDispatcherTester
Friend class tester implementation to support white-box testing.
virtual void pingIn_handler(FwIndexType portNum, U32 key)=0
Handler for input port pingIn.
bool isConnected_CmdStatus_OutputPort(FwIndexType portNum)
void compCmdSend_out(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
Invoke output port compCmdSend.
The command dispatcher has successfully received a NO-OP command.
void log_DIAGNOSTIC_OpCodeReregistered(FwOpcodeType Opcode, I32 port) const
Svc::InputPingPort * get_pingIn_InputPort(FwIndexType portNum)
void init()
Object initializer.
Definition: ObjBase.cpp:24
virtual void CMD_TEST_CMD_1_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CMD_TEST_CMD_1.
float F32
32-bit floating point
Definition: BasicTypes.h:83
void log_COMMAND_OpCodeCompleted(FwOpcodeType Opcode) const
void log_ACTIVITY_HI_NoOpStringReceived(const Fw::StringBase &message) const
void tlmWrite_CommandsDispatched(U32 arg, Fw::Time _tlmTime=Fw::Time())
void set_CmdReg_OutputPort(FwIndexType portNum, Fw::InputCmdRegPort *port)
Connect port to CmdReg[portNum].
friend class CommandDispatcherTesterBase
Friend class tester to support autocoded test harness.
void set_compCmdSend_OutputPort(FwIndexType portNum, Fw::InputCmdPort *port)
Connect port to compCmdSend[portNum].
void log_WARNING_HI_MalformedCommand(Fw::DeserialStatus Status) const
virtual ~CommandDispatcherComponentBase()
Destroy CommandDispatcherComponentBase object.
Status
Generic OK/ERROR status.
Definition: Os.hpp:25
Fw::InputCmdResponsePort * get_compCmdStat_InputPort(FwIndexType portNum)
This log event message returns the TEST_CMD_1 arguments.
The command dispatcher has successfully received a NO-OP command from GUI with a string.
virtual void CMD_TEST_CMD_1_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, I32 arg1, F32 arg2, U8 arg3)=0
virtual void compCmdReg_handler(FwIndexType portNum, FwOpcodeType opCode)=0
Handler for input port compCmdReg.
void tlmWrite_CommandErrors(U32 arg, Fw::Time _tlmTime=Fw::Time())
virtual void compCmdStat_preMsgHook(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response)
Pre-message hook for async input port compCmdStat.
void log_WARNING_HI_InvalidCommand(FwOpcodeType Opcode) const
void compCmdStat_handlerBase(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response)
Handler base-class function for input port compCmdStat.
uint8_t U8
8-bit unsigned integer
Definition: BasicTypes.h:53
Exceeded the number of commands that can be simultaneously executed.
void log_COMMAND_OpCodeError(FwOpcodeType Opcode, Fw::CmdResponse error) const
void seqCmdStatus_out(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response)
Invoke output port seqCmdStatus.
PlatformIndexType FwIndexType
void log_DIAGNOSTIC_OpCodeRegistered(FwOpcodeType Opcode, I32 port, I32 slot) const
Log event OpCodeRegistered.
virtual void CMD_CLEAR_TRACKING_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CMD_CLEAR_TRACKING.
void set_Tlm_OutputPort(FwIndexType portNum, Fw::InputTlmPort *port)
Connect port to Tlm[portNum].
void CMD_CLEAR_TRACKING_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void seqCmdBuff_handlerBase(FwIndexType portNum, Fw::ComBuffer &data, U32 context)
Handler base-class function for input port seqCmdBuff.
virtual void CMD_NO_OP_STRING_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdStringArg &arg1)=0
Auto-generated base for CommandDispatcher component.
bool isConnected_seqCmdStatus_OutputPort(FwIndexType portNum)
virtual void CMD_NO_OP_STRING_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CMD_NO_OP_STRING.
RateGroupDivider component implementation.
virtual void CMD_CLEAR_TRACKING_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
void CMD_NO_OP_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
virtual void seqCmdBuff_handler(FwIndexType portNum, Fw::ComBuffer &data, U32 context)=0
Handler for input port seqCmdBuff.
virtual void seqCmdBuff_preMsgHook(FwIndexType portNum, Fw::ComBuffer &data, U32 context)
Pre-message hook for async input port seqCmdBuff.
Fw::InputComPort * get_seqCmdBuff_InputPort(FwIndexType portNum)
void compCmdReg_handlerBase(FwIndexType portNum, FwOpcodeType opCode)
Handler base-class function for input port compCmdReg.
void set_pingOut_OutputPort(FwIndexType portNum, Svc::InputPingPort *port)
Connect port to pingOut[portNum].
void log_WARNING_HI_TooManyCommands(FwOpcodeType Opcode) const
bool isConnected_compCmdSend_OutputPort(FwIndexType portNum)
virtual void lock()
Lock the guarded mutex.
void cmdResponse_out(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdResponse response)
Emit command response.
void log_COMMAND_OpCodeDispatched(FwOpcodeType Opcode, I32 port) const
void set_Log_OutputPort(FwIndexType portNum, Fw::InputLogPort *port)
Connect port to Log[portNum].
void set_Time_OutputPort(FwIndexType portNum, Fw::InputTimePort *port)
Connect port to Time[portNum].
void set_CmdStatus_OutputPort(FwIndexType portNum, Fw::InputCmdResponsePort *port)
Connect port to CmdStatus[portNum].
Clear command tracking info to recover from components not returning status.
void CMD_TEST_CMD_1_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)