F´ Flight Software - C/C++ Documentation devel
A framework for building embedded system applications to NASA flight quality standards.
Loading...
Searching...
No Matches
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 "FpConfig.hpp"
11#include "Fw/Cmd/CmdPortAc.hpp"
14#include "Fw/Cmd/CmdString.hpp"
15#include "Fw/Com/ComPortAc.hpp"
17#include "Fw/Log/LogPortAc.hpp"
18#include "Fw/Log/LogString.hpp"
19#if FW_ENABLE_TEXT_LOGGING == 1
21#endif
25#include "Fw/Tlm/TlmPortAc.hpp"
26#include "Fw/Tlm/TlmString.hpp"
34
35namespace Svc {
36
43 {
44
45 // ----------------------------------------------------------------------
46 // Friend classes
47 // ----------------------------------------------------------------------
48
51
52 PROTECTED:
53
54 // ----------------------------------------------------------------------
55 // Constants
56 // ----------------------------------------------------------------------
57
59 enum {
61 };
62
64 enum {
70 };
71
73 enum {
80 };
81
83 enum {
87 };
88
90 enum {
99 };
100
102 enum {
128 };
129
131 enum {
137 };
138
139 public:
140
141 // ----------------------------------------------------------------------
142 // Component initialization
143 // ----------------------------------------------------------------------
144
146 void init(
147 NATIVE_INT_TYPE queueDepth,
148 NATIVE_INT_TYPE instance = 0
149 );
150
151 public:
152
153 // ----------------------------------------------------------------------
154 // Getters for special input ports
155 // ----------------------------------------------------------------------
156
161 NATIVE_INT_TYPE portNum
162 );
163
164 public:
165
166 // ----------------------------------------------------------------------
167 // Getters for typed input ports
168 // ----------------------------------------------------------------------
169
174 NATIVE_INT_TYPE portNum
175 );
176
181 NATIVE_INT_TYPE portNum
182 );
183
188 NATIVE_INT_TYPE portNum
189 );
190
195 NATIVE_INT_TYPE portNum
196 );
197
202 NATIVE_INT_TYPE portNum
203 );
204
205 public:
206
207 // ----------------------------------------------------------------------
208 // Connect input ports to special output ports
209 // ----------------------------------------------------------------------
210
211#if FW_ENABLE_TEXT_LOGGING == 1
212
214 void set_LogText_OutputPort(
215 NATIVE_INT_TYPE portNum,
217 );
218
219#endif
220
223 NATIVE_INT_TYPE portNum,
225 );
226
229 NATIVE_INT_TYPE portNum,
231 );
232
235 NATIVE_INT_TYPE portNum,
236 Fw::InputLogPort* port
237 );
238
241 NATIVE_INT_TYPE portNum,
242 Fw::InputTimePort* port
243 );
244
247 NATIVE_INT_TYPE portNum,
248 Fw::InputTlmPort* port
249 );
250
251 public:
252
253 // ----------------------------------------------------------------------
254 // Connect typed input ports to typed output ports
255 // ----------------------------------------------------------------------
256
259 NATIVE_INT_TYPE portNum,
260 Fw::InputComPort* port
261 );
262
265 NATIVE_INT_TYPE portNum,
266 Svc::InputPingPort* port
267 );
268
271 NATIVE_INT_TYPE portNum,
273 );
274
275#if FW_PORT_SERIALIZATION
276
277 public:
278
279 // ----------------------------------------------------------------------
280 // Connect serial input ports to special output ports
281 // ----------------------------------------------------------------------
282
283#if FW_ENABLE_TEXT_LOGGING == 1
284
286 void set_LogText_OutputPort(
287 NATIVE_INT_TYPE portNum,
288 Fw::InputSerializePort* port
289 );
290
291#endif
292
295 NATIVE_INT_TYPE portNum,
296 Fw::InputSerializePort* port
297 );
298
301 NATIVE_INT_TYPE portNum,
302 Fw::InputSerializePort* port
303 );
304
307 NATIVE_INT_TYPE portNum,
308 Fw::InputSerializePort* port
309 );
310
313 NATIVE_INT_TYPE portNum,
314 Fw::InputSerializePort* port
315 );
316
319 NATIVE_INT_TYPE portNum,
320 Fw::InputSerializePort* port
321 );
322
323#endif
324
325#if FW_PORT_SERIALIZATION
326
327 public:
328
329 // ----------------------------------------------------------------------
330 // Connect serial input ports to typed output ports
331 // ----------------------------------------------------------------------
332
335 NATIVE_INT_TYPE portNum,
336 Fw::InputSerializePort* port
337 );
338
341 NATIVE_INT_TYPE portNum,
342 Fw::InputSerializePort* port
343 );
344
347 NATIVE_INT_TYPE portNum,
348 Fw::InputSerializePort* port
349 );
350
351#endif
352
353 public:
354
355 // ----------------------------------------------------------------------
356 // Command registration
357 // ----------------------------------------------------------------------
358
362 void regCommands();
363
364 PROTECTED:
365
366 // ----------------------------------------------------------------------
367 // Component construction and destruction
368 // ----------------------------------------------------------------------
369
372 const char* compName = ""
373 );
374
377
378 PROTECTED:
379
380 // ----------------------------------------------------------------------
381 // Getters for numbers of special input ports
382 // ----------------------------------------------------------------------
383
388
389 PROTECTED:
390
391 // ----------------------------------------------------------------------
392 // Getters for numbers of typed input ports
393 // ----------------------------------------------------------------------
394
399
404
409
414
419
420 PROTECTED:
421
422 // ----------------------------------------------------------------------
423 // Getters for numbers of special output ports
424 // ----------------------------------------------------------------------
425
426#if FW_ENABLE_TEXT_LOGGING == 1
427
431 NATIVE_INT_TYPE getNum_LogText_OutputPorts() const;
432
433#endif
434
439
444
449
454
459
460 PROTECTED:
461
462 // ----------------------------------------------------------------------
463 // Getters for numbers of typed output ports
464 // ----------------------------------------------------------------------
465
470
475
480
481 PROTECTED:
482
483 // ----------------------------------------------------------------------
484 // Connection status queries for special output ports
485 // ----------------------------------------------------------------------
486
487#if FW_ENABLE_TEXT_LOGGING == 1
488
492 bool isConnected_LogText_OutputPort(
493 NATIVE_INT_TYPE portNum
494 );
495
496#endif
497
502 NATIVE_INT_TYPE portNum
503 );
504
509 NATIVE_INT_TYPE portNum
510 );
511
516 NATIVE_INT_TYPE portNum
517 );
518
523 NATIVE_INT_TYPE portNum
524 );
525
530 NATIVE_INT_TYPE portNum
531 );
532
533 PROTECTED:
534
535 // ----------------------------------------------------------------------
536 // Connection status queries for typed output ports
537 // ----------------------------------------------------------------------
538
543 NATIVE_INT_TYPE portNum
544 );
545
550 NATIVE_INT_TYPE portNum
551 );
552
557 NATIVE_INT_TYPE portNum
558 );
559
560 PROTECTED:
561
562 // ----------------------------------------------------------------------
563 // Handlers to implement for typed input ports
564 // ----------------------------------------------------------------------
565
568 NATIVE_INT_TYPE portNum,
569 FwOpcodeType opCode,
570 U32 cmdSeq,
571 const Fw::CmdResponse& response
572 ) = 0;
573
575 virtual void pingIn_handler(
576 NATIVE_INT_TYPE portNum,
577 U32 key
578 ) = 0;
579
581 virtual void schedIn_handler(
582 NATIVE_INT_TYPE portNum,
583 NATIVE_UINT_TYPE context
584 ) = 0;
585
588 NATIVE_INT_TYPE portNum
589 ) = 0;
590
592 virtual void seqRunIn_handler(
593 NATIVE_INT_TYPE portNum,
594 Fw::String& filename
595 ) = 0;
596
597 PROTECTED:
598
599 // ----------------------------------------------------------------------
600 // Port handler base-class functions for typed input ports
601 //
602 // Call these functions directly to bypass the corresponding ports
603 // ----------------------------------------------------------------------
604
607 NATIVE_INT_TYPE portNum,
608 FwOpcodeType opCode,
609 U32 cmdSeq,
610 const Fw::CmdResponse& response
611 );
612
615 NATIVE_INT_TYPE portNum,
616 U32 key
617 );
618
621 NATIVE_INT_TYPE portNum,
622 NATIVE_UINT_TYPE context
623 );
624
627 NATIVE_INT_TYPE portNum
628 );
629
632 NATIVE_INT_TYPE portNum,
633 Fw::String& filename
634 );
635
636 PROTECTED:
637
638 // ----------------------------------------------------------------------
639 // Pre-message hooks for typed async input ports
640 //
641 // Each of these functions is invoked just before processing a message
642 // on the corresponding port. By default, they do nothing. You can
643 // override them to provide specific pre-message behavior.
644 // ----------------------------------------------------------------------
645
647 virtual void cmdResponseIn_preMsgHook(
648 NATIVE_INT_TYPE portNum,
649 FwOpcodeType opCode,
650 U32 cmdSeq,
651 const Fw::CmdResponse& response
652 );
653
655 virtual void pingIn_preMsgHook(
656 NATIVE_INT_TYPE portNum,
657 U32 key
658 );
659
661 virtual void schedIn_preMsgHook(
662 NATIVE_INT_TYPE portNum,
663 NATIVE_UINT_TYPE context
664 );
665
667 virtual void seqCancelIn_preMsgHook(
668 NATIVE_INT_TYPE portNum
669 );
670
672 virtual void seqRunIn_preMsgHook(
673 NATIVE_INT_TYPE portNum,
674 Fw::String& filename
675 );
676
677 PROTECTED:
678
679 // ----------------------------------------------------------------------
680 // Invocation functions for typed output ports
681 // ----------------------------------------------------------------------
682
684 void comCmdOut_out(
685 NATIVE_INT_TYPE portNum,
686 Fw::ComBuffer& data,
687 U32 context
688 );
689
691 void pingOut_out(
692 NATIVE_INT_TYPE portNum,
693 U32 key
694 );
695
697 void seqDone_out(
698 NATIVE_INT_TYPE portNum,
699 FwOpcodeType opCode,
700 U32 cmdSeq,
701 const Fw::CmdResponse& response
702 );
703
704 PROTECTED:
705
706 // ----------------------------------------------------------------------
707 // Command response
708 // ----------------------------------------------------------------------
709
711 void cmdResponse_out(
712 FwOpcodeType opCode,
713 U32 cmdSeq,
714 Fw::CmdResponse response
715 );
716
717 PROTECTED:
718
719 // ----------------------------------------------------------------------
720 // Command handlers to implement
721 // ----------------------------------------------------------------------
722
726 virtual void CS_RUN_cmdHandler(
727 FwOpcodeType opCode,
728 U32 cmdSeq,
729 const Fw::CmdStringArg& fileName,
731 ) = 0;
732
737 FwOpcodeType opCode,
738 U32 cmdSeq,
739 const Fw::CmdStringArg& fileName
740 ) = 0;
741
746 FwOpcodeType opCode,
747 U32 cmdSeq
748 ) = 0;
749
754 FwOpcodeType opCode,
755 U32 cmdSeq
756 ) = 0;
757
761 virtual void CS_STEP_cmdHandler(
762 FwOpcodeType opCode,
763 U32 cmdSeq
764 ) = 0;
765
769 virtual void CS_AUTO_cmdHandler(
770 FwOpcodeType opCode,
771 U32 cmdSeq
772 ) = 0;
773
778 FwOpcodeType opCode,
779 U32 cmdSeq
780 ) = 0;
781
786 FwOpcodeType opCode,
787 U32 cmdSeq
788 ) = 0;
789
790 PROTECTED:
791
792 // ----------------------------------------------------------------------
793 // Command handler base-class functions
794 //
795 // Call these functions directly to bypass the command input port
796 // ----------------------------------------------------------------------
797
802 FwOpcodeType opCode,
803 U32 cmdSeq,
804 Fw::CmdArgBuffer& args
805 );
806
811 FwOpcodeType opCode,
812 U32 cmdSeq,
813 Fw::CmdArgBuffer& args
814 );
815
820 FwOpcodeType opCode,
821 U32 cmdSeq,
822 Fw::CmdArgBuffer& args
823 );
824
829 FwOpcodeType opCode,
830 U32 cmdSeq,
831 Fw::CmdArgBuffer& args
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
870 PROTECTED:
871
872 // ----------------------------------------------------------------------
873 // Pre-message hooks for async commands
874 //
875 // Each of these functions is invoked just before processing the
876 // corresponding command. By default they do nothing. You can
877 // override them to provide specific pre-command behavior.
878 // ----------------------------------------------------------------------
879
881 virtual void CS_RUN_preMsgHook(
882 FwOpcodeType opCode,
883 U32 cmdSeq
884 );
885
887 virtual void CS_VALIDATE_preMsgHook(
888 FwOpcodeType opCode,
889 U32 cmdSeq
890 );
891
893 virtual void CS_CANCEL_preMsgHook(
894 FwOpcodeType opCode,
895 U32 cmdSeq
896 );
897
899 virtual void CS_START_preMsgHook(
900 FwOpcodeType opCode,
901 U32 cmdSeq
902 );
903
905 virtual void CS_STEP_preMsgHook(
906 FwOpcodeType opCode,
907 U32 cmdSeq
908 );
909
911 virtual void CS_AUTO_preMsgHook(
912 FwOpcodeType opCode,
913 U32 cmdSeq
914 );
915
917 virtual void CS_MANUAL_preMsgHook(
918 FwOpcodeType opCode,
919 U32 cmdSeq
920 );
921
923 virtual void CS_JOIN_WAIT_preMsgHook(
924 FwOpcodeType opCode,
925 U32 cmdSeq
926 );
927
928 PROTECTED:
929
930 // ----------------------------------------------------------------------
931 // Event logging functions
932 // ----------------------------------------------------------------------
933
938 const Fw::LogStringArg& fileName
939 );
940
945 const Fw::LogStringArg& fileName
946 );
947
952 const Fw::LogStringArg& fileName
953 );
954
959 const Fw::LogStringArg& fileName,
961 I32 error
962 );
963
968 const Fw::LogStringArg& fileName,
969 U32 recordNumber,
970 I32 error
971 );
972
977 const Fw::LogStringArg& fileName,
978 U32 size
979 );
980
985 const Fw::LogStringArg& fileName
986 );
987
992 const Fw::LogStringArg& fileName,
993 U32 storedCRC,
994 U32 computedCRC
995 );
996
1001 const Fw::LogStringArg& fileName,
1002 U32 recordNumber,
1003 U32 opCode
1004 );
1005
1010 const Fw::LogStringArg& fileName
1011 );
1012
1017 const Fw::LogStringArg& fileName,
1018 U32 recordNumber,
1019 U32 opCode,
1020 U32 errorStatus
1021 );
1022
1027
1032 const Fw::LogStringArg& fileName,
1033 U32 header_records,
1034 U32 extra_bytes
1035 );
1036
1041 const Fw::LogStringArg& fileName,
1042 U16 time_base,
1043 U16 seq_time_base
1044 );
1045
1050 const Fw::LogStringArg& fileName,
1051 U8 currTimeBase,
1052 U8 seqTimeBase
1053 );
1054
1059 const Fw::LogStringArg& filename
1060 );
1061
1066 U32 opcode
1067 );
1068
1074 );
1075
1080
1085 const Fw::LogStringArg& filename
1086 );
1087
1092 const Fw::LogStringArg& filename,
1093 U32 command
1094 );
1095
1100 const Fw::LogStringArg& filename,
1101 U32 command
1102 );
1103
1108 const Fw::LogStringArg& filename
1109 );
1110
1115 const Fw::LogStringArg& filename,
1116 U32 recordNumber,
1117 U32 opCode
1118 );
1119
1124
1125 PROTECTED:
1126
1127 // ----------------------------------------------------------------------
1128 // Telemetry write functions
1129 // ----------------------------------------------------------------------
1130
1135 U32 arg,
1136 Fw::Time _tlmTime = Fw::Time()
1137 );
1138
1143 U32 arg,
1144 Fw::Time _tlmTime = Fw::Time()
1145 );
1146
1150 void tlmWrite_CS_Errors(
1151 U32 arg,
1152 Fw::Time _tlmTime = Fw::Time()
1153 );
1154
1159 U32 arg,
1160 Fw::Time _tlmTime = Fw::Time()
1161 );
1162
1167 U32 arg,
1168 Fw::Time _tlmTime = Fw::Time()
1169 );
1170
1171 PROTECTED:
1172
1173 // ----------------------------------------------------------------------
1174 // Time
1175 // ----------------------------------------------------------------------
1176
1180 Fw::Time getTime();
1181
1182 PRIVATE:
1183
1184 // ----------------------------------------------------------------------
1185 // Message dispatch functions
1186 // ----------------------------------------------------------------------
1187
1189 virtual MsgDispatchStatus doDispatch();
1190
1191 PRIVATE:
1192
1193 // ----------------------------------------------------------------------
1194 // Calls for messages received on special input ports
1195 // ----------------------------------------------------------------------
1196
1198 static void m_p_cmdIn_in(
1199 Fw::PassiveComponentBase* callComp,
1200 NATIVE_INT_TYPE portNum,
1201 FwOpcodeType opCode,
1202 U32 cmdSeq,
1203 Fw::CmdArgBuffer& args
1204 );
1205
1206 PRIVATE:
1207
1208 // ----------------------------------------------------------------------
1209 // Calls for messages received on typed input ports
1210 // ----------------------------------------------------------------------
1211
1213 static void m_p_cmdResponseIn_in(
1214 Fw::PassiveComponentBase* callComp,
1215 NATIVE_INT_TYPE portNum,
1216 FwOpcodeType opCode,
1217 U32 cmdSeq,
1218 const Fw::CmdResponse& response
1219 );
1220
1222 static void m_p_pingIn_in(
1223 Fw::PassiveComponentBase* callComp,
1224 NATIVE_INT_TYPE portNum,
1225 U32 key
1226 );
1227
1229 static void m_p_schedIn_in(
1230 Fw::PassiveComponentBase* callComp,
1231 NATIVE_INT_TYPE portNum,
1232 NATIVE_UINT_TYPE context
1233 );
1234
1236 static void m_p_seqCancelIn_in(
1237 Fw::PassiveComponentBase* callComp,
1238 NATIVE_INT_TYPE portNum
1239 );
1240
1242 static void m_p_seqRunIn_in(
1243 Fw::PassiveComponentBase* callComp,
1244 NATIVE_INT_TYPE portNum,
1245 Fw::String& filename
1246 );
1247
1248 PRIVATE:
1249
1250 // ----------------------------------------------------------------------
1251 // Special input ports
1252 // ----------------------------------------------------------------------
1253
1255 Fw::InputCmdPort m_cmdIn_InputPort[NUM_CMDIN_INPUT_PORTS];
1256
1257 PRIVATE:
1258
1259 // ----------------------------------------------------------------------
1260 // Typed input ports
1261 // ----------------------------------------------------------------------
1262
1265
1267 Svc::InputPingPort m_pingIn_InputPort[NUM_PINGIN_INPUT_PORTS];
1268
1270 Svc::InputSchedPort m_schedIn_InputPort[NUM_SCHEDIN_INPUT_PORTS];
1271
1274
1277
1278 PRIVATE:
1279
1280 // ----------------------------------------------------------------------
1281 // Special output ports
1282 // ----------------------------------------------------------------------
1283
1284#if FW_ENABLE_TEXT_LOGGING == 1
1285
1287 Fw::OutputLogTextPort m_LogText_OutputPort[NUM_LOGTEXT_OUTPUT_PORTS];
1288
1289#endif
1290
1292 Fw::OutputCmdRegPort m_cmdRegOut_OutputPort[NUM_CMDREGOUT_OUTPUT_PORTS];
1293
1296
1298 Fw::OutputLogPort m_logOut_OutputPort[NUM_LOGOUT_OUTPUT_PORTS];
1299
1301 Fw::OutputTimePort m_timeCaller_OutputPort[NUM_TIMECALLER_OUTPUT_PORTS];
1302
1304 Fw::OutputTlmPort m_tlmOut_OutputPort[NUM_TLMOUT_OUTPUT_PORTS];
1305
1306 PRIVATE:
1307
1308 // ----------------------------------------------------------------------
1309 // Typed output ports
1310 // ----------------------------------------------------------------------
1311
1313 Fw::OutputComPort m_comCmdOut_OutputPort[NUM_COMCMDOUT_OUTPUT_PORTS];
1314
1316 Svc::OutputPingPort m_pingOut_OutputPort[NUM_PINGOUT_OUTPUT_PORTS];
1317
1320
1321 };
1322
1323}
1324
1325#endif
PlatformIntType NATIVE_INT_TYPE
Definition BasicTypes.h:51
uint8_t U8
8-bit unsigned integer
Definition BasicTypes.h:26
PlatformUIntType NATIVE_UINT_TYPE
Definition BasicTypes.h:52
U32 FwOpcodeType
Definition FpConfig.h:56
C++-compatible configuration header for fprime configuration.
Enum representing a command response.
void init()
Object initializer.
Definition ObjBase.cpp:27
The stage of the file read operation.
Auto-generated base for CmdSequencer component.
virtual void CS_MANUAL_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
void CS_MANUAL_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
NATIVE_INT_TYPE getNum_pingOut_OutputPorts() const
bool isConnected_timeCaller_OutputPort(NATIVE_INT_TYPE portNum)
void comCmdOut_out(NATIVE_INT_TYPE portNum, Fw::ComBuffer &data, U32 context)
Invoke output port comCmdOut.
virtual void CS_STEP_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CS_STEP.
void log_WARNING_HI_CS_FileSizeError(const Fw::LogStringArg &fileName, U32 size)
void cmdResponseIn_handlerBase(NATIVE_INT_TYPE portNum, FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response)
Handler base-class function for input port cmdResponseIn.
Svc::InputCmdSeqInPort * get_seqRunIn_InputPort(NATIVE_INT_TYPE portNum)
bool isConnected_cmdRegOut_OutputPort(NATIVE_INT_TYPE portNum)
virtual void CS_START_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CS_START.
void log_WARNING_HI_CS_CommandError(const Fw::LogStringArg &fileName, U32 recordNumber, U32 opCode, U32 errorStatus)
NATIVE_INT_TYPE getNum_timeCaller_OutputPorts() const
void pingIn_handlerBase(NATIVE_INT_TYPE portNum, U32 key)
Handler base-class function for input port pingIn.
void tlmWrite_CS_CancelCommands(U32 arg, Fw::Time _tlmTime=Fw::Time())
NATIVE_INT_TYPE getNum_cmdRegOut_OutputPorts() const
void set_pingOut_OutputPort(NATIVE_INT_TYPE portNum, Svc::InputPingPort *port)
Connect port to pingOut[portNum].
void log_ACTIVITY_HI_CS_SequenceComplete(const Fw::LogStringArg &fileName)
void CS_RUN_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
virtual void seqCancelIn_preMsgHook(NATIVE_INT_TYPE portNum)
Pre-message hook for async input port seqCancelIn.
virtual void CS_CANCEL_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CS_CANCEL.
bool isConnected_seqDone_OutputPort(NATIVE_INT_TYPE portNum)
Svc::InputPingPort * get_pingIn_InputPort(NATIVE_INT_TYPE portNum)
NATIVE_INT_TYPE getNum_cmdIn_InputPorts() const
Svc::InputSchedPort * get_schedIn_InputPort(NATIVE_INT_TYPE portNum)
void tlmWrite_CS_CommandsExecuted(U32 arg, Fw::Time _tlmTime=Fw::Time())
void CS_CANCEL_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void log_WARNING_HI_CS_FileReadError(const Fw::LogStringArg &fileName)
virtual ~CmdSequencerComponentBase()
Destroy CmdSequencerComponentBase object.
virtual void cmdResponseIn_preMsgHook(NATIVE_INT_TYPE portNum, FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response)
Pre-message hook for async input port cmdResponseIn.
virtual void pingIn_preMsgHook(NATIVE_INT_TYPE portNum, U32 key)
Pre-message hook for async input port pingIn.
virtual void schedIn_handler(NATIVE_INT_TYPE portNum, NATIVE_UINT_TYPE context)=0
Handler for input port schedIn.
friend class CmdSequencerComponentBaseFriend
Friend class for white-box testing.
virtual void CS_START_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
bool isConnected_logOut_OutputPort(NATIVE_INT_TYPE portNum)
void CS_START_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void log_ACTIVITY_LO_CS_SequenceLoaded(const Fw::LogStringArg &fileName)
bool isConnected_pingOut_OutputPort(NATIVE_INT_TYPE portNum)
virtual void pingIn_handler(NATIVE_INT_TYPE portNum, U32 key)=0
Handler for input port pingIn.
NATIVE_INT_TYPE getNum_cmdResponseIn_InputPorts() const
NATIVE_INT_TYPE getNum_cmdResponseOut_OutputPorts() const
virtual void CS_STEP_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
virtual void CS_JOIN_WAIT_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
Svc::InputCmdSeqCancelPort * get_seqCancelIn_InputPort(NATIVE_INT_TYPE portNum)
Fw::InputCmdPort * get_cmdIn_InputPort(NATIVE_INT_TYPE portNum)
void seqRunIn_handlerBase(NATIVE_INT_TYPE portNum, Fw::String &filename)
Handler base-class function for input port seqRunIn.
virtual void CS_RUN_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CS_RUN.
virtual void CS_AUTO_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
void seqCancelIn_handlerBase(NATIVE_INT_TYPE portNum)
Handler base-class function for input port seqCancelIn.
void seqDone_out(NATIVE_INT_TYPE portNum, FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response)
Invoke output port seqDone.
virtual void seqRunIn_handler(NATIVE_INT_TYPE portNum, Fw::String &filename)=0
Handler for input port seqRunIn.
NATIVE_INT_TYPE getNum_seqDone_OutputPorts() const
void tlmWrite_CS_Errors(U32 arg, Fw::Time _tlmTime=Fw::Time())
void log_WARNING_HI_CS_FileCrcFailure(const Fw::LogStringArg &fileName, U32 storedCRC, U32 computedCRC)
void CS_AUTO_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
NATIVE_INT_TYPE getNum_tlmOut_OutputPorts() const
void log_ACTIVITY_HI_CS_ModeSwitched(Svc::CmdSequencer_SeqMode mode)
NATIVE_INT_TYPE getNum_schedIn_InputPorts() const
void pingOut_out(NATIVE_INT_TYPE portNum, U32 key)
Invoke output port pingOut.
bool isConnected_tlmOut_OutputPort(NATIVE_INT_TYPE portNum)
void regCommands()
Register commands with the Command Dispatcher.
Fw::InputCmdResponsePort * get_cmdResponseIn_InputPort(NATIVE_INT_TYPE portNum)
virtual void CS_VALIDATE_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CS_VALIDATE.
bool isConnected_comCmdOut_OutputPort(NATIVE_INT_TYPE portNum)
virtual void CS_MANUAL_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CS_MANUAL.
void cmdResponse_out(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdResponse response)
Emit command response.
void schedIn_handlerBase(NATIVE_INT_TYPE portNum, NATIVE_UINT_TYPE context)
Handler base-class function for input port schedIn.
bool isConnected_cmdResponseOut_OutputPort(NATIVE_INT_TYPE portNum)
void log_WARNING_HI_CS_RecordMismatch(const Fw::LogStringArg &fileName, U32 header_records, U32 extra_bytes)
void log_ACTIVITY_LO_CS_CommandComplete(const Fw::LogStringArg &fileName, U32 recordNumber, U32 opCode)
void log_WARNING_HI_CS_FileNotFound(const Fw::LogStringArg &fileName)
void set_cmdResponseOut_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputCmdResponsePort *port)
Connect port to cmdResponseOut[portNum].
void log_WARNING_HI_CS_RecordInvalid(const Fw::LogStringArg &fileName, U32 recordNumber, I32 error)
@ CHANNELID_CS_LOADCOMMANDS
Channel ID for CS_LoadCommands.
@ CHANNELID_CS_ERRORS
Channel ID for CS_Errors.
@ CHANNELID_CS_CANCELCOMMANDS
Channel ID for CS_CancelCommands.
@ CHANNELID_CS_COMMANDSEXECUTED
Channel ID for CS_CommandsExecuted.
@ CHANNELID_CS_SEQUENCESCOMPLETED
Channel ID for CS_SequencesCompleted.
void log_WARNING_HI_CS_SequenceTimeout(const Fw::LogStringArg &filename, U32 command)
virtual void CS_CANCEL_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
void set_cmdRegOut_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputCmdRegPort *port)
Connect port to cmdRegOut[portNum].
void log_ACTIVITY_HI_CS_SequenceCanceled(const Fw::LogStringArg &fileName)
void set_seqDone_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputCmdResponsePort *port)
Connect port to seqDone[portNum].
NATIVE_INT_TYPE getNum_comCmdOut_OutputPorts() const
void CS_VALIDATE_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void log_WARNING_HI_CS_FileInvalid(const Fw::LogStringArg &fileName, Svc::CmdSequencer_FileReadStage stage, I32 error)
void log_ACTIVITY_HI_CS_CmdStarted(const Fw::LogStringArg &filename)
NATIVE_INT_TYPE getNum_seqCancelIn_InputPorts() const
void log_ACTIVITY_HI_CS_PortSequenceStarted(const Fw::LogStringArg &filename)
@ EVENTID_CS_TIMEBASEMISMATCH
The running time base doesn't match the time base in the sequence files.
@ EVENTID_CS_UNEXPECTEDCOMPLETION
A command status came back when no sequence was running.
@ EVENTID_CS_CMDSTARTED
A manual sequence was started.
@ EVENTID_CS_RECORDINVALID
The format of a command record was invalid.
@ EVENTID_CS_FILECRCFAILURE
The sequence file validation failed.
@ EVENTID_CS_JOINWAITINGNOTCOMPLETE
Cannot run new sequence when current sequence file is still running.
@ EVENTID_CS_PORTSEQUENCESTARTED
A local port request to run a sequence was started.
@ EVENTID_CS_SEQUENCEVALID
A sequence passed validation.
@ EVENTID_CS_SEQUENCECANCELED
A command sequence was successfully canceled.
@ EVENTID_CS_FILENOTFOUND
The sequence file was not found.
@ EVENTID_CS_FILESIZEERROR
The sequence file was too large.
@ EVENTID_CS_TIMECONTEXTMISMATCH
The running time base doesn't match the time base in the sequence files.
@ EVENTID_CS_SEQUENCECOMPLETE
A command sequence successfully completed.
@ EVENTID_CS_SEQUENCETIMEOUT
A sequence passed validation.
@ EVENTID_CS_INVALIDMODE
The Command Sequencer received a command that was invalid for its current mode.
@ EVENTID_CS_NOSEQUENCEACTIVE
A sequence related command came with no active sequence.
@ EVENTID_CS_JOINWAITING
Wait for the current running sequence file complete.
@ EVENTID_CS_CMDSTEPPED
A command in a sequence was stepped through.
@ EVENTID_CS_COMMANDERROR
The Command Sequencer issued a command and received an error status in return.
@ EVENTID_CS_FILEREADERROR
The Sequence File Loader could not read the sequence file.
@ EVENTID_CS_SEQUENCELOADED
Sequence file was successfully loaded.
@ EVENTID_CS_COMMANDCOMPLETE
The Command Sequencer issued a command and received a success status in return.
@ EVENTID_CS_RECORDMISMATCH
Number of records in header doesn't match number in file.
@ EVENTID_CS_FILEINVALID
The sequence file format was invalid.
void CS_STEP_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void set_timeCaller_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputTimePort *port)
Connect port to timeCaller[portNum].
virtual void seqCancelIn_handler(NATIVE_INT_TYPE portNum)=0
Handler for input port seqCancelIn.
@ OPCODE_CS_CANCEL
Cancel a command sequence.
@ OPCODE_CS_STEP
Perform one step in a command sequence. Valid only if CmdSequencer is in MANUAL run mode.
@ OPCODE_CS_MANUAL
Set the run mode to MANUAL.
@ OPCODE_CS_VALIDATE
Validate a command sequence file.
@ OPCODE_CS_RUN
Run a command sequence file.
@ OPCODE_CS_START
Start running a command sequence.
@ OPCODE_CS_AUTO
Set the run mode to AUTO.
@ OPCODE_CS_JOIN_WAIT
Wait for sequences that are running to finish. Allow user to run multiple seq files in SEQ_NO_BLOCK m...
NATIVE_INT_TYPE getNum_logOut_OutputPorts() const
virtual void schedIn_preMsgHook(NATIVE_INT_TYPE portNum, NATIVE_UINT_TYPE context)
Pre-message hook for async input port schedIn.
void log_WARNING_HI_CS_TimeBaseMismatch(const Fw::LogStringArg &fileName, U16 time_base, U16 seq_time_base)
void set_logOut_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputLogPort *port)
Connect port to logOut[portNum].
virtual void CS_JOIN_WAIT_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CS_JOIN_WAIT.
CmdSequencerComponentBase(const char *compName="")
Construct CmdSequencerComponentBase object.
virtual void CS_AUTO_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CS_AUTO.
virtual void CS_RUN_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdStringArg &fileName, Svc::CmdSequencer_BlockState block)=0
void log_WARNING_HI_CS_TimeContextMismatch(const Fw::LogStringArg &fileName, U8 currTimeBase, U8 seqTimeBase)
virtual void cmdResponseIn_handler(NATIVE_INT_TYPE portNum, FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response)=0
Handler for input port cmdResponseIn.
void CS_JOIN_WAIT_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void log_ACTIVITY_HI_CS_CmdStepped(const Fw::LogStringArg &filename, U32 command)
virtual void seqRunIn_preMsgHook(NATIVE_INT_TYPE portNum, Fw::String &filename)
Pre-message hook for async input port seqRunIn.
NATIVE_INT_TYPE getNum_seqRunIn_InputPorts() const
void log_ACTIVITY_HI_CS_JoinWaiting(const Fw::LogStringArg &filename, U32 recordNumber, U32 opCode)
void tlmWrite_CS_LoadCommands(U32 arg, Fw::Time _tlmTime=Fw::Time())
void log_ACTIVITY_HI_CS_SequenceValid(const Fw::LogStringArg &filename)
NATIVE_INT_TYPE getNum_pingIn_InputPorts() const
void tlmWrite_CS_SequencesCompleted(U32 arg, Fw::Time _tlmTime=Fw::Time())
virtual void CS_VALIDATE_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdStringArg &fileName)=0
void set_tlmOut_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputTlmPort *port)
Connect port to tlmOut[portNum].
void set_comCmdOut_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputComPort *port)
Connect port to comCmdOut[portNum].