ngscopeclient 0.1-dev+51fbda87c
|
A baseband waveform generator. More...
#include <FunctionGenerator.h>
Public Types | |
enum | WaveShape { SHAPE_SINE , SHAPE_SQUARE , SHAPE_TRIANGLE , SHAPE_PULSE , SHAPE_DC , SHAPE_NOISE , SHAPE_SAWTOOTH_UP , SHAPE_SAWTOOTH_DOWN , SHAPE_SINC , SHAPE_GAUSSIAN , SHAPE_LORENTZ , SHAPE_HALF_SINE , SHAPE_PRBS_NONSTANDARD , SHAPE_EXPONENTIAL_RISE , SHAPE_EXPONENTIAL_DECAY , SHAPE_HAVERSINE , SHAPE_CARDIAC , SHAPE_STAIRCASE_UP , SHAPE_STAIRCASE_DOWN , SHAPE_STAIRCASE_UP_DOWN , SHAPE_NEGATIVE_PULSE , SHAPE_LOG_RISE , SHAPE_LOG_DECAY , SHAPE_SQUARE_ROOT , SHAPE_CUBE_ROOT , SHAPE_QUADRATIC , SHAPE_CUBIC , SHAPE_DLORENTZ , SHAPE_GAUSSIAN_PULSE , SHAPE_HAMMING , SHAPE_HANNING , SHAPE_KAISER , SHAPE_BLACKMAN , SHAPE_GAUSSIAN_WINDOW , SHAPE_HARRIS , SHAPE_BARTLETT , SHAPE_TAN , SHAPE_COT , SHAPE_SEC , SHAPE_CSC , SHAPE_ASIN , SHAPE_ACOS , SHAPE_ATAN , SHAPE_ACOT , SHAPE_ARB } |
Predefined waveform shapes. | |
enum | OutputImpedance { IMPEDANCE_HIGH_Z , IMPEDANCE_50_OHM } |
Nominal output impedance for a function generator channel. More... | |
![]() | |
enum | InstrumentTypes { INST_OSCILLOSCOPE = 0x01 , INST_DMM = 0x02 , INST_PSU = 0x04 , INST_FUNCTION = 0x08 , INST_RF_GEN = 0x10 , INST_LOAD = 0x20 , INST_BERT = 0x40 , INST_MISC = 0x80 , INST_SWITCH_MATRIX = 0x100 } |
Public Member Functions | |
virtual bool | AcquireData () override |
Pull data from the instrument. More... | |
virtual bool | GetFunctionChannelActive (int chan)=0 |
Returns true if the function generator channel's output is enabled. More... | |
virtual void | SetFunctionChannelActive (int chan, bool on)=0 |
Turns a function generator channel on or off. More... | |
virtual bool | HasFunctionDutyCycleControls (int chan) |
Determines if the function generator allows control over duty cycles. More... | |
virtual float | GetFunctionChannelDutyCycle (int chan) |
Gets the duty cycle for a function generator output. More... | |
virtual void | SetFunctionChannelDutyCycle (int chan, float duty) |
Sets the duty cycle for a function generator output. More... | |
virtual float | GetFunctionChannelAmplitude (int chan)=0 |
Gets the amplitude for a function generator output. More... | |
virtual void | SetFunctionChannelAmplitude (int chan, float amplitude)=0 |
Sets the amplitude for a function generator output. More... | |
virtual float | GetFunctionChannelOffset (int chan)=0 |
Gets the DC offset for a function generator output. More... | |
virtual void | SetFunctionChannelOffset (int chan, float offset)=0 |
Sets the DC offset for a function generator output. More... | |
virtual float | GetFunctionChannelFrequency (int chan)=0 |
Gets the frequency for a function generator output. More... | |
virtual void | SetFunctionChannelFrequency (int chan, float hz)=0 |
Sets the frequency for a function generator output. More... | |
virtual WaveShape | GetFunctionChannelShape (int chan)=0 |
Gets the waveform shape for a function generator output. More... | |
virtual void | SetFunctionChannelShape (int chan, WaveShape shape)=0 |
Sets the waveform shape for a function generator output. More... | |
virtual float | GetFunctionChannelRiseTime (int chan) |
Gets the rise time for a function generator output (if supported) More... | |
virtual void | SetFunctionChannelRiseTime (int chan, float fs) |
Sets the rise time for a function generator output (if supported) More... | |
virtual float | GetFunctionChannelFallTime (int chan) |
Gets the fall time for a function generator output (if supported) More... | |
virtual void | SetFunctionChannelFallTime (int chan, float fs) |
Sets the fall time for a function generator output (if supported) More... | |
virtual bool | HasFunctionRiseFallTimeControls (int chan)=0 |
Determines if the function generator allows control over rise/fall times. More... | |
virtual bool | HasFunctionImpedanceControls (int chan) |
Determines if the function generator allows control over rise/fall times. More... | |
virtual OutputImpedance | GetFunctionChannelOutputImpedance (int chan) |
Gets the currently selected output impedance for a function generator output (if supported) More... | |
virtual void | SetFunctionChannelOutputImpedance (int chan, OutputImpedance z) |
Sets the currently selected output impedance for a function generator output (if supported) More... | |
virtual std::vector< WaveShape > | GetAvailableWaveformShapes (int chan)=0 |
Query the set of available pre-defined waveforms for this generator. More... | |
![]() | |
virtual unsigned int | GetInstrumentTypes () const =0 |
Returns a bitfield describing the set of instrument types that this instrument supports. More... | |
virtual std::string | GetName () const =0 |
virtual std::string | GetVendor () const =0 |
virtual std::string | GetSerial () const =0 |
virtual std::string | GetTransportConnectionString ()=0 |
Gets the connection string for our transport. More... | |
virtual std::string | GetTransportName ()=0 |
Gets the name of our transport. More... | |
virtual uint32_t | GetInstrumentTypesForChannel (size_t i) const =0 |
Returns a bitfield describing the set of instrument types that a given channel supports. More... | |
size_t | GetChannelCount () const |
Gets the number of channels (of any type) this instrument has. | |
InstrumentChannel * | GetChannel (size_t i) const |
Gets a given channel on the instrument. More... | |
virtual std::string | GetChannelDisplayName (size_t i) |
Gets the hardware display name for a channel. This is an arbitrary user-selected string. More... | |
virtual void | SetChannelDisplayName (size_t i, std::string name) |
Sets the hardware display name for a channel. This is an arbitrary user-selected string. More... | |
InstrumentChannel * | GetChannelByDisplayName (const std::string &name) |
Gets a channel given the display name. | |
InstrumentChannel * | GetChannelByHwName (const std::string &name) |
Gets a channel given the hardware name. | |
virtual bool | AcquireData ()=0 |
Pull data from the instrument. More... | |
virtual YAML::Node | SerializeConfiguration (IDTable &table) const |
Serializes this instrument's configuration to a YAML node. More... | |
virtual void | LoadConfiguration (int version, const YAML::Node &node, IDTable &idmap) |
Load instrument and channel configuration from a save file. More... | |
virtual void | PreLoadConfiguration (int version, const YAML::Node &node, IDTable &idmap, ConfigWarningList &warnings) |
Parse a limited subset of instrument configuration but do not apply it. More... | |
Static Public Member Functions | |
static std::string | GetNameOfShape (WaveShape shape) |
Converts a WaveShape enum to a human readable name. More... | |
static WaveShape | GetShapeOfName (const std::string &name) |
Converts a human readable name to a WaveShape. More... | |
static std::string | GetNameOfImpedance (OutputImpedance imp) |
Converts an OutputImpedance enum to a human readable name. More... | |
static OutputImpedance | GetImpedanceOfName (const std::string &name) |
Converts a human readable name to an OutputImpedance. More... | |
Protected Member Functions | |
void | DoSerializeConfiguration (YAML::Node &node, IDTable &table) |
Serializes this instrument's configuration to a YAML node. More... | |
void | DoLoadConfiguration (int version, const YAML::Node &node, IDTable &idmap) |
Load instrument and channel configuration from a save file. More... | |
void | DoPreLoadConfiguration (int version, const YAML::Node &node, IDTable &idmap, ConfigWarningList &list) |
Validate instrument and channel configuration from a save file. More... | |
Additional Inherited Members | |
![]() | |
std::string | m_nickname |
Optional user-selected nickname of the instrument. More... | |
![]() | |
std::list< sigc::slot< void(YAML::Node &, IDTable &)> > | m_serializers |
List of methods which need to be called to serialize this node's configuration. | |
std::list< sigc::slot< void(int, const YAML::Node &, IDTable &)> > | m_loaders |
List of methods which need to be called to deserialize this node's configuration. | |
std::list< sigc::slot< void(int, const YAML::Node &, IDTable &, ConfigWarningList &)> > | m_preloaders |
List of methods which need to be called to pre-load this node's configuration. | |
std::vector< InstrumentChannel * > | m_channels |
Set of all channels on this instrument. | |
A baseband waveform generator.
|
overridevirtual |
Pull data from the instrument.
Implements Instrument.
Reimplemented in LeCroyFWPOscilloscope, LeCroyOscilloscope, OwonXDGFunctionGenerator, PicoOscilloscope, RigolFunctionGenerator, RSRTO6Oscilloscope, SiglentSCPIOscilloscope, SiglentVectorSignalGenerator, TektronixHSIOscilloscope, and TektronixOscilloscope.
|
protected |
Load instrument and channel configuration from a save file.
version | File format version |
node | YAML node for the instrument |
idmap | Map of object IDs to objects |
|
protected |
Validate instrument and channel configuration from a save file.
This function is allowed to load low-risk settings that are unlikely to cause damage to an attached DUT, but not increase output amplitude or perform riskier configuration changes.
version | File format version |
node | YAML node for the instrument |
idmap | Map of object IDs to objects |
list | Warnings generated during the preload process |
|
protected |
Serializes this instrument's configuration to a YAML node.
node | Output YAML node for the instrument |
idmap | Map of object IDs to objects |
|
pure virtual |
Query the set of available pre-defined waveforms for this generator.
chan | Channel index |
Implemented in LeCroyOscilloscope, OwonXDGFunctionGenerator, PicoOscilloscope, RigolFunctionGenerator, RSRTO6Oscilloscope, SiglentSCPIOscilloscope, SiglentVectorSignalGenerator, and TektronixOscilloscope.
|
pure virtual |
Returns true if the function generator channel's output is enabled.
chan | Channel index |
Implemented in LeCroyOscilloscope, OwonXDGFunctionGenerator, PicoOscilloscope, RigolFunctionGenerator, RSRTO6Oscilloscope, SiglentSCPIOscilloscope, SiglentVectorSignalGenerator, and TektronixOscilloscope.
|
pure virtual |
Gets the amplitude for a function generator output.
chan | Channel index |
Implemented in LeCroyOscilloscope, OwonXDGFunctionGenerator, PicoOscilloscope, RigolFunctionGenerator, RSRTO6Oscilloscope, SiglentSCPIOscilloscope, SiglentVectorSignalGenerator, and TektronixOscilloscope.
|
virtual |
Gets the duty cycle for a function generator output.
chan | Channel index |
Reimplemented in LeCroyOscilloscope, OwonXDGFunctionGenerator, PicoOscilloscope, RigolFunctionGenerator, RSRTO6Oscilloscope, SiglentSCPIOscilloscope, and TektronixOscilloscope.
|
virtual |
Gets the fall time for a function generator output (if supported)
chan | Channel index |
Reimplemented in LeCroyOscilloscope, and OwonXDGFunctionGenerator.
|
pure virtual |
Gets the frequency for a function generator output.
chan | Channel index |
Implemented in LeCroyOscilloscope, OwonXDGFunctionGenerator, PicoOscilloscope, RigolFunctionGenerator, RSRTO6Oscilloscope, SiglentSCPIOscilloscope, SiglentVectorSignalGenerator, and TektronixOscilloscope.
|
pure virtual |
Gets the DC offset for a function generator output.
chan | Channel index |
Implemented in LeCroyOscilloscope, OwonXDGFunctionGenerator, PicoOscilloscope, RigolFunctionGenerator, RSRTO6Oscilloscope, SiglentSCPIOscilloscope, SiglentVectorSignalGenerator, and TektronixOscilloscope.
|
virtual |
Gets the currently selected output impedance for a function generator output (if supported)
chan | Channel index |
Reimplemented in LeCroyOscilloscope, OwonXDGFunctionGenerator, PicoOscilloscope, RigolFunctionGenerator, RSRTO6Oscilloscope, SiglentSCPIOscilloscope, and TektronixOscilloscope.
|
virtual |
Gets the rise time for a function generator output (if supported)
chan | Channel index |
Reimplemented in LeCroyOscilloscope, and OwonXDGFunctionGenerator.
|
pure virtual |
Gets the waveform shape for a function generator output.
chan | Channel index |
Implemented in LeCroyOscilloscope, OwonXDGFunctionGenerator, PicoOscilloscope, RigolFunctionGenerator, RSRTO6Oscilloscope, SiglentSCPIOscilloscope, SiglentVectorSignalGenerator, and TektronixOscilloscope.
|
static |
Converts a human readable name to an OutputImpedance.
name | Input name |
|
static |
Converts an OutputImpedance enum to a human readable name.
shape | OutputImpedance value |
|
static |
Converts a WaveShape enum to a human readable name.
shape | Input WaveShape value |
|
static |
Converts a human readable name to a WaveShape.
name | Input name |
|
virtual |
Determines if the function generator allows control over duty cycles.
If this function returns false, GetFunctionChannelDutyCycle() will always return 0.5, and SetFunctionChannelRiseTime() and SetFunctionChannelDutyCycle() is a no-op.
chan | Channel index |
Reimplemented in RSRTO6Oscilloscope, and SiglentVectorSignalGenerator.
|
virtual |
Determines if the function generator allows control over rise/fall times.
If this function returns false, GetFunctionChannelOutputImpedance() will always return IMPEDANCE_50_OHM and SetFunctionChannelOutputImpedance() is a no-op.
Reimplemented in SiglentVectorSignalGenerator.
|
pure virtual |
Determines if the function generator allows control over rise/fall times.
If this function returns false, GetFunctionChannelRiseTime() and GetFunctionChannelFallTime() will always return 0, and SetFunctionChannelRiseTime() and SetFunctionChannelFallTime() are no-ops.
chan | Channel index |
Implemented in LeCroyOscilloscope, OwonXDGFunctionGenerator, PicoOscilloscope, RigolFunctionGenerator, RSRTO6Oscilloscope, SiglentSCPIOscilloscope, SiglentVectorSignalGenerator, and TektronixOscilloscope.
|
pure virtual |
Turns a function generator channel on or off.
chan | Channel index |
on | True to enable output, false to disable |
Implemented in LeCroyOscilloscope, OwonXDGFunctionGenerator, PicoOscilloscope, RigolFunctionGenerator, RSRTO6Oscilloscope, SiglentSCPIOscilloscope, SiglentVectorSignalGenerator, and TektronixOscilloscope.
|
pure virtual |
Sets the amplitude for a function generator output.
chan | Channel index |
amplitude | Output amplitude, in Vpp |
Implemented in LeCroyOscilloscope, OwonXDGFunctionGenerator, PicoOscilloscope, RigolFunctionGenerator, RSRTO6Oscilloscope, SiglentSCPIOscilloscope, SiglentVectorSignalGenerator, and TektronixOscilloscope.
|
virtual |
Sets the duty cycle for a function generator output.
chan | Channel index |
duty | Duty cycle, in range [0, 1] |
Reimplemented in LeCroyOscilloscope, OwonXDGFunctionGenerator, PicoOscilloscope, RigolFunctionGenerator, RSRTO6Oscilloscope, SiglentSCPIOscilloscope, and TektronixOscilloscope.
|
virtual |
Sets the fall time for a function generator output (if supported)
chan | Channel index |
fs | Fall time, in fs |
Reimplemented in LeCroyOscilloscope, and OwonXDGFunctionGenerator.
|
pure virtual |
Sets the frequency for a function generator output.
chan | Channel index |
hz | Frequency, in Hz |
Implemented in LeCroyOscilloscope, OwonXDGFunctionGenerator, PicoOscilloscope, RigolFunctionGenerator, RSRTO6Oscilloscope, SiglentSCPIOscilloscope, SiglentVectorSignalGenerator, and TektronixOscilloscope.
|
pure virtual |
Sets the DC offset for a function generator output.
chan | Channel index |
amplitude | Offset, in volts |
Implemented in LeCroyOscilloscope, OwonXDGFunctionGenerator, PicoOscilloscope, RigolFunctionGenerator, RSRTO6Oscilloscope, SiglentSCPIOscilloscope, SiglentVectorSignalGenerator, and TektronixOscilloscope.
|
virtual |
Sets the currently selected output impedance for a function generator output (if supported)
chan | Channel index |
z | Output impedance |
Reimplemented in LeCroyOscilloscope, OwonXDGFunctionGenerator, PicoOscilloscope, RigolFunctionGenerator, RSRTO6Oscilloscope, SiglentSCPIOscilloscope, and TektronixOscilloscope.
|
virtual |
Sets the rise time for a function generator output (if supported)
chan | Channel index |
fs | Rise time, in fs |
Reimplemented in LeCroyOscilloscope, and OwonXDGFunctionGenerator.
|
pure virtual |
Sets the waveform shape for a function generator output.
chan | Channel index |
shape | Desired output waveform |
Implemented in LeCroyOscilloscope, OwonXDGFunctionGenerator, PicoOscilloscope, RigolFunctionGenerator, RSRTO6Oscilloscope, SiglentSCPIOscilloscope, SiglentVectorSignalGenerator, and TektronixOscilloscope.