F´ Flight Software - C/C++ Documentation
A framework for building embedded system applications to NASA flight quality standards.
CmdSequencerComponentAc.hpp
Go to the documentation of this file.
1 // ======================================================================
2 // \title CmdSequencerComponentAc.hpp
3 // \author Generated by fpp-to-cpp
4 // \brief hpp file for CmdSequencer component base class
5 // ======================================================================
6 
7 #ifndef Svc_CmdSequencerComponentAc_HPP
8 #define Svc_CmdSequencerComponentAc_HPP
9 
10 #include <atomic>
11 
12 #include "Fw/Cmd/CmdPortAc.hpp"
13 #include "Fw/Cmd/CmdRegPortAc.hpp"
15 #include "Fw/Cmd/CmdString.hpp"
16 #include "Fw/Com/ComPortAc.hpp"
18 #include "Fw/FPrimeBasicTypes.hpp"
19 #include "Fw/Log/LogPortAc.hpp"
20 #include "Fw/Log/LogString.hpp"
21 #if FW_ENABLE_TEXT_LOGGING == 1
22 #include "Fw/Log/LogTextPortAc.hpp"
23 #endif
26 #include "Fw/Time/TimePortAc.hpp"
27 #include "Fw/Tlm/TlmPortAc.hpp"
28 #include "Fw/Tlm/TlmString.hpp"
32 #include "Svc/Ping/PingPortAc.hpp"
37 
38 namespace Svc {
39 
46  {
47 
48  // ----------------------------------------------------------------------
49  // Friend classes
50  // ----------------------------------------------------------------------
51 
53  friend class CmdSequencerTesterBase;
55  friend class CmdSequencerTester;
56 
57  PROTECTED:
58 
59  // ----------------------------------------------------------------------
60  // Constants
61  // ----------------------------------------------------------------------
62 
64  enum {
66  };
67 
69  enum {
75  };
76 
78  enum {
85  };
86 
88  enum {
93  };
94 
96  enum {
97  OPCODE_CS_RUN = 0x0,
105  };
106 
108  enum {
135  };
136 
138  enum {
144  };
145 
146  public:
147 
148  // ----------------------------------------------------------------------
149  // Component initialization
150  // ----------------------------------------------------------------------
151 
153  void init(
154  FwSizeType queueDepth,
155  FwEnumStoreType instance = 0
156  );
157 
158  public:
159 
160  // ----------------------------------------------------------------------
161  // Getters for special input ports
162  // ----------------------------------------------------------------------
163 
168  FwIndexType portNum
169  );
170 
171  public:
172 
173  // ----------------------------------------------------------------------
174  // Getters for typed input ports
175  // ----------------------------------------------------------------------
176 
181  FwIndexType portNum
182  );
183 
188  FwIndexType portNum
189  );
190 
195  FwIndexType portNum
196  );
197 
202  FwIndexType portNum
203  );
204 
209  FwIndexType portNum
210  );
211 
212  public:
213 
214  // ----------------------------------------------------------------------
215  // Connect input ports to special output ports
216  // ----------------------------------------------------------------------
217 
218 #if FW_ENABLE_TEXT_LOGGING == 1
219 
221  void set_LogText_OutputPort(
222  FwIndexType portNum,
223  Fw::InputLogTextPort* port
224  );
225 
226 #endif
227 
230  FwIndexType portNum,
231  Fw::InputCmdRegPort* port
232  );
233 
236  FwIndexType portNum,
238  );
239 
242  FwIndexType portNum,
243  Fw::InputLogPort* port
244  );
245 
248  FwIndexType portNum,
249  Fw::InputTimePort* port
250  );
251 
254  FwIndexType portNum,
255  Fw::InputTlmPort* port
256  );
257 
258  public:
259 
260  // ----------------------------------------------------------------------
261  // Connect typed input ports to typed output ports
262  // ----------------------------------------------------------------------
263 
266  FwIndexType portNum,
267  Fw::InputComPort* port
268  );
269 
272  FwIndexType portNum,
273  Svc::InputPingPort* port
274  );
275 
278  FwIndexType portNum,
280  );
281 
284  FwIndexType portNum,
286  );
287 
288 #if FW_PORT_SERIALIZATION
289 
290  public:
291 
292  // ----------------------------------------------------------------------
293  // Connect serial input ports to special output ports
294  // ----------------------------------------------------------------------
295 
296 #if FW_ENABLE_TEXT_LOGGING == 1
297 
299  void set_LogText_OutputPort(
300  FwIndexType portNum,
301  Fw::InputSerializePort* port
302  );
303 
304 #endif
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 
326  FwIndexType portNum,
327  Fw::InputSerializePort* port
328  );
329 
332  FwIndexType portNum,
333  Fw::InputSerializePort* port
334  );
335 
336 #endif
337 
338 #if FW_PORT_SERIALIZATION
339 
340  public:
341 
342  // ----------------------------------------------------------------------
343  // Connect serial input ports to typed output ports
344  // ----------------------------------------------------------------------
345 
348  FwIndexType portNum,
349  Fw::InputSerializePort* port
350  );
351 
354  FwIndexType portNum,
355  Fw::InputSerializePort* port
356  );
357 
360  FwIndexType portNum,
361  Fw::InputSerializePort* port
362  );
363 
366  FwIndexType portNum,
367  Fw::InputSerializePort* port
368  );
369 
370 #endif
371 
372  public:
373 
374  // ----------------------------------------------------------------------
375  // Command registration
376  // ----------------------------------------------------------------------
377 
381  void regCommands();
382 
383  PROTECTED:
384 
385  // ----------------------------------------------------------------------
386  // Component construction and destruction
387  // ----------------------------------------------------------------------
388 
391  const char* compName = ""
392  );
393 
395  virtual ~CmdSequencerComponentBase();
396 
397  PROTECTED:
398 
399  // ----------------------------------------------------------------------
400  // Getters for numbers of special input ports
401  // ----------------------------------------------------------------------
402 
407 
408  PROTECTED:
409 
410  // ----------------------------------------------------------------------
411  // Getters for numbers of typed input ports
412  // ----------------------------------------------------------------------
413 
418 
423 
428 
433 
438 
439  PROTECTED:
440 
441  // ----------------------------------------------------------------------
442  // Getters for numbers of special output ports
443  // ----------------------------------------------------------------------
444 
445 #if FW_ENABLE_TEXT_LOGGING == 1
446 
450  FwIndexType getNum_LogText_OutputPorts() const;
451 
452 #endif
453 
458 
463 
468 
473 
478 
479  PROTECTED:
480 
481  // ----------------------------------------------------------------------
482  // Getters for numbers of typed output ports
483  // ----------------------------------------------------------------------
484 
489 
494 
499 
504 
505  PROTECTED:
506 
507  // ----------------------------------------------------------------------
508  // Connection status queries for special output ports
509  // ----------------------------------------------------------------------
510 
511 #if FW_ENABLE_TEXT_LOGGING == 1
512 
516  bool isConnected_LogText_OutputPort(
517  FwIndexType portNum
518  );
519 
520 #endif
521 
526  FwIndexType portNum
527  );
528 
533  FwIndexType portNum
534  );
535 
540  FwIndexType portNum
541  );
542 
547  FwIndexType portNum
548  );
549 
554  FwIndexType portNum
555  );
556 
557  PROTECTED:
558 
559  // ----------------------------------------------------------------------
560  // Connection status queries for typed output ports
561  // ----------------------------------------------------------------------
562 
567  FwIndexType portNum
568  );
569 
574  FwIndexType portNum
575  );
576 
581  FwIndexType portNum
582  );
583 
588  FwIndexType portNum
589  );
590 
591  PROTECTED:
592 
593  // ----------------------------------------------------------------------
594  // Handlers to implement for typed input ports
595  // ----------------------------------------------------------------------
596 
598  virtual void cmdResponseIn_handler(
599  FwIndexType portNum,
600  FwOpcodeType opCode,
601  U32 cmdSeq,
602  const Fw::CmdResponse& response
603  ) = 0;
604 
606  virtual void pingIn_handler(
607  FwIndexType portNum,
608  U32 key
609  ) = 0;
610 
612  virtual void schedIn_handler(
613  FwIndexType portNum,
614  U32 context
615  ) = 0;
616 
618  virtual void seqCancelIn_handler(
619  FwIndexType portNum
620  ) = 0;
621 
623  virtual void seqRunIn_handler(
624  FwIndexType portNum,
625  const Fw::StringBase& filename
626  ) = 0;
627 
628  PROTECTED:
629 
630  // ----------------------------------------------------------------------
631  // Port handler base-class functions for typed input ports
632  //
633  // Call these functions directly to bypass the corresponding ports
634  // ----------------------------------------------------------------------
635 
638  FwIndexType portNum,
639  FwOpcodeType opCode,
640  U32 cmdSeq,
641  const Fw::CmdResponse& response
642  );
643 
645  void pingIn_handlerBase(
646  FwIndexType portNum,
647  U32 key
648  );
649 
651  void schedIn_handlerBase(
652  FwIndexType portNum,
653  U32 context
654  );
655 
658  FwIndexType portNum
659  );
660 
663  FwIndexType portNum,
664  const Fw::StringBase& filename
665  );
666 
667  PROTECTED:
668 
669  // ----------------------------------------------------------------------
670  // Pre-message hooks for typed async input ports
671  //
672  // Each of these functions is invoked just before processing a message
673  // on the corresponding port. By default, they do nothing. You can
674  // override them to provide specific pre-message behavior.
675  // ----------------------------------------------------------------------
676 
678  virtual void cmdResponseIn_preMsgHook(
679  FwIndexType portNum,
680  FwOpcodeType opCode,
681  U32 cmdSeq,
682  const Fw::CmdResponse& response
683  );
684 
686  virtual void pingIn_preMsgHook(
687  FwIndexType portNum,
688  U32 key
689  );
690 
692  virtual void schedIn_preMsgHook(
693  FwIndexType portNum,
694  U32 context
695  );
696 
698  virtual void seqCancelIn_preMsgHook(
699  FwIndexType portNum
700  );
701 
703  virtual void seqRunIn_preMsgHook(
704  FwIndexType portNum,
705  const Fw::StringBase& filename
706  );
707 
708  PROTECTED:
709 
710  // ----------------------------------------------------------------------
711  // Invocation functions for typed output ports
712  // ----------------------------------------------------------------------
713 
715  void comCmdOut_out(
716  FwIndexType portNum,
717  Fw::ComBuffer& data,
718  U32 context
719  );
720 
722  void pingOut_out(
723  FwIndexType portNum,
724  U32 key
725  );
726 
728  void seqDone_out(
729  FwIndexType portNum,
730  FwOpcodeType opCode,
731  U32 cmdSeq,
732  const Fw::CmdResponse& response
733  );
734 
736  void seqStartOut_out(
737  FwIndexType portNum,
738  const Fw::StringBase& filename
739  );
740 
741  PROTECTED:
742 
743  // ----------------------------------------------------------------------
744  // Command response
745  // ----------------------------------------------------------------------
746 
748  void cmdResponse_out(
749  FwOpcodeType opCode,
750  U32 cmdSeq,
751  Fw::CmdResponse response
752  );
753 
754  PROTECTED:
755 
756  // ----------------------------------------------------------------------
757  // Command handlers to implement
758  // ----------------------------------------------------------------------
759 
763  virtual void CS_RUN_cmdHandler(
764  FwOpcodeType opCode,
765  U32 cmdSeq,
766  const Fw::CmdStringArg& fileName,
768  ) = 0;
769 
773  virtual void CS_VALIDATE_cmdHandler(
774  FwOpcodeType opCode,
775  U32 cmdSeq,
776  const Fw::CmdStringArg& fileName
777  ) = 0;
778 
782  virtual void CS_CANCEL_cmdHandler(
783  FwOpcodeType opCode,
784  U32 cmdSeq
785  ) = 0;
786 
790  virtual void CS_START_cmdHandler(
791  FwOpcodeType opCode,
792  U32 cmdSeq
793  ) = 0;
794 
798  virtual void CS_STEP_cmdHandler(
799  FwOpcodeType opCode,
800  U32 cmdSeq
801  ) = 0;
802 
806  virtual void CS_AUTO_cmdHandler(
807  FwOpcodeType opCode,
808  U32 cmdSeq
809  ) = 0;
810 
814  virtual void CS_MANUAL_cmdHandler(
815  FwOpcodeType opCode,
816  U32 cmdSeq
817  ) = 0;
818 
822  virtual void CS_JOIN_WAIT_cmdHandler(
823  FwOpcodeType opCode,
824  U32 cmdSeq
825  ) = 0;
826 
827  PROTECTED:
828 
829  // ----------------------------------------------------------------------
830  // Command handler base-class functions
831  //
832  // Call these functions directly to bypass the command input port
833  // ----------------------------------------------------------------------
834 
839  FwOpcodeType opCode,
840  U32 cmdSeq,
841  Fw::CmdArgBuffer& args
842  );
843 
848  FwOpcodeType opCode,
849  U32 cmdSeq,
850  Fw::CmdArgBuffer& args
851  );
852 
857  FwOpcodeType opCode,
858  U32 cmdSeq,
859  Fw::CmdArgBuffer& args
860  );
861 
866  FwOpcodeType opCode,
867  U32 cmdSeq,
868  Fw::CmdArgBuffer& args
869  );
870 
875  FwOpcodeType opCode,
876  U32 cmdSeq,
877  Fw::CmdArgBuffer& args
878  );
879 
884  FwOpcodeType opCode,
885  U32 cmdSeq,
886  Fw::CmdArgBuffer& args
887  );
888 
893  FwOpcodeType opCode,
894  U32 cmdSeq,
895  Fw::CmdArgBuffer& args
896  );
897 
902  FwOpcodeType opCode,
903  U32 cmdSeq,
904  Fw::CmdArgBuffer& args
905  );
906 
907  PROTECTED:
908 
909  // ----------------------------------------------------------------------
910  // Pre-message hooks for async commands
911  //
912  // Each of these functions is invoked just before processing the
913  // corresponding command. By default they do nothing. You can
914  // override them to provide specific pre-command behavior.
915  // ----------------------------------------------------------------------
916 
918  virtual void CS_RUN_preMsgHook(
919  FwOpcodeType opCode,
920  U32 cmdSeq
921  );
922 
924  virtual void CS_VALIDATE_preMsgHook(
925  FwOpcodeType opCode,
926  U32 cmdSeq
927  );
928 
930  virtual void CS_CANCEL_preMsgHook(
931  FwOpcodeType opCode,
932  U32 cmdSeq
933  );
934 
936  virtual void CS_START_preMsgHook(
937  FwOpcodeType opCode,
938  U32 cmdSeq
939  );
940 
942  virtual void CS_STEP_preMsgHook(
943  FwOpcodeType opCode,
944  U32 cmdSeq
945  );
946 
948  virtual void CS_AUTO_preMsgHook(
949  FwOpcodeType opCode,
950  U32 cmdSeq
951  );
952 
954  virtual void CS_MANUAL_preMsgHook(
955  FwOpcodeType opCode,
956  U32 cmdSeq
957  );
958 
960  virtual void CS_JOIN_WAIT_preMsgHook(
961  FwOpcodeType opCode,
962  U32 cmdSeq
963  );
964 
965  PROTECTED:
966 
967  // ----------------------------------------------------------------------
968  // Event logging functions
969  // ----------------------------------------------------------------------
970 
975  const Fw::StringBase& fileName
976  ) const;
977 
982  const Fw::StringBase& fileName
983  ) const;
984 
989  const Fw::StringBase& fileName
990  ) const;
991 
996  const Fw::StringBase& fileName,
998  I32 error
999  ) const;
1000 
1005  const Fw::StringBase& fileName,
1006  U32 recordNumber,
1007  I32 error
1008  ) const;
1009 
1014  const Fw::StringBase& fileName,
1015  U32 size
1016  ) const;
1017 
1022  const Fw::StringBase& fileName
1023  ) const;
1024 
1029  const Fw::StringBase& fileName,
1030  U32 storedCRC,
1031  U32 computedCRC
1032  ) const;
1033 
1038  const Fw::StringBase& fileName,
1039  U32 recordNumber,
1040  FwOpcodeType opCode
1041  ) const;
1042 
1047  const Fw::StringBase& fileName
1048  ) const;
1049 
1054  const Fw::StringBase& fileName,
1055  U32 recordNumber,
1056  FwOpcodeType opCode,
1057  U32 errorStatus
1058  ) const;
1059 
1063  void log_WARNING_HI_CS_InvalidMode() const;
1064 
1069  const Fw::StringBase& fileName,
1070  U32 header_records,
1071  U32 extra_bytes
1072  ) const;
1073 
1078  const Fw::StringBase& fileName,
1079  U16 time_base,
1080  U16 seq_time_base
1081  ) const;
1082 
1087  const Fw::StringBase& fileName,
1088  U8 currTimeBase,
1089  U8 seqTimeBase
1090  ) const;
1091 
1096  const Fw::StringBase& filename
1097  ) const;
1098 
1103  FwOpcodeType opcode
1104  ) const;
1105 
1111  ) const;
1112 
1117 
1122  const Fw::StringBase& filename
1123  ) const;
1124 
1129  const Fw::StringBase& filename,
1130  U32 command
1131  ) const;
1132 
1137  const Fw::StringBase& filename,
1138  U32 command
1139  ) const;
1140 
1145  const Fw::StringBase& filename
1146  ) const;
1147 
1152  const Fw::StringBase& filename,
1153  U32 recordNumber,
1154  FwOpcodeType opCode
1155  ) const;
1156 
1161 
1164  const Fw::StringBase& fileName
1165  ) const;
1166 
1167  PROTECTED:
1168 
1169  // ----------------------------------------------------------------------
1170  // Telemetry write functions
1171  // ----------------------------------------------------------------------
1172 
1177  U32 arg,
1178  Fw::Time _tlmTime = Fw::Time()
1179  ) const;
1180 
1185  U32 arg,
1186  Fw::Time _tlmTime = Fw::Time()
1187  ) const;
1188 
1192  void tlmWrite_CS_Errors(
1193  U32 arg,
1194  Fw::Time _tlmTime = Fw::Time()
1195  ) const;
1196 
1201  U32 arg,
1202  Fw::Time _tlmTime = Fw::Time()
1203  ) const;
1204 
1209  U32 arg,
1210  Fw::Time _tlmTime = Fw::Time()
1211  ) const;
1212 
1213  PROTECTED:
1214 
1215  // ----------------------------------------------------------------------
1216  // Time
1217  // ----------------------------------------------------------------------
1218 
1222  Fw::Time getTime() const;
1223 
1224  PRIVATE:
1225 
1226  // ----------------------------------------------------------------------
1227  // Message dispatch functions
1228  // ----------------------------------------------------------------------
1229 
1231  virtual MsgDispatchStatus doDispatch();
1232 
1233  PRIVATE:
1234 
1235  // ----------------------------------------------------------------------
1236  // Calls for messages received on special input ports
1237  // ----------------------------------------------------------------------
1238 
1240  static void m_p_cmdIn_in(
1241  Fw::PassiveComponentBase* callComp,
1242  FwIndexType portNum,
1243  FwOpcodeType opCode,
1244  U32 cmdSeq,
1245  Fw::CmdArgBuffer& args
1246  );
1247 
1248  PRIVATE:
1249 
1250  // ----------------------------------------------------------------------
1251  // Calls for messages received on typed input ports
1252  // ----------------------------------------------------------------------
1253 
1255  static void m_p_cmdResponseIn_in(
1256  Fw::PassiveComponentBase* callComp,
1257  FwIndexType portNum,
1258  FwOpcodeType opCode,
1259  U32 cmdSeq,
1260  const Fw::CmdResponse& response
1261  );
1262 
1264  static void m_p_pingIn_in(
1265  Fw::PassiveComponentBase* callComp,
1266  FwIndexType portNum,
1267  U32 key
1268  );
1269 
1271  static void m_p_schedIn_in(
1272  Fw::PassiveComponentBase* callComp,
1273  FwIndexType portNum,
1274  U32 context
1275  );
1276 
1278  static void m_p_seqCancelIn_in(
1279  Fw::PassiveComponentBase* callComp,
1280  FwIndexType portNum
1281  );
1282 
1284  static void m_p_seqRunIn_in(
1285  Fw::PassiveComponentBase* callComp,
1286  FwIndexType portNum,
1287  const Fw::StringBase& filename
1288  );
1289 
1290  PRIVATE:
1291 
1292  // ----------------------------------------------------------------------
1293  // Special input ports
1294  // ----------------------------------------------------------------------
1295 
1297  Fw::InputCmdPort m_cmdIn_InputPort[NUM_CMDIN_INPUT_PORTS];
1298 
1299  PRIVATE:
1300 
1301  // ----------------------------------------------------------------------
1302  // Typed input ports
1303  // ----------------------------------------------------------------------
1304 
1306  Fw::InputCmdResponsePort m_cmdResponseIn_InputPort[NUM_CMDRESPONSEIN_INPUT_PORTS];
1307 
1309  Svc::InputPingPort m_pingIn_InputPort[NUM_PINGIN_INPUT_PORTS];
1310 
1312  Svc::InputSchedPort m_schedIn_InputPort[NUM_SCHEDIN_INPUT_PORTS];
1313 
1316 
1318  Svc::InputCmdSeqInPort m_seqRunIn_InputPort[NUM_SEQRUNIN_INPUT_PORTS];
1319 
1320  PRIVATE:
1321 
1322  // ----------------------------------------------------------------------
1323  // Special output ports
1324  // ----------------------------------------------------------------------
1325 
1326 #if FW_ENABLE_TEXT_LOGGING == 1
1327 
1329  Fw::OutputLogTextPort m_LogText_OutputPort[NUM_LOGTEXT_OUTPUT_PORTS];
1330 
1331 #endif
1332 
1334  Fw::OutputCmdRegPort m_cmdRegOut_OutputPort[NUM_CMDREGOUT_OUTPUT_PORTS];
1335 
1337  Fw::OutputCmdResponsePort m_cmdResponseOut_OutputPort[NUM_CMDRESPONSEOUT_OUTPUT_PORTS];
1338 
1340  Fw::OutputLogPort m_logOut_OutputPort[NUM_LOGOUT_OUTPUT_PORTS];
1341 
1343  Fw::OutputTimePort m_timeCaller_OutputPort[NUM_TIMECALLER_OUTPUT_PORTS];
1344 
1346  Fw::OutputTlmPort m_tlmOut_OutputPort[NUM_TLMOUT_OUTPUT_PORTS];
1347 
1348  PRIVATE:
1349 
1350  // ----------------------------------------------------------------------
1351  // Typed output ports
1352  // ----------------------------------------------------------------------
1353 
1355  Fw::OutputComPort m_comCmdOut_OutputPort[NUM_COMCMDOUT_OUTPUT_PORTS];
1356 
1358  Svc::OutputPingPort m_pingOut_OutputPort[NUM_PINGOUT_OUTPUT_PORTS];
1359 
1362 
1364  Svc::OutputCmdSeqInPort m_seqStartOut_OutputPort[NUM_SEQSTARTOUT_OUTPUT_PORTS];
1365 
1366  };
1367 
1368 }
1369 
1370 #endif
void set_timeCaller_OutputPort(FwIndexType portNum, Fw::InputTimePort *port)
Connect port to timeCaller[portNum].
void log_WARNING_HI_CS_TimeContextMismatch(const Fw::StringBase &fileName, U8 currTimeBase, U8 seqTimeBase) const
void set_tlmOut_OutputPort(FwIndexType portNum, Fw::InputTlmPort *port)
Connect port to tlmOut[portNum].
void log_WARNING_HI_CS_FileInvalid(const Fw::StringBase &fileName, Svc::CmdSequencer_FileReadStage stage, I32 error) const
void tlmWrite_CS_LoadCommands(U32 arg, Fw::Time _tlmTime=Fw::Time()) const
Definition: Time.hpp:9
FwIdType FwOpcodeType
The type of a command opcode.
void log_WARNING_HI_CS_FileSizeError(const Fw::StringBase &fileName, U32 size) const
void log_ACTIVITY_HI_CS_ModeSwitched(Svc::CmdSequencer_SeqMode mode) const
bool isConnected_comCmdOut_OutputPort(FwIndexType portNum)
void cmdResponseIn_handlerBase(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response)
Handler base-class function for input port cmdResponseIn.
A sequence related command came with no active sequence.
PlatformSizeType FwSizeType
I32 FwEnumStoreType
void tlmWrite_CS_Errors(U32 arg, Fw::Time _tlmTime=Fw::Time()) const
void log_WARNING_HI_CS_FileNotFound(const Fw::StringBase &fileName) const
void CS_VALIDATE_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void log_ACTIVITY_HI_CS_JoinWaiting(const Fw::StringBase &filename, U32 recordNumber, FwOpcodeType opCode) const
A command status came back when no sequence was running.
void CS_MANUAL_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
Svc::InputPingPort * get_pingIn_InputPort(FwIndexType portNum)
void regCommands()
Register commands with the Command Dispatcher.
The Command Sequencer received a command that was invalid for its current mode.
virtual void schedIn_preMsgHook(FwIndexType portNum, U32 context)
Pre-message hook for async input port schedIn.
void log_WARNING_HI_CS_UnexpectedCompletion(FwOpcodeType opcode) const
virtual void CS_AUTO_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CS_AUTO.
The stage of the file read operation.
void log_ACTIVITY_LO_CS_SequenceLoaded(const Fw::StringBase &fileName) const
FwIndexType getNum_cmdResponseOut_OutputPorts() const
friend class CmdSequencerTester
Friend class tester implementation to support white-box testing.
void CS_STEP_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void pingOut_out(FwIndexType portNum, U32 key)
Invoke output port pingOut.
void log_ACTIVITY_HI_CS_CmdStarted(const Fw::StringBase &filename) const
virtual void CS_VALIDATE_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdStringArg &fileName)=0
Fw::InputCmdResponsePort * get_cmdResponseIn_InputPort(FwIndexType portNum)
void comCmdOut_out(FwIndexType portNum, Fw::ComBuffer &data, U32 context)
Invoke output port comCmdOut.
virtual void seqCancelIn_handler(FwIndexType portNum)=0
Handler for input port seqCancelIn.
void set_pingOut_OutputPort(FwIndexType portNum, Svc::InputPingPort *port)
Connect port to pingOut[portNum].
void pingIn_handlerBase(FwIndexType portNum, U32 key)
Handler base-class function for input port pingIn.
void seqDone_out(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response)
Invoke output port seqDone.
Enum representing a command response.
void schedIn_handlerBase(FwIndexType portNum, U32 context)
Handler base-class function for input port schedIn.
void seqRunIn_handlerBase(FwIndexType portNum, const Fw::StringBase &filename)
Handler base-class function for input port seqRunIn.
Cannot run new sequence when current sequence file is still running.
A command in a sequence was stepped through.
void CS_START_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void log_WARNING_HI_CS_SequenceTimeout(const Fw::StringBase &filename, U32 command) const
virtual void CS_CANCEL_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CS_CANCEL.
bool isConnected_cmdResponseOut_OutputPort(FwIndexType portNum)
void init()
Object initializer.
Definition: ObjBase.cpp:26
void seqStartOut_out(FwIndexType portNum, const Fw::StringBase &filename)
Invoke output port seqStartOut.
void set_seqDone_OutputPort(FwIndexType portNum, Fw::InputCmdResponsePort *port)
Connect port to seqDone[portNum].
virtual void CS_RUN_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CS_RUN.
void tlmWrite_CS_CancelCommands(U32 arg, Fw::Time _tlmTime=Fw::Time()) const
virtual ~CmdSequencerComponentBase()
Destroy CmdSequencerComponentBase object.
void tlmWrite_CS_CommandsExecuted(U32 arg, Fw::Time _tlmTime=Fw::Time()) const
virtual void seqRunIn_preMsgHook(FwIndexType portNum, const Fw::StringBase &filename)
Pre-message hook for async input port seqRunIn.
void log_ACTIVITY_HI_CS_PortSequenceStarted(const Fw::StringBase &filename) const
void log_WARNING_HI_CS_RecordInvalid(const Fw::StringBase &fileName, U32 recordNumber, I32 error) const
The Command Sequencer issued a command and received a success status in return.
void log_ACTIVITY_HI_CS_SequenceCanceled(const Fw::StringBase &fileName) const
virtual void CS_RUN_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdStringArg &fileName, Svc::CmdSequencer_BlockState block)=0
friend class CmdSequencerTesterBase
Friend class tester to support autocoded test harness.
void log_WARNING_HI_CS_RecordMismatch(const Fw::StringBase &fileName, U32 header_records, U32 extra_bytes) const
The Sequence File Loader could not read the sequence file.
The Command Sequencer issued a command and received an error status in return.
bool isConnected_pingOut_OutputPort(FwIndexType portNum)
virtual void cmdResponseIn_preMsgHook(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response)
Pre-message hook for async input port cmdResponseIn.
A local port request to run a sequence was started.
bool isConnected_seqStartOut_OutputPort(FwIndexType portNum)
Number of records in header doesn&#39;t match number in file.
void CS_JOIN_WAIT_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
Svc::InputCmdSeqInPort * get_seqRunIn_InputPort(FwIndexType portNum)
void set_cmdResponseOut_OutputPort(FwIndexType portNum, Fw::InputCmdResponsePort *port)
Connect port to cmdResponseOut[portNum].
void set_cmdRegOut_OutputPort(FwIndexType portNum, Fw::InputCmdRegPort *port)
Connect port to cmdRegOut[portNum].
virtual void CS_START_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
virtual void seqRunIn_handler(FwIndexType portNum, const Fw::StringBase &filename)=0
Handler for input port seqRunIn.
The running time base doesn&#39;t match the time base in the sequence files.
The running time base doesn&#39;t match the time base in the sequence files.
bool isConnected_timeCaller_OutputPort(FwIndexType portNum)
void CS_AUTO_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
virtual void CS_START_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CS_START.
bool isConnected_seqDone_OutputPort(FwIndexType portNum)
uint8_t U8
8-bit unsigned integer
Definition: BasicTypes.h:56
void set_comCmdOut_OutputPort(FwIndexType portNum, Fw::InputComPort *port)
Connect port to comCmdOut[portNum].
virtual void pingIn_preMsgHook(FwIndexType portNum, U32 key)
Pre-message hook for async input port pingIn.
Svc::InputSchedPort * get_schedIn_InputPort(FwIndexType portNum)
virtual void CS_AUTO_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
void log_WARNING_HI_CS_FileCrcFailure(const Fw::StringBase &fileName, U32 storedCRC, U32 computedCRC) const
virtual void CS_MANUAL_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CS_MANUAL.
Wait for the current running sequence file complete.
bool isConnected_cmdRegOut_OutputPort(FwIndexType portNum)
void CS_CANCEL_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void set_seqStartOut_OutputPort(FwIndexType portNum, Svc::InputCmdSeqInPort *port)
Connect port to seqStartOut[portNum].
void log_WARNING_HI_CS_TimeBaseMismatch(const Fw::StringBase &fileName, U16 time_base, U16 seq_time_base) const
virtual void CS_STEP_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CS_STEP.
PlatformIndexType FwIndexType
Fw::InputCmdPort * get_cmdIn_InputPort(FwIndexType portNum)
void seqCancelIn_handlerBase(FwIndexType portNum)
Handler base-class function for input port seqCancelIn.
Auto-generated base for CmdSequencer component.
void CS_RUN_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
virtual void pingIn_handler(FwIndexType portNum, U32 key)=0
Handler for input port pingIn.
RateGroupDivider component implementation.
virtual void CS_VALIDATE_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CS_VALIDATE.
void log_ACTIVITY_HI_CS_SequenceComplete(const Fw::StringBase &fileName) const
virtual void CS_STEP_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
void log_ACTIVITY_LO_CS_CommandComplete(const Fw::StringBase &fileName, U32 recordNumber, FwOpcodeType opCode) const
Wait for sequences that are running to finish. Allow user to run multiple seq files in SEQ_NO_BLOCK m...
FwIndexType getNum_seqStartOut_OutputPorts() const
virtual void CS_MANUAL_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
CmdSequencerComponentBase(const char *compName="")
Construct CmdSequencerComponentBase object.
virtual void cmdResponseIn_handler(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response)=0
Handler for input port cmdResponseIn.
void log_WARNING_LO_CS_NoRecords(const Fw::StringBase &fileName) const
Log event CS_NoRecords.
virtual void CS_JOIN_WAIT_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
virtual void seqCancelIn_preMsgHook(FwIndexType portNum)
Pre-message hook for async input port seqCancelIn.
virtual void schedIn_handler(FwIndexType portNum, U32 context)=0
Handler for input port schedIn.
void log_WARNING_HI_CS_CommandError(const Fw::StringBase &fileName, U32 recordNumber, FwOpcodeType opCode, U32 errorStatus) const
virtual void CS_CANCEL_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
void set_logOut_OutputPort(FwIndexType portNum, Fw::InputLogPort *port)
Connect port to logOut[portNum].
Svc::InputCmdSeqCancelPort * get_seqCancelIn_InputPort(FwIndexType portNum)
void log_ACTIVITY_HI_CS_SequenceValid(const Fw::StringBase &filename) const
bool isConnected_logOut_OutputPort(FwIndexType portNum)
Perform one step in a command sequence. Valid only if CmdSequencer is in MANUAL run mode...
void log_WARNING_HI_CS_FileReadError(const Fw::StringBase &fileName) const
bool isConnected_tlmOut_OutputPort(FwIndexType portNum)
void cmdResponse_out(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdResponse response)
Emit command response.
void tlmWrite_CS_SequencesCompleted(U32 arg, Fw::Time _tlmTime=Fw::Time()) const
void log_ACTIVITY_HI_CS_CmdStepped(const Fw::StringBase &filename, U32 command) const
FwIndexType getNum_cmdResponseIn_InputPorts() const
virtual void CS_JOIN_WAIT_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CS_JOIN_WAIT.