F´ Flight Software - C/C++ Documentation
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 {
88 };
89
91 enum {
100 };
101
103 enum {
130 };
131
133 enum {
139 };
140
141 public:
142
143 // ----------------------------------------------------------------------
144 // Component initialization
145 // ----------------------------------------------------------------------
146
148 void init(
149 FwSizeType queueDepth,
150 FwEnumStoreType instance = 0
151 );
152
153 public:
154
155 // ----------------------------------------------------------------------
156 // Getters for special input ports
157 // ----------------------------------------------------------------------
158
163 FwIndexType portNum
164 );
165
166 public:
167
168 // ----------------------------------------------------------------------
169 // Getters for typed input ports
170 // ----------------------------------------------------------------------
171
176 FwIndexType portNum
177 );
178
183 FwIndexType portNum
184 );
185
190 FwIndexType portNum
191 );
192
197 FwIndexType portNum
198 );
199
204 FwIndexType portNum
205 );
206
207 public:
208
209 // ----------------------------------------------------------------------
210 // Connect input ports to special output ports
211 // ----------------------------------------------------------------------
212
213#if FW_ENABLE_TEXT_LOGGING == 1
214
216 void set_LogText_OutputPort(
217 FwIndexType portNum,
219 );
220
221#endif
222
225 FwIndexType portNum,
227 );
228
231 FwIndexType portNum,
233 );
234
237 FwIndexType portNum,
238 Fw::InputLogPort* port
239 );
240
243 FwIndexType portNum,
244 Fw::InputTimePort* port
245 );
246
249 FwIndexType portNum,
250 Fw::InputTlmPort* port
251 );
252
253 public:
254
255 // ----------------------------------------------------------------------
256 // Connect typed input ports to typed output ports
257 // ----------------------------------------------------------------------
258
261 FwIndexType portNum,
262 Fw::InputComPort* port
263 );
264
267 FwIndexType portNum,
268 Svc::InputPingPort* port
269 );
270
273 FwIndexType portNum,
275 );
276
279 FwIndexType portNum,
281 );
282
283#if FW_PORT_SERIALIZATION
284
285 public:
286
287 // ----------------------------------------------------------------------
288 // Connect serial input ports to special output ports
289 // ----------------------------------------------------------------------
290
291#if FW_ENABLE_TEXT_LOGGING == 1
292
294 void set_LogText_OutputPort(
295 FwIndexType portNum,
296 Fw::InputSerializePort* port
297 );
298
299#endif
300
303 FwIndexType portNum,
304 Fw::InputSerializePort* port
305 );
306
309 FwIndexType portNum,
310 Fw::InputSerializePort* port
311 );
312
315 FwIndexType portNum,
316 Fw::InputSerializePort* port
317 );
318
321 FwIndexType portNum,
322 Fw::InputSerializePort* port
323 );
324
327 FwIndexType portNum,
328 Fw::InputSerializePort* port
329 );
330
331#endif
332
333#if FW_PORT_SERIALIZATION
334
335 public:
336
337 // ----------------------------------------------------------------------
338 // Connect serial input ports to typed output ports
339 // ----------------------------------------------------------------------
340
343 FwIndexType portNum,
344 Fw::InputSerializePort* port
345 );
346
349 FwIndexType portNum,
350 Fw::InputSerializePort* port
351 );
352
355 FwIndexType portNum,
356 Fw::InputSerializePort* port
357 );
358
361 FwIndexType portNum,
362 Fw::InputSerializePort* port
363 );
364
365#endif
366
367 public:
368
369 // ----------------------------------------------------------------------
370 // Command registration
371 // ----------------------------------------------------------------------
372
376 void regCommands();
377
378 PROTECTED:
379
380 // ----------------------------------------------------------------------
381 // Component construction and destruction
382 // ----------------------------------------------------------------------
383
386 const char* compName = ""
387 );
388
391
392 PROTECTED:
393
394 // ----------------------------------------------------------------------
395 // Getters for numbers of special input ports
396 // ----------------------------------------------------------------------
397
402
403 PROTECTED:
404
405 // ----------------------------------------------------------------------
406 // Getters for numbers of typed input ports
407 // ----------------------------------------------------------------------
408
413
418
423
428
433
434 PROTECTED:
435
436 // ----------------------------------------------------------------------
437 // Getters for numbers of special output ports
438 // ----------------------------------------------------------------------
439
440#if FW_ENABLE_TEXT_LOGGING == 1
441
445 FwIndexType getNum_LogText_OutputPorts() const;
446
447#endif
448
453
458
463
468
473
474 PROTECTED:
475
476 // ----------------------------------------------------------------------
477 // Getters for numbers of typed output ports
478 // ----------------------------------------------------------------------
479
484
489
494
499
500 PROTECTED:
501
502 // ----------------------------------------------------------------------
503 // Connection status queries for special output ports
504 // ----------------------------------------------------------------------
505
506#if FW_ENABLE_TEXT_LOGGING == 1
507
511 bool isConnected_LogText_OutputPort(
512 FwIndexType portNum
513 );
514
515#endif
516
521 FwIndexType portNum
522 );
523
528 FwIndexType portNum
529 );
530
535 FwIndexType portNum
536 );
537
542 FwIndexType portNum
543 );
544
549 FwIndexType portNum
550 );
551
552 PROTECTED:
553
554 // ----------------------------------------------------------------------
555 // Connection status queries for typed output ports
556 // ----------------------------------------------------------------------
557
562 FwIndexType portNum
563 );
564
569 FwIndexType portNum
570 );
571
576 FwIndexType portNum
577 );
578
583 FwIndexType portNum
584 );
585
586 PROTECTED:
587
588 // ----------------------------------------------------------------------
589 // Handlers to implement for typed input ports
590 // ----------------------------------------------------------------------
591
594 FwIndexType portNum,
595 FwOpcodeType opCode,
596 U32 cmdSeq,
597 const Fw::CmdResponse& response
598 ) = 0;
599
601 virtual void pingIn_handler(
602 FwIndexType portNum,
603 U32 key
604 ) = 0;
605
607 virtual void schedIn_handler(
608 FwIndexType portNum,
609 U32 context
610 ) = 0;
611
614 FwIndexType portNum
615 ) = 0;
616
618 virtual void seqRunIn_handler(
619 FwIndexType portNum,
620 const Fw::StringBase& filename
621 ) = 0;
622
623 PROTECTED:
624
625 // ----------------------------------------------------------------------
626 // Port handler base-class functions for typed input ports
627 //
628 // Call these functions directly to bypass the corresponding ports
629 // ----------------------------------------------------------------------
630
633 FwIndexType portNum,
634 FwOpcodeType opCode,
635 U32 cmdSeq,
636 const Fw::CmdResponse& response
637 );
638
641 FwIndexType portNum,
642 U32 key
643 );
644
647 FwIndexType portNum,
648 U32 context
649 );
650
653 FwIndexType portNum
654 );
655
658 FwIndexType portNum,
659 const Fw::StringBase& filename
660 );
661
662 PROTECTED:
663
664 // ----------------------------------------------------------------------
665 // Pre-message hooks for typed async input ports
666 //
667 // Each of these functions is invoked just before processing a message
668 // on the corresponding port. By default, they do nothing. You can
669 // override them to provide specific pre-message behavior.
670 // ----------------------------------------------------------------------
671
673 virtual void cmdResponseIn_preMsgHook(
674 FwIndexType portNum,
675 FwOpcodeType opCode,
676 U32 cmdSeq,
677 const Fw::CmdResponse& response
678 );
679
681 virtual void pingIn_preMsgHook(
682 FwIndexType portNum,
683 U32 key
684 );
685
687 virtual void schedIn_preMsgHook(
688 FwIndexType portNum,
689 U32 context
690 );
691
693 virtual void seqCancelIn_preMsgHook(
694 FwIndexType portNum
695 );
696
698 virtual void seqRunIn_preMsgHook(
699 FwIndexType portNum,
700 const Fw::StringBase& filename
701 );
702
703 PROTECTED:
704
705 // ----------------------------------------------------------------------
706 // Invocation functions for typed output ports
707 // ----------------------------------------------------------------------
708
710 void comCmdOut_out(
711 FwIndexType portNum,
712 Fw::ComBuffer& data,
713 U32 context
714 );
715
717 void pingOut_out(
718 FwIndexType portNum,
719 U32 key
720 );
721
723 void seqDone_out(
724 FwIndexType portNum,
725 FwOpcodeType opCode,
726 U32 cmdSeq,
727 const Fw::CmdResponse& response
728 );
729
731 void seqStartOut_out(
732 FwIndexType portNum,
733 const Fw::StringBase& filename
734 );
735
736 PROTECTED:
737
738 // ----------------------------------------------------------------------
739 // Command response
740 // ----------------------------------------------------------------------
741
743 void cmdResponse_out(
744 FwOpcodeType opCode,
745 U32 cmdSeq,
746 Fw::CmdResponse response
747 );
748
749 PROTECTED:
750
751 // ----------------------------------------------------------------------
752 // Command handlers to implement
753 // ----------------------------------------------------------------------
754
758 virtual void CS_RUN_cmdHandler(
759 FwOpcodeType opCode,
760 U32 cmdSeq,
761 const Fw::CmdStringArg& fileName,
763 ) = 0;
764
769 FwOpcodeType opCode,
770 U32 cmdSeq,
771 const Fw::CmdStringArg& fileName
772 ) = 0;
773
778 FwOpcodeType opCode,
779 U32 cmdSeq
780 ) = 0;
781
786 FwOpcodeType opCode,
787 U32 cmdSeq
788 ) = 0;
789
793 virtual void CS_STEP_cmdHandler(
794 FwOpcodeType opCode,
795 U32 cmdSeq
796 ) = 0;
797
801 virtual void CS_AUTO_cmdHandler(
802 FwOpcodeType opCode,
803 U32 cmdSeq
804 ) = 0;
805
810 FwOpcodeType opCode,
811 U32 cmdSeq
812 ) = 0;
813
818 FwOpcodeType opCode,
819 U32 cmdSeq
820 ) = 0;
821
822 PROTECTED:
823
824 // ----------------------------------------------------------------------
825 // Command handler base-class functions
826 //
827 // Call these functions directly to bypass the command input port
828 // ----------------------------------------------------------------------
829
834 FwOpcodeType opCode,
835 U32 cmdSeq,
836 Fw::CmdArgBuffer& args
837 );
838
843 FwOpcodeType opCode,
844 U32 cmdSeq,
845 Fw::CmdArgBuffer& args
846 );
847
852 FwOpcodeType opCode,
853 U32 cmdSeq,
854 Fw::CmdArgBuffer& args
855 );
856
861 FwOpcodeType opCode,
862 U32 cmdSeq,
863 Fw::CmdArgBuffer& args
864 );
865
870 FwOpcodeType opCode,
871 U32 cmdSeq,
872 Fw::CmdArgBuffer& args
873 );
874
879 FwOpcodeType opCode,
880 U32 cmdSeq,
881 Fw::CmdArgBuffer& args
882 );
883
888 FwOpcodeType opCode,
889 U32 cmdSeq,
890 Fw::CmdArgBuffer& args
891 );
892
897 FwOpcodeType opCode,
898 U32 cmdSeq,
899 Fw::CmdArgBuffer& args
900 );
901
902 PROTECTED:
903
904 // ----------------------------------------------------------------------
905 // Pre-message hooks for async commands
906 //
907 // Each of these functions is invoked just before processing the
908 // corresponding command. By default they do nothing. You can
909 // override them to provide specific pre-command behavior.
910 // ----------------------------------------------------------------------
911
913 virtual void CS_RUN_preMsgHook(
914 FwOpcodeType opCode,
915 U32 cmdSeq
916 );
917
919 virtual void CS_VALIDATE_preMsgHook(
920 FwOpcodeType opCode,
921 U32 cmdSeq
922 );
923
925 virtual void CS_CANCEL_preMsgHook(
926 FwOpcodeType opCode,
927 U32 cmdSeq
928 );
929
931 virtual void CS_START_preMsgHook(
932 FwOpcodeType opCode,
933 U32 cmdSeq
934 );
935
937 virtual void CS_STEP_preMsgHook(
938 FwOpcodeType opCode,
939 U32 cmdSeq
940 );
941
943 virtual void CS_AUTO_preMsgHook(
944 FwOpcodeType opCode,
945 U32 cmdSeq
946 );
947
949 virtual void CS_MANUAL_preMsgHook(
950 FwOpcodeType opCode,
951 U32 cmdSeq
952 );
953
955 virtual void CS_JOIN_WAIT_preMsgHook(
956 FwOpcodeType opCode,
957 U32 cmdSeq
958 );
959
960 PROTECTED:
961
962 // ----------------------------------------------------------------------
963 // Event logging functions
964 // ----------------------------------------------------------------------
965
970 const Fw::StringBase& fileName
971 ) const;
972
977 const Fw::StringBase& fileName
978 ) const;
979
984 const Fw::StringBase& fileName
985 ) const;
986
991 const Fw::StringBase& fileName,
993 I32 error
994 ) const;
995
1000 const Fw::StringBase& fileName,
1001 U32 recordNumber,
1002 I32 error
1003 ) const;
1004
1009 const Fw::StringBase& fileName,
1010 U32 size
1011 ) const;
1012
1017 const Fw::StringBase& fileName
1018 ) const;
1019
1024 const Fw::StringBase& fileName,
1025 U32 storedCRC,
1026 U32 computedCRC
1027 ) const;
1028
1033 const Fw::StringBase& fileName,
1034 U32 recordNumber,
1035 U32 opCode
1036 ) const;
1037
1042 const Fw::StringBase& fileName
1043 ) const;
1044
1049 const Fw::StringBase& fileName,
1050 U32 recordNumber,
1051 U32 opCode,
1052 U32 errorStatus
1053 ) const;
1054
1058 void log_WARNING_HI_CS_InvalidMode() const;
1059
1064 const Fw::StringBase& fileName,
1065 U32 header_records,
1066 U32 extra_bytes
1067 ) const;
1068
1073 const Fw::StringBase& fileName,
1074 U16 time_base,
1075 U16 seq_time_base
1076 ) const;
1077
1082 const Fw::StringBase& fileName,
1083 U8 currTimeBase,
1084 U8 seqTimeBase
1085 ) const;
1086
1091 const Fw::StringBase& filename
1092 ) const;
1093
1098 U32 opcode
1099 ) const;
1100
1106 ) const;
1107
1112
1117 const Fw::StringBase& filename
1118 ) const;
1119
1124 const Fw::StringBase& filename,
1125 U32 command
1126 ) const;
1127
1132 const Fw::StringBase& filename,
1133 U32 command
1134 ) const;
1135
1140 const Fw::StringBase& filename
1141 ) const;
1142
1147 const Fw::StringBase& filename,
1148 U32 recordNumber,
1149 U32 opCode
1150 ) const;
1151
1156
1159 const Fw::StringBase& fileName
1160 ) const;
1161
1162 PROTECTED:
1163
1164 // ----------------------------------------------------------------------
1165 // Telemetry write functions
1166 // ----------------------------------------------------------------------
1167
1172 U32 arg,
1173 Fw::Time _tlmTime = Fw::Time()
1174 ) const;
1175
1180 U32 arg,
1181 Fw::Time _tlmTime = Fw::Time()
1182 ) const;
1183
1187 void tlmWrite_CS_Errors(
1188 U32 arg,
1189 Fw::Time _tlmTime = Fw::Time()
1190 ) const;
1191
1196 U32 arg,
1197 Fw::Time _tlmTime = Fw::Time()
1198 ) const;
1199
1204 U32 arg,
1205 Fw::Time _tlmTime = Fw::Time()
1206 ) const;
1207
1208 PROTECTED:
1209
1210 // ----------------------------------------------------------------------
1211 // Time
1212 // ----------------------------------------------------------------------
1213
1217 Fw::Time getTime();
1218
1219 PRIVATE:
1220
1221 // ----------------------------------------------------------------------
1222 // Message dispatch functions
1223 // ----------------------------------------------------------------------
1224
1226 virtual MsgDispatchStatus doDispatch();
1227
1228 PRIVATE:
1229
1230 // ----------------------------------------------------------------------
1231 // Calls for messages received on special input ports
1232 // ----------------------------------------------------------------------
1233
1235 static void m_p_cmdIn_in(
1236 Fw::PassiveComponentBase* callComp,
1237 FwIndexType portNum,
1238 FwOpcodeType opCode,
1239 U32 cmdSeq,
1240 Fw::CmdArgBuffer& args
1241 );
1242
1243 PRIVATE:
1244
1245 // ----------------------------------------------------------------------
1246 // Calls for messages received on typed input ports
1247 // ----------------------------------------------------------------------
1248
1250 static void m_p_cmdResponseIn_in(
1251 Fw::PassiveComponentBase* callComp,
1252 FwIndexType portNum,
1253 FwOpcodeType opCode,
1254 U32 cmdSeq,
1255 const Fw::CmdResponse& response
1256 );
1257
1259 static void m_p_pingIn_in(
1260 Fw::PassiveComponentBase* callComp,
1261 FwIndexType portNum,
1262 U32 key
1263 );
1264
1266 static void m_p_schedIn_in(
1267 Fw::PassiveComponentBase* callComp,
1268 FwIndexType portNum,
1269 U32 context
1270 );
1271
1273 static void m_p_seqCancelIn_in(
1274 Fw::PassiveComponentBase* callComp,
1275 FwIndexType portNum
1276 );
1277
1279 static void m_p_seqRunIn_in(
1280 Fw::PassiveComponentBase* callComp,
1281 FwIndexType portNum,
1282 const Fw::StringBase& filename
1283 );
1284
1285 PRIVATE:
1286
1287 // ----------------------------------------------------------------------
1288 // Special input ports
1289 // ----------------------------------------------------------------------
1290
1292 Fw::InputCmdPort m_cmdIn_InputPort[NUM_CMDIN_INPUT_PORTS];
1293
1294 PRIVATE:
1295
1296 // ----------------------------------------------------------------------
1297 // Typed input ports
1298 // ----------------------------------------------------------------------
1299
1302
1304 Svc::InputPingPort m_pingIn_InputPort[NUM_PINGIN_INPUT_PORTS];
1305
1307 Svc::InputSchedPort m_schedIn_InputPort[NUM_SCHEDIN_INPUT_PORTS];
1308
1311
1314
1315 PRIVATE:
1316
1317 // ----------------------------------------------------------------------
1318 // Special output ports
1319 // ----------------------------------------------------------------------
1320
1321#if FW_ENABLE_TEXT_LOGGING == 1
1322
1324 Fw::OutputLogTextPort m_LogText_OutputPort[NUM_LOGTEXT_OUTPUT_PORTS];
1325
1326#endif
1327
1329 Fw::OutputCmdRegPort m_cmdRegOut_OutputPort[NUM_CMDREGOUT_OUTPUT_PORTS];
1330
1333
1335 Fw::OutputLogPort m_logOut_OutputPort[NUM_LOGOUT_OUTPUT_PORTS];
1336
1338 Fw::OutputTimePort m_timeCaller_OutputPort[NUM_TIMECALLER_OUTPUT_PORTS];
1339
1341 Fw::OutputTlmPort m_tlmOut_OutputPort[NUM_TLMOUT_OUTPUT_PORTS];
1342
1343 PRIVATE:
1344
1345 // ----------------------------------------------------------------------
1346 // Typed output ports
1347 // ----------------------------------------------------------------------
1348
1350 Fw::OutputComPort m_comCmdOut_OutputPort[NUM_COMCMDOUT_OUTPUT_PORTS];
1351
1353 Svc::OutputPingPort m_pingOut_OutputPort[NUM_PINGOUT_OUTPUT_PORTS];
1354
1357
1359 Svc::OutputCmdSeqInPort m_seqStartOut_OutputPort[NUM_SEQSTARTOUT_OUTPUT_PORTS];
1360
1361 };
1362
1363}
1364
1365#endif
uint8_t U8
8-bit unsigned integer
Definition BasicTypes.h:30
I32 FwEnumStoreType
Definition FpConfig.h:64
U32 FwOpcodeType
Definition FpConfig.h:91
PlatformSizeType FwSizeType
Definition FpConfig.h:35
PlatformIndexType FwIndexType
Definition FpConfig.h:25
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)
@ 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 seqCancelIn_handlerBase(FwIndexType portNum)
Handler base-class function for input port seqCancelIn.
bool isConnected_seqStartOut_OutputPort(FwIndexType portNum)
bool isConnected_cmdResponseOut_OutputPort(FwIndexType portNum)
virtual void CS_STEP_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CS_STEP.
void log_WARNING_HI_CS_SequenceTimeout(const Fw::StringBase &filename, U32 command) const
void tlmWrite_CS_CancelCommands(U32 arg, Fw::Time _tlmTime=Fw::Time()) const
void log_ACTIVITY_HI_CS_SequenceComplete(const Fw::StringBase &fileName) const
FwIndexType getNum_cmdResponseOut_OutputPorts() const
virtual void CS_START_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CS_START.
virtual void cmdResponseIn_handler(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response)=0
Handler for input port cmdResponseIn.
@ 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.
virtual void seqRunIn_preMsgHook(FwIndexType portNum, const Fw::StringBase &filename)
Pre-message hook for async input port seqRunIn.
void seqDone_out(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response)
Invoke output port seqDone.
void CS_RUN_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void log_ACTIVITY_HI_CS_SequenceCanceled(const Fw::StringBase &fileName) const
void log_WARNING_HI_CS_FileReadError(const Fw::StringBase &fileName) const
virtual void CS_CANCEL_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CS_CANCEL.
bool isConnected_timeCaller_OutputPort(FwIndexType portNum)
void log_WARNING_HI_CS_FileNotFound(const Fw::StringBase &fileName) const
virtual void seqCancelIn_preMsgHook(FwIndexType portNum)
Pre-message hook for async input port seqCancelIn.
void cmdResponseIn_handlerBase(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response)
Handler base-class function for input port cmdResponseIn.
void CS_CANCEL_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void seqRunIn_handlerBase(FwIndexType portNum, const Fw::StringBase &filename)
Handler base-class function for input port seqRunIn.
void log_WARNING_HI_CS_TimeBaseMismatch(const Fw::StringBase &fileName, U16 time_base, U16 seq_time_base) const
Fw::InputCmdPort * get_cmdIn_InputPort(FwIndexType portNum)
void log_WARNING_HI_CS_RecordInvalid(const Fw::StringBase &fileName, U32 recordNumber, I32 error) const
virtual void pingIn_preMsgHook(FwIndexType portNum, U32 key)
Pre-message hook for async input port pingIn.
virtual ~CmdSequencerComponentBase()
Destroy CmdSequencerComponentBase object.
void log_ACTIVITY_LO_CS_SequenceLoaded(const Fw::StringBase &fileName) const
friend class CmdSequencerComponentBaseFriend
Friend class for white-box testing.
virtual void CS_START_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
void set_tlmOut_OutputPort(FwIndexType portNum, Fw::InputTlmPort *port)
Connect port to tlmOut[portNum].
void CS_START_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void seqStartOut_out(FwIndexType portNum, const Fw::StringBase &filename)
Invoke output port seqStartOut.
void log_WARNING_LO_CS_NoRecords(const Fw::StringBase &fileName) const
Log event CS_NoRecords.
bool isConnected_cmdRegOut_OutputPort(FwIndexType portNum)
bool isConnected_pingOut_OutputPort(FwIndexType portNum)
void schedIn_handlerBase(FwIndexType portNum, U32 context)
Handler base-class function for input port schedIn.
void log_WARNING_HI_CS_CommandError(const Fw::StringBase &fileName, U32 recordNumber, U32 opCode, U32 errorStatus) const
void set_cmdResponseOut_OutputPort(FwIndexType portNum, Fw::InputCmdResponsePort *port)
Connect port to cmdResponseOut[portNum].
void tlmWrite_CS_LoadCommands(U32 arg, Fw::Time _tlmTime=Fw::Time()) const
virtual void CS_STEP_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
virtual void CS_JOIN_WAIT_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
bool isConnected_seqDone_OutputPort(FwIndexType portNum)
virtual void CS_RUN_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CS_RUN.
Svc::InputCmdSeqCancelPort * get_seqCancelIn_InputPort(FwIndexType portNum)
virtual void CS_AUTO_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
@ 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...
void tlmWrite_CS_Errors(U32 arg, Fw::Time _tlmTime=Fw::Time()) const
void log_WARNING_HI_CS_FileCrcFailure(const Fw::StringBase &fileName, U32 storedCRC, U32 computedCRC) const
bool isConnected_tlmOut_OutputPort(FwIndexType portNum)
void log_ACTIVITY_LO_CS_CommandComplete(const Fw::StringBase &fileName, U32 recordNumber, U32 opCode) const
virtual void pingIn_handler(FwIndexType portNum, U32 key)=0
Handler for input port pingIn.
void log_WARNING_HI_CS_FileInvalid(const Fw::StringBase &fileName, Svc::CmdSequencer_FileReadStage stage, I32 error) const
Svc::InputSchedPort * get_schedIn_InputPort(FwIndexType portNum)
Svc::InputCmdSeqInPort * get_seqRunIn_InputPort(FwIndexType portNum)
void pingOut_out(FwIndexType portNum, U32 key)
Invoke output port pingOut.
void log_ACTIVITY_HI_CS_SequenceValid(const Fw::StringBase &filename) const
void set_timeCaller_OutputPort(FwIndexType portNum, Fw::InputTimePort *port)
Connect port to timeCaller[portNum].
void CS_AUTO_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void log_ACTIVITY_HI_CS_CmdStarted(const Fw::StringBase &filename) const
Fw::InputCmdResponsePort * get_cmdResponseIn_InputPort(FwIndexType portNum)
void log_WARNING_HI_CS_RecordMismatch(const Fw::StringBase &fileName, U32 header_records, U32 extra_bytes) const
void set_comCmdOut_OutputPort(FwIndexType portNum, Fw::InputComPort *port)
Connect port to comCmdOut[portNum].
void regCommands()
Register commands with the Command Dispatcher.
void set_seqDone_OutputPort(FwIndexType portNum, Fw::InputCmdResponsePort *port)
Connect port to seqDone[portNum].
virtual void CS_VALIDATE_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CS_VALIDATE.
void log_ACTIVITY_HI_CS_JoinWaiting(const Fw::StringBase &filename, U32 recordNumber, U32 opCode) const
void tlmWrite_CS_SequencesCompleted(U32 arg, Fw::Time _tlmTime=Fw::Time()) const
virtual void CS_MANUAL_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CS_MANUAL.
bool isConnected_logOut_OutputPort(FwIndexType portNum)
void cmdResponse_out(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdResponse response)
Emit command response.
void log_ACTIVITY_HI_CS_CmdStepped(const Fw::StringBase &filename, U32 command) const
bool isConnected_comCmdOut_OutputPort(FwIndexType portNum)
void log_WARNING_HI_CS_FileSizeError(const Fw::StringBase &fileName, U32 size) const
void pingIn_handlerBase(FwIndexType portNum, U32 key)
Handler base-class function for input port pingIn.
void set_logOut_OutputPort(FwIndexType portNum, Fw::InputLogPort *port)
Connect port to logOut[portNum].
virtual void schedIn_handler(FwIndexType portNum, U32 context)=0
Handler for input port schedIn.
virtual void seqRunIn_handler(FwIndexType portNum, const Fw::StringBase &filename)=0
Handler for input port seqRunIn.
virtual void cmdResponseIn_preMsgHook(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response)
Pre-message hook for async input port cmdResponseIn.
void set_pingOut_OutputPort(FwIndexType portNum, Svc::InputPingPort *port)
Connect port to pingOut[portNum].
Svc::InputPingPort * get_pingIn_InputPort(FwIndexType portNum)
virtual void CS_CANCEL_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
void comCmdOut_out(FwIndexType portNum, Fw::ComBuffer &data, U32 context)
Invoke output port comCmdOut.
void log_WARNING_HI_CS_UnexpectedCompletion(U32 opcode) const
void CS_VALIDATE_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void log_ACTIVITY_HI_CS_PortSequenceStarted(const Fw::StringBase &filename) const
void CS_STEP_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void log_WARNING_HI_CS_TimeContextMismatch(const Fw::StringBase &fileName, U8 currTimeBase, U8 seqTimeBase) const
virtual void CS_JOIN_WAIT_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CS_JOIN_WAIT.
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.
virtual void CS_RUN_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdStringArg &fileName, Svc::CmdSequencer_BlockState block)=0
void set_cmdRegOut_OutputPort(FwIndexType portNum, Fw::InputCmdRegPort *port)
Connect port to cmdRegOut[portNum].
void CS_JOIN_WAIT_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void set_seqStartOut_OutputPort(FwIndexType portNum, Svc::InputCmdSeqInPort *port)
Connect port to seqStartOut[portNum].
void log_ACTIVITY_HI_CS_ModeSwitched(Svc::CmdSequencer_SeqMode mode) const
virtual void seqCancelIn_handler(FwIndexType portNum)=0
Handler for input port seqCancelIn.
void tlmWrite_CS_CommandsExecuted(U32 arg, Fw::Time _tlmTime=Fw::Time()) const
virtual void CS_VALIDATE_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdStringArg &fileName)=0