37#ifndef FunctionGenerator_h
38#define FunctionGenerator_h
68 SHAPE_PRBS_NONSTANDARD,
69 SHAPE_EXPONENTIAL_RISE,
70 SHAPE_EXPONENTIAL_DECAY,
76 SHAPE_STAIRCASE_UP_DOWN,
90 SHAPE_GAUSSIAN_WINDOW,
All warnings generated by a configuration we're in the process of loading.
Definition: ConfigWarningList.h:90
A baseband waveform generator.
Definition: FunctionGenerator.h:46
virtual void SetFunctionChannelFrequency(int chan, float hz)=0
Sets the frequency for a function generator output.
virtual float GetFunctionChannelDutyCycle(int chan)
Gets the duty cycle for a function generator output.
Definition: FunctionGenerator.cpp:340
virtual void SetFunctionChannelOutputImpedance(int chan, OutputImpedance z)
Sets the currently selected output impedance for a function generator output (if supported)
Definition: FunctionGenerator.cpp:359
virtual bool HasFunctionRiseFallTimeControls(int chan)=0
Determines if the function generator allows control over rise/fall times.
static WaveShape GetShapeOfName(const std::string &name)
Converts a human readable name to a WaveShape.
Definition: FunctionGenerator.cpp:218
virtual void SetFunctionChannelActive(int chan, bool on)=0
Turns a function generator channel on or off.
WaveShape
Predefined waveform shapes.
Definition: FunctionGenerator.h:55
virtual std::vector< WaveShape > GetAvailableWaveformShapes(int chan)=0
Query the set of available pre-defined waveforms for this generator.
void DoSerializeConfiguration(YAML::Node &node, IDTable &table)
Serializes this instrument's configuration to a YAML node.
Definition: FunctionGenerator.cpp:419
virtual bool GetFunctionChannelActive(int chan)=0
Returns true if the function generator channel's output is enabled.
virtual bool HasFunctionDutyCycleControls(int chan)
Determines if the function generator allows control over duty cycles.
Definition: FunctionGenerator.cpp:335
virtual void SetFunctionChannelAmplitude(int chan, float amplitude)=0
Sets the amplitude for a function generator output.
virtual OutputImpedance GetFunctionChannelOutputImpedance(int chan)
Gets the currently selected output impedance for a function generator output (if supported)
Definition: FunctionGenerator.cpp:354
virtual void SetFunctionChannelShape(int chan, WaveShape shape)=0
Sets the waveform shape for a function generator output.
virtual float GetFunctionChannelFrequency(int chan)=0
Gets the frequency for a function generator output.
virtual WaveShape GetFunctionChannelShape(int chan)=0
Gets the waveform shape for a function generator output.
virtual float GetFunctionChannelOffset(int chan)=0
Gets the DC offset for a function generator output.
virtual void SetFunctionChannelDutyCycle(int chan, float duty)
Sets the duty cycle for a function generator output.
Definition: FunctionGenerator.cpp:345
virtual bool HasFunctionImpedanceControls(int chan)
Determines if the function generator allows control over rise/fall times.
Definition: FunctionGenerator.cpp:349
void DoPreLoadConfiguration(int version, const YAML::Node &node, IDTable &idmap, ConfigWarningList &list)
Validate instrument and channel configuration from a save file.
Definition: FunctionGenerator.cpp:471
virtual float GetFunctionChannelFallTime(int chan)
Gets the fall time for a function generator output (if supported)
Definition: FunctionGenerator.cpp:326
void DoLoadConfiguration(int version, const YAML::Node &node, IDTable &idmap)
Load instrument and channel configuration from a save file.
Definition: FunctionGenerator.cpp:551
static std::string GetNameOfImpedance(OutputImpedance imp)
Converts an OutputImpedance enum to a human readable name.
Definition: FunctionGenerator.cpp:379
virtual bool AcquireData() override
Pull data from the instrument.
Definition: FunctionGenerator.cpp:363
OutputImpedance
Nominal output impedance for a function generator channel.
Definition: FunctionGenerator.h:259
@ IMPEDANCE_HIGH_Z
Channel expects to drive a high-impedance load.
Definition: FunctionGenerator.h:261
@ IMPEDANCE_50_OHM
Channel expects to drive a 50-ohm load.
Definition: FunctionGenerator.h:264
virtual float GetFunctionChannelRiseTime(int chan)
Gets the rise time for a function generator output (if supported)
Definition: FunctionGenerator.cpp:317
static std::string GetNameOfShape(WaveShape shape)
Converts a WaveShape enum to a human readable name.
Definition: FunctionGenerator.cpp:66
virtual float GetFunctionChannelAmplitude(int chan)=0
Gets the amplitude for a function generator output.
static OutputImpedance GetImpedanceOfName(const std::string &name)
Converts a human readable name to an OutputImpedance.
Definition: FunctionGenerator.cpp:401
virtual void SetFunctionChannelOffset(int chan, float offset)=0
Sets the DC offset for a function generator output.
virtual void SetFunctionChannelFallTime(int chan, float fs)
Sets the fall time for a function generator output (if supported)
Definition: FunctionGenerator.cpp:331
virtual void SetFunctionChannelRiseTime(int chan, float fs)
Sets the rise time for a function generator output (if supported)
Definition: FunctionGenerator.cpp:322
Bidirectional table mapping integer IDs in scopesession files to object pointers.
Definition: IDTable.h:49
An arbitrary lab instrument. Oscilloscope, LA, PSU, DMM, etc.
Definition: Instrument.h:58