DynExp
Highly flexible laboratory automation for dynamically changing experiments.
DynExpInstr::ZI_MFLIData Class Reference
+ Inheritance diagram for DynExpInstr::ZI_MFLIData:

Public Member Functions

 ZI_MFLIData (size_t BufferSizeInSamples=1)
 
virtual ~ZI_MFLIData ()=default
 
virtual double GetSensitivity () const noexcept override
 Getter for the lock-in amplifier's sensitivity/amplification setting. More...
 
virtual void SetSensitivity (double Sensitivity) noexcept override
 Setter for the lock-in amplifier's sensitivity/amplification setting. More...
 
virtual double GetPhase () const noexcept override
 Getter for the phase in rad of the lock-in amplifier's demodulator. More...
 
virtual void SetPhase (double Phase) noexcept override
 Setter for the phase in rad of the lock-in amplifier's demodulator. More...
 
virtual double GetTimeConstant () const noexcept override
 Getter for the time constant in seconds of the lock-in amplifier's low-poss filter. More...
 
virtual void SetTimeConstant (double TimeConstant) noexcept override
 Setter for the time constant in seconds of the lock-in amplifier's low-poss filter. More...
 
virtual uint8_t GetFilterOrder () const noexcept override
 Getter for the filter order/quality of the lock-in amplifier's low-poss filter. More...
 
virtual void SetFilterOrder (uint8_t FilterOrder) noexcept override
 Setter for the filter order/quality of the lock-in amplifier's low-poss filter. More...
 
virtual LockinAmplifierDefs::TriggerModeType GetTriggerMode () const noexcept override
 Getter for the lock-in amplifier's trigger mode. More...
 
virtual void SetTriggerMode (LockinAmplifierDefs::TriggerModeType TriggerMode) noexcept override
 Setter for the lock-in amplifier's trigger mode. More...
 
virtual LockinAmplifierDefs::TriggerEdgeType GetTriggerEdge () const noexcept override
 Getter for the lock-in amplifier's trigger edge. More...
 
virtual void SetTriggerEdge (LockinAmplifierDefs::TriggerEdgeType TriggerEdge) noexcept override
 Setter for the lock-in amplifier's trigger edge. More...
 
virtual LockinAmplifierDefs::SignalType GetSignalType () const noexcept override
 Getter for the lock-in amplifier's signal coordinate type to write to the data stream. More...
 
virtual void SetSignalType (LockinAmplifierDefs::SignalType SignalType) noexcept override
 Setter for the lock-in amplifier's signal coordinate type to write to the data stream. More...
 
virtual double GetSamplingRate () const noexcept override
 Getter for the lock-in amplifier's sampling rate in samples/s. More...
 
virtual void SetSamplingRate (double SamplingRate) noexcept override
 Setter for the lock-in amplifier's sampling rate in samples/s. More...
 
virtual bool IsEnabled () const noexcept override
 Returns true if the lock-in amplifier's demodulator is enabled, false otherwise. More...
 
virtual void SetEnable (uint8_t Enable) noexcept override
 Enables (pass true) or disables (pass false) the lock-in amplifier's demodulator. More...
 
virtual bool IsOverloaded () const noexcept override
 Indicates whether the lock-in amplifier's physical signal input is overloaded by e.g. an overvoltage. More...
 
virtual std::pair< double, double > GetInputLoad () const noexcept override
 Indicates the load at the lock-in amplifier's physical signal input in negative and positive directions. More...
 
virtual double GetOscillatorFrequency () const noexcept override
 Indicates the oscillator frequency the lock-in amplifier demodulates the measured signal at. More...
 
virtual double GetAcquisitionProgress () const noexcept override
 Determines the progress of the current data acquisition. More...
 
- Public Member Functions inherited from DynExpInstr::LockinAmplifierData
 LockinAmplifierData (size_t BufferSizeInSamples)
 Constructs a LockinAmplifierData instance. More...
 
virtual ~LockinAmplifierData ()=default
 
double GetAcquisitionTime () const
 Determines the duration of a single acquisition in seconds using GetSamplingRate() and DataStreamBase::GetStreamSizeWrite(). More...
 
- Public Member Functions inherited from DynExpInstr::DataStreamInstrumentData
 DataStreamInstrumentData (DataStreamBasePtrType &&SampleStream)
 Constructs a DataStreamInstrumentData instance. More...
 
virtual ~DataStreamInstrumentData ()=default
 
DataStreamBasePtrType::element_type * GetSampleStream () const noexcept
 Getter for the data stream instrument's sample stream. Logical const-ness: always returns a non-const type to allow modules to directly manipulate the sample stream. More...
 
template<typename T >
auto GetCastSampleStream () const
 Casts the data stream instrument's sample stream to a derived data stream type. More...
 
ValueType GetHardwareMinValue () const noexcept
 Returns HardwareMinValue. More...
 
ValueType GetHardwareMaxValue () const noexcept
 Returns HardwareMaxValue. More...
 
UnitType GetValueUnit () const noexcept
 Returns ValueUnit. More...
 
void SetHardwareMinValue (ValueType Value) noexcept
 Sets HardwareMinValue. More...
 
void SetHardwareMaxValue (ValueType Value) noexcept
 Sets HardwareMaxValue. More...
 
void SetValueUnit (UnitType Unit) noexcept
 Sets ValueUnit. More...
 
- Public Member Functions inherited from DynExp::InstrumentDataBase
 InstrumentDataBase ()
 
virtual ~InstrumentDataBase ()
 
auto GetLastUpdateTime () const
 Getter for LastUpdate. More...
 
auto GetException () const noexcept
 Getter for InstrumentDataBase::InstrumentException. More...
 
void EnqueueTask (std::unique_ptr< TaskBase > &&Task)
 Enqueues a task at the back of an instrument's task queue and notifies the instrument about the new task. More...
 
void EnqueuePriorityTask (std::unique_ptr< TaskBase > &&Task)
 Enqueues a task at the front of an instrument's task queue and notifies the instrument about the new task. More...
 
std::unique_ptr< TaskBasePopTaskFront ()
 Removes a task from the front of an instrument's task queue. More...
 
std::unique_ptr< TaskBasePopTaskBack ()
 Removes a task from the back of an instrument's task queue. More...
 
auto GetTaskFront () noexcept
 Getter for first enqueued task. More...
 
auto GetTaskBack () noexcept
 Getter for last enqueued task. More...
 
size_t GetNumEnqueuedTasks () const noexcept
 Getter for the instrument task queue's length. More...
 
std::unique_ptr< TaskBasePopFinishedTask ()
 Removes a task from the front of an instrument's list of finished tasks. More...
 
size_t GetNumFinishedTasks () const noexcept
 Getter for the length of the instrument's list of finished tasks. More...
 
bool IsQueueClosed () const noexcept
 Determines whether the instrument task queue is closed. More...
 
- Public Member Functions inherited from Util::INonCopyable
 INonCopyable (const INonCopyable &)=delete
 
INonCopyableoperator= (const INonCopyable &)=delete
 

Public Attributes

DynExp::LinkedObjectWrapperContainer< DynExpHardware::ZILabOneHardwareAdapterHardwareAdapter
 
- Public Attributes inherited from DynExp::InstrumentDataBase
InstrumentBaseOnlyType InstrumentBaseOnly
 Allow exclusive access to some of InstrumentDataBase's private methods to InstrumentBase. More...
 
InstrumenThreadOnlyType InstrumentThreadOnly
 Allow exclusive access to some of InstrumentDataBase's private methods to the instrument thread InstrumentThreadMain(). More...
 

Private Member Functions

void ResetImpl (dispatch_tag< LockinAmplifierData >) override final
 
virtual void ResetImpl (dispatch_tag< ZI_MFLIData >)
 

Private Attributes

double Sensitivity {}
 
double Phase {}
 
double TimeConstant {}
 
uint8_t FilterOrder {}
 
LockinAmplifierDefs::TriggerModeType TriggerMode {}
 
LockinAmplifierDefs::TriggerEdgeType TriggerEdge {}
 
LockinAmplifierDefs::SignalType Signal {}
 
double SamplingRate {}
 
bool Enable {}
 
bool Overload {}
 
double NegInputLoad {}
 
double PosInputLoad {}
 
double OscillatorFrequency {}
 
double AcquisitionProgress {}
 
size_t NumFailedStatusUpdateAttempts = 0
 

Friends

class ZI_MFLITasks::UpdateTask
 

Additional Inherited Members

- Public Types inherited from DynExpInstr::LockinAmplifierData
using SampleStreamType = BasicSampleStream
 Data stream type this data stream instrument operates on. More...
 
- Public Types inherited from DynExpInstr::DataStreamInstrumentData
enum class  UnitType {
  Arbitrary , LogicLevel , Counts , Volt ,
  Ampere , Power_W , Power_dBm
}
 Units which can be used for data stream instruments. More...
 
using ValueType = double
 Data type to represent hardware limits on the sample values to write to the hardware adapter assigned to the related DataStreamInstrument instance. More...
 
- Public Types inherited from DynExp::InstrumentDataBase
using TaskQueueType = std::list< std::unique_ptr< TaskBase > >
 Type of an instrument task queue owning the tasks within. More...
 
using TaskQueueIteratorType = TaskQueueType::const_iterator
 Const iterator type to elements of TaskQueueType. More...
 
- Static Public Member Functions inherited from DynExpInstr::DataStreamInstrumentData
static const char * UnitTypeToStr (const UnitType &Unit)
 Returns a descriptive string of a respective unit to be e.g. used in plots. More...
 
- 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 259 of file ZI_MFLI.h.

Constructor & Destructor Documentation

◆ ZI_MFLIData()

DynExpInstr::ZI_MFLIData::ZI_MFLIData ( size_t  BufferSizeInSamples = 1)
inline

Definition at line 264 of file ZI_MFLI.h.

◆ ~ZI_MFLIData()

virtual DynExpInstr::ZI_MFLIData::~ZI_MFLIData ( )
virtualdefault

Member Function Documentation

◆ GetAcquisitionProgress()

virtual double DynExpInstr::ZI_MFLIData::GetAcquisitionProgress ( ) const
inlineoverridevirtualnoexcept

Determines the progress of the current data acquisition.

Returns
Returns the progress of the data acquisition as a value in between 0 and 1 or -1 if the progress is unknown.

Reimplemented from DynExpInstr::LockinAmplifierData.

Definition at line 289 of file ZI_MFLI.h.

◆ GetFilterOrder()

virtual uint8_t DynExpInstr::ZI_MFLIData::GetFilterOrder ( ) const
inlineoverridevirtualnoexcept

Getter for the filter order/quality of the lock-in amplifier's low-poss filter.

Reimplemented from DynExpInstr::LockinAmplifierData.

Definition at line 273 of file ZI_MFLI.h.

◆ GetInputLoad()

virtual std::pair<double, double> DynExpInstr::ZI_MFLIData::GetInputLoad ( ) const
inlineoverridevirtualnoexcept

Indicates the load at the lock-in amplifier's physical signal input in negative and positive directions.

Returns
Returns a tuple of two values. The first value refers to the load in negative direction (e.g. negative voltages), the second value refers to the load in positive direction (e.g. positive voltages). Each value is in range 0 to 1. 1 means an overload in the respective direction. Values of -1 indicate that the load in the respective direction is unknown.

Reimplemented from DynExpInstr::LockinAmplifierData.

Definition at line 287 of file ZI_MFLI.h.

◆ GetOscillatorFrequency()

virtual double DynExpInstr::ZI_MFLIData::GetOscillatorFrequency ( ) const
inlineoverridevirtualnoexcept

Indicates the oscillator frequency the lock-in amplifier demodulates the measured signal at.

Returns
Returns the oscillator frequency in Hz or 0 if it is unknown.

Reimplemented from DynExpInstr::LockinAmplifierData.

Definition at line 288 of file ZI_MFLI.h.

◆ GetPhase()

virtual double DynExpInstr::ZI_MFLIData::GetPhase ( ) const
inlineoverridevirtualnoexcept

Getter for the phase in rad of the lock-in amplifier's demodulator.

Implements DynExpInstr::LockinAmplifierData.

Definition at line 269 of file ZI_MFLI.h.

◆ GetSamplingRate()

virtual double DynExpInstr::ZI_MFLIData::GetSamplingRate ( ) const
inlineoverridevirtualnoexcept

Getter for the lock-in amplifier's sampling rate in samples/s.

Reimplemented from DynExpInstr::LockinAmplifierData.

Definition at line 281 of file ZI_MFLI.h.

◆ GetSensitivity()

virtual double DynExpInstr::ZI_MFLIData::GetSensitivity ( ) const
inlineoverridevirtualnoexcept

Getter for the lock-in amplifier's sensitivity/amplification setting.

Implements DynExpInstr::LockinAmplifierData.

Definition at line 267 of file ZI_MFLI.h.

◆ GetSignalType()

virtual LockinAmplifierDefs::SignalType DynExpInstr::ZI_MFLIData::GetSignalType ( ) const
inlineoverridevirtualnoexcept

Getter for the lock-in amplifier's signal coordinate type to write to the data stream.

Implements DynExpInstr::LockinAmplifierData.

Definition at line 279 of file ZI_MFLI.h.

◆ GetTimeConstant()

virtual double DynExpInstr::ZI_MFLIData::GetTimeConstant ( ) const
inlineoverridevirtualnoexcept

Getter for the time constant in seconds of the lock-in amplifier's low-poss filter.

Implements DynExpInstr::LockinAmplifierData.

Definition at line 271 of file ZI_MFLI.h.

◆ GetTriggerEdge()

virtual LockinAmplifierDefs::TriggerEdgeType DynExpInstr::ZI_MFLIData::GetTriggerEdge ( ) const
inlineoverridevirtualnoexcept

Getter for the lock-in amplifier's trigger edge.

Reimplemented from DynExpInstr::LockinAmplifierData.

Definition at line 277 of file ZI_MFLI.h.

◆ GetTriggerMode()

virtual LockinAmplifierDefs::TriggerModeType DynExpInstr::ZI_MFLIData::GetTriggerMode ( ) const
inlineoverridevirtualnoexcept

Getter for the lock-in amplifier's trigger mode.

Reimplemented from DynExpInstr::LockinAmplifierData.

Definition at line 275 of file ZI_MFLI.h.

◆ IsEnabled()

virtual bool DynExpInstr::ZI_MFLIData::IsEnabled ( ) const
inlineoverridevirtualnoexcept

Returns true if the lock-in amplifier's demodulator is enabled, false otherwise.

Reimplemented from DynExpInstr::LockinAmplifierData.

Definition at line 283 of file ZI_MFLI.h.

◆ IsOverloaded()

virtual bool DynExpInstr::ZI_MFLIData::IsOverloaded ( ) const
inlineoverridevirtualnoexcept

Indicates whether the lock-in amplifier's physical signal input is overloaded by e.g. an overvoltage.

Returns
Returns true if there is currently an overload, false otherwise.

Reimplemented from DynExpInstr::LockinAmplifierData.

Definition at line 286 of file ZI_MFLI.h.

◆ ResetImpl() [1/2]

void DynExpInstr::ZI_MFLIData::ResetImpl ( dispatch_tag< LockinAmplifierData )
finaloverrideprivatevirtual

Reimplemented from DynExpInstr::LockinAmplifierData.

Definition at line 242 of file ZI_MFLI.cpp.

◆ ResetImpl() [2/2]

virtual void DynExpInstr::ZI_MFLIData::ResetImpl ( dispatch_tag< ZI_MFLIData )
inlineprivatevirtual

Definition at line 295 of file ZI_MFLI.h.

◆ SetEnable()

virtual void DynExpInstr::ZI_MFLIData::SetEnable ( uint8_t  Enable)
inlineoverridevirtualnoexcept

Enables (pass true) or disables (pass false) the lock-in amplifier's demodulator.

Reimplemented from DynExpInstr::LockinAmplifierData.

Definition at line 284 of file ZI_MFLI.h.

◆ SetFilterOrder()

virtual void DynExpInstr::ZI_MFLIData::SetFilterOrder ( uint8_t  FilterOrder)
inlineoverridevirtualnoexcept

Setter for the filter order/quality of the lock-in amplifier's low-poss filter.

Reimplemented from DynExpInstr::LockinAmplifierData.

Definition at line 274 of file ZI_MFLI.h.

◆ SetPhase()

virtual void DynExpInstr::ZI_MFLIData::SetPhase ( double  Phase)
inlineoverridevirtualnoexcept

Setter for the phase in rad of the lock-in amplifier's demodulator.

Implements DynExpInstr::LockinAmplifierData.

Definition at line 270 of file ZI_MFLI.h.

◆ SetSamplingRate()

virtual void DynExpInstr::ZI_MFLIData::SetSamplingRate ( double  SamplingRate)
inlineoverridevirtualnoexcept

Setter for the lock-in amplifier's sampling rate in samples/s.

Reimplemented from DynExpInstr::LockinAmplifierData.

Definition at line 282 of file ZI_MFLI.h.

◆ SetSensitivity()

virtual void DynExpInstr::ZI_MFLIData::SetSensitivity ( double  Sensitivity)
inlineoverridevirtualnoexcept

Setter for the lock-in amplifier's sensitivity/amplification setting.

Implements DynExpInstr::LockinAmplifierData.

Definition at line 268 of file ZI_MFLI.h.

◆ SetSignalType()

virtual void DynExpInstr::ZI_MFLIData::SetSignalType ( LockinAmplifierDefs::SignalType  SignalType)
inlineoverridevirtualnoexcept

Setter for the lock-in amplifier's signal coordinate type to write to the data stream.

Implements DynExpInstr::LockinAmplifierData.

Definition at line 280 of file ZI_MFLI.h.

◆ SetTimeConstant()

virtual void DynExpInstr::ZI_MFLIData::SetTimeConstant ( double  TimeConstant)
inlineoverridevirtualnoexcept

Setter for the time constant in seconds of the lock-in amplifier's low-poss filter.

Implements DynExpInstr::LockinAmplifierData.

Definition at line 272 of file ZI_MFLI.h.

◆ SetTriggerEdge()

virtual void DynExpInstr::ZI_MFLIData::SetTriggerEdge ( LockinAmplifierDefs::TriggerEdgeType  TriggerEdge)
inlineoverridevirtualnoexcept

Setter for the lock-in amplifier's trigger edge.

Reimplemented from DynExpInstr::LockinAmplifierData.

Definition at line 278 of file ZI_MFLI.h.

◆ SetTriggerMode()

virtual void DynExpInstr::ZI_MFLIData::SetTriggerMode ( LockinAmplifierDefs::TriggerModeType  TriggerMode)
inlineoverridevirtualnoexcept

Setter for the lock-in amplifier's trigger mode.

Reimplemented from DynExpInstr::LockinAmplifierData.

Definition at line 276 of file ZI_MFLI.h.

Friends And Related Function Documentation

◆ ZI_MFLITasks::UpdateTask

friend class ZI_MFLITasks::UpdateTask
friend

Definition at line 261 of file ZI_MFLI.h.

Member Data Documentation

◆ AcquisitionProgress

double DynExpInstr::ZI_MFLIData::AcquisitionProgress {}
private

Definition at line 313 of file ZI_MFLI.h.

◆ Enable

bool DynExpInstr::ZI_MFLIData::Enable {}
private

Definition at line 306 of file ZI_MFLI.h.

◆ FilterOrder

uint8_t DynExpInstr::ZI_MFLIData::FilterOrder {}
private

Definition at line 301 of file ZI_MFLI.h.

◆ HardwareAdapter

Definition at line 291 of file ZI_MFLI.h.

◆ NegInputLoad

double DynExpInstr::ZI_MFLIData::NegInputLoad {}
private

Definition at line 310 of file ZI_MFLI.h.

◆ NumFailedStatusUpdateAttempts

size_t DynExpInstr::ZI_MFLIData::NumFailedStatusUpdateAttempts = 0
private

Definition at line 315 of file ZI_MFLI.h.

◆ OscillatorFrequency

double DynExpInstr::ZI_MFLIData::OscillatorFrequency {}
private

Definition at line 312 of file ZI_MFLI.h.

◆ Overload

bool DynExpInstr::ZI_MFLIData::Overload {}
private

Definition at line 309 of file ZI_MFLI.h.

◆ Phase

double DynExpInstr::ZI_MFLIData::Phase {}
private

Definition at line 299 of file ZI_MFLI.h.

◆ PosInputLoad

double DynExpInstr::ZI_MFLIData::PosInputLoad {}
private

Definition at line 311 of file ZI_MFLI.h.

◆ SamplingRate

double DynExpInstr::ZI_MFLIData::SamplingRate {}
private

Definition at line 305 of file ZI_MFLI.h.

◆ Sensitivity

double DynExpInstr::ZI_MFLIData::Sensitivity {}
private

Definition at line 298 of file ZI_MFLI.h.

◆ Signal

LockinAmplifierDefs::SignalType DynExpInstr::ZI_MFLIData::Signal {}
private

Definition at line 304 of file ZI_MFLI.h.

◆ TimeConstant

double DynExpInstr::ZI_MFLIData::TimeConstant {}
private

Definition at line 300 of file ZI_MFLI.h.

◆ TriggerEdge

LockinAmplifierDefs::TriggerEdgeType DynExpInstr::ZI_MFLIData::TriggerEdge {}
private

Definition at line 303 of file ZI_MFLI.h.

◆ TriggerMode

LockinAmplifierDefs::TriggerModeType DynExpInstr::ZI_MFLIData::TriggerMode {}
private

Definition at line 302 of file ZI_MFLI.h.


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