F´ Flight Software - C/C++ Documentation
A framework for building embedded system applications to NASA flight quality standards.
SeqDispatcherComponentAc.hpp
Go to the documentation of this file.
1 // ======================================================================
2 // \title SeqDispatcherComponentAc.hpp
3 // \author Generated by fpp-to-cpp
4 // \brief hpp file for SeqDispatcher component base class
5 // ======================================================================
6 
7 #ifndef Svc_SeqDispatcherComponentAc_HPP
8 #define Svc_SeqDispatcherComponentAc_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/Time/TimePortAc.hpp"
28 #include "Fw/Tlm/TlmPortAc.hpp"
29 #include "Fw/Tlm/TlmString.hpp"
35 
36 namespace Svc {
37 
44  {
45 
46  // ----------------------------------------------------------------------
47  // Friend classes
48  // ----------------------------------------------------------------------
49 
53  friend class SeqDispatcherTester;
54 
55  protected:
56 
57  // ----------------------------------------------------------------------
58  // Constants
59  // ----------------------------------------------------------------------
60 
62  enum {
64  };
65 
67  enum {
71  };
72 
74  enum {
81  };
82 
84  enum {
86  };
87 
89  enum {
90  OPCODE_RUN = 0x0,
93  };
94 
96  enum {
103  };
104 
106  enum {
110  };
111 
112  public:
113 
114  // ----------------------------------------------------------------------
115  // Component initialization
116  // ----------------------------------------------------------------------
117 
119  void init(
120  FwSizeType queueDepth,
121  FwEnumStoreType instance = 0
122  );
123 
124 #if !FW_DIRECT_PORT_CALLS
125 
126  public:
127 
128  // ----------------------------------------------------------------------
129  // Getters for special input ports
130  // ----------------------------------------------------------------------
131 
136  FwIndexType portNum
137  );
138 
139 #endif
140 
141 #if !FW_DIRECT_PORT_CALLS
142 
143  public:
144 
145  // ----------------------------------------------------------------------
146  // Getters for typed input ports
147  // ----------------------------------------------------------------------
148 
153  FwIndexType portNum
154  );
155 
160  FwIndexType portNum
161  );
162 
167  FwIndexType portNum
168  );
169 
170 #endif
171 
172 #if !FW_DIRECT_PORT_CALLS
173 
174  public:
175 
176  // ----------------------------------------------------------------------
177  // Connect input ports to special output ports
178  // ----------------------------------------------------------------------
179 
182  FwIndexType portNum,
183  Fw::InputCmdRegPort* port
184  );
185 
188  FwIndexType portNum,
190  );
191 
194  FwIndexType portNum,
195  Fw::InputLogPort* port
196  );
197 
198 #if FW_ENABLE_TEXT_LOGGING == 1
199 
201  void set_logTextOut_OutputPort(
202  FwIndexType portNum,
203  Fw::InputLogTextPort* port
204  );
205 
206 #endif
207 
210  FwIndexType portNum,
211  Fw::InputTimePort* port
212  );
213 
216  FwIndexType portNum,
217  Fw::InputTlmPort* port
218  );
219 
220 #endif
221 
222 #if !FW_DIRECT_PORT_CALLS
223 
224  public:
225 
226  // ----------------------------------------------------------------------
227  // Connect typed input ports to typed output ports
228  // ----------------------------------------------------------------------
229 
232  FwIndexType portNum,
234  );
235 
236 #endif
237 
238 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION
239 
240  public:
241 
242  // ----------------------------------------------------------------------
243  // Connect serial input ports to special output ports
244  // ----------------------------------------------------------------------
245 
248  FwIndexType portNum,
249  Fw::InputSerializePort* port
250  );
251 
254  FwIndexType portNum,
255  Fw::InputSerializePort* port
256  );
257 
260  FwIndexType portNum,
261  Fw::InputSerializePort* port
262  );
263 
264 #if FW_ENABLE_TEXT_LOGGING == 1
265 
267  void set_logTextOut_OutputPort(
268  FwIndexType portNum,
269  Fw::InputSerializePort* port
270  );
271 
272 #endif
273 
276  FwIndexType portNum,
277  Fw::InputSerializePort* port
278  );
279 
282  FwIndexType portNum,
283  Fw::InputSerializePort* port
284  );
285 
286 #endif
287 
288 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION
289 
290  public:
291 
292  // ----------------------------------------------------------------------
293  // Connect serial input ports to typed output ports
294  // ----------------------------------------------------------------------
295 
298  FwIndexType portNum,
299  Fw::InputSerializePort* port
300  );
301 
302 #endif
303 
304  public:
305 
306  // ----------------------------------------------------------------------
307  // Command registration
308  // ----------------------------------------------------------------------
309 
313  void regCommands();
314 
315  protected:
316 
317  // ----------------------------------------------------------------------
318  // Component construction and destruction
319  // ----------------------------------------------------------------------
320 
323  const char* compName = ""
324  );
325 
327  virtual ~SeqDispatcherComponentBase();
328 
329  protected:
330 
331  // ----------------------------------------------------------------------
332  // Getters for numbers of special input ports
333  // ----------------------------------------------------------------------
334 
339  return NUM_CMDIN_INPUT_PORTS;
340  }
341 
342  protected:
343 
344  // ----------------------------------------------------------------------
345  // Getters for numbers of typed input ports
346  // ----------------------------------------------------------------------
347 
353  }
354 
360  }
361 
367  }
368 
369  protected:
370 
371  // ----------------------------------------------------------------------
372  // Getters for numbers of special output ports
373  // ----------------------------------------------------------------------
374 
380  }
381 
387  }
388 
394  }
395 
396 #if FW_ENABLE_TEXT_LOGGING == 1
397 
401  static constexpr FwIndexType getNum_logTextOut_OutputPorts() {
403  }
404 
405 #endif
406 
412  }
413 
419  }
420 
421  protected:
422 
423  // ----------------------------------------------------------------------
424  // Getters for numbers of typed output ports
425  // ----------------------------------------------------------------------
426 
432  }
433 
434  protected:
435 
436  // ----------------------------------------------------------------------
437  // Connection status queries for special output ports
438  // ----------------------------------------------------------------------
439 
444  FwIndexType portNum
445  ) const;
446 
451  FwIndexType portNum
452  ) const;
453 
458  FwIndexType portNum
459  ) const;
460 
461 #if FW_ENABLE_TEXT_LOGGING == 1
462 
466  bool isConnected_logTextOut_OutputPort(
467  FwIndexType portNum
468  ) const;
469 
470 #endif
471 
476  FwIndexType portNum
477  ) const;
478 
483  FwIndexType portNum
484  ) const;
485 
486  protected:
487 
488  // ----------------------------------------------------------------------
489  // Connection status queries for typed output ports
490  // ----------------------------------------------------------------------
491 
496  FwIndexType portNum
497  ) const;
498 
499 #if FW_DIRECT_PORT_CALLS
500  public:
501 #else
502  protected:
503 #endif
504 
505  // ----------------------------------------------------------------------
506  // Port handler base-class functions for special input ports
507  //
508  // Call these functions directly to bypass the corresponding ports
509  // ----------------------------------------------------------------------
510 
512  void cmdIn_handlerBase(
513  FwIndexType portNum,
514  FwOpcodeType opCode,
515  U32 cmdSeq,
516  Fw::CmdArgBuffer& args
517  );
518 
519  protected:
520 
521  // ----------------------------------------------------------------------
522  // Handlers to implement for typed input ports
523  // ----------------------------------------------------------------------
524 
526  virtual void seqDoneIn_handler(
527  FwIndexType portNum,
528  FwOpcodeType opCode,
529  U32 cmdSeq,
530  const Fw::CmdResponse& response
531  ) = 0;
532 
534  virtual void seqRunIn_handler(
535  FwIndexType portNum,
536  const Fw::StringBase& filename,
537  const Svc::SeqArgs& args
538  ) = 0;
539 
541  virtual void seqStartIn_handler(
542  FwIndexType portNum,
543  const Fw::StringBase& filename,
544  const Svc::SeqArgs& args
545  ) = 0;
546 
547 #if FW_DIRECT_PORT_CALLS
548  public:
549 #else
550  protected:
551 #endif
552 
553  // ----------------------------------------------------------------------
554  // Port handler base-class functions for typed input ports
555  //
556  // Call these functions directly to bypass the corresponding ports
557  // ----------------------------------------------------------------------
558 
561  FwIndexType portNum,
562  FwOpcodeType opCode,
563  U32 cmdSeq,
564  const Fw::CmdResponse& response
565  );
566 
569  FwIndexType portNum,
570  const Fw::StringBase& filename,
571  const Svc::SeqArgs& args
572  );
573 
576  FwIndexType portNum,
577  const Fw::StringBase& filename,
578  const Svc::SeqArgs& args
579  );
580 
581  protected:
582 
583  // ----------------------------------------------------------------------
584  // Pre-message hooks for typed async input ports
585  //
586  // Each of these functions is invoked just before processing a message
587  // on the corresponding port. By default, they do nothing. You can
588  // override them to provide specific pre-message behavior.
589  // ----------------------------------------------------------------------
590 
592  virtual void seqDoneIn_preMsgHook(
593  FwIndexType portNum,
594  FwOpcodeType opCode,
595  U32 cmdSeq,
596  const Fw::CmdResponse& response
597  );
598 
600  virtual void seqRunIn_preMsgHook(
601  FwIndexType portNum,
602  const Fw::StringBase& filename,
603  const Svc::SeqArgs& args
604  );
605 
607  virtual void seqStartIn_preMsgHook(
608  FwIndexType portNum,
609  const Fw::StringBase& filename,
610  const Svc::SeqArgs& args
611  );
612 
613  protected:
614 
615  // ----------------------------------------------------------------------
616  // Invocation functions for typed output ports
617  // ----------------------------------------------------------------------
618 
620  void seqRunOut_out(
621  FwIndexType portNum,
622  const Fw::StringBase& filename,
623  const Svc::SeqArgs& args
624  ) const;
625 
626  protected:
627 
628  // ----------------------------------------------------------------------
629  // Command response
630  // ----------------------------------------------------------------------
631 
633  void cmdResponse_out(
634  FwOpcodeType opCode,
635  U32 cmdSeq,
636  Fw::CmdResponse response
637  );
638 
639  protected:
640 
641  // ----------------------------------------------------------------------
642  // Command handlers to implement
643  // ----------------------------------------------------------------------
644 
648  virtual void RUN_cmdHandler(
649  FwOpcodeType opCode,
650  U32 cmdSeq,
651  const Fw::CmdStringArg& fileName,
652  Svc::BlockState block
653  ) = 0;
654 
658  virtual void RUN_ARGS_cmdHandler(
659  FwOpcodeType opCode,
660  U32 cmdSeq,
661  const Fw::CmdStringArg& fileName,
662  Svc::BlockState block,
663  Svc::SeqArgs buffer
664  ) = 0;
665 
669  virtual void LOG_STATUS_cmdHandler(
670  FwOpcodeType opCode,
671  U32 cmdSeq
672  ) = 0;
673 
674  protected:
675 
676  // ----------------------------------------------------------------------
677  // Command handler base-class functions
678  //
679  // Call these functions directly to bypass the command input port
680  // ----------------------------------------------------------------------
681 
685  void RUN_cmdHandlerBase(
686  FwOpcodeType opCode,
687  U32 cmdSeq,
688  Fw::CmdArgBuffer& args
689  );
690 
695  FwOpcodeType opCode,
696  U32 cmdSeq,
697  Fw::CmdArgBuffer& args
698  );
699 
704  FwOpcodeType opCode,
705  U32 cmdSeq,
706  Fw::CmdArgBuffer& args
707  );
708 
709  protected:
710 
711  // ----------------------------------------------------------------------
712  // Pre-message hooks for async commands
713  //
714  // Each of these functions is invoked just before processing the
715  // corresponding command. By default they do nothing. You can
716  // override them to provide specific pre-command behavior.
717  // ----------------------------------------------------------------------
718 
720  virtual void RUN_preMsgHook(
721  FwOpcodeType opCode,
722  U32 cmdSeq
723  );
724 
726  virtual void RUN_ARGS_preMsgHook(
727  FwOpcodeType opCode,
728  U32 cmdSeq
729  );
730 
732  virtual void LOG_STATUS_preMsgHook(
733  FwOpcodeType opCode,
734  U32 cmdSeq
735  );
736 
737  protected:
738 
739  // ----------------------------------------------------------------------
740  // Event logging functions
741  // ----------------------------------------------------------------------
742 
744  void log_WARNING_HI_InvalidSequencer(U16 idx) const;
745 
748 
750  void log_WARNING_LO_UnknownSequenceFinished(U16 idx) const;
751 
754  U16 idx,
755  const Fw::StringBase& newSequence,
756  const Fw::StringBase& sequenceInInternalState
757  ) const;
758 
761  U16 idx,
762  const Fw::StringBase& newSequence
763  ) const;
764 
767  U16 idx,
769  const Fw::StringBase& filename
770  ) const;
771 
772  protected:
773 
774  // ----------------------------------------------------------------------
775  // Telemetry serialized write
776  // ----------------------------------------------------------------------
777 
782  void tlmWrite(
783  FwChanIdType id,
784  Fw::TlmBuffer& _tlmBuff,
785  Fw::Time _tlmTime = Fw::Time()
786  ) const;
787 
788  protected:
789 
790  // ----------------------------------------------------------------------
791  // Telemetry write functions
792  // ----------------------------------------------------------------------
793 
798  U32 arg,
799  Fw::Time _tlmTime = Fw::Time()
800  ) const;
801 
807  void tlmWrite_errorCount(
808  U32 arg,
809  Fw::Time _tlmTime = Fw::Time()
810  ) const;
811 
816  U32 arg,
817  Fw::Time _tlmTime = Fw::Time()
818  ) const;
819 
820  protected:
821 
822  // ----------------------------------------------------------------------
823  // Time
824  // ----------------------------------------------------------------------
825 
829  Fw::Time getTime() const;
830 
831  private:
832 
833  // ----------------------------------------------------------------------
834  // Message dispatch functions
835  // ----------------------------------------------------------------------
836 
838  virtual MsgDispatchStatus doDispatch();
839 
840  private:
841 
842  // ----------------------------------------------------------------------
843  // Calls for messages received on special input ports
844  // ----------------------------------------------------------------------
845 
847  static void m_p_cmdIn_in(
848  Fw::PassiveComponentBase* callComp,
849  FwIndexType portNum,
850  FwOpcodeType opCode,
851  U32 cmdSeq,
852  Fw::CmdArgBuffer& args
853  );
854 
855  private:
856 
857  // ----------------------------------------------------------------------
858  // Calls for messages received on typed input ports
859  // ----------------------------------------------------------------------
860 
862  static void m_p_seqDoneIn_in(
863  Fw::PassiveComponentBase* callComp,
864  FwIndexType portNum,
865  FwOpcodeType opCode,
866  U32 cmdSeq,
867  const Fw::CmdResponse& response
868  );
869 
871  static void m_p_seqRunIn_in(
872  Fw::PassiveComponentBase* callComp,
873  FwIndexType portNum,
874  const Fw::StringBase& filename,
875  const Svc::SeqArgs& args
876  );
877 
879  static void m_p_seqStartIn_in(
880  Fw::PassiveComponentBase* callComp,
881  FwIndexType portNum,
882  const Fw::StringBase& filename,
883  const Svc::SeqArgs& args
884  );
885 
886  private:
887 
888  // ----------------------------------------------------------------------
889  // Invocation functions for special output ports
890  // ----------------------------------------------------------------------
891 
893  void cmdRegOut_out(
894  FwIndexType portNum,
895  FwOpcodeType opCode
896  ) const;
897 
899  void cmdResponseOut_out(
900  FwIndexType portNum,
901  FwOpcodeType opCode,
902  U32 cmdSeq,
903  const Fw::CmdResponse& response
904  ) const;
905 
907  void logOut_out(
908  FwIndexType portNum,
909  FwEventIdType id,
910  Fw::Time& timeTag,
911  const Fw::LogSeverity& severity,
912  Fw::LogBuffer& args
913  ) const;
914 
915 #if FW_ENABLE_TEXT_LOGGING
916 
918  void logTextOut_out(
919  FwIndexType portNum,
920  FwEventIdType id,
921  Fw::Time& timeTag,
922  const Fw::LogSeverity& severity,
923  Fw::TextLogString& text
924  ) const;
925 
926 #endif
927 
929  void timeCaller_out(
930  FwIndexType portNum,
931  Fw::Time& time
932  ) const;
933 
935  void tlmOut_out(
936  FwIndexType portNum,
937  FwChanIdType id,
938  Fw::Time& timeTag,
939  Fw::TlmBuffer& val
940  ) const;
941 
942 #if !FW_DIRECT_PORT_CALLS
943 
944  private:
945 
946  // ----------------------------------------------------------------------
947  // Special input ports
948  // ----------------------------------------------------------------------
949 
951  Fw::InputCmdPort m_cmdIn_InputPort[NUM_CMDIN_INPUT_PORTS];
952 
953 #endif
954 
955 #if !FW_DIRECT_PORT_CALLS
956 
957  private:
958 
959  // ----------------------------------------------------------------------
960  // Typed input ports
961  // ----------------------------------------------------------------------
962 
965 
967  Svc::InputCmdSeqInPort m_seqRunIn_InputPort[NUM_SEQRUNIN_INPUT_PORTS];
968 
970  Svc::InputCmdSeqInPort m_seqStartIn_InputPort[NUM_SEQSTARTIN_INPUT_PORTS];
971 
972 #endif
973 
974 #if !FW_DIRECT_PORT_CALLS
975 
976  private:
977 
978  // ----------------------------------------------------------------------
979  // Special output ports
980  // ----------------------------------------------------------------------
981 
983  Fw::OutputCmdRegPort m_cmdRegOut_OutputPort[NUM_CMDREGOUT_OUTPUT_PORTS];
984 
986  Fw::OutputCmdResponsePort m_cmdResponseOut_OutputPort[NUM_CMDRESPONSEOUT_OUTPUT_PORTS];
987 
989  Fw::OutputLogPort m_logOut_OutputPort[NUM_LOGOUT_OUTPUT_PORTS];
990 
991 #if FW_ENABLE_TEXT_LOGGING == 1
992 
994  Fw::OutputLogTextPort m_logTextOut_OutputPort[NUM_LOGTEXTOUT_OUTPUT_PORTS];
995 
996 #endif
997 
999  Fw::OutputTimePort m_timeCaller_OutputPort[NUM_TIMECALLER_OUTPUT_PORTS];
1000 
1002  Fw::OutputTlmPort m_tlmOut_OutputPort[NUM_TLMOUT_OUTPUT_PORTS];
1003 
1004 #endif
1005 
1006 #if !FW_DIRECT_PORT_CALLS
1007 
1008  private:
1009 
1010  // ----------------------------------------------------------------------
1011  // Typed output ports
1012  // ----------------------------------------------------------------------
1013 
1015  Svc::OutputCmdSeqInPort m_seqRunOut_OutputPort[NUM_SEQRUNOUT_OUTPUT_PORTS];
1016 
1017 #endif
1018 
1019  };
1020 
1021 }
1022 
1023 #endif
Fw::InputCmdResponsePort * get_seqDoneIn_InputPort(FwIndexType portNum)
virtual void seqDoneIn_preMsgHook(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response)
Pre-message hook for async input port seqDoneIn.
void tlmWrite_sequencersAvailable(U32 arg, Fw::Time _tlmTime=Fw::Time()) const
virtual void LOG_STATUS_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command LOG_STATUS.
void tlmWrite_errorCount(U32 arg, Fw::Time _tlmTime=Fw::Time()) const
FwIdType FwOpcodeType
The type of a command opcode.
PlatformSizeType FwSizeType
Svc::InputCmdSeqInPort * get_seqRunIn_InputPort(FwIndexType portNum)
I32 FwEnumStoreType
virtual void RUN_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command RUN.
friend class SeqDispatcherTester
Friend class tester implementation to support white-box testing.
bool isConnected_seqRunOut_OutputPort(FwIndexType portNum) const
static constexpr FwIndexType getNum_seqDoneIn_InputPorts()
Svc::InputCmdSeqInPort * get_seqStartIn_InputPort(FwIndexType portNum)
friend class SeqDispatcherTesterBase
Friend class tester to support autocoded test harness.
bool isConnected_timeCaller_OutputPort(FwIndexType portNum) const
virtual void seqStartIn_handler(FwIndexType portNum, const Fw::StringBase &filename, const Svc::SeqArgs &args)=0
Handler for input port seqStartIn.
virtual void RUN_ARGS_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command RUN_ARGS.
Enum representing a command response.
void set_tlmOut_OutputPort(FwIndexType portNum, Fw::InputTlmPort *port)
Connect port to tlmOut[portNum].
void regCommands()
Register commands with the Command Dispatcher.
virtual void seqRunIn_preMsgHook(FwIndexType portNum, const Fw::StringBase &filename, const Svc::SeqArgs &args)
Pre-message hook for async input port seqRunIn.
void seqDoneIn_handlerBase(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response)
Handler base-class function for input port seqDoneIn.
void set_logOut_OutputPort(FwIndexType portNum, Fw::InputLogPort *port)
Connect port to logOut[portNum].
void set_cmdResponseOut_OutputPort(FwIndexType portNum, Fw::InputCmdResponsePort *port)
Connect port to cmdResponseOut[portNum].
static constexpr FwIndexType getNum_logOut_OutputPorts()
void RUN_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void init()
Object initializer.
Definition: ObjBase.cpp:24
Logs via Events the state of each connected command sequencer.
bool isConnected_logOut_OutputPort(FwIndexType portNum) const
static constexpr FwIndexType getNum_cmdRegOut_OutputPorts()
Dispatches a sequence with arguments to the first available sequencer.
virtual void LOG_STATUS_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
void log_WARNING_LO_UnknownSequenceFinished(U16 idx) const
Log event UnknownSequenceFinished.
virtual ~SeqDispatcherComponentBase()
Destroy SeqDispatcherComponentBase object.
FwIdType FwEventIdType
The type of an event identifier.
static constexpr FwIndexType getNum_seqRunOut_OutputPorts()
void log_ACTIVITY_LO_LogSequencerStatus(U16 idx, Svc::SeqDispatcher_CmdSequencerState state, const Fw::StringBase &filename) const
Log event LogSequencerStatus.
Fw::InputCmdPort * get_cmdIn_InputPort(FwIndexType portNum)
void set_seqRunOut_OutputPort(FwIndexType portNum, Svc::InputCmdSeqInPort *port)
Connect port to seqRunOut[portNum].
FwIdType FwChanIdType
The type of a telemetry channel identifier.
SeqDispatcherComponentBase(const char *compName="")
Construct SeqDispatcherComponentBase object.
static constexpr FwIndexType getNum_cmdIn_InputPorts()
Sequencer blocking state.
bool isConnected_cmdResponseOut_OutputPort(FwIndexType portNum) const
static constexpr FwIndexType getNum_cmdResponseOut_OutputPorts()
void seqRunOut_out(FwIndexType portNum, const Fw::StringBase &filename, const Svc::SeqArgs &args) const
Invoke output port seqRunOut.
void log_WARNING_LO_UnexpectedSequenceStarted(U16 idx, const Fw::StringBase &newSequence) const
Log event UnexpectedSequenceStarted.
Enum representing event severity.
bool isConnected_tlmOut_OutputPort(FwIndexType portNum) const
virtual void seqStartIn_preMsgHook(FwIndexType portNum, const Fw::StringBase &filename, const Svc::SeqArgs &args)
Pre-message hook for async input port seqStartIn.
bool isConnected_cmdRegOut_OutputPort(FwIndexType portNum) const
void seqStartIn_handlerBase(FwIndexType portNum, const Fw::StringBase &filename, const Svc::SeqArgs &args)
Handler base-class function for input port seqStartIn.
Dispatches a sequence to the first available sequencer.
virtual void RUN_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdStringArg &fileName, Svc::BlockState block)=0
void tlmWrite(FwChanIdType id, Fw::TlmBuffer &_tlmBuff, Fw::Time _tlmTime=Fw::Time()) const
void log_WARNING_HI_NoAvailableSequencers() const
Log event NoAvailableSequencers.
void RUN_ARGS_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
PlatformIndexType FwIndexType
void seqRunIn_handlerBase(FwIndexType portNum, const Fw::StringBase &filename, const Svc::SeqArgs &args)
Handler base-class function for input port seqRunIn.
Auto-generated base for SeqDispatcher component.
static constexpr FwIndexType getNum_tlmOut_OutputPorts()
virtual void seqDoneIn_handler(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response)=0
Handler for input port seqDoneIn.
void LOG_STATUS_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
RateGroupDivider component implementation.
void log_WARNING_HI_InvalidSequencer(U16 idx) const
Log event InvalidSequencer.
void set_cmdRegOut_OutputPort(FwIndexType portNum, Fw::InputCmdRegPort *port)
Connect port to cmdRegOut[portNum].
static constexpr FwIndexType getNum_seqRunIn_InputPorts()
static constexpr FwIndexType getNum_timeCaller_OutputPorts()
virtual void RUN_ARGS_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdStringArg &fileName, Svc::BlockState block, Svc::SeqArgs buffer)=0
void cmdResponse_out(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdResponse response)
Emit command response.
void cmdIn_handlerBase(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
Handler base-class function for input port cmdIn.
void log_WARNING_HI_ConflictingSequenceStarted(U16 idx, const Fw::StringBase &newSequence, const Fw::StringBase &sequenceInInternalState) const
Log event ConflictingSequenceStarted.
virtual void seqRunIn_handler(FwIndexType portNum, const Fw::StringBase &filename, const Svc::SeqArgs &args)=0
Handler for input port seqRunIn.
static constexpr FwIndexType getNum_seqStartIn_InputPorts()
void tlmWrite_dispatchedCount(U32 arg, Fw::Time _tlmTime=Fw::Time()) const
void set_timeCaller_OutputPort(FwIndexType portNum, Fw::InputTimePort *port)
Connect port to timeCaller[portNum].