DynExp
Highly flexible laboratory automation for dynamically changing experiments.
FunctionGenerator.h File Reference

Implementation of a function generator meta instrument to generate waveforms. More...

Go to the source code of this file.

Classes

struct  DynExpInstr::FunctionGeneratorDefs::FunctionDescType
 Type describing a generic periodic function. More...
 
struct  DynExpInstr::FunctionGeneratorDefs::SineFunctionDescType
 Type describing a sine function. More...
 
struct  DynExpInstr::FunctionGeneratorDefs::RectFunctionDescType
 Type describing a rectangular function. More...
 
struct  DynExpInstr::FunctionGeneratorDefs::RampFunctionDescType
 Type describing a ramp function. More...
 
struct  DynExpInstr::FunctionGeneratorDefs::PulsesDescType
 Type describing function consisting of a series of pulses. More...
 
struct  DynExpInstr::FunctionGeneratorDefs::ModulationDescType
 Type describing modulation parameters for a waveform. More...
 
struct  DynExpInstr::FunctionGeneratorDefs::SweepDescType
 Type describing sweep parameters for a waveform. More...
 
struct  DynExpInstr::FunctionGeneratorDefs::TriggerDescType
 Type describing trigger parameters determining when the waveform is generated. More...
 
class  DynExpInstr::FunctionGeneratorTasks::InitTask
 Defines a task for initializing an instrument within an instrument inheritance hierarchy. Each instrument (indirectly) derived from class InstrumentBase must be accompanied by an initialization task class derived from InitTaskBase. Even if the task does not do anything, at least it has to call InitTaskBase::InitFuncImpl() of the derived instrument's initialization task class. More...
 
class  DynExpInstr::FunctionGeneratorTasks::ExitTask
 Defines a task for deinitializing an instrument within an instrument inheritance hierarchy. Each instrument (indirectly) derived from class InstrumentBase must be accompanied by a deinitialization task class derived from ExitTaskBase. Even if the task does not do anything, at least it has to call ExitTaskBase::ExitFuncImpl() of the derived instrument's deinitialization task class. More...
 
class  DynExpInstr::FunctionGeneratorTasks::UpdateTask
 Defines a task for updating an instrument within an instrument inheritance hierarchy. Each instrument (indirectly) derived from class InstrumentBase must be accompanied by an update task class derived from UpdateTaskBase. Even if the task does not do anything, at least it has to call UpdateTaskBase::UpdateFuncImpl() of the derived instrument's update task class. More...
 
class  DynExpInstr::FunctionGeneratorTasks::SetSineFunctionTask
 Task to write a sine function to the related data stream instrument. More...
 
class  DynExpInstr::FunctionGeneratorTasks::SetRectFunctionTask
 Task to write a rectangular function to the related data stream instrument. More...
 
class  DynExpInstr::FunctionGeneratorTasks::SetRampFunctionTask
 Task to write a ramp function to the related data stream instrument. More...
 
class  DynExpInstr::FunctionGeneratorTasks::SetPulseFunctionTask
 Task to write a function consisting of pulse segments to the related data stream instrument. More...
 
class  DynExpInstr::FunctionGeneratorTasks::SetArbitraryFunctionTask
 Task to write an arbitrary function defined by a list of samples to the related data stream instrument. More...
 
class  DynExpInstr::FunctionGeneratorTasks::SetTriggerTask
 Task to initialize the trigger of the related function generator instrument. The task only updates FunctionGeneratorData::CurrentTriggerMode and FunctionGeneratorData::CurrentTriggerEdge. To configure the actual hardware, define another task for doing so and let FunctionGenerator::SetTriggerChild() enqueue it. More...
 
class  DynExpInstr::FunctionGeneratorData
 Data class for FunctionGenerator. More...
 
class  DynExpInstr::FunctionGeneratorParams
 Parameter class for FunctionGenerator. More...
 
class  DynExpInstr::FunctionGeneratorConfigurator
 Configurator class for FunctionGenerator. More...
 
class  DynExpInstr::FunctionGenerator
 Function generator meta instrument based on the data stream meta instrument to generate waveforms by either fillig data streams with waveform samples or by controlling a physical function generator device. More...
 

Namespaces

 DynExpInstr
 DynExp's instrument namespace contains the implementation of DynExp instruments which extend DynExp's core functionality in a modular way.
 
 DynExpInstr::FunctionGeneratorDefs
 Definitions to describe waveforms.
 
 DynExpInstr::FunctionGeneratorTasks
 Tasks for FunctionGenerator.
 

Enumerations

enum  DynExpInstr::FunctionGeneratorDefs::WaveformTypes {
  DynExpInstr::FunctionGeneratorDefs::None , DynExpInstr::FunctionGeneratorDefs::Sine , DynExpInstr::FunctionGeneratorDefs::Rect , DynExpInstr::FunctionGeneratorDefs::Ramp ,
  DynExpInstr::FunctionGeneratorDefs::Pulse
}
 Type to determine the waveform type. More...
 

Functions

constexpr FunctionDescType DynExpInstr::FunctionGeneratorDefs::GetDefaultMinFunctionDesc ()
 Determines minimal values assignable to a description of a generic periodic function. More...
 
constexpr FunctionDescType DynExpInstr::FunctionGeneratorDefs::GetDefaultMaxFunctionDesc ()
 Determines maximal values assignable to a description of a generic periodic function. More...
 
constexpr FunctionDescType DynExpInstr::FunctionGeneratorDefs::GetDefaultDefaultFunctionDesc ()
 Determines default values to assign to a description of a generic periodic function. More...
 
constexpr Util::seconds DynExpInstr::FunctionGeneratorDefs::PeriodFromFunctionDesc (const FunctionDescType &FunctionDesc)
 Calculates the period from the given function description. More...
 
double DynExpInstr::FunctionGeneratorDefs::RectFunc (double DutyCycle, double Phase)
 Calculates the value of a rectangular function depending on the current Phase. More...
 
double DynExpInstr::FunctionGeneratorDefs::InvRectFunc (double DutyCycle, double Phase)
 Calculates the value of an inverse rectangular function depending on the current Phase. More...
 
double DynExpInstr::FunctionGeneratorDefs::RampFunc (double RiseFallRatio, double Phase)
 Calculates the value of a ramp function depending on the current Phase. More...
 

Detailed Description

Implementation of a function generator meta instrument to generate waveforms.

Definition in file FunctionGenerator.h.