DynExp
Highly flexible laboratory automation for dynamically changing experiments.
DynExpModule::ODMR::ODMRData Class Reference
+ Inheritance diagram for DynExpModule::ODMR::ODMRData:

Public Types

enum class  FeatureType { LockinDetection , AnalogInDetection , AuxAnalogOut , NUM_ELEMENTS }
 
enum class  MeasurementModeType { All , SensitivityOnly }
 
enum class  RFModulationType { None , Sine , Pulse }
 
enum class  SweepSeriesType { RFModulationDepth , RFPower , AnalogOut }
 
- Public Types inherited from DynExp::ModuleDataBase
using EventPtrType = std::unique_ptr< EventBase >
 Pointer owning an event. More...
 
using EventQueueType = std::queue< EventPtrType >
 A module's event queue is a FIFO queue owning the enqueued events. More...
 

Public Member Functions

 ODMRData ()
 
virtual ~ODMRData ()=default
 
template<size_t N>
bool TestFeature (const std::array< FeatureType, N > &Flags) const
 
bool TestFeature (FeatureType Flag)
 
void SetFeature (FeatureType Flag)
 
auto & GetRFGenerator () noexcept
 
auto & GetSignalDetector () noexcept
 
auto GetLockinAmplifier ()
 
auto GetAnalogIn ()
 
auto & GetTrigger () noexcept
 
auto & GetAuxAnalogOut () noexcept
 
double GetRFStartFreq () const noexcept
 
double GetRFStopFreq () const noexcept
 
unsigned long long GetNumSamples () const noexcept
 
unsigned long long GetSweepNumberSteps () const noexcept
 
std::stringstream AssembleCSVHeader (double RFPower, double RFModulationDepth, double AuxAnalogOutValue, bool IsRFOffResonance)
 
- Public Member Functions inherited from DynExp::QModuleDataBase
 QModuleDataBase ()=default
 
virtual ~QModuleDataBase ()=default
 
- Public Member Functions inherited from DynExp::ModuleDataBase
 ModuleDataBase ()
 
virtual ~ModuleDataBase ()
 
auto GetException () const noexcept
 Getter for ModuleException. More...
 
void EnqueueEvent (EventPtrType &&Event)
 Enqueues Event at the module event queue's back. Takes ownership of the event. Notifies the module owning the respective ModuleDataBase's instance that a new event has been enqueued. More...
 
EventPtrType PopEvent ()
 Removes one event from the event queue's front and returns the event. Ownership of the event is transferred to the caller of this method. More...
 
const auto & GetEventFront () const noexcept
 Returns a pointer to the event in the front of the module's event queue without transferring ownership and without removing the event from the queue. More...
 
auto & GetEventFront () noexcept
 Returns a pointer to the event in the front of the module's event queue without transferring ownership and without removing the event from the queue. More...
 
size_t GetNumEnqueuedEvents () const noexcept
 Getter for the module event queue's length. More...
 
- Public Member Functions inherited from Util::INonCopyable
 INonCopyable (const INonCopyable &)=delete
 
INonCopyableoperator= (const INonCopyable &)=delete
 

Public Attributes

double RFPower {}
 
bool RFAutoEnabled {}
 
double RFCenterFreq {}
 
double RFFreqSpan {}
 
double RFFreqSpacing {}
 
double RFDwellTime {}
 
RFModulationType RFModulation {}
 
double RFModulationFreq {}
 
double RFModulationDepth {}
 
double ODMRSamplingRate {}
 
MeasurementModeType MeasurementMode {}
 
std::string SaveDataPath
 
unsigned int CurrentSaveIndex {}
 
bool AutosaveEnabled {}
 
bool SensitivityEnabled {}
 
bool SensitivityOncePerSweep {}
 
bool SensitivityOffResonanceEnabled {}
 
double SensitivityResonanceFreq {}
 
double SensitivityOffResonanceFreq {}
 
double SensitivityResonanceSpan {}
 
double SensitivitySamplingRate {}
 
double SensitivityDuration {}
 
bool SensitivityAnalysisEnabled {}
 
double GyromagneticRatio {}
 
bool SweepSeriesEnabled {}
 
SweepSeriesType SweepSeries {}
 
double SweepSeriesStart {}
 
double SweepSeriesStop {}
 
double SweepSeriesStep {}
 
bool SweepSeriesRetrace {}
 
bool SweepSeriesAdvanceLastValue {}
 
unsigned long long CurrentSweepIndex
 
DynExpInstr::FunctionGeneratorDefs::FunctionDescType RFGeneratorMinFuncDesc
 
DynExpInstr::FunctionGeneratorDefs::FunctionDescType RFGeneratorMaxFuncDesc
 
DynExpInstr::FunctionGeneratorDefs::FunctionDescType RFGeneratorDefaultFuncDesc
 
DynExpInstr::DataStreamInstrumentData::UnitType AuxAnalogOutValueUnit
 
DynExpInstr::DataStreamInstrumentData::ValueType AuxAnalogOutMinValue
 
DynExpInstr::DataStreamInstrumentData::ValueType AuxAnalogOutMaxValue
 
double AcquisitionTime {}
 
ODMRPlotType ODMRPlot
 
SensitivityPlotType SensitivityPlot
 
- Public Attributes inherited from DynExp::ModuleDataBase
ModuleBaseOnlyType ModuleBaseOnly
 Allow exclusive access to some of ModuleDataBase's private methods to ModuleBase. More...
 
ModuleThreadOnlyType ModuleThreadOnly
 Allow exclusive access to some of ModuleDataBase's private methods to the module thread ModuleThreadMain(). More...
 

Private Member Functions

void ResetImpl (dispatch_tag< QModuleDataBase >) override final
 
virtual void ResetImpl (dispatch_tag< ODMRData >)
 
void Init ()
 

Private Attributes

DynExp::LinkedObjectWrapperContainer< DynExpInstr::FunctionGeneratorRFGenerator
 
DynExp::LinkedObjectWrapperContainer< DynExpInstr::DataStreamInstrumentSignalDetector
 
DynExp::LinkedObjectWrapperContainer< DynExpInstr::DigitalOutTriggerOut
 
DynExp::LinkedObjectWrapperContainer< DynExpInstr::AnalogOutAuxAnalogOut
 
Util::FeatureTester< FeatureTypeFeatures
 

Additional Inherited Members

- Protected Member Functions inherited from Util::ISynchronizedPointerLockable
 ISynchronizedPointerLockable ()
 
 ~ISynchronizedPointerLockable ()
 Object should never be destroyed before completely unlocked. More...
 
- Protected Member Functions inherited from Util::INonCopyable
constexpr INonCopyable ()=default
 
 ~INonCopyable ()=default
 

Detailed Description

Definition at line 23 of file ODMR.h.

Member Enumeration Documentation

◆ FeatureType

Enumerator
LockinDetection 
AnalogInDetection 
AuxAnalogOut 
NUM_ELEMENTS 

Definition at line 26 of file ODMR.h.

◆ MeasurementModeType

Enumerator
All 
SensitivityOnly 

Definition at line 27 of file ODMR.h.

◆ RFModulationType

Enumerator
None 
Sine 
Pulse 

Definition at line 28 of file ODMR.h.

◆ SweepSeriesType

Enumerator
RFModulationDepth 
RFPower 
AnalogOut 

Definition at line 29 of file ODMR.h.

Constructor & Destructor Documentation

◆ ODMRData()

DynExpModule::ODMR::ODMRData::ODMRData ( )
inline

Definition at line 31 of file ODMR.h.

◆ ~ODMRData()

virtual DynExpModule::ODMR::ODMRData::~ODMRData ( )
virtualdefault

Member Function Documentation

◆ AssembleCSVHeader()

std::stringstream DynExpModule::ODMR::ODMRData::AssembleCSVHeader ( double  RFPower,
double  RFModulationDepth,
double  AuxAnalogOutValue,
bool  IsRFOffResonance 
)

Definition at line 21 of file ODMR.cpp.

◆ GetAnalogIn()

auto DynExpModule::ODMR::ODMRData::GetAnalogIn ( )
inline

Definition at line 43 of file ODMR.h.

◆ GetAuxAnalogOut()

auto& DynExpModule::ODMR::ODMRData::GetAuxAnalogOut ( )
inlinenoexcept

Definition at line 45 of file ODMR.h.

◆ GetLockinAmplifier()

auto DynExpModule::ODMR::ODMRData::GetLockinAmplifier ( )
inline

Definition at line 42 of file ODMR.h.

◆ GetNumSamples()

unsigned long long DynExpModule::ODMR::ODMRData::GetNumSamples ( ) const
inlinenoexcept

Definition at line 49 of file ODMR.h.

◆ GetRFGenerator()

auto& DynExpModule::ODMR::ODMRData::GetRFGenerator ( )
inlinenoexcept

Definition at line 40 of file ODMR.h.

◆ GetRFStartFreq()

double DynExpModule::ODMR::ODMRData::GetRFStartFreq ( ) const
inlinenoexcept

Definition at line 47 of file ODMR.h.

◆ GetRFStopFreq()

double DynExpModule::ODMR::ODMRData::GetRFStopFreq ( ) const
inlinenoexcept

Definition at line 48 of file ODMR.h.

◆ GetSignalDetector()

auto& DynExpModule::ODMR::ODMRData::GetSignalDetector ( )
inlinenoexcept

Definition at line 41 of file ODMR.h.

◆ GetSweepNumberSteps()

unsigned long long DynExpModule::ODMR::ODMRData::GetSweepNumberSteps ( ) const
noexcept

Definition at line 13 of file ODMR.cpp.

◆ GetTrigger()

auto& DynExpModule::ODMR::ODMRData::GetTrigger ( )
inlinenoexcept

Definition at line 44 of file ODMR.h.

◆ Init()

void DynExpModule::ODMR::ODMRData::Init ( )
private

Definition at line 95 of file ODMR.cpp.

◆ ResetImpl() [1/2]

virtual void DynExpModule::ODMR::ODMRData::ResetImpl ( dispatch_tag< ODMRData )
inlineprivatevirtual

Definition at line 107 of file ODMR.h.

◆ ResetImpl() [2/2]

void DynExpModule::ODMR::ODMRData::ResetImpl ( dispatch_tag< QModuleDataBase )
finaloverrideprivate

Definition at line 8 of file ODMR.cpp.

◆ SetFeature()

void DynExpModule::ODMR::ODMRData::SetFeature ( FeatureType  Flag)
inline

Definition at line 38 of file ODMR.h.

◆ TestFeature() [1/2]

template<size_t N>
bool DynExpModule::ODMR::ODMRData::TestFeature ( const std::array< FeatureType, N > &  Flags) const
inline

Definition at line 35 of file ODMR.h.

◆ TestFeature() [2/2]

bool DynExpModule::ODMR::ODMRData::TestFeature ( FeatureType  Flag)
inline

Definition at line 37 of file ODMR.h.

Member Data Documentation

◆ AcquisitionTime

double DynExpModule::ODMR::ODMRData::AcquisitionTime {}

Definition at line 100 of file ODMR.h.

◆ AutosaveEnabled

bool DynExpModule::ODMR::ODMRData::AutosaveEnabled {}

Definition at line 69 of file ODMR.h.

◆ AuxAnalogOut

DynExp::LinkedObjectWrapperContainer<DynExpInstr::AnalogOut> DynExpModule::ODMR::ODMRData::AuxAnalogOut
private

Definition at line 114 of file ODMR.h.

◆ AuxAnalogOutMaxValue

DynExpInstr::DataStreamInstrumentData::ValueType DynExpModule::ODMR::ODMRData::AuxAnalogOutMaxValue

Definition at line 98 of file ODMR.h.

◆ AuxAnalogOutMinValue

DynExpInstr::DataStreamInstrumentData::ValueType DynExpModule::ODMR::ODMRData::AuxAnalogOutMinValue

Definition at line 97 of file ODMR.h.

◆ AuxAnalogOutValueUnit

DynExpInstr::DataStreamInstrumentData::UnitType DynExpModule::ODMR::ODMRData::AuxAnalogOutValueUnit

Definition at line 96 of file ODMR.h.

◆ CurrentSaveIndex

unsigned int DynExpModule::ODMR::ODMRData::CurrentSaveIndex {}

Definition at line 68 of file ODMR.h.

◆ CurrentSweepIndex

unsigned long long DynExpModule::ODMR::ODMRData::CurrentSweepIndex

Definition at line 90 of file ODMR.h.

◆ Features

Util::FeatureTester<FeatureType> DynExpModule::ODMR::ODMRData::Features
private

Definition at line 116 of file ODMR.h.

◆ GyromagneticRatio

double DynExpModule::ODMR::ODMRData::GyromagneticRatio {}

Definition at line 81 of file ODMR.h.

◆ MeasurementMode

MeasurementModeType DynExpModule::ODMR::ODMRData::MeasurementMode {}

Definition at line 66 of file ODMR.h.

◆ ODMRPlot

ODMRPlotType DynExpModule::ODMR::ODMRData::ODMRPlot

Definition at line 102 of file ODMR.h.

◆ ODMRSamplingRate

double DynExpModule::ODMR::ODMRData::ODMRSamplingRate {}

Definition at line 64 of file ODMR.h.

◆ RFAutoEnabled

bool DynExpModule::ODMR::ODMRData::RFAutoEnabled {}

Definition at line 54 of file ODMR.h.

◆ RFCenterFreq

double DynExpModule::ODMR::ODMRData::RFCenterFreq {}

Definition at line 55 of file ODMR.h.

◆ RFDwellTime

double DynExpModule::ODMR::ODMRData::RFDwellTime {}

Definition at line 58 of file ODMR.h.

◆ RFFreqSpacing

double DynExpModule::ODMR::ODMRData::RFFreqSpacing {}

Definition at line 57 of file ODMR.h.

◆ RFFreqSpan

double DynExpModule::ODMR::ODMRData::RFFreqSpan {}

Definition at line 56 of file ODMR.h.

◆ RFGenerator

DynExp::LinkedObjectWrapperContainer<DynExpInstr::FunctionGenerator> DynExpModule::ODMR::ODMRData::RFGenerator
private

Definition at line 111 of file ODMR.h.

◆ RFGeneratorDefaultFuncDesc

DynExpInstr::FunctionGeneratorDefs::FunctionDescType DynExpModule::ODMR::ODMRData::RFGeneratorDefaultFuncDesc

Definition at line 94 of file ODMR.h.

◆ RFGeneratorMaxFuncDesc

DynExpInstr::FunctionGeneratorDefs::FunctionDescType DynExpModule::ODMR::ODMRData::RFGeneratorMaxFuncDesc

Definition at line 93 of file ODMR.h.

◆ RFGeneratorMinFuncDesc

DynExpInstr::FunctionGeneratorDefs::FunctionDescType DynExpModule::ODMR::ODMRData::RFGeneratorMinFuncDesc

Definition at line 92 of file ODMR.h.

◆ RFModulation

RFModulationType DynExpModule::ODMR::ODMRData::RFModulation {}

Definition at line 60 of file ODMR.h.

◆ RFModulationDepth

double DynExpModule::ODMR::ODMRData::RFModulationDepth {}

Definition at line 62 of file ODMR.h.

◆ RFModulationFreq

double DynExpModule::ODMR::ODMRData::RFModulationFreq {}

Definition at line 61 of file ODMR.h.

◆ RFPower

double DynExpModule::ODMR::ODMRData::RFPower {}

Definition at line 53 of file ODMR.h.

◆ SaveDataPath

std::string DynExpModule::ODMR::ODMRData::SaveDataPath

Definition at line 67 of file ODMR.h.

◆ SensitivityAnalysisEnabled

bool DynExpModule::ODMR::ODMRData::SensitivityAnalysisEnabled {}

Definition at line 80 of file ODMR.h.

◆ SensitivityDuration

double DynExpModule::ODMR::ODMRData::SensitivityDuration {}

Definition at line 78 of file ODMR.h.

◆ SensitivityEnabled

bool DynExpModule::ODMR::ODMRData::SensitivityEnabled {}

Definition at line 71 of file ODMR.h.

◆ SensitivityOffResonanceEnabled

bool DynExpModule::ODMR::ODMRData::SensitivityOffResonanceEnabled {}

Definition at line 73 of file ODMR.h.

◆ SensitivityOffResonanceFreq

double DynExpModule::ODMR::ODMRData::SensitivityOffResonanceFreq {}

Definition at line 75 of file ODMR.h.

◆ SensitivityOncePerSweep

bool DynExpModule::ODMR::ODMRData::SensitivityOncePerSweep {}

Definition at line 72 of file ODMR.h.

◆ SensitivityPlot

SensitivityPlotType DynExpModule::ODMR::ODMRData::SensitivityPlot

Definition at line 103 of file ODMR.h.

◆ SensitivityResonanceFreq

double DynExpModule::ODMR::ODMRData::SensitivityResonanceFreq {}

Definition at line 74 of file ODMR.h.

◆ SensitivityResonanceSpan

double DynExpModule::ODMR::ODMRData::SensitivityResonanceSpan {}

Definition at line 76 of file ODMR.h.

◆ SensitivitySamplingRate

double DynExpModule::ODMR::ODMRData::SensitivitySamplingRate {}

Definition at line 77 of file ODMR.h.

◆ SignalDetector

DynExp::LinkedObjectWrapperContainer<DynExpInstr::DataStreamInstrument> DynExpModule::ODMR::ODMRData::SignalDetector
private

Definition at line 112 of file ODMR.h.

◆ SweepSeries

SweepSeriesType DynExpModule::ODMR::ODMRData::SweepSeries {}

Definition at line 84 of file ODMR.h.

◆ SweepSeriesAdvanceLastValue

bool DynExpModule::ODMR::ODMRData::SweepSeriesAdvanceLastValue {}

Definition at line 89 of file ODMR.h.

◆ SweepSeriesEnabled

bool DynExpModule::ODMR::ODMRData::SweepSeriesEnabled {}

Definition at line 83 of file ODMR.h.

◆ SweepSeriesRetrace

bool DynExpModule::ODMR::ODMRData::SweepSeriesRetrace {}

Definition at line 88 of file ODMR.h.

◆ SweepSeriesStart

double DynExpModule::ODMR::ODMRData::SweepSeriesStart {}

Definition at line 85 of file ODMR.h.

◆ SweepSeriesStep

double DynExpModule::ODMR::ODMRData::SweepSeriesStep {}

Definition at line 87 of file ODMR.h.

◆ SweepSeriesStop

double DynExpModule::ODMR::ODMRData::SweepSeriesStop {}

Definition at line 86 of file ODMR.h.

◆ TriggerOut

DynExp::LinkedObjectWrapperContainer<DynExpInstr::DigitalOut> DynExpModule::ODMR::ODMRData::TriggerOut
private

Definition at line 113 of file ODMR.h.


The documentation for this class was generated from the following files: