DynExp
Highly flexible laboratory automation for dynamically changing experiments.
DynExpInstr::LockinAmplifierDefs::LockinSample Struct Reference

Type describing a recorded lock-in sample independent of the coordinate system. Must be trivially copyable. More...

Public Types

using DataType = double
 Data type used to store the sample (value and time) More...
 

Public Member Functions

constexpr LockinSample () noexcept=default
 Default-constructs a LockinSample instance. More...
 
 LockinSample (uint8_t Channel, DataType Time, LockinResultCartesian CartesianResult) noexcept
 Constructs a LockinSample instance from the given cartesian result representation. Calls UpdatePolar(). More...
 
 LockinSample (uint8_t Channel, DataType Time, LockinResultPolar PolarResult) noexcept
 Constructs a LockinSample instance from the given polar result representation. Calls UpdateCartesian(). More...
 
constexpr LockinSample (uint8_t Channel, DataType Time, LockinResultCartesian CartesianResult, LockinResultPolar PolarResult) noexcept
 Constructs a LockinSample instance from the given cartesian and polar result representations assuming that both are equal when converted to the respective other result representation. More...
 
void UpdatePolar () noexcept
 Updates PolarResult based on CartesianResult. More...
 
void UpdateCartesian () noexcept
 Updates CartesianResult based on PolarResult. More...
 
DataType GetDisambiguatedValue (SignalType Signal) const noexcept
 Retrieves the sample value represented as the coordinate specified by Signal. More...
 

Public Attributes

uint8_t Channel {}
 Channel of the lock-in amplifier this sample has been recorded with. More...
 
LockinResultCartesian CartesianResult {}
 Representation of the recorded sample in cartesian coordinates. More...
 
LockinResultPolar PolarResult {}
 Representation of the recorded sample in polar coordinates. More...
 
DataType Time {}
 Time in seconds this sample has been recorded at. More...
 

Detailed Description

Type describing a recorded lock-in sample independent of the coordinate system. Must be trivially copyable.

Definition at line 108 of file LockinAmplifier.h.

Member Typedef Documentation

◆ DataType

Data type used to store the sample (value and time)

Definition at line 110 of file LockinAmplifier.h.

Constructor & Destructor Documentation

◆ LockinSample() [1/4]

constexpr DynExpInstr::LockinAmplifierDefs::LockinSample::LockinSample ( )
constexprdefaultnoexcept

Default-constructs a LockinSample instance.

◆ LockinSample() [2/4]

DynExpInstr::LockinAmplifierDefs::LockinSample::LockinSample ( uint8_t  Channel,
DataType  Time,
LockinResultCartesian  CartesianResult 
)
noexcept

Constructs a LockinSample instance from the given cartesian result representation. Calls UpdatePolar().

Parameters
ChannelChannel of the lock-in amplifier this sample has been recorded with.
TimeTime in seconds this sample has been recorded at.
CartesianResultRepresentation of the recorded sample in cartesian coordinates.

Definition at line 8 of file LockinAmplifier.cpp.

◆ LockinSample() [3/4]

DynExpInstr::LockinAmplifierDefs::LockinSample::LockinSample ( uint8_t  Channel,
DataType  Time,
LockinResultPolar  PolarResult 
)
noexcept

Constructs a LockinSample instance from the given polar result representation. Calls UpdateCartesian().

Parameters
ChannelChannel of the lock-in amplifier this sample has been recorded with.
TimeTime in seconds this sample has been recorded at.
PolarResultRepresentation of the recorded sample in polar coordinates.

Definition at line 14 of file LockinAmplifier.cpp.

◆ LockinSample() [4/4]

constexpr DynExpInstr::LockinAmplifierDefs::LockinSample::LockinSample ( uint8_t  Channel,
DataType  Time,
LockinResultCartesian  CartesianResult,
LockinResultPolar  PolarResult 
)
constexprnoexcept

Constructs a LockinSample instance from the given cartesian and polar result representations assuming that both are equal when converted to the respective other result representation.

Parameters
ChannelChannel of the lock-in amplifier this sample has been recorded with.
TimeTime in seconds this sample has been recorded at.
CartesianResultRepresentation of the recorded sample in cartesian coordinates.
PolarResultRepresentation of the recorded sample in polar coordinates.

Definition at line 20 of file LockinAmplifier.cpp.

Member Function Documentation

◆ GetDisambiguatedValue()

LockinAmplifierDefs::LockinSample::DataType DynExpInstr::LockinAmplifierDefs::LockinSample::GetDisambiguatedValue ( SignalType  Signal) const
noexcept

Retrieves the sample value represented as the coordinate specified by Signal.

Parameters
SignalCoordinate of the sample value to return
Returns
Returns the requested coordinate of the sample value.

Definition at line 37 of file LockinAmplifier.cpp.

◆ UpdateCartesian()

void DynExpInstr::LockinAmplifierDefs::LockinSample::UpdateCartesian ( )
noexcept

Updates CartesianResult based on PolarResult.

Definition at line 31 of file LockinAmplifier.cpp.

◆ UpdatePolar()

void DynExpInstr::LockinAmplifierDefs::LockinSample::UpdatePolar ( )
noexcept

Updates PolarResult based on CartesianResult.

Definition at line 25 of file LockinAmplifier.cpp.

Member Data Documentation

◆ CartesianResult

LockinResultCartesian DynExpInstr::LockinAmplifierDefs::LockinSample::CartesianResult {}

Representation of the recorded sample in cartesian coordinates.

Definition at line 165 of file LockinAmplifier.h.

◆ Channel

uint8_t DynExpInstr::LockinAmplifierDefs::LockinSample::Channel {}

Channel of the lock-in amplifier this sample has been recorded with.

Definition at line 163 of file LockinAmplifier.h.

◆ PolarResult

LockinResultPolar DynExpInstr::LockinAmplifierDefs::LockinSample::PolarResult {}

Representation of the recorded sample in polar coordinates.

Definition at line 166 of file LockinAmplifier.h.

◆ Time

DataType DynExpInstr::LockinAmplifierDefs::LockinSample::Time {}

Time in seconds this sample has been recorded at.

Definition at line 168 of file LockinAmplifier.h.


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