F´ Flight Software - C/C++ Documentation  NASA-v2.0.1
A framework for building embedded system applications to NASA flight quality standards.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
CmdSequencerImpl.hpp
Go to the documentation of this file.
1 // ======================================================================
2 // \title CmdSequencerImpl.hpp
3 // \author Bocchino/Canham
4 // \brief hpp file for CmdSequencer component implementation class
5 //
6 // \copyright
7 // Copyright (C) 2009-2018 California Institute of Technology.
8 // ALL RIGHTS RESERVED. United States Government Sponsorship
9 // acknowledged.
10 //
11 // ======================================================================
12 
13 #ifndef Svc_CmdSequencerImpl_HPP
14 #define Svc_CmdSequencerImpl_HPP
15 
16 #include "Fw/Com/ComBuffer.hpp"
18 #include "Os/File.hpp"
19 #include "Os/ValidateFile.hpp"
20 #include "Svc/CmdSequencer/CmdSequencerComponentAc.hpp"
21 
22 namespace Svc {
23 
25  public CmdSequencerComponentBase
26  {
27 
28  PRIVATE:
29 
30  // ----------------------------------------------------------------------
31  // Private enumerations
32  // ----------------------------------------------------------------------
33 
35  enum RunMode {
36  STOPPED, RUNNING
37  };
38 
40  enum StepMode {
41  AUTO, MANUAL
42  };
43 
44  public:
45 
46  // ----------------------------------------------------------------------
47  // Public classes
48  // ----------------------------------------------------------------------
49 
52  class Sequence {
53 
54  public:
55 
58  class Events {
59 
60  public:
61 
63  struct FileReadStage {
64 
65  typedef enum {
75  } t;
76 
78  static CmdSequencerComponentImpl::FileReadStage
80  const t fileReadStage
81  );
82 
83  };
84 
85  public:
86 
88  Events(
89  Sequence& sequence
90  );
91 
92  public:
93 
95  void fileCRCFailure(
96  const U32 storedCRC,
97  const U32 computedCRC
98  );
99 
101  void fileInvalid(
102  const FileReadStage::t stage,
103  const I32 error
104  );
105 
107  void fileNotFound(void);
108 
110  void fileReadError(void);
111 
113  void fileSizeError(
114  const U32 size
115  );
116 
118  void recordInvalid(
119  const U32 recordNumber,
120  const I32 error
121  );
122 
124  void recordMismatch(
125  const U32 numRecords,
126  const U32 extraBytes
127  );
128 
130  void timeBaseMismatch(
131  const FwTimeBaseStoreType currTimeBase,
132  const FwTimeBaseStoreType seqTimeBase
133  );
134 
136  void timeContextMismatch(
137  const FwTimeContextStoreType currTimeContext,
138  const FwTimeContextStoreType seqTimeContext
139  );
140 
141  PRIVATE:
142 
144  Sequence& m_sequence;
145 
146  };
147 
148  public:
149 
151  Sequence(
152  CmdSequencerComponentImpl& component
153  );
154 
156  virtual ~Sequence(void);
157 
158  public:
159 
162  class Header {
163 
164  public:
165 
166  enum Constants {
169  sizeof(U32) +
170  sizeof(U32) +
171  sizeof(FwTimeBaseStoreType) +
172  sizeof(FwTimeContextStoreType)
173  };
174 
175  public:
176 
178  Header(void);
179 
180  public:
181 
184  bool validateTime(
185  CmdSequencerComponentImpl& component
186  );
187 
188  public:
189 
192 
195 
198 
201 
202  };
203 
204  public:
205 
208  class Record {
209 
210  public:
211 
212  enum Descriptor {
216  };
217 
218  public:
219 
221  Record(void) :
223  {
224 
225  }
226 
227  public:
228 
231 
234 
237 
238  };
239 
240  public:
241 
243  void allocateBuffer(
244  const NATIVE_INT_TYPE identifier,
245  Fw::MemAllocator& allocator,
246  const NATIVE_UINT_TYPE bytes
247  );
248 
250  void deallocateBuffer(
251  Fw::MemAllocator& allocator
252  );
253 
255  void setFileName(const Fw::CmdStringArg& fileName);
256 
260 
264 
266  const Header& getHeader(void) const;
267 
270  virtual bool loadFile(
271  const Fw::CmdStringArg& fileName
272  ) = 0;
273 
276  virtual bool hasMoreRecords(void) const = 0;
277 
280  virtual void nextRecord(
281  Record& record
282  ) = 0;
283 
287  virtual void reset(void) = 0;
288 
291  virtual void clear(void) = 0;
292 
293  PROTECTED:
294 
297 
300 
303 
306 
309 
312 
315 
316  };
317 
321  public Sequence
322  {
323 
324  PRIVATE:
325 
326  enum Constants {
327  INITIAL_COMPUTED_VALUE = 0xFFFFFFFFU
328  };
329 
330  public:
331 
334  struct CRC {
335 
337  CRC(void);
338 
340  void init(void);
341 
343  void update(
344  const BYTE* buffer,
345  NATIVE_UINT_TYPE bufferSize
346  );
347 
349  void finalize(void);
350 
353 
355  U32 m_stored;
356 
357  };
358 
359  public:
360 
363  CmdSequencerComponentImpl& component
364  );
365 
366  public:
367 
370  bool loadFile(
371  const Fw::CmdStringArg& fileName
372  );
373 
376  bool hasMoreRecords(void) const;
377 
380  void nextRecord(
381  Record& record
382  );
383 
387  void reset(void);
388 
391  void clear(void);
392 
393  PRIVATE:
394 
397  bool readFile(void);
398 
401  bool readOpenFile(void);
402 
406  bool readHeader(void);
407 
410  bool deserializeHeader(void);
411 
414  bool readRecordsAndCRC(void);
415 
418  bool extractCRC(void);
419 
422  bool validateCRC(void);
423 
426  Fw::SerializeStatus deserializeRecord(
427  Record& record
428  );
429 
432  Fw::SerializeStatus deserializeDescriptor(
433  Record::Descriptor& descriptor
434  );
435 
438  Fw::SerializeStatus deserializeTimeTag(
439  Fw::Time& timeTag
440  );
441 
444  Fw::SerializeStatus deserializeRecordSize(
445  U32& recordSize
446  );
447 
450  Fw::SerializeStatus copyCommand(
451  Fw::ComBuffer& comBuffer,
452  const U32 recordSize
453  );
454 
457  bool validateRecords(void);
458 
459  PRIVATE:
460 
462  CRC m_crc;
463 
465  Os::File m_sequenceFile;
466 
467  };
468 
469  PRIVATE:
470 
471  // ----------------------------------------------------------------------
472  // Private classes
473  // ----------------------------------------------------------------------
474 
477  class Timer {
478 
479  PRIVATE:
480 
482  typedef enum {
483  SET, CLEAR
484  } State;
485 
486  public:
487 
489  Timer(void) :
490  m_state(CLEAR)
491  {
492 
493  }
494 
496  void set(
497  Fw::Time time
498  ) {
499  this->m_state = SET;
500  this->expirationTime = time;
501  }
502 
504  void clear(void) {
505  this->m_state = CLEAR;
506  }
507 
510  bool isExpiredAt(
511  Fw::Time time
512  ) {
513  if (this->m_state == CLEAR) {
514  return false;
515  } else if (
516  Fw::Time::compare(this->expirationTime, time) == Fw::Time::GT
517  ) {
518  return false;
519  }
520  return true;
521  }
522 
523  PRIVATE:
524 
526  State m_state;
527 
529  Fw::Time expirationTime;
530 
531  };
532 
533 
534  public:
535 
536  // ----------------------------------------------------------------------
537  // Construction, initialization, and destruction
538  // ----------------------------------------------------------------------
539 
542  const char* compName
543  );
544 
546  void init(
547  const NATIVE_INT_TYPE queueDepth,
548  const NATIVE_INT_TYPE instance
549  );
550 
554  void setTimeout(
555  NATIVE_UINT_TYPE seconds
556  );
557 
562  void setSequenceFormat(
563  Sequence& sequence
564  );
565 
569  void allocateBuffer(
570  const NATIVE_INT_TYPE identifier,
571  Fw::MemAllocator& allocator,
572  const NATIVE_UINT_TYPE bytes
573  );
574 
577  void loadSequence(
578  const Fw::EightyCharString& fileName
579  );
580 
582  void deallocateBuffer(
583  Fw::MemAllocator& allocator
584  );
585 
588 
589  PRIVATE:
590 
591  // ----------------------------------------------------------------------
592  // Handler implementations for input ports
593  // ----------------------------------------------------------------------
594 
596  void cmdResponseIn_handler(
597  NATIVE_INT_TYPE portNum,
598  FwOpcodeType opcode,
599  U32 cmdSeq,
600  Fw::CommandResponse response
601  );
602 
604  void schedIn_handler(
605  NATIVE_INT_TYPE portNum,
606  NATIVE_UINT_TYPE order
607  );
608 
610  void seqRunIn_handler(
611  NATIVE_INT_TYPE portNum,
612  Fw::EightyCharString &filename
613  );
614 
616  void pingIn_handler(
617  NATIVE_INT_TYPE portNum,
618  U32 key
619  );
620 
621  PRIVATE:
622 
623  // ----------------------------------------------------------------------
624  // Command handler implementations
625  // ----------------------------------------------------------------------
626 
629  void CS_AUTO_cmdHandler(
630  FwOpcodeType opcode,
631  U32 cmdSeq
632  );
633 
636  void CS_CANCEL_cmdHandler(
637  FwOpcodeType opCode,
638  U32 cmdSeq
639  );
640 
643  void CS_MANUAL_cmdHandler(
644  FwOpcodeType opcode,
645  U32 cmdSeq
646  );
647 
649  void CS_RUN_cmdHandler(
650  FwOpcodeType opCode,
651  U32 cmdSeq,
652  const Fw::CmdStringArg& fileName
653  );
654 
657  void CS_START_cmdHandler(
658  FwOpcodeType opcode,
659  U32 cmdSeq
660  );
661 
665  void CS_STEP_cmdHandler(
666  FwOpcodeType opcode,
667  U32 cmdSeq
668  );
669 
672  void CS_VALIDATE_cmdHandler(
673  FwOpcodeType opCode,
674  U32 cmdSeq,
675  const Fw::CmdStringArg& fileName
676  );
677 
678  PRIVATE:
679 
680  // ----------------------------------------------------------------------
681  // Private helper methods
682  // ----------------------------------------------------------------------
683 
686  bool loadFile(
687  const Fw::CmdStringArg& fileName
688  );
689 
691  void performCmd_Cancel(void);
692 
694  void performCmd_Step(void);
695 
697  void performCmd_Step_RELATIVE(
698  Fw::Time& currentTime
699  );
700 
702  void performCmd_Step_ABSOLUTE(
703  Fw::Time& currentTime
704  );
705 
707  void commandComplete(
708  const U32 opCode
709  );
710 
712  void sequenceComplete(void);
713 
715  void error(void);
716 
718  void commandError(
719  const U32 number,
720  const U32 opCode,
721  const U32 error
722  );
723 
726  bool requireRunMode(
727  RunMode mode
728  );
729 
731  void setCmdTimeout(
732  const Fw::Time &currentTime
733  );
734 
735  PRIVATE:
736 
737  // ----------------------------------------------------------------------
738  // Private member variables
739  // ----------------------------------------------------------------------
740 
742  FPrimeSequence m_FPrimeSequence;
743 
745  Sequence *m_sequence;
746 
748  U32 m_loadCmdCount;
749 
751  U32 m_cancelCmdCount;
752 
754  U32 m_errorCount;
755 
757  RunMode m_runMode;
758 
760  StepMode m_stepMode;
761 
763  Sequence::Record m_record;
764 
766  Timer m_cmdTimer;
767 
769  U32 m_executedCount;
770 
772  U32 m_totalExecutedCount;
773 
775  U32 m_sequencesCompletedCount;
776 
778  NATIVE_UINT_TYPE m_timeout;
779 
781  Timer m_cmdTimeoutTimer;
782 
783  };
784 
785 };
786 
787 #endif
Svc::CmdSequencerComponentImpl::CmdSequencerComponentImpl
CmdSequencerComponentImpl(const char *compName)
Construct a CmdSequencer.
Definition: CmdSequencerImpl.cpp:29
Svc::CmdSequencerComponentImpl::FPrimeSequence::reset
void reset(void)
Definition: FPrimeSequence.cpp:103
Svc::CmdSequencerComponentImpl::Sequence::Sequence
Sequence(CmdSequencerComponentImpl &component)
Construct a Sequence object.
Definition: Sequence.cpp:19
Svc::CmdSequencerComponentImpl::Sequence::m_allocatorId
NATIVE_INT_TYPE m_allocatorId
The allocator ID.
Definition: CmdSequencerImpl.hpp:311
Svc::CmdSequencerComponentImpl::Sequence::deallocateBuffer
void deallocateBuffer(Fw::MemAllocator &allocator)
Deallocate the buffer.
Definition: Sequence.cpp:100
Svc::CmdSequencerComponentImpl::Sequence::Header::validateTime
bool validateTime(CmdSequencerComponentImpl &component)
Definition: Sequence.cpp:44
Svc::CmdSequencerComponentImpl::Sequence::Record::Record
Record(void)
Construct a Record object.
Definition: CmdSequencerImpl.hpp:221
Svc::CmdSequencerComponentImpl::Sequence::Header::SERIALIZED_SIZE
@ SERIALIZED_SIZE
Serialized size of header.
Definition: CmdSequencerImpl.hpp:168
Svc::CmdSequencerComponentImpl::Sequence::Record::m_descriptor
Descriptor m_descriptor
The descriptor.
Definition: CmdSequencerImpl.hpp:230
Fw::Time
Definition: Time.hpp:10
Svc::CmdSequencerComponentImpl::Sequence::Events::FileReadStage::DESER_NUM_RECORDS
@ DESER_NUM_RECORDS
Definition: CmdSequencerImpl.hpp:69
Svc::CmdSequencerComponentImpl::Sequence::m_header
Header m_header
The sequence header.
Definition: CmdSequencerImpl.hpp:314
Svc::CmdSequencerComponentImpl::setTimeout
void setTimeout(NATIVE_UINT_TYPE seconds)
Definition: CmdSequencerImpl.cpp:51
Fw::SerializeStatus
SerializeStatus
forward declaration for string
Definition: Serializable.hpp:14
Svc::CmdSequencerComponentImpl::FPrimeSequence::CRC::m_computed
U32 m_computed
Computed CRC.
Definition: CmdSequencerImpl.hpp:352
Svc::CmdSequencerComponentImpl::Sequence::Events::FileReadStage::DESER_TIME_CONTEXT
@ DESER_TIME_CONTEXT
Definition: CmdSequencerImpl.hpp:71
Svc::CmdSequencerComponentImpl::Sequence::Events::FileReadStage::READ_HEADER_SIZE
@ READ_HEADER_SIZE
Definition: CmdSequencerImpl.hpp:67
Svc::CmdSequencerComponentImpl::Sequence::Events::FileReadStage::READ_SEQ_DATA_SIZE
@ READ_SEQ_DATA_SIZE
Definition: CmdSequencerImpl.hpp:74
Svc::CmdSequencerComponentImpl::Sequence::Events::FileReadStage::READ_SEQ_CRC
@ READ_SEQ_CRC
Definition: CmdSequencerImpl.hpp:72
Fw::LogStringArg
Definition: LogString.hpp:11
Svc::CmdSequencerComponentImpl::Sequence::clear
virtual void clear(void)=0
MemAllocator.hpp
Defines a base class for a memory allocator for classes.
Svc::CmdSequencerComponentImpl::Sequence::Record::END_OF_SEQUENCE
@ END_OF_SEQUENCE
end of sequence
Definition: CmdSequencerImpl.hpp:215
Svc::CmdSequencerComponentImpl::Sequence::Events::FileReadStage::READ_SEQ_DATA
@ READ_SEQ_DATA
Definition: CmdSequencerImpl.hpp:73
Svc::CmdSequencerComponentImpl::Sequence::m_fileName
Fw::CmdStringArg m_fileName
The sequence file name.
Definition: CmdSequencerImpl.hpp:302
Svc::CmdSequencerComponentImpl::Sequence::Events::Events
Events(Sequence &sequence)
Construct an Events object.
Definition: Events.cpp:62
Fw::EightyCharString
Definition: EightyCharString.hpp:10
Svc::CmdSequencerComponentImpl::Sequence::Record::Descriptor
Descriptor
Definition: CmdSequencerImpl.hpp:212
Svc::CmdSequencerComponentImpl::Sequence::Events::FileReadStage::DESER_SIZE
@ DESER_SIZE
Definition: CmdSequencerImpl.hpp:68
Svc::CmdSequencerComponentImpl::Sequence::Events::fileInvalid
void fileInvalid(const FileReadStage::t stage, const I32 error)
File invalid.
Definition: Events.cpp:82
Svc::CmdSequencerComponentImpl::Sequence::~Sequence
virtual ~Sequence(void)
Destroy a Sequence object.
Definition: Sequence.cpp:28
Svc::CmdSequencerComponentImpl::Sequence::Events::fileCRCFailure
void fileCRCFailure(const U32 storedCRC, const U32 computedCRC)
File CRC failure.
Definition: Events.cpp:69
ValidateFile.hpp
Defines a file class to validate files or generate a file validator file.
ComBuffer.hpp
Svc::CmdSequencerComponentImpl::Sequence::Events::fileSizeError
void fileSizeError(const U32 size)
File size error.
Definition: Events.cpp:113
Svc::CmdSequencerComponentImpl::Sequence::Events::FileReadStage::t
t
Definition: CmdSequencerImpl.hpp:65
Svc::CmdSequencerComponentImpl::Sequence::m_component
CmdSequencerComponentImpl & m_component
The enclosing component.
Definition: CmdSequencerImpl.hpp:296
Svc::CmdSequencerComponentImpl::Sequence::loadFile
virtual bool loadFile(const Fw::CmdStringArg &fileName)=0
TimeBase
TimeBase
Definition: FpConfig.hpp:323
Svc::CmdSequencerComponentImpl::Sequence::Events::FileReadStage::toComponentEnum
static CmdSequencerComponentImpl::FileReadStage toComponentEnum(const t fileReadStage)
Convert FileReadStage::t to CmdSequencerComponentImpl::FileReadStage.
Definition: Events.cpp:20
Fw::CmdStringArg
Definition: CmdString.hpp:11
Svc::CmdSequencerComponentImpl::Sequence::Header::m_numRecords
U32 m_numRecords
The number of records in the sequence.
Definition: CmdSequencerImpl.hpp:194
Svc::CmdSequencerComponentImpl::Sequence::Events::fileReadError
void fileReadError(void)
File read error.
Definition: Events.cpp:104
FwTimeContextStoreType
#define FwTimeContextStoreType
Storage conversion for time context in scripts/ground interface.
Definition: FpConfig.hpp:336
Svc::CmdSequencerComponentImpl::Sequence::Record::ABSOLUTE
@ ABSOLUTE
Absolute time.
Definition: CmdSequencerImpl.hpp:213
Svc::CmdSequencerComponentImpl::Sequence::m_logFileName
Fw::LogStringArg m_logFileName
Copy of file name for events.
Definition: CmdSequencerImpl.hpp:305
Svc::CmdSequencerComponentImpl::FPrimeSequence::loadFile
bool loadFile(const Fw::CmdStringArg &fileName)
Definition: FPrimeSequence.cpp:72
Svc::CmdSequencerComponentImpl::Sequence::Header::m_timeContext
FwTimeContextStoreType m_timeContext
The context of the sequence.
Definition: CmdSequencerImpl.hpp:200
Svc::CmdSequencerComponentImpl::Sequence::Events::fileNotFound
void fileNotFound(void)
File not found.
Definition: Events.cpp:95
Svc::CmdSequencerComponentImpl::FPrimeSequence::hasMoreRecords
bool hasMoreRecords(void) const
Definition: FPrimeSequence.cpp:90
Svc::CmdSequencerComponentImpl::allocateBuffer
void allocateBuffer(const NATIVE_INT_TYPE identifier, Fw::MemAllocator &allocator, const NATIVE_UINT_TYPE bytes)
Definition: CmdSequencerImpl.cpp:62
Svc::CmdSequencerComponentImpl::Sequence::reset
virtual void reset(void)=0
Svc::CmdSequencerComponentImpl::Sequence::Events::FileReadStage
File read stage for error reporting.
Definition: CmdSequencerImpl.hpp:63
Svc::CmdSequencerComponentImpl::FPrimeSequence::CRC
Container for computed and stored CRC values.
Definition: CmdSequencerImpl.hpp:334
Svc::CmdSequencerComponentImpl::FPrimeSequence
A sequence that uses the F Prime binary format.
Definition: CmdSequencerImpl.hpp:320
BYTE
U8 BYTE
byte type
Definition: BasicTypes.hpp:77
Svc::CmdSequencerComponentImpl::Sequence::Events::FileReadStage::READ_HEADER
@ READ_HEADER
Definition: CmdSequencerImpl.hpp:66
Svc::CmdSequencerComponentImpl::Sequence::Header::m_fileSize
U32 m_fileSize
The file size.
Definition: CmdSequencerImpl.hpp:191
Svc::CmdSequencerComponentImpl::Sequence::Events::FileReadStage::DESER_TIME_BASE
@ DESER_TIME_BASE
Definition: CmdSequencerImpl.hpp:70
Svc::CmdSequencerComponentImpl::Sequence::Record::RELATIVE
@ RELATIVE
Relative time.
Definition: CmdSequencerImpl.hpp:214
Svc::CmdSequencerComponentImpl::Sequence::Record::m_command
Fw::ComBuffer m_command
The command.
Definition: CmdSequencerImpl.hpp:236
Svc::CmdSequencerComponentImpl::Sequence::Events::timeContextMismatch
void timeContextMismatch(const FwTimeContextStoreType currTimeContext, const FwTimeContextStoreType seqTimeContext)
Time context mismatch.
Definition: Events.cpp:164
Svc::CmdSequencerComponentImpl::Sequence::getFileName
Fw::CmdStringArg & getFileName(void)
Definition: Sequence.cpp:124
Svc::CmdSequencerComponentImpl::Sequence::Events::recordMismatch
void recordMismatch(const U32 numRecords, const U32 extraBytes)
Record mismatch.
Definition: Events.cpp:138
Svc::CmdSequencerComponentImpl::Sequence::allocateBuffer
void allocateBuffer(const NATIVE_INT_TYPE identifier, Fw::MemAllocator &allocator, const NATIVE_UINT_TYPE bytes)
Give the sequence representation a memory buffer.
Definition: Sequence.cpp:79
FwOpcodeType
#define FwOpcodeType
Type representation for a command opcode.
Definition: FpConfig.hpp:62
NATIVE_UINT_TYPE
unsigned int NATIVE_UINT_TYPE
native unsigned integer type declaration
Definition: BasicTypes.hpp:30
Fw::Time::GT
@ GT
Definition: Time.hpp:49
Svc::CmdSequencerComponentImpl::FPrimeSequence::nextRecord
void nextRecord(Record &record)
Definition: FPrimeSequence.cpp:96
Svc::CmdSequencerComponentImpl::deallocateBuffer
void deallocateBuffer(Fw::MemAllocator &allocator)
Return allocated buffer. Call during shutdown.
Definition: CmdSequencerImpl.cpp:81
Svc::CmdSequencerComponentImpl::FPrimeSequence::CRC::CRC
CRC(void)
Construct a CRC.
Definition: FPrimeSequence.cpp:22
Svc::CmdSequencerComponentImpl::Sequence::Events::timeBaseMismatch
void timeBaseMismatch(const FwTimeBaseStoreType currTimeBase, const FwTimeBaseStoreType seqTimeBase)
Time base mismatch.
Definition: Events.cpp:151
Fw::Time::compare
static Comparison compare(const Time &time1, const Time &time2)
Definition: Time.cpp:158
Svc::CmdSequencerComponentImpl::Sequence::Events
Sequence event reporting.
Definition: CmdSequencerImpl.hpp:58
Svc::CmdSequencerComponentImpl::Sequence::setFileName
void setFileName(const Fw::CmdStringArg &fileName)
Set the file name. Also sets the log file name.
Definition: Sequence.cpp:117
Svc::CmdSequencerComponentImpl::Sequence::getHeader
const Header & getHeader(void) const
Get the sequence header.
Definition: Sequence.cpp:111
Svc::CmdSequencerComponentImpl::FPrimeSequence::FPrimeSequence
FPrimeSequence(CmdSequencerComponentImpl &component)
Construct an FPrimeSequence.
Definition: FPrimeSequence.cpp:51
File.hpp
Fw::MemAllocator
Definition: MemAllocator.hpp:44
Fw::ExternalSerializeBuffer
Definition: Serializable.hpp:156
Svc::CmdSequencerComponentImpl::FPrimeSequence::CRC::m_stored
U32 m_stored
Stored CRC.
Definition: CmdSequencerImpl.hpp:355
Svc::CmdSequencerComponentImpl::init
void init(const NATIVE_INT_TYPE queueDepth, const NATIVE_INT_TYPE instance)
Initialize a CmdSequencer.
Definition: CmdSequencerImpl.cpp:46
Svc::CmdSequencerComponentImpl::Sequence::Header
A sequence header.
Definition: CmdSequencerImpl.hpp:162
Svc::CmdSequencerComponentImpl::Sequence::Header::Header
Header(void)
Construct a Header object.
Definition: Sequence.cpp:34
FwTimeBaseStoreType
#define FwTimeBaseStoreType
Storage conversion for time base in scripts/ground interface.
Definition: FpConfig.hpp:332
Svc::CmdSequencerComponentImpl::Sequence::m_events
Events m_events
Event reporting.
Definition: CmdSequencerImpl.hpp:299
Svc::CmdSequencerComponentImpl::~CmdSequencerComponentImpl
~CmdSequencerComponentImpl(void)
Destroy a CmdDispatcherComponentBase.
Definition: CmdSequencerImpl.cpp:86
Svc
Definition: ActiveRateGroupImplCfg.hpp:18
Svc::CmdSequencerComponentImpl::FPrimeSequence::CRC::init
void init(void)
Initialize computed CRC.
Definition: FPrimeSequence.cpp:30
Svc::CmdSequencerComponentImpl::FPrimeSequence::CRC::finalize
void finalize(void)
Finalize computed CRC.
Definition: FPrimeSequence.cpp:45
Svc::CmdSequencerComponentImpl::Sequence::getLogFileName
Fw::LogStringArg & getLogFileName(void)
Definition: Sequence.cpp:130
Svc::CmdSequencerComponentImpl
Definition: CmdSequencerImpl.hpp:24
Svc::CmdSequencerComponentImpl::Sequence::Header::m_timeBase
TimeBase m_timeBase
The time base of the sequence.
Definition: CmdSequencerImpl.hpp:197
Svc::CmdSequencerComponentImpl::Sequence::nextRecord
virtual void nextRecord(Record &record)=0
Svc::CmdSequencerComponentImpl::Sequence::Events::recordInvalid
void recordInvalid(const U32 recordNumber, const I32 error)
Record invalid.
Definition: Events.cpp:125
Svc::CmdSequencerComponentImpl::Sequence::Record
A sequence record.
Definition: CmdSequencerImpl.hpp:208
Svc::CmdSequencerComponentImpl::Sequence::Header::Constants
Constants
Definition: CmdSequencerImpl.hpp:166
Svc::CmdSequencerComponentImpl::Sequence::m_buffer
Fw::ExternalSerializeBuffer m_buffer
Serialize buffer to hold the binary sequence data.
Definition: CmdSequencerImpl.hpp:308
Svc::CmdSequencerComponentImpl::Sequence
A sequence with unspecified binary format.
Definition: CmdSequencerImpl.hpp:52
Svc::CmdSequencerComponentImpl::Sequence::Record::m_timeTag
Fw::Time m_timeTag
The time tag. NOTE: timeBase and context not filled in.
Definition: CmdSequencerImpl.hpp:233
NATIVE_INT_TYPE
int NATIVE_INT_TYPE
native integer type declaration
Definition: BasicTypes.hpp:29
Fw::ComBuffer
Definition: ComBuffer.hpp:21
Svc::CmdSequencerComponentImpl::Sequence::hasMoreRecords
virtual bool hasMoreRecords(void) const =0
Svc::CmdSequencerComponentImpl::FPrimeSequence::CRC::update
void update(const BYTE *buffer, NATIVE_UINT_TYPE bufferSize)
Update computed CRC.
Definition: FPrimeSequence.cpp:36
Svc::CmdSequencerComponentImpl::setSequenceFormat
void setSequenceFormat(Sequence &sequence)
Definition: CmdSequencerImpl.cpp:56
Svc::CmdSequencerComponentImpl::FPrimeSequence::clear
void clear(void)
Definition: FPrimeSequence.cpp:109
Os::File
Definition: File.hpp:11
Svc::CmdSequencerComponentImpl::loadSequence
void loadSequence(const Fw::EightyCharString &fileName)
Definition: CmdSequencerImpl.cpp:72