F´ Flight Software - C/C++ Documentation  NASA-v2.1.0
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 (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