F´ Flight Software - C/C++ Documentation  NASA-v2.0.0
A framework for building embedded system applications to NASA flight quality standards.
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