F´ Flight Software - C/C++ Documentation  NASA-v1.6.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 
11 #ifndef Svc_CmdSequencerImpl_HPP
12 #define Svc_CmdSequencerImpl_HPP
13 
14 #include "Fw/Com/ComBuffer.hpp"
16 #include "Os/File.hpp"
17 #include "Os/ValidateFile.hpp"
18 #include "Svc/CmdSequencer/CmdSequencerComponentAc.hpp"
19 
20 namespace Svc {
21 
23  public CmdSequencerComponentBase
24  {
25 
26  PRIVATE:
27 
28  // ----------------------------------------------------------------------
29  // Private enumerations
30  // ----------------------------------------------------------------------
31 
33  enum RunMode {
34  STOPPED, RUNNING
35  };
36 
38  enum StepMode {
39  AUTO, MANUAL
40  };
41 
42  public:
43 
44  // ----------------------------------------------------------------------
45  // Public classes
46  // ----------------------------------------------------------------------
47 
50  class Sequence {
51 
52  public:
53 
56  class Events {
57 
58  public:
59 
61  Events(
62  Sequence& sequence
63  );
64 
65  public:
66 
68  void fileCRCFailure(
69  const U32 storedCRC,
70  const U32 computedCRC
71  );
72 
74  void fileInvalid(
75  const CmdSequencer_FileReadStage::t stage,
76  const I32 error
77  );
78 
80  void fileNotFound();
81 
83  void fileReadError();
84 
86  void fileSizeError(
87  const U32 size
88  );
89 
91  void recordInvalid(
92  const U32 recordNumber,
93  const I32 error
94  );
95 
97  void recordMismatch(
98  const U32 numRecords,
99  const U32 extraBytes
100  );
101 
103  void timeBaseMismatch(
104  const TimeBase currTimeBase,
105  const TimeBase seqTimeBase
106  );
107 
109  void timeContextMismatch(
110  const FwTimeContextStoreType currTimeContext,
111  const FwTimeContextStoreType seqTimeContext
112  );
113 
114  PRIVATE:
115 
117  Sequence& m_sequence;
118 
119  };
120 
121  public:
122 
124  Sequence(
125  CmdSequencerComponentImpl& component
126  );
127 
129  virtual ~Sequence();
130 
131  public:
132 
135  class Header {
136 
137  public:
138 
139  enum Constants {
142  sizeof(U32) +
143  sizeof(U32) +
144  sizeof(FwTimeBaseStoreType) +
145  sizeof(FwTimeContextStoreType)
146  };
147 
148  public:
149 
151  Header();
152 
153  public:
154 
157  bool validateTime(
158  CmdSequencerComponentImpl& component
159  );
160 
161  public:
162 
165 
168 
171 
174 
175  };
176 
177  public:
178 
181  class Record {
182 
183  public:
184 
185  enum Descriptor {
189  };
190 
191  public:
192 
194  Record() :
196  {
197 
198  }
199 
200  public:
201 
204 
207 
210 
211  };
212 
213  public:
214 
216  void allocateBuffer(
217  NATIVE_INT_TYPE identifier,
218  Fw::MemAllocator& allocator,
219  NATIVE_UINT_TYPE bytes
220  );
221 
223  void deallocateBuffer(
224  Fw::MemAllocator& allocator
225  );
226 
228  void setFileName(const Fw::CmdStringArg& fileName);
229 
233 
237 
239  const Header& getHeader() const;
240 
243  virtual bool loadFile(
244  const Fw::CmdStringArg& fileName
245  ) = 0;
246 
249  virtual bool hasMoreRecords() const = 0;
250 
253  virtual void nextRecord(
254  Record& record
255  ) = 0;
256 
260  virtual void reset() = 0;
261 
264  virtual void clear() = 0;
265 
266  PROTECTED:
267 
270 
273 
276 
279 
282 
285 
288 
289  };
290 
294  public Sequence
295  {
296 
297  PRIVATE:
298 
299  enum Constants {
300  INITIAL_COMPUTED_VALUE = 0xFFFFFFFFU
301  };
302 
303  public:
304 
307  struct CRC {
308 
310  CRC();
311 
313  void init();
314 
316  void update(
317  const BYTE* buffer,
318  NATIVE_UINT_TYPE bufferSize
319  );
320 
322  void finalize();
323 
326 
328  U32 m_stored;
329 
330  };
331 
332  public:
333 
336  CmdSequencerComponentImpl& component
337  );
338 
339  public:
340 
343  bool loadFile(
344  const Fw::CmdStringArg& fileName
345  );
346 
349  bool hasMoreRecords() const;
350 
353  void nextRecord(
354  Record& record
355  );
356 
360  void reset();
361 
364  void clear();
365 
366  PRIVATE:
367 
370  bool readFile();
371 
374  bool readOpenFile();
375 
379  bool readHeader();
380 
383  bool deserializeHeader();
384 
387  bool readRecordsAndCRC();
388 
391  bool extractCRC();
392 
395  bool validateCRC();
396 
399  Fw::SerializeStatus deserializeRecord(
400  Record& record
401  );
402 
405  Fw::SerializeStatus deserializeDescriptor(
406  Record::Descriptor& descriptor
407  );
408 
411  Fw::SerializeStatus deserializeTimeTag(
412  Fw::Time& timeTag
413  );
414 
417  Fw::SerializeStatus deserializeRecordSize(
418  U32& recordSize
419  );
420 
423  Fw::SerializeStatus copyCommand(
424  Fw::ComBuffer& comBuffer,
425  const U32 recordSize
426  );
427 
430  bool validateRecords();
431 
432  PRIVATE:
433 
435  CRC m_crc;
436 
438  Os::File m_sequenceFile;
439 
440  };
441 
442  PRIVATE:
443 
444  // ----------------------------------------------------------------------
445  // Private classes
446  // ----------------------------------------------------------------------
447 
450  class Timer {
451 
452  PRIVATE:
453 
455  typedef enum {
456  SET, CLEAR
457  } State;
458 
459  public:
460 
462  Timer() :
463  m_state(CLEAR)
464  {
465 
466  }
467 
469  void set(
470  Fw::Time time
471  ) {
472  this->m_state = SET;
473  this->expirationTime = time;
474  }
475 
477  void clear() {
478  this->m_state = CLEAR;
479  }
480 
483  bool isExpiredAt(
484  Fw::Time time
485  ) {
486  if (this->m_state == CLEAR) {
487  return false;
488  } else if (
489  Fw::Time::compare(this->expirationTime, time) == Fw::Time::GT
490  ) {
491  return false;
492  }
493  return true;
494  }
495 
496  PRIVATE:
497 
499  State m_state;
500 
502  Fw::Time expirationTime;
503 
504  };
505 
506 
507  public:
508 
509  // ----------------------------------------------------------------------
510  // Construction, initialization, and destruction
511  // ----------------------------------------------------------------------
512 
515  const char* compName
516  );
517 
519  void init(
520  const NATIVE_INT_TYPE queueDepth,
521  const NATIVE_INT_TYPE instance
522  );
523 
527  void setTimeout(
528  const NATIVE_UINT_TYPE seconds
529  );
530 
535  void setSequenceFormat(
536  Sequence& sequence
537  );
538 
542  void allocateBuffer(
543  const NATIVE_INT_TYPE identifier,
544  Fw::MemAllocator& allocator,
545  const NATIVE_UINT_TYPE bytes
546  );
547 
550  void loadSequence(
551  const Fw::String& fileName
552  );
553 
555  void deallocateBuffer(
556  Fw::MemAllocator& allocator
557  );
558 
561 
562  PRIVATE:
563 
564  // ----------------------------------------------------------------------
565  // Handler implementations for input ports
566  // ----------------------------------------------------------------------
567 
569  void cmdResponseIn_handler(
570  NATIVE_INT_TYPE portNum,
571  FwOpcodeType opcode,
572  U32 cmdSeq,
573  const Fw::CmdResponse& response
574  );
575 
577  void schedIn_handler(
578  NATIVE_INT_TYPE portNum,
579  NATIVE_UINT_TYPE order
580  );
581 
583  void seqRunIn_handler(
584  NATIVE_INT_TYPE portNum,
585  Fw::String &filename
586  );
587 
589  void pingIn_handler(
590  NATIVE_INT_TYPE portNum,
591  U32 key
592  );
593 
596  void seqCancelIn_handler(
597  const NATIVE_INT_TYPE portNum
598  );
599 
600  PRIVATE:
601 
602  // ----------------------------------------------------------------------
603  // Command handler implementations
604  // ----------------------------------------------------------------------
605 
608  void CS_AUTO_cmdHandler(
609  FwOpcodeType opcode,
610  U32 cmdSeq
611  );
612 
615  void CS_CANCEL_cmdHandler(
616  FwOpcodeType opCode,
617  U32 cmdSeq
618  );
619 
622  void CS_MANUAL_cmdHandler(
623  FwOpcodeType opcode,
624  U32 cmdSeq
625  );
626 
628  void CS_RUN_cmdHandler(
629  FwOpcodeType opCode,
630  U32 cmdSeq,
631  const Fw::CmdStringArg& fileName,
632  Svc::CmdSequencer_BlockState block
633  );
634 
637  void CS_START_cmdHandler(
638  FwOpcodeType opcode,
639  U32 cmdSeq
640  );
641 
645  void CS_STEP_cmdHandler(
646  FwOpcodeType opcode,
647  U32 cmdSeq
648  );
649 
652  void CS_VALIDATE_cmdHandler(
653  FwOpcodeType opCode,
654  U32 cmdSeq,
655  const Fw::CmdStringArg& fileName
656  );
657 
662  void CS_JOIN_WAIT_cmdHandler(
663  const FwOpcodeType opCode,
664  const U32 cmdSeq
665  );
666 
667  PRIVATE:
668 
669  // ----------------------------------------------------------------------
670  // Private helper methods
671  // ----------------------------------------------------------------------
672 
675  bool loadFile(
676  const Fw::CmdStringArg& fileName
677  );
678 
680  void performCmd_Cancel();
681 
683  void performCmd_Step();
684 
686  void performCmd_Step_RELATIVE(
687  Fw::Time& currentTime
688  );
689 
691  void performCmd_Step_ABSOLUTE(
692  Fw::Time& currentTime
693  );
694 
696  void commandComplete(
697  const U32 opCode
698  );
699 
701  void sequenceComplete();
702 
704  void error();
705 
707  void commandError(
708  const U32 number,
709  const U32 opCode,
710  const U32 error
711  );
712 
715  bool requireRunMode(
716  RunMode mode
717  );
718 
720  void setCmdTimeout(
721  const Fw::Time &currentTime
722  );
723 
724  PRIVATE:
725 
726  // ----------------------------------------------------------------------
727  // Private member variables
728  // ----------------------------------------------------------------------
729 
731  FPrimeSequence m_FPrimeSequence;
732 
734  Sequence *m_sequence;
735 
737  U32 m_loadCmdCount;
738 
740  U32 m_cancelCmdCount;
741 
743  U32 m_errorCount;
744 
746  RunMode m_runMode;
747 
749  StepMode m_stepMode;
750 
752  Sequence::Record m_record;
753 
755  Timer m_cmdTimer;
756 
758  U32 m_executedCount;
759 
761  U32 m_totalExecutedCount;
762 
764  U32 m_sequencesCompletedCount;
765 
767  NATIVE_UINT_TYPE m_timeout;
768 
770  Timer m_cmdTimeoutTimer;
771 
773  Svc::CmdSequencer_BlockState::t m_blockState;
774  FwOpcodeType m_opCode;
775  U32 m_cmdSeq;
776  bool m_join_waiting;
777  };
778 
779 }
780 
781 #endif
Svc::CmdSequencerComponentImpl::CmdSequencerComponentImpl
CmdSequencerComponentImpl(const char *compName)
Construct a CmdSequencer.
Definition: CmdSequencerImpl.cpp:26
Svc::CmdSequencerComponentImpl::Sequence::Sequence
Sequence(CmdSequencerComponentImpl &component)
Construct a Sequence object.
Definition: Sequence.cpp:17
Svc::CmdSequencerComponentImpl::Sequence::m_allocatorId
NATIVE_INT_TYPE m_allocatorId
The allocator ID.
Definition: CmdSequencerImpl.hpp:284
Svc::CmdSequencerComponentImpl::FPrimeSequence::hasMoreRecords
bool hasMoreRecords() const
Definition: FPrimeSequence.cpp:88
Svc::CmdSequencerComponentImpl::Sequence::deallocateBuffer
void deallocateBuffer(Fw::MemAllocator &allocator)
Deallocate the buffer.
Definition: Sequence.cpp:94
Svc::CmdSequencerComponentImpl::FPrimeSequence::clear
void clear()
Definition: FPrimeSequence.cpp:107
FwTimeContextStoreType
#define FwTimeContextStoreType
Storage conversion for time context in scripts/ground interface.
Definition: FpConfig.hpp:328
Svc::CmdSequencerComponentImpl::Sequence::Header::validateTime
bool validateTime(CmdSequencerComponentImpl &component)
Definition: Sequence.cpp:42
Svc::CmdSequencerComponentImpl::Sequence::Header::SERIALIZED_SIZE
@ SERIALIZED_SIZE
Serialized size of header.
Definition: CmdSequencerImpl.hpp:141
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:203
Fw::Time
Definition: Time.hpp:10
Svc::CmdSequencerComponentImpl::Sequence::m_header
Header m_header
The sequence header.
Definition: CmdSequencerImpl.hpp:287
Svc::CmdSequencerComponentImpl::Sequence::~Sequence
virtual ~Sequence()
Destroy a Sequence object.
Definition: Sequence.cpp:26
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:325
FwTimeBaseStoreType
#define FwTimeBaseStoreType
Storage conversion for time base in scripts/ground interface.
Definition: FpConfig.hpp:324
Svc::CmdSequencerComponentImpl::FPrimeSequence::CRC::init
void init()
Initialize computed CRC.
Definition: FPrimeSequence.cpp:28
Svc::CmdSequencerComponentImpl::Sequence::Events::timeBaseMismatch
void timeBaseMismatch(const TimeBase currTimeBase, const TimeBase seqTimeBase)
Time base mismatch.
Definition: Events.cpp:106
Fw::LogStringArg
Definition: LogString.hpp:11
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:188
Svc::CmdSequencerComponentImpl::Sequence::Events::fileInvalid
void fileInvalid(const CmdSequencer_FileReadStage::t stage, const I32 error)
File invalid.
Definition: Events.cpp:37
NATIVE_UINT_TYPE
unsigned int NATIVE_UINT_TYPE
native unsigned integer type declaration
Definition: BasicTypes.hpp:28
Svc::CmdSequencerComponentImpl::Sequence::m_fileName
Fw::CmdStringArg m_fileName
The sequence file name.
Definition: CmdSequencerImpl.hpp:275
Svc::CmdSequencerComponentImpl::Sequence::Events::Events
Events(Sequence &sequence)
Construct an Events object.
Definition: Events.cpp:17
Svc::CmdSequencerComponentImpl::Sequence::Record::Descriptor
Descriptor
Definition: CmdSequencerImpl.hpp:185
Svc::CmdSequencerComponentImpl::Sequence::Events::fileCRCFailure
void fileCRCFailure(const U32 storedCRC, const U32 computedCRC)
File CRC failure.
Definition: Events.cpp:24
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:68
TimeBase
TimeBase
Definition: FpConfig.hpp:315
Svc::CmdSequencerComponentImpl::Sequence::m_component
CmdSequencerComponentImpl & m_component
The enclosing component.
Definition: CmdSequencerImpl.hpp:269
Svc::CmdSequencerComponentImpl::Sequence::loadFile
virtual bool loadFile(const Fw::CmdStringArg &fileName)=0
Svc::CmdSequencerComponentImpl::Sequence::reset
virtual void reset()=0
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:167
Svc::CmdSequencerComponentImpl::Sequence::getFileName
Fw::CmdStringArg & getFileName()
Definition: Sequence.cpp:118
Svc::CmdSequencerComponentImpl::Sequence::Record::ABSOLUTE
@ ABSOLUTE
Absolute time.
Definition: CmdSequencerImpl.hpp:186
Svc::CmdSequencerComponentImpl::Sequence::getLogFileName
Fw::LogStringArg & getLogFileName()
Definition: Sequence.cpp:124
Svc::CmdSequencerComponentImpl::Sequence::clear
virtual void clear()=0
Svc::CmdSequencerComponentImpl::Sequence::m_logFileName
Fw::LogStringArg m_logFileName
Copy of file name for events.
Definition: CmdSequencerImpl.hpp:278
Svc::CmdSequencerComponentImpl::FPrimeSequence::loadFile
bool loadFile(const Fw::CmdStringArg &fileName)
Definition: FPrimeSequence.cpp:70
Svc::CmdSequencerComponentImpl::Sequence::getHeader
const Header & getHeader() const
Get the sequence header.
Definition: Sequence.cpp:105
Svc::CmdSequencerComponentImpl::Sequence::Header::m_timeContext
FwTimeContextStoreType m_timeContext
The context of the sequence.
Definition: CmdSequencerImpl.hpp:173
Svc::CmdSequencerComponentImpl::loadSequence
void loadSequence(const Fw::String &fileName)
Definition: CmdSequencerImpl.cpp:73
Svc::CmdSequencerComponentImpl::allocateBuffer
void allocateBuffer(const NATIVE_INT_TYPE identifier, Fw::MemAllocator &allocator, const NATIVE_UINT_TYPE bytes)
Definition: CmdSequencerImpl.cpp:63
Svc::CmdSequencerComponentImpl::FPrimeSequence::CRC
Container for computed and stored CRC values.
Definition: CmdSequencerImpl.hpp:307
NATIVE_INT_TYPE
int NATIVE_INT_TYPE
native integer type declaration
Definition: BasicTypes.hpp:27
Svc::CmdSequencerComponentImpl::FPrimeSequence
A sequence that uses the F Prime binary format.
Definition: CmdSequencerImpl.hpp:293
Svc::CmdSequencerComponentImpl::Sequence::Events::fileNotFound
void fileNotFound()
File not found.
Definition: Events.cpp:50
Svc::CmdSequencerComponentImpl::Sequence::Header::m_fileSize
U32 m_fileSize
The file size.
Definition: CmdSequencerImpl.hpp:164
BYTE
U8 BYTE
byte type
Definition: BasicTypes.hpp:74
Svc::CmdSequencerComponentImpl::Sequence::Record::RELATIVE
@ RELATIVE
Relative time.
Definition: CmdSequencerImpl.hpp:187
Svc::CmdSequencerComponentImpl::Sequence::Record::m_command
Fw::ComBuffer m_command
The command.
Definition: CmdSequencerImpl.hpp:209
Svc::CmdSequencerComponentImpl::Sequence::Events::timeContextMismatch
void timeContextMismatch(const FwTimeContextStoreType currTimeContext, const FwTimeContextStoreType seqTimeContext)
Time context mismatch.
Definition: Events.cpp:119
Svc::CmdSequencerComponentImpl::Sequence::Events::recordMismatch
void recordMismatch(const U32 numRecords, const U32 extraBytes)
Record mismatch.
Definition: Events.cpp:93
Fw::Time::GT
@ GT
Definition: Time.hpp:49
Svc::CmdSequencerComponentImpl::FPrimeSequence::nextRecord
void nextRecord(Record &record)
Definition: FPrimeSequence.cpp:94
Svc::CmdSequencerComponentImpl::deallocateBuffer
void deallocateBuffer(Fw::MemAllocator &allocator)
Return allocated buffer. Call during shutdown.
Definition: CmdSequencerImpl.cpp:82
Svc::CmdSequencerComponentImpl::FPrimeSequence::reset
void reset()
Definition: FPrimeSequence.cpp:101
Svc::CmdSequencerComponentImpl::Sequence::Header::Header
Header()
Construct a Header object.
Definition: Sequence.cpp:32
Fw::Time::compare
static Comparison compare(const Time &time1, const Time &time2)
Definition: Time.cpp:159
FwOpcodeType
#define FwOpcodeType
Type representation for a command opcode.
Definition: FpConfig.hpp:62
Svc::CmdSequencerComponentImpl::Sequence::Events
Sequence event reporting.
Definition: CmdSequencerImpl.hpp:56
Svc::CmdSequencerComponentImpl::Sequence::setFileName
void setFileName(const Fw::CmdStringArg &fileName)
Set the file name. Also sets the log file name.
Definition: Sequence.cpp:111
Svc::CmdSequencerComponentImpl::FPrimeSequence::CRC::CRC
CRC()
Construct a CRC.
Definition: FPrimeSequence.cpp:20
Svc::CmdSequencerComponentImpl::FPrimeSequence::FPrimeSequence
FPrimeSequence(CmdSequencerComponentImpl &component)
Construct an FPrimeSequence.
Definition: FPrimeSequence.cpp:49
File.hpp
Fw::MemAllocator
Definition: MemAllocator.hpp:44
Fw::ExternalSerializeBuffer
Definition: Serializable.hpp:153
Svc::CmdSequencerComponentImpl::FPrimeSequence::CRC::m_stored
U32 m_stored
Stored CRC.
Definition: CmdSequencerImpl.hpp:328
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:135
Fw::String
Definition: String.hpp:10
Svc::CmdSequencerComponentImpl::~CmdSequencerComponentImpl
~CmdSequencerComponentImpl()
Destroy a CmdDispatcherComponentBase.
Definition: CmdSequencerImpl.cpp:87
Svc::CmdSequencerComponentImpl::Sequence::hasMoreRecords
virtual bool hasMoreRecords() const =0
Svc::CmdSequencerComponentImpl::FPrimeSequence::CRC::finalize
void finalize()
Finalize computed CRC.
Definition: FPrimeSequence.cpp:43
Svc::CmdSequencerComponentImpl::Sequence::m_events
Events m_events
Event reporting.
Definition: CmdSequencerImpl.hpp:272
Svc::CmdSequencerComponentImpl::Sequence::Events::fileReadError
void fileReadError()
File read error.
Definition: Events.cpp:59
Svc
Definition: ActiveRateGroupCfg.hpp:18
Svc::CmdSequencerComponentImpl::Sequence::Record::Record
Record()
Construct a Record object.
Definition: CmdSequencerImpl.hpp:194
Svc::CmdSequencerComponentImpl
Definition: CmdSequencerImpl.hpp:22
Svc::CmdSequencerComponentImpl::Sequence::Header::m_timeBase
TimeBase m_timeBase
The time base of the sequence.
Definition: CmdSequencerImpl.hpp:170
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:80
Svc::CmdSequencerComponentImpl::Sequence::Record
A sequence record.
Definition: CmdSequencerImpl.hpp:181
Svc::CmdSequencerComponentImpl::Sequence::Header::Constants
Constants
Definition: CmdSequencerImpl.hpp:139
Svc::CmdSequencerComponentImpl::Sequence::m_buffer
Fw::ExternalSerializeBuffer m_buffer
Serialize buffer to hold the binary sequence data.
Definition: CmdSequencerImpl.hpp:281
Svc::CmdSequencerComponentImpl::Sequence
A sequence with unspecified binary format.
Definition: CmdSequencerImpl.hpp:50
Svc::CmdSequencerComponentImpl::Sequence::Record::m_timeTag
Fw::Time m_timeTag
The time tag. NOTE: timeBase and context not filled in.
Definition: CmdSequencerImpl.hpp:206
Fw::ComBuffer
Definition: ComBuffer.hpp:21
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:77
Svc::CmdSequencerComponentImpl::FPrimeSequence::CRC::update
void update(const BYTE *buffer, NATIVE_UINT_TYPE bufferSize)
Update computed CRC.
Definition: FPrimeSequence.cpp:34
Svc::CmdSequencerComponentImpl::setSequenceFormat
void setSequenceFormat(Sequence &sequence)
Definition: CmdSequencerImpl.cpp:57
Os::File
Definition: File.hpp:11