F´ Flight Software - C/C++ Documentation  devel
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 "FpConfig.hpp"
11 #include "Fw/Cmd/CmdPortAc.hpp"
12 #include "Fw/Cmd/CmdRegPortAc.hpp"
15 #include "Fw/Cmd/CmdString.hpp"
16 #include "Fw/Com/ComPortAc.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
25 #include "Fw/Time/TimePortAc.hpp"
26 #include "Fw/Tlm/TlmPortAc.hpp"
27 #include "Fw/Tlm/TlmString.hpp"
29 #include "Os/Mutex.hpp"
30 #include "Svc/Ping/PingPortAc.hpp"
31 
32 namespace Svc {
33 
40  {
41 
42  // ----------------------------------------------------------------------
43  // Friend classes
44  // ----------------------------------------------------------------------
45 
48 
49  PROTECTED:
50 
51  // ----------------------------------------------------------------------
52  // Constants
53  // ----------------------------------------------------------------------
54 
56  enum {
58  };
59 
61  enum {
66  };
67 
69  enum {
76  };
77 
79  enum {
83  };
84 
86  enum {
91  };
92 
94  enum {
106  };
107 
109  enum {
112  };
113 
114  public:
115 
116  // ----------------------------------------------------------------------
117  // Component initialization
118  // ----------------------------------------------------------------------
119 
121  void init(
122  FwSizeType queueDepth,
123  FwEnumStoreType instance = 0
124  );
125 
126  public:
127 
128  // ----------------------------------------------------------------------
129  // Getters for special input ports
130  // ----------------------------------------------------------------------
131 
136  FwIndexType portNum
137  );
138 
139  public:
140 
141  // ----------------------------------------------------------------------
142  // Getters for typed input ports
143  // ----------------------------------------------------------------------
144 
149  FwIndexType portNum
150  );
151 
156  FwIndexType portNum
157  );
158 
163  FwIndexType portNum
164  );
165 
170  FwIndexType portNum
171  );
172 
173  public:
174 
175  // ----------------------------------------------------------------------
176  // Connect input ports to special output ports
177  // ----------------------------------------------------------------------
178 
181  FwIndexType portNum,
182  Fw::InputCmdRegPort* port
183  );
184 
187  FwIndexType portNum,
189  );
190 
192  void set_Log_OutputPort(
193  FwIndexType portNum,
194  Fw::InputLogPort* port
195  );
196 
197 #if FW_ENABLE_TEXT_LOGGING == 1
198 
200  void set_LogText_OutputPort(
201  FwIndexType portNum,
202  Fw::InputLogTextPort* port
203  );
204 
205 #endif
206 
208  void set_Time_OutputPort(
209  FwIndexType portNum,
210  Fw::InputTimePort* port
211  );
212 
214  void set_Tlm_OutputPort(
215  FwIndexType portNum,
216  Fw::InputTlmPort* port
217  );
218 
219  public:
220 
221  // ----------------------------------------------------------------------
222  // Connect typed input ports to typed output ports
223  // ----------------------------------------------------------------------
224 
227  FwIndexType portNum,
228  Fw::InputCmdPort* port
229  );
230 
233  FwIndexType portNum,
234  Svc::InputPingPort* port
235  );
236 
239  FwIndexType portNum,
241  );
242 
243 #if FW_PORT_SERIALIZATION
244 
245  public:
246 
247  // ----------------------------------------------------------------------
248  // Connect serial input ports to special output ports
249  // ----------------------------------------------------------------------
250 
253  FwIndexType portNum,
254  Fw::InputSerializePort* port
255  );
256 
259  FwIndexType portNum,
260  Fw::InputSerializePort* port
261  );
262 
264  void set_Log_OutputPort(
265  FwIndexType portNum,
266  Fw::InputSerializePort* port
267  );
268 
269 #if FW_ENABLE_TEXT_LOGGING == 1
270 
272  void set_LogText_OutputPort(
273  FwIndexType portNum,
274  Fw::InputSerializePort* port
275  );
276 
277 #endif
278 
280  void set_Time_OutputPort(
281  FwIndexType portNum,
282  Fw::InputSerializePort* port
283  );
284 
286  void set_Tlm_OutputPort(
287  FwIndexType portNum,
288  Fw::InputSerializePort* port
289  );
290 
291 #endif
292 
293 #if FW_PORT_SERIALIZATION
294 
295  public:
296 
297  // ----------------------------------------------------------------------
298  // Connect serial input ports to typed output ports
299  // ----------------------------------------------------------------------
300 
303  FwIndexType portNum,
304  Fw::InputSerializePort* port
305  );
306 
309  FwIndexType portNum,
310  Fw::InputSerializePort* port
311  );
312 
315  FwIndexType portNum,
316  Fw::InputSerializePort* port
317  );
318 
319 #endif
320 
321  public:
322 
323  // ----------------------------------------------------------------------
324  // Command registration
325  // ----------------------------------------------------------------------
326 
330  void regCommands();
331 
332  PROTECTED:
333 
334  // ----------------------------------------------------------------------
335  // Component construction and destruction
336  // ----------------------------------------------------------------------
337 
340  const char* compName = ""
341  );
342 
345 
346  PROTECTED:
347 
348  // ----------------------------------------------------------------------
349  // Getters for numbers of special input ports
350  // ----------------------------------------------------------------------
351 
356 
357  PROTECTED:
358 
359  // ----------------------------------------------------------------------
360  // Getters for numbers of typed input ports
361  // ----------------------------------------------------------------------
362 
367 
372 
377 
382 
383  PROTECTED:
384 
385  // ----------------------------------------------------------------------
386  // Getters for numbers of special output ports
387  // ----------------------------------------------------------------------
388 
393 
398 
403 
404 #if FW_ENABLE_TEXT_LOGGING == 1
405 
409  FwIndexType getNum_LogText_OutputPorts() const;
410 
411 #endif
412 
417 
422 
423  PROTECTED:
424 
425  // ----------------------------------------------------------------------
426  // Getters for numbers of typed output ports
427  // ----------------------------------------------------------------------
428 
433 
438 
443 
444  PROTECTED:
445 
446  // ----------------------------------------------------------------------
447  // Connection status queries for special output ports
448  // ----------------------------------------------------------------------
449 
454  FwIndexType portNum
455  );
456 
461  FwIndexType portNum
462  );
463 
468  FwIndexType portNum
469  );
470 
471 #if FW_ENABLE_TEXT_LOGGING == 1
472 
476  bool isConnected_LogText_OutputPort(
477  FwIndexType portNum
478  );
479 
480 #endif
481 
486  FwIndexType portNum
487  );
488 
493  FwIndexType portNum
494  );
495 
496  PROTECTED:
497 
498  // ----------------------------------------------------------------------
499  // Connection status queries for typed output ports
500  // ----------------------------------------------------------------------
501 
506  FwIndexType portNum
507  );
508 
513  FwIndexType portNum
514  );
515 
520  FwIndexType portNum
521  );
522 
523  PROTECTED:
524 
525  // ----------------------------------------------------------------------
526  // Handlers to implement for typed input ports
527  // ----------------------------------------------------------------------
528 
530  virtual void compCmdReg_handler(
531  FwIndexType portNum,
532  FwOpcodeType opCode
533  ) = 0;
534 
536  virtual void compCmdStat_handler(
537  FwIndexType portNum,
538  FwOpcodeType opCode,
539  U32 cmdSeq,
540  const Fw::CmdResponse& response
541  ) = 0;
542 
544  virtual void pingIn_handler(
545  FwIndexType portNum,
546  U32 key
547  ) = 0;
548 
550  virtual void seqCmdBuff_handler(
551  FwIndexType portNum,
552  Fw::ComBuffer& data,
553  U32 context
554  ) = 0;
555 
556  PROTECTED:
557 
558  // ----------------------------------------------------------------------
559  // Port handler base-class functions for typed input ports
560  //
561  // Call these functions directly to bypass the corresponding ports
562  // ----------------------------------------------------------------------
563 
566  FwIndexType portNum,
567  FwOpcodeType opCode
568  );
569 
572  FwIndexType portNum,
573  FwOpcodeType opCode,
574  U32 cmdSeq,
575  const Fw::CmdResponse& response
576  );
577 
579  void pingIn_handlerBase(
580  FwIndexType portNum,
581  U32 key
582  );
583 
586  FwIndexType portNum,
587  Fw::ComBuffer& data,
588  U32 context
589  );
590 
591  PROTECTED:
592 
593  // ----------------------------------------------------------------------
594  // Pre-message hooks for typed async input ports
595  //
596  // Each of these functions is invoked just before processing a message
597  // on the corresponding port. By default, they do nothing. You can
598  // override them to provide specific pre-message behavior.
599  // ----------------------------------------------------------------------
600 
602  virtual void compCmdStat_preMsgHook(
603  FwIndexType portNum,
604  FwOpcodeType opCode,
605  U32 cmdSeq,
606  const Fw::CmdResponse& response
607  );
608 
610  virtual void pingIn_preMsgHook(
611  FwIndexType portNum,
612  U32 key
613  );
614 
616  virtual void seqCmdBuff_preMsgHook(
617  FwIndexType portNum,
618  Fw::ComBuffer& data,
619  U32 context
620  );
621 
622  PROTECTED:
623 
624  // ----------------------------------------------------------------------
625  // Invocation functions for typed output ports
626  // ----------------------------------------------------------------------
627 
629  void compCmdSend_out(
630  FwIndexType portNum,
631  FwOpcodeType opCode,
632  U32 cmdSeq,
633  Fw::CmdArgBuffer& args
634  );
635 
637  void pingOut_out(
638  FwIndexType portNum,
639  U32 key
640  );
641 
643  void seqCmdStatus_out(
644  FwIndexType portNum,
645  FwOpcodeType opCode,
646  U32 cmdSeq,
647  const Fw::CmdResponse& response
648  );
649 
650  PROTECTED:
651 
652  // ----------------------------------------------------------------------
653  // Command response
654  // ----------------------------------------------------------------------
655 
657  void cmdResponse_out(
658  FwOpcodeType opCode,
659  U32 cmdSeq,
660  Fw::CmdResponse response
661  );
662 
663  PROTECTED:
664 
665  // ----------------------------------------------------------------------
666  // Command handlers to implement
667  // ----------------------------------------------------------------------
668 
672  virtual void CMD_NO_OP_cmdHandler(
673  FwOpcodeType opCode,
674  U32 cmdSeq
675  ) = 0;
676 
681  FwOpcodeType opCode,
682  U32 cmdSeq,
683  const Fw::CmdStringArg& arg1
684  ) = 0;
685 
690  FwOpcodeType opCode,
691  U32 cmdSeq,
692  I32 arg1,
693  F32 arg2,
694  U8 arg3
695  ) = 0;
696 
701  FwOpcodeType opCode,
702  U32 cmdSeq
703  ) = 0;
704 
705  PROTECTED:
706 
707  // ----------------------------------------------------------------------
708  // Command handler base-class functions
709  //
710  // Call these functions directly to bypass the command input port
711  // ----------------------------------------------------------------------
712 
717  FwOpcodeType opCode,
718  U32 cmdSeq,
719  Fw::CmdArgBuffer& args
720  );
721 
726  FwOpcodeType opCode,
727  U32 cmdSeq,
728  Fw::CmdArgBuffer& args
729  );
730 
735  FwOpcodeType opCode,
736  U32 cmdSeq,
737  Fw::CmdArgBuffer& args
738  );
739 
744  FwOpcodeType opCode,
745  U32 cmdSeq,
746  Fw::CmdArgBuffer& args
747  );
748 
749  PROTECTED:
750 
751  // ----------------------------------------------------------------------
752  // Pre-message hooks for async commands
753  //
754  // Each of these functions is invoked just before processing the
755  // corresponding command. By default they do nothing. You can
756  // override them to provide specific pre-command behavior.
757  // ----------------------------------------------------------------------
758 
760  virtual void CMD_NO_OP_preMsgHook(
761  FwOpcodeType opCode,
762  U32 cmdSeq
763  );
764 
766  virtual void CMD_NO_OP_STRING_preMsgHook(
767  FwOpcodeType opCode,
768  U32 cmdSeq
769  );
770 
772  virtual void CMD_TEST_CMD_1_preMsgHook(
773  FwOpcodeType opCode,
774  U32 cmdSeq
775  );
776 
778  virtual void CMD_CLEAR_TRACKING_preMsgHook(
779  FwOpcodeType opCode,
780  U32 cmdSeq
781  );
782 
783  PROTECTED:
784 
785  // ----------------------------------------------------------------------
786  // Event logging functions
787  // ----------------------------------------------------------------------
788 
791  U32 Opcode,
792  I32 port,
793  I32 slot
794  );
795 
800  U32 Opcode,
801  I32 port
802  );
803 
808  U32 Opcode
809  );
810 
815  U32 Opcode,
816  Fw::CmdResponse error
817  );
818 
824  );
825 
830  U32 Opcode
831  );
832 
837  U32 Opcode
838  );
839 
844 
849  const Fw::StringBase& message
850  );
851 
856  I32 arg1,
857  F32 arg2,
858  U8 arg3
859  );
860 
865  U32 Opcode,
866  I32 port
867  );
868 
869  PROTECTED:
870 
871  // ----------------------------------------------------------------------
872  // Telemetry write functions
873  // ----------------------------------------------------------------------
874 
879  U32 arg,
880  Fw::Time _tlmTime = Fw::Time()
881  );
882 
887  U32 arg,
888  Fw::Time _tlmTime = Fw::Time()
889  );
890 
891  PROTECTED:
892 
893  // ----------------------------------------------------------------------
894  // Time
895  // ----------------------------------------------------------------------
896 
900  Fw::Time getTime();
901 
902  PROTECTED:
903 
904  // ----------------------------------------------------------------------
905  // Mutex operations for guarded ports
906  //
907  // You can override these operations to provide more sophisticated
908  // synchronization
909  // ----------------------------------------------------------------------
910 
912  virtual void lock();
913 
915  virtual void unLock();
916 
917  PRIVATE:
918 
919  // ----------------------------------------------------------------------
920  // Message dispatch functions
921  // ----------------------------------------------------------------------
922 
924  virtual MsgDispatchStatus doDispatch();
925 
926  PRIVATE:
927 
928  // ----------------------------------------------------------------------
929  // Calls for messages received on special input ports
930  // ----------------------------------------------------------------------
931 
933  static void m_p_CmdDisp_in(
934  Fw::PassiveComponentBase* callComp,
935  FwIndexType portNum,
936  FwOpcodeType opCode,
937  U32 cmdSeq,
938  Fw::CmdArgBuffer& args
939  );
940 
941  PRIVATE:
942 
943  // ----------------------------------------------------------------------
944  // Calls for messages received on typed input ports
945  // ----------------------------------------------------------------------
946 
948  static void m_p_compCmdReg_in(
949  Fw::PassiveComponentBase* callComp,
950  FwIndexType portNum,
951  FwOpcodeType opCode
952  );
953 
955  static void m_p_compCmdStat_in(
956  Fw::PassiveComponentBase* callComp,
957  FwIndexType portNum,
958  FwOpcodeType opCode,
959  U32 cmdSeq,
960  const Fw::CmdResponse& response
961  );
962 
964  static void m_p_pingIn_in(
965  Fw::PassiveComponentBase* callComp,
966  FwIndexType portNum,
967  U32 key
968  );
969 
971  static void m_p_seqCmdBuff_in(
972  Fw::PassiveComponentBase* callComp,
973  FwIndexType portNum,
974  Fw::ComBuffer& data,
975  U32 context
976  );
977 
978  PRIVATE:
979 
980  // ----------------------------------------------------------------------
981  // Special input ports
982  // ----------------------------------------------------------------------
983 
985  Fw::InputCmdPort m_CmdDisp_InputPort[NUM_CMDDISP_INPUT_PORTS];
986 
987  PRIVATE:
988 
989  // ----------------------------------------------------------------------
990  // Typed input ports
991  // ----------------------------------------------------------------------
992 
994  Fw::InputCmdRegPort m_compCmdReg_InputPort[NUM_COMPCMDREG_INPUT_PORTS];
995 
997  Fw::InputCmdResponsePort m_compCmdStat_InputPort[NUM_COMPCMDSTAT_INPUT_PORTS];
998 
1000  Svc::InputPingPort m_pingIn_InputPort[NUM_PINGIN_INPUT_PORTS];
1001 
1003  Fw::InputComPort m_seqCmdBuff_InputPort[NUM_SEQCMDBUFF_INPUT_PORTS];
1004 
1005  PRIVATE:
1006 
1007  // ----------------------------------------------------------------------
1008  // Special output ports
1009  // ----------------------------------------------------------------------
1010 
1012  Fw::OutputCmdRegPort m_CmdReg_OutputPort[NUM_CMDREG_OUTPUT_PORTS];
1013 
1015  Fw::OutputCmdResponsePort m_CmdStatus_OutputPort[NUM_CMDSTATUS_OUTPUT_PORTS];
1016 
1018  Fw::OutputLogPort m_Log_OutputPort[NUM_LOG_OUTPUT_PORTS];
1019 
1020 #if FW_ENABLE_TEXT_LOGGING == 1
1021 
1023  Fw::OutputLogTextPort m_LogText_OutputPort[NUM_LOGTEXT_OUTPUT_PORTS];
1024 
1025 #endif
1026 
1028  Fw::OutputTimePort m_Time_OutputPort[NUM_TIME_OUTPUT_PORTS];
1029 
1031  Fw::OutputTlmPort m_Tlm_OutputPort[NUM_TLM_OUTPUT_PORTS];
1032 
1033  PRIVATE:
1034 
1035  // ----------------------------------------------------------------------
1036  // Typed output ports
1037  // ----------------------------------------------------------------------
1038 
1040  Fw::OutputCmdPort m_compCmdSend_OutputPort[NUM_COMPCMDSEND_OUTPUT_PORTS];
1041 
1043  Svc::OutputPingPort m_pingOut_OutputPort[NUM_PINGOUT_OUTPUT_PORTS];
1044 
1046  Fw::OutputCmdResponsePort m_seqCmdStatus_OutputPort[NUM_SEQCMDSTATUS_OUTPUT_PORTS];
1047 
1048  PRIVATE:
1049 
1050  // ----------------------------------------------------------------------
1051  // First update flags for telemetry channels
1052  // ----------------------------------------------------------------------
1053 
1055  bool m_first_update_CommandsDispatched;
1056 
1058  bool m_first_update_CommandErrors;
1059 
1060  PRIVATE:
1061 
1062  // ----------------------------------------------------------------------
1063  // Last value storage for telemetry channels
1064  // ----------------------------------------------------------------------
1065 
1067  U32 m_last_CommandsDispatched;
1068 
1070  U32 m_last_CommandErrors;
1071 
1072  PRIVATE:
1073 
1074  // ----------------------------------------------------------------------
1075  // Mutexes
1076  // ----------------------------------------------------------------------
1077 
1079  Os::Mutex m_guardedPortMutex;
1080 
1081  };
1082 
1083 }
1084 
1085 #endif
float F32
32-bit floating point
Definition: BasicTypes.h:49
uint8_t U8
8-bit unsigned integer
Definition: BasicTypes.h:30
I32 FwEnumStoreType
Definition: FpConfig.h:64
U32 FwOpcodeType
Definition: FpConfig.h:91
PlatformSizeType FwSizeType
Definition: FpConfig.h:35
PlatformIndexType FwIndexType
Definition: FpConfig.h:25
C++-compatible configuration header for fprime configuration.
Enum representing a command response.
Deserialization status.
void init()
Object initializer.
Definition: ObjBase.cpp:27
Definition: Time.hpp:9
Auto-generated base for CommandDispatcher component.
void set_CmdStatus_OutputPort(FwIndexType portNum, Fw::InputCmdResponsePort *port)
Connect port to CmdStatus[portNum].
virtual void pingIn_preMsgHook(FwIndexType portNum, U32 key)
Pre-message hook for async input port pingIn.
void log_DIAGNOSTIC_OpCodeReregistered(U32 Opcode, I32 port)
bool isConnected_seqCmdStatus_OutputPort(FwIndexType portNum)
virtual void CMD_TEST_CMD_1_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CMD_TEST_CMD_1.
void log_ACTIVITY_HI_TestCmd1Args(I32 arg1, F32 arg2, U8 arg3)
virtual void compCmdStat_handler(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response)=0
Handler for input port compCmdStat.
virtual void CMD_NO_OP_STRING_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CMD_NO_OP_STRING.
void regCommands()
Register commands with the Command Dispatcher.
void CMD_NO_OP_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void log_DIAGNOSTIC_OpCodeRegistered(U32 Opcode, I32 port, I32 slot)
Log event OpCodeRegistered.
CommandDispatcherComponentBase(const char *compName="")
Construct CommandDispatcherComponentBase object.
virtual void CMD_NO_OP_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CMD_NO_OP.
virtual void compCmdReg_handler(FwIndexType portNum, FwOpcodeType opCode)=0
Handler for input port compCmdReg.
@ EVENTID_MALFORMEDCOMMAND
Received a malformed command packet.
@ EVENTID_NOOPRECEIVED
The command dispatcher has successfully received a NO-OP command.
@ EVENTID_TOOMANYCOMMANDS
Exceeded the number of commands that can be simultaneously executed.
@ EVENTID_NOOPSTRINGRECEIVED
The command dispatcher has successfully received a NO-OP command from GUI with a string.
@ EVENTID_TESTCMD1ARGS
This log event message returns the TEST_CMD_1 arguments.
@ EVENTID_OPCODEREREGISTERED
Op code reregistered event.
@ EVENTID_OPCODEERROR
Op code completed with error event.
void seqCmdBuff_handlerBase(FwIndexType portNum, Fw::ComBuffer &data, U32 context)
Handler base-class function for input port seqCmdBuff.
void set_Log_OutputPort(FwIndexType portNum, Fw::InputLogPort *port)
Connect port to Log[portNum].
virtual void unLock()
Unlock the guarded mutex.
Fw::InputCmdResponsePort * get_compCmdStat_InputPort(FwIndexType portNum)
virtual void seqCmdBuff_preMsgHook(FwIndexType portNum, Fw::ComBuffer &data, U32 context)
Pre-message hook for async input port seqCmdBuff.
void tlmWrite_CommandErrors(U32 arg, Fw::Time _tlmTime=Fw::Time())
void set_Tlm_OutputPort(FwIndexType portNum, Fw::InputTlmPort *port)
Connect port to Tlm[portNum].
virtual void pingIn_handler(FwIndexType portNum, U32 key)=0
Handler for input port pingIn.
void compCmdReg_handlerBase(FwIndexType portNum, FwOpcodeType opCode)
Handler base-class function for input port compCmdReg.
void set_Time_OutputPort(FwIndexType portNum, Fw::InputTimePort *port)
Connect port to Time[portNum].
bool isConnected_compCmdSend_OutputPort(FwIndexType portNum)
friend class CommandDispatcherComponentBaseFriend
Friend class for white-box testing.
void log_WARNING_HI_MalformedCommand(Fw::DeserialStatus Status)
void log_ACTIVITY_HI_NoOpStringReceived(const Fw::StringBase &message)
void set_seqCmdStatus_OutputPort(FwIndexType portNum, Fw::InputCmdResponsePort *port)
Connect port to seqCmdStatus[portNum].
void cmdResponse_out(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdResponse response)
Emit command response.
Svc::InputPingPort * get_pingIn_InputPort(FwIndexType portNum)
Fw::InputCmdRegPort * get_compCmdReg_InputPort(FwIndexType portNum)
Fw::InputCmdPort * get_CmdDisp_InputPort(FwIndexType portNum)
virtual void CMD_CLEAR_TRACKING_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
void compCmdStat_handlerBase(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response)
Handler base-class function for input port compCmdStat.
virtual void compCmdStat_preMsgHook(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response)
Pre-message hook for async input port compCmdStat.
virtual void CMD_NO_OP_STRING_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdStringArg &arg1)=0
void set_CmdReg_OutputPort(FwIndexType portNum, Fw::InputCmdRegPort *port)
Connect port to CmdReg[portNum].
void pingOut_out(FwIndexType portNum, U32 key)
Invoke output port pingOut.
virtual void CMD_CLEAR_TRACKING_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CMD_CLEAR_TRACKING.
virtual ~CommandDispatcherComponentBase()
Destroy CommandDispatcherComponentBase object.
virtual void CMD_NO_OP_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
void seqCmdStatus_out(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response)
Invoke output port seqCmdStatus.
void set_compCmdSend_OutputPort(FwIndexType portNum, Fw::InputCmdPort *port)
Connect port to compCmdSend[portNum].
bool isConnected_CmdStatus_OutputPort(FwIndexType portNum)
@ CHANNELID_COMMANDSDISPATCHED
Channel ID for CommandsDispatched.
@ CHANNELID_COMMANDERRORS
Channel ID for CommandErrors.
void compCmdSend_out(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
Invoke output port compCmdSend.
virtual void seqCmdBuff_handler(FwIndexType portNum, Fw::ComBuffer &data, U32 context)=0
Handler for input port seqCmdBuff.
void CMD_TEST_CMD_1_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void tlmWrite_CommandsDispatched(U32 arg, Fw::Time _tlmTime=Fw::Time())
void set_pingOut_OutputPort(FwIndexType portNum, Svc::InputPingPort *port)
Connect port to pingOut[portNum].
void CMD_NO_OP_STRING_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
virtual void lock()
Lock the guarded mutex.
void CMD_CLEAR_TRACKING_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
virtual void CMD_TEST_CMD_1_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, I32 arg1, F32 arg2, U8 arg3)=0
@ OPCODE_CMD_CLEAR_TRACKING
Clear command tracking info to recover from components not returning status.
Fw::InputComPort * get_seqCmdBuff_InputPort(FwIndexType portNum)
void log_COMMAND_OpCodeError(U32 Opcode, Fw::CmdResponse error)
void pingIn_handlerBase(FwIndexType portNum, U32 key)
Handler base-class function for input port pingIn.
Status
Generic OK/ERROR status.
Definition: Os.hpp:25