F´ Flight Software - C/C++ Documentation devel
A framework for building embedded system applications to NASA flight quality standards.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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].