DynExp
Highly flexible laboratory automation for dynamically changing experiments.
DynExpInstr::AnalogOutParams Class Referenceabstract

Parameter class for AnalogOut. More...

+ Inheritance diagram for DynExpInstr::AnalogOutParams:

Public Member Functions

 AnalogOutParams (DynExp::ItemIDType ID, const DynExp::DynExpCore &Core)
 Constructs the parameters for a AnalogOut instance. More...
 
virtual ~AnalogOutParams ()=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::OutputPortParams
 OutputPortParams (DynExp::ItemIDType ID, const DynExp::DynExpCore &Core)
 Constructs the parameters for a OutputPort instance. More...
 
virtual ~OutputPortParams ()=0
 
- Public Member Functions inherited from DynExpInstr::FunctionGeneratorParams
 FunctionGeneratorParams (DynExp::ItemIDType ID, const DynExp::DynExpCore &Core)
 Constructs the parameters for a FunctionGenerator instance. More...
 
virtual ~FunctionGeneratorParams ()=0
 
- 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 NetworkParamsExtensionGetNetworkAddressParams () 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
 
INonCopyableoperator= (const INonCopyable &)=delete
 

Public Attributes

Param< ParamsConfigDialog::NumberTypeDefaultValue
 Default value to be written to the output port after initialization and after termination of this instrument. More...
 
Param< ParamsConfigDialog::NumberTypeMinValue
 In contrast to the hardware limits (minimal value the underlying hardware can generate), this value denotes a user-defined setting. Each output sample is validated against this value in order to prevent misconfigured modules from destroying connected physical hardware. Refer to OutputPort::GetUserMinValue(). More...
 
Param< ParamsConfigDialog::NumberTypeMaxValue
 In contrast to the hardware limits (maximal value the underlying hardware can generate), this value denotes a user-defined setting. Each output sample is validated against this value in order to prevent misconfigured modules from destroying connected physical hardware. Refer to OutputPort::GetUserMaxValue(). More...
 
- Public Attributes inherited from DynExpInstr::FunctionGeneratorParams
Param< FunctionGeneratorDefs::WaveformTypesWaveformType = { *this, "WaveformTypes", FunctionGeneratorDefs::WaveformTypes::None }
 Parameter to store the waveform type. More...
 
Param< double > FrequencyInHz
 Parameter to store waveform's frequency in Hz. Refer to FunctionGeneratorDefs::FunctionDescType::FrequencyInHz. More...
 
Param< double > Amplitude
 Parameter to store waveform's amplitude. Refer to FunctionGeneratorDefs::FunctionDescType::Amplitude. More...
 
Param< double > Offset
 Parameter to store waveform's offset to be added to each sample. Refer to FunctionGeneratorDefs::FunctionDescType::Offset. More...
 
Param< double > PhaseInRad = { *this, "PhaseInRad", 0, 0, 2.0 * std::numbers::pi }
 Parameter to store waveform's phase in radians. Refer to FunctionGeneratorDefs::SineFunctionDescType::PhaseInRad, FunctionGeneratorDefs::RectFunctionDescType::PhaseInRad, and FunctionGeneratorDefs::RampFunctionDescType::PhaseInRad. More...
 
Param< double > DutyCycle = { *this, "DutyCycle", .5, 0, 1 }
 Parameter to store waveform's duty cycle or rise/fall ratio. Refer to FunctionGeneratorDefs::RectFunctionDescType::DutyCycle and FunctionGeneratorDefs::RampFunctionDescType::RiseFallRatio. More...
 
ListParam< double > PulseStarts = { *this, "PulseStarts", {}, 0}
 Parameter to store the start times of the waveform's pulse segments. Refer to FunctionGeneratorDefs::PulsesDescType::PulsesDescType(const std::vector<double>&, const std::vector<double>&, double). More...
 
ListParam< double > PulseAmplitudes = { *this, "PulseAmplitudes", {} }
 Parameter to store the amplitudes of the waveform's pulse segments. Refer to FunctionGeneratorDefs::PulsesDescType::PulsesDescType(const std::vector<double>&, const std::vector<double>&, double). More...
 
Param< FunctionGeneratorDefs::TriggerDescType::TriggerModeTypeTriggerMode = { *this, "TriggerMode", FunctionGeneratorDefs::TriggerDescType::TriggerModeType::Continuous }
 Parameter to store the trigger mode. More...
 
Param< FunctionGeneratorDefs::TriggerDescType::TriggerEdgeTypeTriggerEdge = { *this, "TriggerEdge", FunctionGeneratorDefs::TriggerDescType::TriggerEdgeType::Rise }
 Parameter to store the edge type to trigger on. More...
 
Param< bool > Autostart = { *this, "Autostart", false }
 Determines whether to directly make the underlying hardware device start generating the waveform after the instrument's initialization (true) or whether to await a trigger/start signal (false). More...
 
- Public Attributes inherited from DynExp::RunnableObjectParams
Param< StartupTypeStartup
 Determines when the runnable object is started. Refer to RunnableObjectParams::StartupType. More...
 
- Public Attributes inherited from DynExp::ParamsBase
Param< ParamsConfigDialog::TextTypeObjectName = { *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< UsageTypeUsage
 Determines whether an object can be used by only one other ("unique") or by multiple other ("shared") objects. More...
 

Protected Member Functions

void DisableUserEditable ()
 Calls DynExp::ParamsBase::DisableUserEditable() on all bundled parameters. More...
 
- Protected Member Functions inherited from DynExpInstr::OutputPortParams
void DisableUserEditable ()
 Calls DynExp::ParamsBase::DisableUserEditable() on all bundled parameters. 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
 

Private Member Functions

void ConfigureParamsImpl (dispatch_tag< OutputPortParams >) 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< AnalogOutParams >)
 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

- 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 >
 
- Static Public Member Functions inherited from DynExp::RunnableObjectParams
static Util::TextValueListType< StartupTypeAvlblStartupTypeStrList ()
 Maps description strings to the RunnableObjectParams::StartupType enum's items. More...
 
- Static Public Member Functions inherited from DynExp::ParamsBase
static Util::TextValueListType< UsageTypeAvlblUsageTypeStrList ()
 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...
 

Detailed Description

Parameter class for AnalogOut.

Definition at line 106 of file AnalogOut.h.

Constructor & Destructor Documentation

◆ AnalogOutParams()

DynExpInstr::AnalogOutParams::AnalogOutParams ( DynExp::ItemIDType  ID,
const DynExp::DynExpCore Core 
)
inline

Constructs the parameters for a AnalogOut instance.

Parameters
IDID of the Object this parameter class instance belongs to
CoreReference to DynExp's core

Definition at line 113 of file AnalogOut.h.

◆ ~AnalogOutParams()

DynExpInstr::AnalogOutParams::~AnalogOutParams ( )
pure virtual

Definition at line 31 of file AnalogOut.cpp.

Member Function Documentation

◆ ConfigureParamsImpl() [1/2]

virtual void DynExpInstr::AnalogOutParams::ConfigureParamsImpl ( dispatch_tag< AnalogOutParams )
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::NIDAQAnalogOutParams.

Definition at line 155 of file AnalogOut.h.

◆ ConfigureParamsImpl() [2/2]

void DynExpInstr::AnalogOutParams::ConfigureParamsImpl ( dispatch_tag< OutputPortParams )
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::OutputPortParams.

Definition at line 154 of file AnalogOut.h.

◆ DisableUserEditable()

void DynExpInstr::AnalogOutParams::DisableUserEditable ( )
protected

Calls DynExp::ParamsBase::DisableUserEditable() on all bundled parameters.

Definition at line 35 of file AnalogOut.cpp.

◆ GetParamClassTag()

virtual const char* DynExpInstr::AnalogOutParams::GetParamClassTag ( ) const
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!

Returns
Name of the class this function is defined in

Reimplemented from DynExpInstr::OutputPortParams.

Reimplemented in DynExpInstr::NIDAQAnalogOutParams.

Definition at line 118 of file AnalogOut.h.

Member Data Documentation

◆ DefaultValue

Param<ParamsConfigDialog::NumberType> DynExpInstr::AnalogOutParams::DefaultValue
Initial value:
= { *this, "DefaultValue", "Default value",
"Value to be written to this output port after it has been initialized and before it is stopped.", false,
0, std::numeric_limits<ParamsConfigDialog::NumberType>::lowest(), std::numeric_limits<ParamsConfigDialog::NumberType>::max(), 1, 3 }

Default value to be written to the output port after initialization and after termination of this instrument.

Definition at line 124 of file AnalogOut.h.

◆ MaxValue

Param<ParamsConfigDialog::NumberType> DynExpInstr::AnalogOutParams::MaxValue
Initial value:
= { *this, "MaxValue", "Maximal value",
"Upper limit the values written to this output port must not exceed.", true,
5, std::numeric_limits<ParamsConfigDialog::NumberType>::lowest(), std::numeric_limits<ParamsConfigDialog::NumberType>::max(), 1, 3 }

In contrast to the hardware limits (maximal value the underlying hardware can generate), this value denotes a user-defined setting. Each output sample is validated against this value in order to prevent misconfigured modules from destroying connected physical hardware. Refer to OutputPort::GetUserMaxValue().

Definition at line 146 of file AnalogOut.h.

◆ MinValue

Param<ParamsConfigDialog::NumberType> DynExpInstr::AnalogOutParams::MinValue
Initial value:
= { *this, "MinValue", "Minimal value",
"Lower limit the values written to this output port must not exceed.", true,
-5, std::numeric_limits<ParamsConfigDialog::NumberType>::lowest(), std::numeric_limits<ParamsConfigDialog::NumberType>::max(), 1, 3 }

In contrast to the hardware limits (minimal value the underlying hardware can generate), this value denotes a user-defined setting. Each output sample is validated against this value in order to prevent misconfigured modules from destroying connected physical hardware. Refer to OutputPort::GetUserMinValue().

Definition at line 135 of file AnalogOut.h.


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