F´ Flight Software - C/C++ Documentation  NASA-v2.1.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 (C) 2009-2018 California Institute of Technology.
7 // ALL RIGHTS RESERVED. United States Government Sponsorship
8 // acknowledged.
9 
10 #ifndef Svc_CmdSequencerImpl_HPP
11 #define Svc_CmdSequencerImpl_HPP
12 
13 #include "Fw/Com/ComBuffer.hpp"
15 #include "Os/File.hpp"
16 #include "Os/ValidateFile.hpp"
17 #include "Svc/CmdSequencer/CmdSequencerComponentAc.hpp"
18 
19 namespace Svc {
20 
22  public CmdSequencerComponentBase
23  {
24 
25  PRIVATE:
26 
27  // ----------------------------------------------------------------------
28  // Private enumerations
29  // ----------------------------------------------------------------------
30 
32  enum RunMode {
33  STOPPED, RUNNING
34  };
35 
37  enum StepMode {
38  AUTO, MANUAL
39  };
40 
41  public:
42 
43  // ----------------------------------------------------------------------
44  // Public classes
45  // ----------------------------------------------------------------------
46 
49  class Sequence {
50 
51  public:
52 
55  class Events {
56 
57  public:
58 
60  struct FileReadStage {
61 
62  typedef enum {
72  } t;
73 
75  static CmdSequencerComponentImpl::FileReadStage
77  const t fileReadStage
78  );
79 
80  };
81 
82  public:
83 
85  Events(
86  Sequence& sequence
87  );
88 
89  public:
90 
92  void fileCRCFailure(
93  const U32 storedCRC,
94  const U32 computedCRC
95  );
96 
98  void fileInvalid(
99  const FileReadStage::t stage,
100  const I32 error
101  );
102 
104  void fileNotFound(void);
105 
107  void fileReadError(void);
108 
110  void fileSizeError(
111  const U32 size
112  );
113 
115  void recordInvalid(
116  const U32 recordNumber,
117  const I32 error
118  );
119 
121  void recordMismatch(
122  const U32 numRecords,
123  const U32 extraBytes
124  );
125 
127  void timeBaseMismatch(
128  const U32 currTimeBase,
129  const U32 seqTimeBase
130  );
131 
133  void timeContextMismatch(
134  const U32 currTimeContext,
135  const U32 seqTimeContext
136  );
137 
138  PRIVATE:
139 
141  Sequence& m_sequence;
142 
143  };
144 
145  public:
146 
148  Sequence(
149  CmdSequencerComponentImpl& component
150  );
151 
153  virtual ~Sequence(void);
154 
155  public:
156 
159  class Header {
160 
161  public:
162 
163  enum Constants {
166  sizeof(U32) +
167  sizeof(U32) +
168  sizeof(FwTimeBaseStoreType) +
169  sizeof(FwTimeContextStoreType)
170  };
171 
172  public:
173 
175  Header(void);
176 
177  public:
178 
181  bool validateTime(
182  CmdSequencerComponentImpl& component
183  );
184 
185  public:
186 
189 
192 
195 
198 
199  };
200 
201  public:
202 
205  class Record {
206 
207  public:
208 
209  enum Descriptor {
213  };
214 
215  public:
216 
218  Record(void) :
220  {
221 
222  }
223 
224  public:
225 
228 
231 
234 
235  };
236 
237  public:
238 
240  void allocateBuffer(
241  NATIVE_INT_TYPE identifier,
242  Fw::MemAllocator& allocator,
243  NATIVE_UINT_TYPE bytes
244  );
245 
247  void deallocateBuffer(
248  Fw::MemAllocator& allocator
249  );
250 
252  void setFileName(const Fw::CmdStringArg& fileName);
253 
257 
261 
263  const Header& getHeader(void) const;
264 
267  virtual bool loadFile(
268  const Fw::CmdStringArg& fileName
269  ) = 0;
270 
273  virtual bool hasMoreRecords(void) const = 0;
274 
277  virtual void nextRecord(
278  Record& record
279  ) = 0;
280 
284  virtual void reset(void) = 0;
285 
288  virtual void clear(void) = 0;
289 
290  PROTECTED:
291 
294 
297 
300 
303 
306 
309 
312 
313  };
314 
318  public Sequence
319  {
320 
321  PRIVATE:
322 
323  enum Constants {
324  INITIAL_COMPUTED_VALUE = 0xFFFFFFFFU
325  };
326 
327  public:
328 
331  struct CRC {
332 
334  CRC(void);
335 
337  void init(void);
338 
340  void update(
341  const BYTE* buffer,
342  NATIVE_UINT_TYPE bufferSize
343  );
344 
346  void finalize(void);
347 
350 
352  U32 m_stored;
353 
354  };
355 
356  public:
357 
360  CmdSequencerComponentImpl& component
361  );
362 
363  public:
364 
367  bool loadFile(
368  const Fw::CmdStringArg& fileName
369  );
370 
373  bool hasMoreRecords(void) const;
374 
377  void nextRecord(
378  Record& record
379  );
380 
384  void reset(void);
385 
388  void clear(void);
389 
390  PRIVATE:
391 
394  bool readFile(void);
395 
398  bool readOpenFile(void);
399 
403  bool readHeader(void);
404 
407  bool deserializeHeader(void);
408 
411  bool readRecordsAndCRC(void);
412 
415  bool extractCRC(void);
416 
419  bool validateCRC(void);
420 
423  Fw::SerializeStatus deserializeRecord(
424  Record& record
425  );
426 
429  Fw::SerializeStatus deserializeDescriptor(
430  Record::Descriptor& descriptor
431  );
432 
435  Fw::SerializeStatus deserializeTimeTag(
436  Fw::Time& timeTag
437  );
438 
441  Fw::SerializeStatus deserializeRecordSize(
442  U32& recordSize
443  );
444 
447  Fw::SerializeStatus copyCommand(
448  Fw::ComBuffer& comBuffer,
449  const U32 recordSize
450  );
451 
454  bool validateRecords(void);
455 
456  PRIVATE:
457 
459  CRC m_crc;
460 
462  Os::File m_sequenceFile;
463 
464  };
465 
466  PRIVATE:
467 
468  // ----------------------------------------------------------------------
469  // Private classes
470  // ----------------------------------------------------------------------
471 
474  class Timer {
475 
476  PRIVATE:
477 
479  typedef enum {
480  SET, CLEAR
481  } State;
482 
483  public:
484 
486  Timer(void) :
487  m_state(CLEAR)
488  {
489 
490  }
491 
493  void set(
494  Fw::Time time
495  ) {
496  this->m_state = SET;
497  this->expirationTime = time;
498  }
499 
501  void clear(void) {
502  this->m_state = CLEAR;
503  }
504 
507  bool isExpiredAt(
508  Fw::Time time
509  ) {
510  if (this->m_state == CLEAR) {
511  return false;
512  } else if (
513  Fw::Time::compare(this->expirationTime, time) == Fw::Time::GT
514  ) {
515  return false;
516  }
517  return true;
518  }
519 
520  PRIVATE:
521 
523  State m_state;
524 
526  Fw::Time expirationTime;
527 
528  };
529 
530 
531  public:
532 
533  // ----------------------------------------------------------------------
534  // Construction, initialization, and destruction
535  // ----------------------------------------------------------------------
536 
539  const char* compName
540  );
541 
543  void init(
544  const NATIVE_INT_TYPE queueDepth,
545  const NATIVE_INT_TYPE instance
546  );
547 
551  void setTimeout(
552  const NATIVE_UINT_TYPE seconds
553  );
554 
559  void setSequenceFormat(
560  Sequence& sequence
561  );
562 
566  void allocateBuffer(
567  const NATIVE_INT_TYPE identifier,
568  Fw::MemAllocator& allocator,
569  const NATIVE_UINT_TYPE bytes
570  );
571 
574  void loadSequence(
575  const Fw::String& fileName
576  );
577 
579  void deallocateBuffer(
580  Fw::MemAllocator& allocator
581  );
582 
585 
586  PRIVATE:
587 
588  // ----------------------------------------------------------------------
589  // Handler implementations for input ports
590  // ----------------------------------------------------------------------
591 
593  void cmdResponseIn_handler(
594  NATIVE_INT_TYPE portNum,
595  FwOpcodeType opcode,
596  U32 cmdSeq,
597  Fw::CommandResponse response
598  );
599 
601  void schedIn_handler(
602  NATIVE_INT_TYPE portNum,
603  NATIVE_UINT_TYPE order
604  );
605 
607  void seqRunIn_handler(
608  NATIVE_INT_TYPE portNum,
609  Fw::String &filename
610  );
611 
613  void pingIn_handler(
614  NATIVE_INT_TYPE portNum,
615  U32 key
616  );
617 
620  void seqCancelIn_handler(
621  const NATIVE_INT_TYPE portNum
622  );
623 
624  PRIVATE:
625 
626  // ----------------------------------------------------------------------
627  // Command handler implementations
628  // ----------------------------------------------------------------------
629 
632  void CS_AUTO_cmdHandler(
633  FwOpcodeType opcode,
634  U32 cmdSeq
635  );
636 
639  void CS_CANCEL_cmdHandler(
640  FwOpcodeType opCode,
641  U32 cmdSeq
642  );
643 
646  void CS_MANUAL_cmdHandler(
647  FwOpcodeType opcode,
648  U32 cmdSeq
649  );
650 
652  void CS_RUN_cmdHandler(
653  FwOpcodeType opCode,
654  U32 cmdSeq,
655  const Fw::CmdStringArg& fileName,
656  SeqBlkState block
657  );
658 
661  void CS_START_cmdHandler(
662  FwOpcodeType opcode,
663  U32 cmdSeq
664  );
665 
669  void CS_STEP_cmdHandler(
670  FwOpcodeType opcode,
671  U32 cmdSeq
672  );
673 
676  void CS_VALIDATE_cmdHandler(
677  FwOpcodeType opCode,
678  U32 cmdSeq,
679  const Fw::CmdStringArg& fileName
680  );
681 
686  void CS_JOIN_WAIT_cmdHandler(
687  const FwOpcodeType opCode,
688  const U32 cmdSeq
689  );
690 
691  PRIVATE:
692 
693  // ----------------------------------------------------------------------
694  // Private helper methods
695  // ----------------------------------------------------------------------
696 
699  bool loadFile(
700  const Fw::CmdStringArg& fileName
701  );
702 
704  void performCmd_Cancel(void);
705 
707  void performCmd_Step(void);
708 
710  void performCmd_Step_RELATIVE(
711  Fw::Time& currentTime
712  );
713 
715  void performCmd_Step_ABSOLUTE(
716  Fw::Time& currentTime
717  );
718 
720  void commandComplete(
721  const U32 opCode
722  );
723 
725  void sequenceComplete(void);
726 
728  void error(void);
729 
731  void commandError(
732  const U32 number,
733  const U32 opCode,
734  const U32 error
735  );
736 
739  bool requireRunMode(
740  RunMode mode
741  );
742 
744  void setCmdTimeout(
745  const Fw::Time &currentTime
746  );
747 
748  PRIVATE:
749 
750  // ----------------------------------------------------------------------
751  // Private member variables
752  // ----------------------------------------------------------------------
753 
755  FPrimeSequence m_FPrimeSequence;
756 
758  Sequence *m_sequence;
759 
761  U32 m_loadCmdCount;
762 
764  U32 m_cancelCmdCount;
765 
767  U32 m_errorCount;
768 
770  RunMode m_runMode;
771 
773  StepMode m_stepMode;
774 
776  Sequence::Record m_record;
777 
779  Timer m_cmdTimer;
780 
782  U32 m_executedCount;
783 
785  U32 m_totalExecutedCount;
786 
788  U32 m_sequencesCompletedCount;
789 
791  NATIVE_UINT_TYPE m_timeout;
792 
794  Timer m_cmdTimeoutTimer;
795 
797  SeqBlkState m_blockState;
798  FwOpcodeType m_opCode;
799  U32 m_cmdSeq;
800  bool m_join_waiting;
801  };
802 
803 };
804 
805 #endif
Svc::CmdSequencerComponentImpl::CmdSequencerComponentImpl
CmdSequencerComponentImpl(const char *compName)
Construct a CmdSequencer.
Definition: CmdSequencerImpl.cpp:26
Svc::CmdSequencerComponentImpl::FPrimeSequence::reset
void reset(void)
Definition: FPrimeSequence.cpp:100
Svc::CmdSequencerComponentImpl::Sequence::Sequence
Sequence(CmdSequencerComponentImpl &component)
Construct a Sequence object.
Definition: Sequence.cpp:16
Svc::CmdSequencerComponentImpl::Sequence::m_allocatorId
NATIVE_INT_TYPE m_allocatorId
The allocator ID.
Definition: CmdSequencerImpl.hpp:308
Svc::CmdSequencerComponentImpl::Sequence::deallocateBuffer
void deallocateBuffer(Fw::MemAllocator &allocator)
Deallocate the buffer.
Definition: Sequence.cpp:93
Svc::CmdSequencerComponentImpl::Sequence::Header::validateTime
bool validateTime(CmdSequencerComponentImpl &component)
Definition: Sequence.cpp:41
Svc::CmdSequencerComponentImpl::Sequence::Record::Record
Record(void)
Construct a Record object.
Definition: CmdSequencerImpl.hpp:218
Svc::CmdSequencerComponentImpl::Sequence::Header::SERIALIZED_SIZE
@ SERIALIZED_SIZE
Serialized size of header.
Definition: CmdSequencerImpl.hpp:165
Svc::CmdSequencerComponentImpl::setTimeout
void setTimeout(const NATIVE_UINT_TYPE seconds)
Definition: CmdSequencerImpl.cpp:52
Svc::CmdSequencerComponentImpl::Sequence::Record::m_descriptor
Descriptor m_descriptor
The descriptor.
Definition: CmdSequencerImpl.hpp:227
Svc::CmdSequencerComponentImpl::Sequence::Events::timeContextMismatch
void timeContextMismatch(const U32 currTimeContext, const U32 seqTimeContext)
Time context mismatch.
Definition: Events.cpp:161
Fw::Time
Definition: Time.hpp:10
Svc::CmdSequencerComponentImpl::Sequence::Events::FileReadStage::DESER_NUM_RECORDS
@ DESER_NUM_RECORDS
Definition: CmdSequencerImpl.hpp:66
Svc::CmdSequencerComponentImpl::Sequence::m_header
Header m_header
The sequence header.
Definition: CmdSequencerImpl.hpp:311
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:349
Svc::CmdSequencerComponentImpl::Sequence::Events::FileReadStage::DESER_TIME_CONTEXT
@ DESER_TIME_CONTEXT
Definition: CmdSequencerImpl.hpp:68
Svc::CmdSequencerComponentImpl::Sequence::Events::FileReadStage::READ_HEADER_SIZE
@ READ_HEADER_SIZE
Definition: CmdSequencerImpl.hpp:64
Svc::CmdSequencerComponentImpl::Sequence::Events::FileReadStage::READ_SEQ_DATA_SIZE
@ READ_SEQ_DATA_SIZE
Definition: CmdSequencerImpl.hpp:71
Svc::CmdSequencerComponentImpl::Sequence::Events::FileReadStage::READ_SEQ_CRC
@ READ_SEQ_CRC
Definition: CmdSequencerImpl.hpp:69
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:212
Svc::CmdSequencerComponentImpl::Sequence::Events::FileReadStage::READ_SEQ_DATA
@ READ_SEQ_DATA
Definition: CmdSequencerImpl.hpp:70
Svc::CmdSequencerComponentImpl::Sequence::m_fileName
Fw::CmdStringArg m_fileName
The sequence file name.
Definition: CmdSequencerImpl.hpp:299
Svc::CmdSequencerComponentImpl::Sequence::Events::Events
Events(Sequence &sequence)
Construct an Events object.
Definition: Events.cpp:59
Svc::CmdSequencerComponentImpl::Sequence::Record::Descriptor
Descriptor
Definition: CmdSequencerImpl.hpp:209
Svc::CmdSequencerComponentImpl::Sequence::Events::FileReadStage::DESER_SIZE
@ DESER_SIZE
Definition: CmdSequencerImpl.hpp:65
Svc::CmdSequencerComponentImpl::Sequence::Events::fileInvalid
void fileInvalid(const FileReadStage::t stage, const I32 error)
File invalid.
Definition: Events.cpp:79
Svc::CmdSequencerComponentImpl::Sequence::~Sequence
virtual ~Sequence(void)
Destroy a Sequence object.
Definition: Sequence.cpp:25
Svc::CmdSequencerComponentImpl::Sequence::Events::fileCRCFailure
void fileCRCFailure(const U32 storedCRC, const U32 computedCRC)
File CRC failure.
Definition: Events.cpp:66
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:110
Svc::CmdSequencerComponentImpl::Sequence::Events::FileReadStage::t
t
Definition: CmdSequencerImpl.hpp:62
Svc::CmdSequencerComponentImpl::Sequence::m_component
CmdSequencerComponentImpl & m_component
The enclosing component.
Definition: CmdSequencerImpl.hpp:293
Svc::CmdSequencerComponentImpl::Sequence::loadFile
virtual bool loadFile(const Fw::CmdStringArg &fileName)=0
TimeBase
TimeBase
Definition: FpConfig.hpp:327
Svc::CmdSequencerComponentImpl::Sequence::Events::FileReadStage::toComponentEnum
static CmdSequencerComponentImpl::FileReadStage toComponentEnum(const t fileReadStage)
Convert FileReadStage::t to CmdSequencerComponentImpl::FileReadStage.
Definition: Events.cpp:17
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:191
Svc::CmdSequencerComponentImpl::Sequence::Events::fileReadError
void fileReadError(void)
File read error.
Definition: Events.cpp:101
FwTimeContextStoreType
#define FwTimeContextStoreType
Storage conversion for time context in scripts/ground interface.
Definition: FpConfig.hpp:340
Svc::CmdSequencerComponentImpl::Sequence::Record::ABSOLUTE
@ ABSOLUTE
Absolute time.
Definition: CmdSequencerImpl.hpp:210
Svc::CmdSequencerComponentImpl::Sequence::m_logFileName
Fw::LogStringArg m_logFileName
Copy of file name for events.
Definition: CmdSequencerImpl.hpp:302
Svc::CmdSequencerComponentImpl::FPrimeSequence::loadFile
bool loadFile(const Fw::CmdStringArg &fileName)
Definition: FPrimeSequence.cpp:69
Svc::CmdSequencerComponentImpl::Sequence::Header::m_timeContext
FwTimeContextStoreType m_timeContext
The context of the sequence.
Definition: CmdSequencerImpl.hpp:197
Svc::CmdSequencerComponentImpl::loadSequence
void loadSequence(const Fw::String &fileName)
Definition: CmdSequencerImpl.cpp:73
Svc::CmdSequencerComponentImpl::Sequence::Events::fileNotFound
void fileNotFound(void)
File not found.
Definition: Events.cpp:92
Svc::CmdSequencerComponentImpl::FPrimeSequence::hasMoreRecords
bool hasMoreRecords(void) const
Definition: FPrimeSequence.cpp:87
Svc::CmdSequencerComponentImpl::allocateBuffer
void allocateBuffer(const NATIVE_INT_TYPE identifier, Fw::MemAllocator &allocator, const NATIVE_UINT_TYPE bytes)
Definition: CmdSequencerImpl.cpp:63
Svc::CmdSequencerComponentImpl::Sequence::reset
virtual void reset(void)=0
Svc::CmdSequencerComponentImpl::Sequence::Events::FileReadStage
File read stage for error reporting.
Definition: CmdSequencerImpl.hpp:60
Svc::CmdSequencerComponentImpl::FPrimeSequence::CRC
Container for computed and stored CRC values.
Definition: CmdSequencerImpl.hpp:331
Svc::CmdSequencerComponentImpl::Sequence::Events::timeBaseMismatch
void timeBaseMismatch(const U32 currTimeBase, const U32 seqTimeBase)
Time base mismatch.
Definition: Events.cpp:148
Svc::CmdSequencerComponentImpl::FPrimeSequence
A sequence that uses the F Prime binary format.
Definition: CmdSequencerImpl.hpp:317
BYTE
U8 BYTE
byte type
Definition: BasicTypes.hpp:77
Svc::CmdSequencerComponentImpl::Sequence::Events::FileReadStage::READ_HEADER
@ READ_HEADER
Definition: CmdSequencerImpl.hpp:63
Svc::CmdSequencerComponentImpl::Sequence::Header::m_fileSize
U32 m_fileSize
The file size.
Definition: CmdSequencerImpl.hpp:188
Svc::CmdSequencerComponentImpl::Sequence::Events::FileReadStage::DESER_TIME_BASE
@ DESER_TIME_BASE
Definition: CmdSequencerImpl.hpp:67
Svc::CmdSequencerComponentImpl::Sequence::Record::RELATIVE
@ RELATIVE
Relative time.
Definition: CmdSequencerImpl.hpp:211
Svc::CmdSequencerComponentImpl::Sequence::Record::m_command
Fw::ComBuffer m_command
The command.
Definition: CmdSequencerImpl.hpp:233
Svc::CmdSequencerComponentImpl::Sequence::getFileName
Fw::CmdStringArg & getFileName(void)
Definition: Sequence.cpp:117
Svc::CmdSequencerComponentImpl::Sequence::Events::recordMismatch
void recordMismatch(const U32 numRecords, const U32 extraBytes)
Record mismatch.
Definition: Events.cpp:135
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:93
Svc::CmdSequencerComponentImpl::deallocateBuffer
void deallocateBuffer(Fw::MemAllocator &allocator)
Return allocated buffer. Call during shutdown.
Definition: CmdSequencerImpl.cpp:82
Svc::CmdSequencerComponentImpl::FPrimeSequence::CRC::CRC
CRC(void)
Construct a CRC.
Definition: FPrimeSequence.cpp:19
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:55
Svc::CmdSequencerComponentImpl::Sequence::setFileName
void setFileName(const Fw::CmdStringArg &fileName)
Set the file name. Also sets the log file name.
Definition: Sequence.cpp:110
Svc::CmdSequencerComponentImpl::Sequence::getHeader
const Header & getHeader(void) const
Get the sequence header.
Definition: Sequence.cpp:104
Svc::CmdSequencerComponentImpl::FPrimeSequence::FPrimeSequence
FPrimeSequence(CmdSequencerComponentImpl &component)
Construct an FPrimeSequence.
Definition: FPrimeSequence.cpp:48
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:352
Svc::CmdSequencerComponentImpl::init
void init(const NATIVE_INT_TYPE queueDepth, const NATIVE_INT_TYPE instance)
Initialize a CmdSequencer.
Definition: CmdSequencerImpl.cpp:47
Svc::CmdSequencerComponentImpl::Sequence::Header
A sequence header.
Definition: CmdSequencerImpl.hpp:159
Fw::String
Definition: String.hpp:10
Svc::CmdSequencerComponentImpl::Sequence::Header::Header
Header(void)
Construct a Header object.
Definition: Sequence.cpp:31
FwTimeBaseStoreType
#define FwTimeBaseStoreType
Storage conversion for time base in scripts/ground interface.
Definition: FpConfig.hpp:336
Svc::CmdSequencerComponentImpl::Sequence::m_events
Events m_events
Event reporting.
Definition: CmdSequencerImpl.hpp:296
Svc::CmdSequencerComponentImpl::~CmdSequencerComponentImpl
~CmdSequencerComponentImpl(void)
Destroy a CmdDispatcherComponentBase.
Definition: CmdSequencerImpl.cpp:87
Svc
Definition: ActiveRateGroupImplCfg.hpp:18
Svc::CmdSequencerComponentImpl::FPrimeSequence::CRC::init
void init(void)
Initialize computed CRC.
Definition: FPrimeSequence.cpp:27
Svc::CmdSequencerComponentImpl::FPrimeSequence::CRC::finalize
void finalize(void)
Finalize computed CRC.
Definition: FPrimeSequence.cpp:42
Svc::CmdSequencerComponentImpl::Sequence::getLogFileName
Fw::LogStringArg & getLogFileName(void)
Definition: Sequence.cpp:123
Svc::CmdSequencerComponentImpl
Definition: CmdSequencerImpl.hpp:21
Svc::CmdSequencerComponentImpl::Sequence::Header::m_timeBase
TimeBase m_timeBase
The time base of the sequence.
Definition: CmdSequencerImpl.hpp:194
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:122
Svc::CmdSequencerComponentImpl::Sequence::Record
A sequence record.
Definition: CmdSequencerImpl.hpp:205
Svc::CmdSequencerComponentImpl::Sequence::Header::Constants
Constants
Definition: CmdSequencerImpl.hpp:163
Svc::CmdSequencerComponentImpl::Sequence::m_buffer
Fw::ExternalSerializeBuffer m_buffer
Serialize buffer to hold the binary sequence data.
Definition: CmdSequencerImpl.hpp:305
Svc::CmdSequencerComponentImpl::Sequence
A sequence with unspecified binary format.
Definition: CmdSequencerImpl.hpp:49
Svc::CmdSequencerComponentImpl::Sequence::Record::m_timeTag
Fw::Time m_timeTag
The time tag. NOTE: timeBase and context not filled in.
Definition: CmdSequencerImpl.hpp:230
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::Sequence::allocateBuffer
void allocateBuffer(NATIVE_INT_TYPE identifier, Fw::MemAllocator &allocator, NATIVE_UINT_TYPE bytes)
Give the sequence representation a memory buffer.
Definition: Sequence.cpp:76
Svc::CmdSequencerComponentImpl::FPrimeSequence::CRC::update
void update(const BYTE *buffer, NATIVE_UINT_TYPE bufferSize)
Update computed CRC.
Definition: FPrimeSequence.cpp:33
Svc::CmdSequencerComponentImpl::setSequenceFormat
void setSequenceFormat(Sequence &sequence)
Definition: CmdSequencerImpl.cpp:57
Svc::CmdSequencerComponentImpl::FPrimeSequence::clear
void clear(void)
Definition: FPrimeSequence.cpp:106
Os::File
Definition: File.hpp:11