5#ifndef OUTPUTSEQUENCEDATA_H_
6#define OUTPUTSEQUENCEDATA_H_
96 for (
int i=0; i<this->
m_samples.size(); i++) {
126 void AddEvents(std::vector<Event*> &events,
double duration=0.0);
148 void WriteFiles(
const std::string &outDir,
const std::string &outFile);
Implementation of JEMRIS Declarations.
Implementation of JEMRIS sequence Event for hardware execution.
Maintain libraries of hardware events and write sequence file.
Definition OutputSequenceData.h:78
int SearchLibrary(std::vector< T > &library, T &obj)
Search library for match.
void CompressShape(std::vector< double > &shape, CompressedShape *out)
Compress a shape.
Definition OutputSequenceData.cpp:342
void SetRotationMatrix(double alpha, double theta, double phi)
Set rotation matrix.
Definition OutputSequenceData.cpp:19
~OutputSequenceData()
Default destructor.
Definition OutputSequenceData.h:118
std::map< std::string, std::string > m_definitions
Custom definitions for user-specific purposes to be output in file.
Definition OutputSequenceData.h:165
double m_duration
Total duration of sequence blocks.
Definition OutputSequenceData.h:163
void SetDefinitions(std::map< std::string, std::string > &defs)
Set custom scan definitions.
Definition OutputSequenceData.h:143
std::vector< DelayEvent > m_delay_library
Library of delay events.
Definition OutputSequenceData.h:169
std::vector< SeqBlock > m_blocks
List of sequence blocks.
Definition OutputSequenceData.h:167
OutputSequenceData()
Default constructor.
Definition OutputSequenceData.h:111
void AddEvents(std::vector< Event * > &events, double duration=0.0)
Add events to a new sequence block.
Definition OutputSequenceData.cpp:57
std::vector< ADCEvent > m_adc_library
Library of ADC events.
Definition OutputSequenceData.h:172
void WriteFiles(const std::string &outDir, const std::string &outFile)
Write the sequence data to file.
Definition OutputSequenceData.cpp:146
std::vector< CompressedShape > m_shape_library
Library of compressed shapes (referenced by events)
Definition OutputSequenceData.h:174
double m_rot_matrix[3][3]
Rotation matrix.
Definition OutputSequenceData.h:162
std::vector< RFEvent > m_rf_library
Library of RF events.
Definition OutputSequenceData.h:170
std::vector< GradEvent > m_grad_library
Library of gradient events.
Definition OutputSequenceData.h:171
Sequence block for execution on hardware.
Definition OutputSequenceData.h:22
static const int NUM_EVENTS
Number of event types per sequence block.
Definition OutputSequenceData.h:39
SeqBlock()
Constructor.
Definition OutputSequenceData.h:44
int events[NUM_EVENTS]
List of event IDs.
Definition OutputSequenceData.h:53
EventCode
Open file format event order.
Definition OutputSequenceData.h:27
Compressed shape object.
Definition OutputSequenceData.h:86
int m_num_uncompressed_samples
Number of samples of the uncompressed waveforms.
Definition OutputSequenceData.h:102
bool operator==(const CompressedShape &other) const
Compare two compressed shapes.
Definition OutputSequenceData.h:93
std::vector< double > m_samples
The compressed waveform samples.
Definition OutputSequenceData.h:103