DynExp
Highly flexible laboratory automation for dynamically changing experiments.
|
Parameter class for LockinAmplifier
.
More...
Public Types | |
enum | AutoApplyParamsType { DoNotApply , AutoApply } |
Type to determine whether to apply parameters stored here to the lock-in amplifier when the instrument is started. More... | |
Public Types inherited from DynExp::RunnableObjectParams | |
enum | StartupType { OnCreation , Automatic , Manual } |
Determines when a RunnableObject instance is started. More... | |
Public Types inherited from DynExp::ParamsBase | |
enum | UsageType { Unique , Shared } |
Determines whether an Object can be linked to only one (unique) or multiple (shared) other objects. More... | |
using | ObjectLinkParamsType = std::vector< std::reference_wrapper< LinkBase > > |
Type of a list of all owned object link parameters. More... | |
using | EnumParamSignedIntegerType = intmax_t |
Parameter type to convert signed eumeration parameters to. More... | |
using | EnumParamUnsignedIntegerType = uintmax_t |
Parameter type to convert unsigned eumeration parameters to. More... | |
template<typename EnumType > | |
using | LargestEnumUnderlyingType = std::conditional_t< std::is_signed_v< std::underlying_type_t< EnumType > >, EnumParamSignedIntegerType, EnumParamUnsignedIntegerType > |
Type trait providing an integer type for enumeration types which allows to store the value of enumeration variables of that type in a file. More... | |
using | Text = Util::TextType |
String type of text-type parameters (DynExp::ParamsBase::Param) More... | |
template<typename ArithmeticType > | |
using | UnderlyingArithmeticParamType = TypedParamBase< ArithmeticType > |
using | UnderlyingTextParamType = TypedParamBase< Util::TextType > |
using | UnderlyingTextListParamType = TypedParamBase< Util::TextType > |
using | UnderlyingIndexedTextListParamType = TypedParamBase< Util::TextListIndexType > |
template<typename EnumType > | |
using | UnderlyingEnumParamType = TypedParamBase< LargestEnumUnderlyingType< EnumType > > |
If ParamType is an enum, then use largest signed/unsigned integral type as the underlying type since the enum's underlying type has to be integral. More... | |
using | UnderlyingLinkParamType = TypedParamBase< ItemIDType > |
template<typename ArithmeticType > | |
using | UnderlyingArithmeticListParamType = TypedListParamBase< ArithmeticType > |
using | UnderlyingLinkListParamType = TypedListParamBase< ItemIDType > |
Public Member Functions | |
LockinAmplifierParams (DynExp::ItemIDType ID, const DynExp::DynExpCore &Core) | |
Constructs the parameters for a LockinAmplifier instance. More... | |
virtual | ~LockinAmplifierParams ()=0 |
virtual const char * | GetParamClassTag () const noexcept override |
This function is intended to be overridden once in each derived class returning the name of the respective class. Parameters defined in any class within the ParamsBase hierarchy will receive a 'this' pointer pointing to ParamsBase when their ParamBase constructors are called. The ParamBase constructors will register the respective parameter in ParamsBase::OwnedParams calling GetParamClassTag() on the given 'this' pointer. This allows the ParamBase constructor to obtain the name of the class where the respective parameter was declared in. The name is used as an XML tag containing related parameters in the project files. Here, it is fully intended that the virtual call to GetParamClassTag() leads only to a call of GetParamClassTag() of the current dynamic type of ParamsBase! More... | |
Public Member Functions inherited from DynExpInstr::DataStreamInstrumentParams | |
DataStreamInstrumentParams (DynExp::ItemIDType ID, const DynExp::DynExpCore &Core) | |
Constructs the parameters for a DataStreamInstrument instance. More... | |
virtual | ~DataStreamInstrumentParams ()=0 |
Public Member Functions inherited from DynExp::InstrumentParamsBase | |
InstrumentParamsBase (ItemIDType ID, const DynExpCore &Core) | |
Constructs the parameters for a InstrumentBase instance. More... | |
virtual | ~InstrumentParamsBase ()=0 |
Public Member Functions inherited from DynExp::RunnableObjectParams | |
RunnableObjectParams (ItemIDType ID, const DynExpCore &Core) | |
Constructs the base class of an object parameter class. More... | |
virtual | ~RunnableObjectParams ()=0 |
bool | ConfigureStartupType () const noexcept |
Determines whether the Startup parameter should be user-configurable in settings dialogs. Override ConfigureStartupTypeChild() in order to adjust. More... | |
Public Member Functions inherited from DynExp::ParamsBase | |
ParamsBase (ItemIDType ID, const DynExpCore &Core) | |
Constructs the base class of an object parameter class. More... | |
virtual | ~ParamsBase ()=0 |
QDomElement | ConfigToXML (QDomDocument &Document) const |
Creates an XML node with a tag name as determined by GetParamClassTag() containing all parameters belonging to this ParamsBase instance. More... | |
void | ConfigFromXML (const QDomElement &XMLElement) const |
Retrieves all parameters belonging to this ParamsBase instance from an XML node with a tag name as determined by GetParamClassTag() More... | |
void | ConfigFromDialog (ParamsConfigDialog &Dialog) |
Adds all parameters belonging to this ParamsBase instance to a settings dialog to let the user configure the parameter values. More... | |
bool | Validate () const |
Refer to ParamBase::Validate(). More... | |
ItemIDType | GetID () const noexcept |
Returns the ID of the Object this parameter class instance belongs to. More... | |
const auto & | GetCore () const noexcept |
Returns a reference to DynExp's core. More... | |
const auto & | GetObjectLinkParams () const noexcept |
Returns a list of all object link parameters owned by this parameter class instance. More... | |
bool | ConfigureUsageType () const noexcept |
Determines whether the Usage parameter should be configurable in the settings dialog. Override ConfigureUsageTypeChild() in order to adjust. More... | |
const NetworkParamsExtension * | GetNetworkAddressParams () const noexcept |
Returns the network address parameters of a derived gRPC instrument. Override GetNetworkAddressParamsChild() in order to adjust. More... | |
Public Member Functions inherited from Util::INonCopyable | |
INonCopyable (const INonCopyable &)=delete | |
INonCopyable & | operator= (const INonCopyable &)=delete |
Static Public Member Functions | |
static Util::TextValueListType< AutoApplyParamsType > | AutoApplyParamsTypeStrList () |
Maps description strings to the AutoApplyParamsType enum's items. More... | |
Static Public Member Functions inherited from DynExp::RunnableObjectParams | |
static Util::TextValueListType< StartupType > | AvlblStartupTypeStrList () |
Maps description strings to the RunnableObjectParams::StartupType enum's items. More... | |
Static Public Member Functions inherited from DynExp::ParamsBase | |
static Util::TextValueListType< UsageType > | AvlblUsageTypeStrList () |
Maps description strings to the ParamsBase::UsageType enum's items. More... | |
static void | DisableUserEditable (ParamBase &Param) noexcept |
Sets the UserEditable property of the parameter Param to false. Refer to ParamBase::UserEditable. More... | |
Public Attributes | |
Param< AutoApplyParamsType > | AutoApplyParams |
Parameter to indicate whether to apply parameters stored here to the instrument when it is started. Refer to LockinAmplifier::ApplyFromParams(). More... | |
Param< double > | Sensitivity { *this, "Sensitivity", 1, 0 } |
Parameter to store the lock-in amplifier's sensitivity/amplification setting. More... | |
Param< double > | Phase { *this, "Phase", 0, 0, 2.0 * std::numbers::pi } |
Parameter to store the phase in rad of the lock-in amplifier's demodulator. More... | |
Param< double > | TimeConstant { *this, "TimeConstant", 1e-3, 0 } |
Parameter to store the time constant in seconds of the lock-in amplifier's low-poss filter. More... | |
Param< unsigned int > | FilterOrder { *this, "FilterOrder", 1, 1, 10 } |
Parameter to store the filter order/quality of the lock-in amplifier's low-poss filter. More... | |
Param< LockinAmplifierDefs::TriggerModeType > | TriggerMode { *this, "TriggerMode", LockinAmplifierDefs::TriggerModeType::ExternSingle } |
Parameter to store the lock-in amplifier's trigger mode. More... | |
Param< LockinAmplifierDefs::TriggerEdgeType > | TriggerEdge { *this, "TriggerEdge", LockinAmplifierDefs::TriggerEdgeType::Fall } |
Parameter to store the lock-in amplifier's trigger edge. More... | |
Param< LockinAmplifierDefs::SignalType > | Signal { *this, "Signal", LockinAmplifierDefs::SignalType::R } |
Parameter to store the lock-in amplifier's signal coordinate type to write to the data stream. More... | |
Param< double > | SamplingRate { *this, "SamplingRate", 1000, 1 } |
Parameter to store the lock-in amplifier's sampling rate in samples/s. More... | |
Param< bool > | Enable { *this, "Enable", false } |
Parameter to store whether the lock-in amplifier's demodulator is enabled. More... | |
Public Attributes inherited from DynExp::RunnableObjectParams | |
Param< StartupType > | Startup |
Determines when the runnable object is started. Refer to RunnableObjectParams::StartupType. More... | |
Public Attributes inherited from DynExp::ParamsBase | |
Param< ParamsConfigDialog::TextType > | ObjectName = { *this, "ObjectName", "Name", "Name to identify this item", false } |
String set by the user to identify the object this parameter class instance belongs to. More... | |
Param< UsageType > | Usage |
Determines whether an object can be used by only one other ("unique") or by multiple other ("shared") objects. More... | |
Private Member Functions | |
void | ConfigureParamsImpl (dispatch_tag< DataStreamInstrumentParams >) override final |
Called by DynExp::ParamsBase::ConfigureParams() as a starting point for the tag dispatch mechanism to descend the inheritance hierarchy. Override to add functionality to ConfigureParams(). Refer to DynExp::ParamsBase::dispatch_tag. More... | |
virtual void | ConfigureParamsImpl (dispatch_tag< LockinAmplifierParams >) |
Called by DynExp::ParamsBase::ConfigureParams() as a starting point for the tag dispatch mechanism to descend the inheritance hierarchy. Override to add functionality to ConfigureParams(). Refer to DynExp::ParamsBase::dispatch_tag. More... | |
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 | |
Parameter class for LockinAmplifier
.
Definition at line 333 of file LockinAmplifier.h.
Type to determine whether to apply parameters stored here to the lock-in amplifier when the instrument is started.
Enumerator | |
---|---|
DoNotApply | Parameters are not applied automatically when the instrument is started. |
AutoApply | Parameters are applied automatically when the instrument is started. |
Definition at line 340 of file LockinAmplifier.h.
|
inline |
Constructs the parameters for a LockinAmplifier
instance.
ID | ID of the Object this parameter class instance belongs to |
Core | Reference to DynExp's core |
Definition at line 355 of file LockinAmplifier.h.
|
pure virtual |
Definition at line 84 of file LockinAmplifier.cpp.
|
static |
Maps description strings to the AutoApplyParamsType
enum's items.
Definition at line 74 of file LockinAmplifier.cpp.
|
inlinefinaloverrideprivatevirtual |
Called by DynExp::ParamsBase::ConfigureParams() as a starting point for the tag dispatch mechanism to descend the inheritance hierarchy. Override to add functionality to ConfigureParams(). Refer to DynExp::ParamsBase::dispatch_tag.
Reimplemented from DynExpInstr::DataStreamInstrumentParams.
Definition at line 417 of file LockinAmplifier.h.
|
inlineprivatevirtual |
Called by DynExp::ParamsBase::ConfigureParams() as a starting point for the tag dispatch mechanism to descend the inheritance hierarchy. Override to add functionality to ConfigureParams(). Refer to DynExp::ParamsBase::dispatch_tag.
Reimplemented in DynExpInstr::ZI_MFLIParams.
Definition at line 418 of file LockinAmplifier.h.
|
inlineoverridevirtualnoexcept |
This function is intended to be overridden once in each derived class returning the name of the respective class. Parameters defined in any class within the ParamsBase hierarchy will receive a 'this' pointer pointing to ParamsBase when their ParamBase constructors are called. The ParamBase constructors will register the respective parameter in ParamsBase::OwnedParams calling GetParamClassTag() on the given 'this' pointer. This allows the ParamBase constructor to obtain the name of the class where the respective parameter was declared in. The name is used as an XML tag containing related parameters in the project files. Here, it is fully intended that the virtual call to GetParamClassTag() leads only to a call of GetParamClassTag() of the current dynamic type of ParamsBase!
Reimplemented from DynExpInstr::DataStreamInstrumentParams.
Reimplemented in DynExpInstr::ZI_MFLIParams.
Definition at line 359 of file LockinAmplifier.h.
Param<AutoApplyParamsType> DynExpInstr::LockinAmplifierParams::AutoApplyParams |
Parameter to indicate whether to apply parameters stored here to the instrument when it is started. Refer to LockinAmplifier::ApplyFromParams().
Definition at line 365 of file LockinAmplifier.h.
Param<bool> DynExpInstr::LockinAmplifierParams::Enable { *this, "Enable", false } |
Parameter to store whether the lock-in amplifier's demodulator is enabled.
Definition at line 414 of file LockinAmplifier.h.
Param<unsigned int> DynExpInstr::LockinAmplifierParams::FilterOrder { *this, "FilterOrder", 1, 1, 10 } |
Parameter to store the filter order/quality of the lock-in amplifier's low-poss filter.
Definition at line 388 of file LockinAmplifier.h.
Param<double> DynExpInstr::LockinAmplifierParams::Phase { *this, "Phase", 0, 0, 2.0 * std::numbers::pi } |
Parameter to store the phase in rad of the lock-in amplifier's demodulator.
Definition at line 376 of file LockinAmplifier.h.
Param<double> DynExpInstr::LockinAmplifierParams::SamplingRate { *this, "SamplingRate", 1000, 1 } |
Parameter to store the lock-in amplifier's sampling rate in samples/s.
Definition at line 409 of file LockinAmplifier.h.
Param<double> DynExpInstr::LockinAmplifierParams::Sensitivity { *this, "Sensitivity", 1, 0 } |
Parameter to store the lock-in amplifier's sensitivity/amplification setting.
Definition at line 371 of file LockinAmplifier.h.
Param<LockinAmplifierDefs::SignalType> DynExpInstr::LockinAmplifierParams::Signal { *this, "Signal", LockinAmplifierDefs::SignalType::R } |
Parameter to store the lock-in amplifier's signal coordinate type to write to the data stream.
Definition at line 404 of file LockinAmplifier.h.
Param<double> DynExpInstr::LockinAmplifierParams::TimeConstant { *this, "TimeConstant", 1e-3, 0 } |
Parameter to store the time constant in seconds of the lock-in amplifier's low-poss filter.
Definition at line 382 of file LockinAmplifier.h.
Param<LockinAmplifierDefs::TriggerEdgeType> DynExpInstr::LockinAmplifierParams::TriggerEdge { *this, "TriggerEdge", LockinAmplifierDefs::TriggerEdgeType::Fall } |
Parameter to store the lock-in amplifier's trigger edge.
Definition at line 398 of file LockinAmplifier.h.
Param<LockinAmplifierDefs::TriggerModeType> DynExpInstr::LockinAmplifierParams::TriggerMode { *this, "TriggerMode", LockinAmplifierDefs::TriggerModeType::ExternSingle } |
Parameter to store the lock-in amplifier's trigger mode.
Definition at line 393 of file LockinAmplifier.h.