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"
36 
37 namespace Svc {
38 
45  {
46 
47  // ----------------------------------------------------------------------
48  // Friend classes
49  // ----------------------------------------------------------------------
50 
54  friend class CmdSequencerTesterBase;
55 
56  PROTECTED:
57 
58  // ----------------------------------------------------------------------
59  // Constants
60  // ----------------------------------------------------------------------
61 
63  enum {
65  };
66 
68  enum {
74  };
75 
77  enum {
84  };
85 
87  enum {
92  };
93 
95  enum {
96  OPCODE_CS_RUN = 0x0,
104  };
105 
107  enum {
134  };
135 
137  enum {
143  };
144 
145  public:
146 
147  // ----------------------------------------------------------------------
148  // Component initialization
149  // ----------------------------------------------------------------------
150 
152  void init(
153  FwSizeType queueDepth,
154  FwEnumStoreType instance = 0
155  );
156 
157  public:
158 
159  // ----------------------------------------------------------------------
160  // Getters for special input ports
161  // ----------------------------------------------------------------------
162 
167  FwIndexType portNum
168  );
169 
170  public:
171 
172  // ----------------------------------------------------------------------
173  // Getters for typed input ports
174  // ----------------------------------------------------------------------
175 
180  FwIndexType portNum
181  );
182 
187  FwIndexType portNum
188  );
189 
194  FwIndexType portNum
195  );
196 
201  FwIndexType portNum
202  );
203 
208  FwIndexType portNum
209  );
210 
211  public:
212 
213  // ----------------------------------------------------------------------
214  // Connect input ports to special output ports
215  // ----------------------------------------------------------------------
216 
217 #if FW_ENABLE_TEXT_LOGGING == 1
218 
220  void set_LogText_OutputPort(
221  FwIndexType portNum,
222  Fw::InputLogTextPort* port
223  );
224 
225 #endif
226 
229  FwIndexType portNum,
230  Fw::InputCmdRegPort* port
231  );
232 
235  FwIndexType portNum,
237  );
238 
241  FwIndexType portNum,
242  Fw::InputLogPort* port
243  );
244 
247  FwIndexType portNum,
248  Fw::InputTimePort* port
249  );
250 
253  FwIndexType portNum,
254  Fw::InputTlmPort* port
255  );
256 
257  public:
258 
259  // ----------------------------------------------------------------------
260  // Connect typed input ports to typed output ports
261  // ----------------------------------------------------------------------
262 
265  FwIndexType portNum,
266  Fw::InputComPort* port
267  );
268 
271  FwIndexType portNum,
272  Svc::InputPingPort* port
273  );
274 
277  FwIndexType portNum,
279  );
280 
283  FwIndexType portNum,
285  );
286 
287 #if FW_PORT_SERIALIZATION
288 
289  public:
290 
291  // ----------------------------------------------------------------------
292  // Connect serial input ports to special output ports
293  // ----------------------------------------------------------------------
294 
295 #if FW_ENABLE_TEXT_LOGGING == 1
296 
298  void set_LogText_OutputPort(
299  FwIndexType portNum,
300  Fw::InputSerializePort* port
301  );
302 
303 #endif
304 
307  FwIndexType portNum,
308  Fw::InputSerializePort* port
309  );
310 
313  FwIndexType portNum,
314  Fw::InputSerializePort* port
315  );
316 
319  FwIndexType portNum,
320  Fw::InputSerializePort* port
321  );
322 
325  FwIndexType portNum,
326  Fw::InputSerializePort* port
327  );
328 
331  FwIndexType portNum,
332  Fw::InputSerializePort* port
333  );
334 
335 #endif
336 
337 #if FW_PORT_SERIALIZATION
338 
339  public:
340 
341  // ----------------------------------------------------------------------
342  // Connect serial input ports to typed output ports
343  // ----------------------------------------------------------------------
344 
347  FwIndexType portNum,
348  Fw::InputSerializePort* port
349  );
350 
353  FwIndexType portNum,
354  Fw::InputSerializePort* port
355  );
356 
359  FwIndexType portNum,
360  Fw::InputSerializePort* port
361  );
362 
365  FwIndexType portNum,
366  Fw::InputSerializePort* port
367  );
368 
369 #endif
370 
371  public:
372 
373  // ----------------------------------------------------------------------
374  // Command registration
375  // ----------------------------------------------------------------------
376 
380  void regCommands();
381 
382  PROTECTED:
383 
384  // ----------------------------------------------------------------------
385  // Component construction and destruction
386  // ----------------------------------------------------------------------
387 
390  const char* compName = ""
391  );
392 
394  virtual ~CmdSequencerComponentBase();
395 
396  PROTECTED:
397 
398  // ----------------------------------------------------------------------
399  // Getters for numbers of special input ports
400  // ----------------------------------------------------------------------
401 
406 
407  PROTECTED:
408 
409  // ----------------------------------------------------------------------
410  // Getters for numbers of typed input ports
411  // ----------------------------------------------------------------------
412 
417 
422 
427 
432 
437 
438  PROTECTED:
439 
440  // ----------------------------------------------------------------------
441  // Getters for numbers of special output ports
442  // ----------------------------------------------------------------------
443 
444 #if FW_ENABLE_TEXT_LOGGING == 1
445 
449  FwIndexType getNum_LogText_OutputPorts() const;
450 
451 #endif
452 
457 
462 
467 
472 
477 
478  PROTECTED:
479 
480  // ----------------------------------------------------------------------
481  // Getters for numbers of typed output ports
482  // ----------------------------------------------------------------------
483 
488 
493 
498 
503 
504  PROTECTED:
505 
506  // ----------------------------------------------------------------------
507  // Connection status queries for special output ports
508  // ----------------------------------------------------------------------
509 
510 #if FW_ENABLE_TEXT_LOGGING == 1
511 
515  bool isConnected_LogText_OutputPort(
516  FwIndexType portNum
517  );
518 
519 #endif
520 
525  FwIndexType portNum
526  );
527 
532  FwIndexType portNum
533  );
534 
539  FwIndexType portNum
540  );
541 
546  FwIndexType portNum
547  );
548 
553  FwIndexType portNum
554  );
555 
556  PROTECTED:
557 
558  // ----------------------------------------------------------------------
559  // Connection status queries for typed output ports
560  // ----------------------------------------------------------------------
561 
566  FwIndexType portNum
567  );
568 
573  FwIndexType portNum
574  );
575 
580  FwIndexType portNum
581  );
582 
587  FwIndexType portNum
588  );
589 
590  PROTECTED:
591 
592  // ----------------------------------------------------------------------
593  // Handlers to implement for typed input ports
594  // ----------------------------------------------------------------------
595 
597  virtual void cmdResponseIn_handler(
598  FwIndexType portNum,
599  FwOpcodeType opCode,
600  U32 cmdSeq,
601  const Fw::CmdResponse& response
602  ) = 0;
603 
605  virtual void pingIn_handler(
606  FwIndexType portNum,
607  U32 key
608  ) = 0;
609 
611  virtual void schedIn_handler(
612  FwIndexType portNum,
613  U32 context
614  ) = 0;
615 
617  virtual void seqCancelIn_handler(
618  FwIndexType portNum
619  ) = 0;
620 
622  virtual void seqRunIn_handler(
623  FwIndexType portNum,
624  const Fw::StringBase& filename
625  ) = 0;
626 
627  PROTECTED:
628 
629  // ----------------------------------------------------------------------
630  // Port handler base-class functions for typed input ports
631  //
632  // Call these functions directly to bypass the corresponding ports
633  // ----------------------------------------------------------------------
634 
637  FwIndexType portNum,
638  FwOpcodeType opCode,
639  U32 cmdSeq,
640  const Fw::CmdResponse& response
641  );
642 
644  void pingIn_handlerBase(
645  FwIndexType portNum,
646  U32 key
647  );
648 
650  void schedIn_handlerBase(
651  FwIndexType portNum,
652  U32 context
653  );
654 
657  FwIndexType portNum
658  );
659 
662  FwIndexType portNum,
663  const Fw::StringBase& filename
664  );
665 
666  PROTECTED:
667 
668  // ----------------------------------------------------------------------
669  // Pre-message hooks for typed async input ports
670  //
671  // Each of these functions is invoked just before processing a message
672  // on the corresponding port. By default, they do nothing. You can
673  // override them to provide specific pre-message behavior.
674  // ----------------------------------------------------------------------
675 
677  virtual void cmdResponseIn_preMsgHook(
678  FwIndexType portNum,
679  FwOpcodeType opCode,
680  U32 cmdSeq,
681  const Fw::CmdResponse& response
682  );
683 
685  virtual void pingIn_preMsgHook(
686  FwIndexType portNum,
687  U32 key
688  );
689 
691  virtual void schedIn_preMsgHook(
692  FwIndexType portNum,
693  U32 context
694  );
695 
697  virtual void seqCancelIn_preMsgHook(
698  FwIndexType portNum
699  );
700 
702  virtual void seqRunIn_preMsgHook(
703  FwIndexType portNum,
704  const Fw::StringBase& filename
705  );
706 
707  PROTECTED:
708 
709  // ----------------------------------------------------------------------
710  // Invocation functions for typed output ports
711  // ----------------------------------------------------------------------
712 
714  void comCmdOut_out(
715  FwIndexType portNum,
716  Fw::ComBuffer& data,
717  U32 context
718  );
719 
721  void pingOut_out(
722  FwIndexType portNum,
723  U32 key
724  );
725 
727  void seqDone_out(
728  FwIndexType portNum,
729  FwOpcodeType opCode,
730  U32 cmdSeq,
731  const Fw::CmdResponse& response
732  );
733 
735  void seqStartOut_out(
736  FwIndexType portNum,
737  const Fw::StringBase& filename
738  );
739 
740  PROTECTED:
741 
742  // ----------------------------------------------------------------------
743  // Command response
744  // ----------------------------------------------------------------------
745 
747  void cmdResponse_out(
748  FwOpcodeType opCode,
749  U32 cmdSeq,
750  Fw::CmdResponse response
751  );
752 
753  PROTECTED:
754 
755  // ----------------------------------------------------------------------
756  // Command handlers to implement
757  // ----------------------------------------------------------------------
758 
762  virtual void CS_RUN_cmdHandler(
763  FwOpcodeType opCode,
764  U32 cmdSeq,
765  const Fw::CmdStringArg& fileName,
767  ) = 0;
768 
772  virtual void CS_VALIDATE_cmdHandler(
773  FwOpcodeType opCode,
774  U32 cmdSeq,
775  const Fw::CmdStringArg& fileName
776  ) = 0;
777 
781  virtual void CS_CANCEL_cmdHandler(
782  FwOpcodeType opCode,
783  U32 cmdSeq
784  ) = 0;
785 
789  virtual void CS_START_cmdHandler(
790  FwOpcodeType opCode,
791  U32 cmdSeq
792  ) = 0;
793 
797  virtual void CS_STEP_cmdHandler(
798  FwOpcodeType opCode,
799  U32 cmdSeq
800  ) = 0;
801 
805  virtual void CS_AUTO_cmdHandler(
806  FwOpcodeType opCode,
807  U32 cmdSeq
808  ) = 0;
809 
813  virtual void CS_MANUAL_cmdHandler(
814  FwOpcodeType opCode,
815  U32 cmdSeq
816  ) = 0;
817 
821  virtual void CS_JOIN_WAIT_cmdHandler(
822  FwOpcodeType opCode,
823  U32 cmdSeq
824  ) = 0;
825 
826  PROTECTED:
827 
828  // ----------------------------------------------------------------------
829  // Command handler base-class functions
830  //
831  // Call these functions directly to bypass the command input port
832  // ----------------------------------------------------------------------
833 
838  FwOpcodeType opCode,
839  U32 cmdSeq,
840  Fw::CmdArgBuffer& args
841  );
842 
847  FwOpcodeType opCode,
848  U32 cmdSeq,
849  Fw::CmdArgBuffer& args
850  );
851 
856  FwOpcodeType opCode,
857  U32 cmdSeq,
858  Fw::CmdArgBuffer& args
859  );
860 
865  FwOpcodeType opCode,
866  U32 cmdSeq,
867  Fw::CmdArgBuffer& args
868  );
869 
874  FwOpcodeType opCode,
875  U32 cmdSeq,
876  Fw::CmdArgBuffer& args
877  );
878 
883  FwOpcodeType opCode,
884  U32 cmdSeq,
885  Fw::CmdArgBuffer& args
886  );
887 
892  FwOpcodeType opCode,
893  U32 cmdSeq,
894  Fw::CmdArgBuffer& args
895  );
896 
901  FwOpcodeType opCode,
902  U32 cmdSeq,
903  Fw::CmdArgBuffer& args
904  );
905 
906  PROTECTED:
907 
908  // ----------------------------------------------------------------------
909  // Pre-message hooks for async commands
910  //
911  // Each of these functions is invoked just before processing the
912  // corresponding command. By default they do nothing. You can
913  // override them to provide specific pre-command behavior.
914  // ----------------------------------------------------------------------
915 
917  virtual void CS_RUN_preMsgHook(
918  FwOpcodeType opCode,
919  U32 cmdSeq
920  );
921 
923  virtual void CS_VALIDATE_preMsgHook(
924  FwOpcodeType opCode,
925  U32 cmdSeq
926  );
927 
929  virtual void CS_CANCEL_preMsgHook(
930  FwOpcodeType opCode,
931  U32 cmdSeq
932  );
933 
935  virtual void CS_START_preMsgHook(
936  FwOpcodeType opCode,
937  U32 cmdSeq
938  );
939 
941  virtual void CS_STEP_preMsgHook(
942  FwOpcodeType opCode,
943  U32 cmdSeq
944  );
945 
947  virtual void CS_AUTO_preMsgHook(
948  FwOpcodeType opCode,
949  U32 cmdSeq
950  );
951 
953  virtual void CS_MANUAL_preMsgHook(
954  FwOpcodeType opCode,
955  U32 cmdSeq
956  );
957 
959  virtual void CS_JOIN_WAIT_preMsgHook(
960  FwOpcodeType opCode,
961  U32 cmdSeq
962  );
963 
964  PROTECTED:
965 
966  // ----------------------------------------------------------------------
967  // Event logging functions
968  // ----------------------------------------------------------------------
969 
974  const Fw::StringBase& fileName
975  ) const;
976 
981  const Fw::StringBase& fileName
982  ) const;
983 
988  const Fw::StringBase& fileName
989  ) const;
990 
995  const Fw::StringBase& fileName,
997  I32 error
998  ) const;
999 
1004  const Fw::StringBase& fileName,
1005  U32 recordNumber,
1006  I32 error
1007  ) const;
1008 
1013  const Fw::StringBase& fileName,
1014  U32 size
1015  ) const;
1016 
1021  const Fw::StringBase& fileName
1022  ) const;
1023 
1028  const Fw::StringBase& fileName,
1029  U32 storedCRC,
1030  U32 computedCRC
1031  ) const;
1032 
1037  const Fw::StringBase& fileName,
1038  U32 recordNumber,
1039  U32 opCode
1040  ) const;
1041 
1046  const Fw::StringBase& fileName
1047  ) const;
1048 
1053  const Fw::StringBase& fileName,
1054  U32 recordNumber,
1055  U32 opCode,
1056  U32 errorStatus
1057  ) const;
1058 
1062  void log_WARNING_HI_CS_InvalidMode() const;
1063 
1068  const Fw::StringBase& fileName,
1069  U32 header_records,
1070  U32 extra_bytes
1071  ) const;
1072 
1077  const Fw::StringBase& fileName,
1078  U16 time_base,
1079  U16 seq_time_base
1080  ) const;
1081 
1086  const Fw::StringBase& fileName,
1087  U8 currTimeBase,
1088  U8 seqTimeBase
1089  ) const;
1090 
1095  const Fw::StringBase& filename
1096  ) const;
1097 
1102  U32 opcode
1103  ) const;
1104 
1110  ) const;
1111 
1116 
1121  const Fw::StringBase& filename
1122  ) const;
1123 
1128  const Fw::StringBase& filename,
1129  U32 command
1130  ) const;
1131 
1136  const Fw::StringBase& filename,
1137  U32 command
1138  ) const;
1139 
1144  const Fw::StringBase& filename
1145  ) const;
1146 
1151  const Fw::StringBase& filename,
1152  U32 recordNumber,
1153  U32 opCode
1154  ) const;
1155 
1160 
1163  const Fw::StringBase& fileName
1164  ) const;
1165 
1166  PROTECTED:
1167 
1168  // ----------------------------------------------------------------------
1169  // Telemetry write functions
1170  // ----------------------------------------------------------------------
1171 
1176  U32 arg,
1177  Fw::Time _tlmTime = Fw::Time()
1178  ) const;
1179 
1184  U32 arg,
1185  Fw::Time _tlmTime = Fw::Time()
1186  ) const;
1187 
1191  void tlmWrite_CS_Errors(
1192  U32 arg,
1193  Fw::Time _tlmTime = Fw::Time()
1194  ) const;
1195 
1200  U32 arg,
1201  Fw::Time _tlmTime = Fw::Time()
1202  ) const;
1203 
1208  U32 arg,
1209  Fw::Time _tlmTime = Fw::Time()
1210  ) const;
1211 
1212  PROTECTED:
1213 
1214  // ----------------------------------------------------------------------
1215  // Time
1216  // ----------------------------------------------------------------------
1217 
1221  Fw::Time getTime() const;
1222 
1223  PRIVATE:
1224 
1225  // ----------------------------------------------------------------------
1226  // Message dispatch functions
1227  // ----------------------------------------------------------------------
1228 
1230  virtual MsgDispatchStatus doDispatch();
1231 
1232  PRIVATE:
1233 
1234  // ----------------------------------------------------------------------
1235  // Calls for messages received on special input ports
1236  // ----------------------------------------------------------------------
1237 
1239  static void m_p_cmdIn_in(
1240  Fw::PassiveComponentBase* callComp,
1241  FwIndexType portNum,
1242  FwOpcodeType opCode,
1243  U32 cmdSeq,
1244  Fw::CmdArgBuffer& args
1245  );
1246 
1247  PRIVATE:
1248 
1249  // ----------------------------------------------------------------------
1250  // Calls for messages received on typed input ports
1251  // ----------------------------------------------------------------------
1252 
1254  static void m_p_cmdResponseIn_in(
1255  Fw::PassiveComponentBase* callComp,
1256  FwIndexType portNum,
1257  FwOpcodeType opCode,
1258  U32 cmdSeq,
1259  const Fw::CmdResponse& response
1260  );
1261 
1263  static void m_p_pingIn_in(
1264  Fw::PassiveComponentBase* callComp,
1265  FwIndexType portNum,
1266  U32 key
1267  );
1268 
1270  static void m_p_schedIn_in(
1271  Fw::PassiveComponentBase* callComp,
1272  FwIndexType portNum,
1273  U32 context
1274  );
1275 
1277  static void m_p_seqCancelIn_in(
1278  Fw::PassiveComponentBase* callComp,
1279  FwIndexType portNum
1280  );
1281 
1283  static void m_p_seqRunIn_in(
1284  Fw::PassiveComponentBase* callComp,
1285  FwIndexType portNum,
1286  const Fw::StringBase& filename
1287  );
1288 
1289  PRIVATE:
1290 
1291  // ----------------------------------------------------------------------
1292  // Special input ports
1293  // ----------------------------------------------------------------------
1294 
1296  Fw::InputCmdPort m_cmdIn_InputPort[NUM_CMDIN_INPUT_PORTS];
1297 
1298  PRIVATE:
1299 
1300  // ----------------------------------------------------------------------
1301  // Typed input ports
1302  // ----------------------------------------------------------------------
1303 
1305  Fw::InputCmdResponsePort m_cmdResponseIn_InputPort[NUM_CMDRESPONSEIN_INPUT_PORTS];
1306 
1308  Svc::InputPingPort m_pingIn_InputPort[NUM_PINGIN_INPUT_PORTS];
1309 
1311  Svc::InputSchedPort m_schedIn_InputPort[NUM_SCHEDIN_INPUT_PORTS];
1312 
1315 
1317  Svc::InputCmdSeqInPort m_seqRunIn_InputPort[NUM_SEQRUNIN_INPUT_PORTS];
1318 
1319  PRIVATE:
1320 
1321  // ----------------------------------------------------------------------
1322  // Special output ports
1323  // ----------------------------------------------------------------------
1324 
1325 #if FW_ENABLE_TEXT_LOGGING == 1
1326 
1328  Fw::OutputLogTextPort m_LogText_OutputPort[NUM_LOGTEXT_OUTPUT_PORTS];
1329 
1330 #endif
1331 
1333  Fw::OutputCmdRegPort m_cmdRegOut_OutputPort[NUM_CMDREGOUT_OUTPUT_PORTS];
1334 
1336  Fw::OutputCmdResponsePort m_cmdResponseOut_OutputPort[NUM_CMDRESPONSEOUT_OUTPUT_PORTS];
1337 
1339  Fw::OutputLogPort m_logOut_OutputPort[NUM_LOGOUT_OUTPUT_PORTS];
1340 
1342  Fw::OutputTimePort m_timeCaller_OutputPort[NUM_TIMECALLER_OUTPUT_PORTS];
1343 
1345  Fw::OutputTlmPort m_tlmOut_OutputPort[NUM_TLMOUT_OUTPUT_PORTS];
1346 
1347  PRIVATE:
1348 
1349  // ----------------------------------------------------------------------
1350  // Typed output ports
1351  // ----------------------------------------------------------------------
1352 
1354  Fw::OutputComPort m_comCmdOut_OutputPort[NUM_COMCMDOUT_OUTPUT_PORTS];
1355 
1357  Svc::OutputPingPort m_pingOut_OutputPort[NUM_PINGOUT_OUTPUT_PORTS];
1358 
1361 
1363  Svc::OutputCmdSeqInPort m_seqStartOut_OutputPort[NUM_SEQSTARTOUT_OUTPUT_PORTS];
1364 
1365  };
1366 
1367 }
1368 
1369 #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
void log_WARNING_HI_CS_CommandError(const Fw::StringBase &fileName, U32 recordNumber, U32 opCode, U32 errorStatus) const
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.
The Command Sequencer received a command that was invalid for its current mode.
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 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.
virtual void schedIn_preMsgHook(FwIndexType portNum, U32 context)
Pre-message hook for async input port schedIn.
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
void log_WARNING_HI_CS_UnexpectedCompletion(U32 opcode) const
FwIndexType getNum_cmdResponseOut_OutputPorts() const
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.
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.
The Command Sequencer issued a command and received an error status in return.
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].
friend class CmdSequencerComponentBaseFriend
Friend class for white-box testing.
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
Wait for the current running sequence file complete.
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
U32 FwOpcodeType
The type of a command opcode.
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.
The running time base doesn&#39;t match the time base in the sequence files.
void log_WARNING_HI_CS_RecordMismatch(const Fw::StringBase &fileName, U32 header_records, U32 extra_bytes) const
The Command Sequencer issued a command and received a success status in return.
Wait for sequences that are running to finish. Allow user to run multiple seq files in SEQ_NO_BLOCK m...
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.
bool isConnected_seqStartOut_OutputPort(FwIndexType portNum)
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
void log_ACTIVITY_HI_CS_JoinWaiting(const Fw::StringBase &filename, U32 recordNumber, U32 opCode) const
virtual void seqRunIn_handler(FwIndexType portNum, const Fw::StringBase &filename)=0
Handler for input port seqRunIn.
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)
Cannot run new sequence when current sequence file is still running.
virtual void CS_AUTO_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
A command status came back when no sequence was running.
void log_WARNING_HI_CS_FileCrcFailure(const Fw::StringBase &fileName, U32 storedCRC, U32 computedCRC) const
A sequence related command came with no active sequence.
virtual void CS_MANUAL_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CS_MANUAL.
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)
The Sequence File Loader could not read the sequence file.
A local port request to run a sequence was started.
void seqCancelIn_handlerBase(FwIndexType portNum)
Handler base-class function for input port seqCancelIn.
Number of records in header doesn&#39;t match number in file.
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
FwIndexType getNum_seqStartOut_OutputPorts() const
virtual void CS_MANUAL_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
CmdSequencerComponentBase(const char *compName="")
Construct CmdSequencerComponentBase object.
The running time base doesn&#39;t match the time base in the sequence files.
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.
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_LO_CS_CommandComplete(const Fw::StringBase &fileName, U32 recordNumber, U32 opCode) const
void log_ACTIVITY_HI_CS_SequenceValid(const Fw::StringBase &filename) const
bool isConnected_logOut_OutputPort(FwIndexType portNum)
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.
Perform one step in a command sequence. Valid only if CmdSequencer is in MANUAL run mode...
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.