F´ Flight Software - C/C++ Documentation  NASA-v1.5.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
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"
21 
22 namespace Svc {
23 
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 
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 
142 
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 
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 
294 
296  CmdSequencerComponentImpl& m_component;
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 
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 
427  Record& record
428  );
429 
433  Record::Descriptor& descriptor
434  );
435 
439  Fw::Time& timeTag
440  );
441 
445  U32& recordSize
446  );
447 
451  Fw::ComBuffer& comBuffer,
452  const U32 recordSize
453  );
454 
457  bool validateRecords(void);
458 
460 
462  CRC m_crc;
463 
466 
467  };
468 
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 
511  Fw::Time time
512  ) {
513  if (this->m_state == CLEAR) {
514  return false;
515  } else if (
517  ) {
518  return false;
519  }
520  return true;
521  }
522 
524 
526  State m_state;
527 
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(
579  );
580 
582  void deallocateBuffer(
583  Fw::MemAllocator& allocator
584  );
585 
588 
590 
591  // ----------------------------------------------------------------------
592  // Handler implementations for input ports
593  // ----------------------------------------------------------------------
594 
599  U32 cmdSeq,
601  );
602 
604  void schedIn_handler(
606  NATIVE_UINT_TYPE order
607  );
608 
610  void seqRunIn_handler(
612  Fw::EightyCharString &filename
613  );
614 
616  void pingIn_handler(
618  U32 key
619  );
620 
622 
623  // ----------------------------------------------------------------------
624  // Command handler implementations
625  // ----------------------------------------------------------------------
626 
629  void CS_AUTO_cmdHandler(
631  U32 cmdSeq
632  );
633 
637  FwOpcodeType opCode,
638  U32 cmdSeq
639  );
640 
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(
659  U32 cmdSeq
660  );
661 
665  void CS_STEP_cmdHandler(
667  U32 cmdSeq
668  );
669 
673  FwOpcodeType opCode,
674  U32 cmdSeq,
675  const Fw::CmdStringArg& fileName
676  );
677 
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 
698  Fw::Time& currentTime
699  );
700 
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 
736 
737  // ----------------------------------------------------------------------
738  // Private member variables
739  // ----------------------------------------------------------------------
740 
742  FPrimeSequence m_FPrimeSequence;
743 
746 
749 
752 
755 
757  RunMode m_runMode;
758 
760  StepMode m_stepMode;
761 
764 
767 
770 
773 
776 
779 
782 
783  };
784 
785 };
786 
787 #endif
Svc::CmdSequencerComponentImpl::CmdSequencerComponentImpl
CmdSequencerComponentImpl(const char *compName)
Construct a CmdSequencer.
Definition: CmdSequencerImpl.cpp:29
Svc::CmdSequencerComponentImpl::m_timeout
NATIVE_UINT_TYPE m_timeout
timeout value
Definition: CmdSequencerImpl.hpp:778
Svc::CmdSequencerComponentImpl::FPrimeSequence::deserializeRecord
Fw::SerializeStatus deserializeRecord(Record &record)
Definition: FPrimeSequence.cpp:329
Svc::CmdSequencerComponentImpl::m_sequencesCompletedCount
U32 m_sequencesCompletedCount
The total number of sequences completed.
Definition: CmdSequencerImpl.hpp:775
Svc::CmdSequencerComponentImpl::opcode
PRIVATE FwOpcodeType opcode
The command opcode.
Definition: CmdSequencerImpl.hpp:598
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::set
void set(Fw::Time time)
Set the expiration time.
Definition: CmdSequencerImpl.hpp:496
Svc::CmdSequencerComponentBase
Auto-generated base for CmdSequencer component.
Definition: CmdSequencerComponentAc.hpp:52
Svc::CmdSequencerComponentImpl::FPrimeSequence::deserializeTimeTag
Fw::SerializeStatus deserializeTimeTag(Fw::Time &timeTag)
Definition: FPrimeSequence.cpp:377
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::FPrimeSequence::readOpenFile
bool readOpenFile(void)
Definition: FPrimeSequence.cpp:141
Svc::CmdSequencerComponentImpl::clear
void clear(void)
Clear the timer.
Definition: CmdSequencerImpl.hpp:504
PRIVATE
#define PRIVATE
overridable private for unit testing
Definition: BasicTypes.hpp:118
Svc::CmdSequencerComponentImpl::Sequence::Record::m_descriptor
Descriptor m_descriptor
The descriptor.
Definition: CmdSequencerImpl.hpp:230
Svc::CmdSequencerComponentBase::FileReadStage
PROTECTED FileReadStage_MAX FileReadStage
Definition: CmdSequencerComponentAc.hpp:901
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::CS_RUN_cmdHandler
void CS_RUN_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdStringArg &fileName)
Handler for command CS_RUN.
Definition: CmdSequencerImpl.cpp:94
Svc::CmdSequencerComponentImpl::setTimeout
void setTimeout(NATIVE_UINT_TYPE seconds)
Definition: CmdSequencerImpl.cpp:51
Svc::CmdSequencerComponentImpl::pingIn_handler
void pingIn_handler(NATIVE_INT_TYPE portNum, U32 key)
Handler for ping port.
Definition: CmdSequencerImpl.cpp:452
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
Fw::CommandResponse
CommandResponse
Definition: CmdResponsePortAc.hpp:24
Svc::CmdSequencerComponentImpl::CS_CANCEL_cmdHandler
void CS_CANCEL_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)
Definition: CmdSequencerImpl.cpp:187
Svc::CmdSequencerComponentImpl::expirationTime
Fw::Time expirationTime
The expiration time.
Definition: CmdSequencerImpl.hpp:529
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
Svc::CmdSequencerComponentImpl::m_runMode
RunMode m_runMode
The run mode.
Definition: CmdSequencerImpl.hpp:757
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::response
PRIVATE FwOpcodeType U32 Fw::CommandResponse response
< The command response
Definition: CmdSequencerImpl.hpp:601
Svc::CmdSequencerComponentImpl::performCmd_Step
void performCmd_Step(void)
Perform a Step command.
Definition: CmdSequencerImpl.cpp:384
Svc::CmdSequencerComponentImpl::FPrimeSequence::validateRecords
bool validateRecords(void)
Definition: FPrimeSequence.cpp:423
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
Svc::CmdSequencerComponentBase::PROTECTED
PROTECTED PROTECTED
Definition: CmdSequencerComponentAc.hpp:657
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::loadFile
virtual bool loadFile(const Fw::CmdStringArg &fileName)=0
Svc::CmdSequencerComponentImpl::requireRunMode
bool requireRunMode(RunMode mode)
Definition: CmdSequencerImpl.cpp:359
Svc::CmdSequencerComponentBase::portNum
PRIVATE NATIVE_INT_TYPE portNum
Definition: CmdSequencerComponentAc.hpp:1267
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::FPrimeSequence::validateCRC
bool validateCRC(void)
Definition: FPrimeSequence.cpp:58
Svc::CmdSequencerComponentImpl::Sequence::Header::m_numRecords
U32 m_numRecords
The number of records in the sequence.
Definition: CmdSequencerImpl.hpp:194
Svc::CmdSequencerComponentImpl::m_totalExecutedCount
U32 m_totalExecutedCount
The total number of commands executed across all sequences.
Definition: CmdSequencerImpl.hpp:772
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::CmdSequencerComponentBase::cmdResponseIn_handler
virtual void cmdResponseIn_handler(NATIVE_INT_TYPE portNum, FwOpcodeType opCode, U32 cmdSeq, Fw::CommandResponse response)=0
Handler for input port cmdResponseIn.
Svc::CmdSequencerComponentImpl::Sequence::m_logFileName
Fw::LogStringArg m_logFileName
Copy of file name for events.
Definition: CmdSequencerImpl.hpp:305
Svc::CmdSequencerComponentImpl::CS_START_cmdHandler
void CS_START_cmdHandler(FwOpcodeType opcode, U32 cmdSeq)
Definition: CmdSequencerImpl.cpp:295
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
Fw::ObjBase::init
void init(void)
Object initializer.
Definition: ObjBase.cpp:26
Svc::CmdSequencerComponentImpl::CS_MANUAL_cmdHandler
void CS_MANUAL_cmdHandler(FwOpcodeType opcode, U32 cmdSeq)
Definition: CmdSequencerImpl.cpp:344
Svc::CmdSequencerComponentImpl::FPrimeSequence
A sequence that uses the F Prime binary format.
Definition: CmdSequencerImpl.hpp:322
BYTE
U8 BYTE
byte type
Definition: BasicTypes.hpp:77
Svc::CmdSequencerComponentImpl::FPrimeSequence::deserializeRecordSize
Fw::SerializeStatus deserializeRecordSize(U32 &recordSize)
Definition: FPrimeSequence.cpp:392
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::FPrimeSequence::readRecordsAndCRC
bool readRecordsAndCRC(void)
Definition: FPrimeSequence.cpp:262
Svc::CmdSequencerComponentImpl::sequenceComplete
void sequenceComplete(void)
Record a sequence complete event.
Definition: CmdSequencerImpl.cpp:409
Svc::CmdSequencerComponentImpl::FPrimeSequence::deserializeDescriptor
Fw::SerializeStatus deserializeDescriptor(Record::Descriptor &descriptor)
Definition: FPrimeSequence.cpp:357
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::cmdSeq
PRIVATE FwOpcodeType U32 cmdSeq
The command sequence number.
Definition: CmdSequencerImpl.hpp:599
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
Svc::CmdSequencerComponentBase::CS_AUTO_cmdHandler
virtual void CS_AUTO_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
Handler for command CS_AUTO.
FwOpcodeType
#define FwOpcodeType
Type representation for a command opcode.
Definition: FpConfig.hpp:62
Svc::CmdSequencerComponentImpl::commandError
void commandError(const U32 number, const U32 opCode, const U32 error)
Record an error in executing a sequence command.
Definition: CmdSequencerImpl.cpp:369
Svc::CmdSequencerComponentImpl::m_executedCount
U32 m_executedCount
The number of commands executed in this sequence.
Definition: CmdSequencerImpl.hpp:769
NATIVE_UINT_TYPE
unsigned int NATIVE_UINT_TYPE
native unsigned integer type declaration
Definition: BasicTypes.hpp:30
Svc::CmdSequencerComponentImpl::FPrimeSequence::readHeader
bool readHeader(void)
Definition: FPrimeSequence.cpp:161
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::State
PRIVATE CLEAR State
Definition: CmdSequencerImpl.hpp:484
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
Svc::CmdSequencerComponentImpl::m_cmdTimeoutTimer
Timer m_cmdTimeoutTimer
timeout timer
Definition: CmdSequencerImpl.hpp:781
Fw::Time::compare
static Comparison compare(const Time &time1, const Time &time2)
Definition: Time.cpp:158
Svc::CmdSequencerComponentImpl::performCmd_Step_ABSOLUTE
void performCmd_Step_ABSOLUTE(Fw::Time &currentTime)
Perform a Step command with an absolute time.
Definition: CmdSequencerImpl.cpp:441
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
Svc::CmdSequencerComponentImpl::isExpiredAt
bool isExpiredAt(Fw::Time time)
Definition: CmdSequencerImpl.hpp:510
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::Sequence::Header
A sequence header.
Definition: CmdSequencerImpl.hpp:162
Svc::CmdSequencerComponentImpl::m_stepMode
StepMode m_stepMode
The step mode.
Definition: CmdSequencerImpl.hpp:760
Svc::CmdSequencerComponentImpl::error
void error(void)
Record an error.
Definition: CmdSequencerImpl.cpp:217
Svc::CmdSequencerComponentImpl::performCmd_Step_RELATIVE
void performCmd_Step_RELATIVE(Fw::Time &currentTime)
Perform a Step command with a relative time.
Definition: CmdSequencerImpl.cpp:434
Svc::CmdSequencerComponentImpl::Sequence::Header::Header
Header(void)
Construct a Header object.
Definition: Sequence.cpp:34
Svc::CmdSequencerComponentImpl::FPrimeSequence::copyCommand
Fw::SerializeStatus copyCommand(Fw::ComBuffer &comBuffer, const U32 recordSize)
Definition: FPrimeSequence.cpp:411
Svc::CmdSequencerComponentBase::fileName
PROTECTED U32 const Fw::CmdStringArg & fileName
Definition: CmdSequencerComponentAc.hpp:671
Svc::CmdSequencerComponentImpl::FPrimeSequence::deserializeHeader
bool deserializeHeader(void)
Definition: FPrimeSequence.cpp:211
Svc::CmdSequencerComponentImpl::performCmd_Cancel
void performCmd_Cancel(void)
Perform a Cancel command.
Definition: CmdSequencerImpl.cpp:222
FwTimeBaseStoreType
#define FwTimeBaseStoreType
Storage conversion for time base in scripts/ground interface.
Definition: FpConfig.hpp:332
Svc::CmdSequencerComponentImpl::CS_VALIDATE_cmdHandler
void CS_VALIDATE_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdStringArg &fileName)
Definition: CmdSequencerImpl.cpp:121
Svc::CmdSequencerComponentImpl::Sequence::m_events
Events m_events
Event reporting.
Definition: CmdSequencerImpl.hpp:299
Svc::CmdSequencerComponentImpl::CS_STEP_cmdHandler
void CS_STEP_cmdHandler(FwOpcodeType opcode, U32 cmdSeq)
Definition: CmdSequencerImpl.cpp:314
Svc::CmdSequencerComponentImpl::~CmdSequencerComponentImpl
~CmdSequencerComponentImpl(void)
Destroy a CmdDispatcherComponentBase.
Definition: CmdSequencerImpl.cpp:86
Svc::CmdSequencerComponentImpl::m_errorCount
U32 m_errorCount
The number of errors.
Definition: CmdSequencerImpl.hpp:754
Svc::CmdSequencerComponentImpl::m_cancelCmdCount
U32 m_cancelCmdCount
The number of Cancel commands executed.
Definition: CmdSequencerImpl.hpp:751
Svc::CmdSequencerComponentImpl::m_loadCmdCount
U32 m_loadCmdCount
The number of Load commands executed.
Definition: CmdSequencerImpl.hpp:748
CmdSequencerComponentAc.hpp
Svc
Definition: ActiveLoggerComponentAc.cpp:22
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::m_sequence
Sequence * m_sequence
The abstract sequence.
Definition: CmdSequencerImpl.hpp:745
Svc::CmdSequencerComponentImpl::m_cmdTimer
Timer m_cmdTimer
The command time timer.
Definition: CmdSequencerImpl.hpp:766
Svc::CmdSequencerComponentImpl::Sequence::getLogFileName
Fw::LogStringArg & getLogFileName(void)
Definition: Sequence.cpp:130
Svc::CmdSequencerComponentImpl
Definition: CmdSequencerImpl.hpp:26
Svc::CmdSequencerComponentImpl::m_record
Sequence::Record m_record
The sequence record currently being processed.
Definition: CmdSequencerImpl.hpp:763
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::setCmdTimeout
void setCmdTimeout(const Fw::Time &currentTime)
Set command timeout timer.
Definition: CmdSequencerImpl.cpp:462
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::commandComplete
void commandComplete(const U32 opCode)
Record a completed command.
Definition: CmdSequencerImpl.cpp:422
Svc::CmdSequencerComponentImpl::FPrimeSequence::extractCRC
bool extractCRC(void)
Definition: FPrimeSequence.cpp:297
Svc::CmdSequencerComponentImpl::schedIn_handler
void schedIn_handler(NATIVE_INT_TYPE portNum, NATIVE_UINT_TYPE order)
Handler for input port schedIn.
Definition: CmdSequencerImpl.cpp:274
Svc::CmdSequencerComponentImpl::FPrimeSequence::CRC::update
void update(const BYTE *buffer, NATIVE_UINT_TYPE bufferSize)
Update computed CRC.
Definition: FPrimeSequence.cpp:36
Svc::CmdSequencerComponentBase::key
PROTECTED U32 key
Definition: CmdSequencerComponentAc.hpp:306
Svc::CmdSequencerComponentImpl::Timer
Timer(void)
Construct a Timer object.
Definition: CmdSequencerImpl.hpp:489
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::FPrimeSequence::m_sequenceFile
Os::File m_sequenceFile
The sequence file.
Definition: CmdSequencerImpl.hpp:465
Svc::CmdSequencerComponentImpl::seqRunIn_handler
void seqRunIn_handler(NATIVE_INT_TYPE portNum, Fw::EightyCharString &filename)
Handler for input port seqRunIn.
Definition: CmdSequencerImpl.cpp:148
Svc::CmdSequencerComponentImpl::loadSequence
void loadSequence(const Fw::EightyCharString &fileName)
Definition: CmdSequencerImpl.cpp:72