ngscopeclient v0.1-rc1
|
A Siglent SDG function generator. More...
#include <SiglentFunctionGenerator.h>
Public Member Functions | |
SiglentFunctionGenerator (SCPITransport *transport) | |
virtual unsigned int | GetInstrumentTypes () const override |
Returns a bitfield describing the set of instrument types that this instrument supports. More... | |
virtual uint32_t | GetInstrumentTypesForChannel (size_t i) const override |
Returns a bitfield describing the set of instrument types that a given channel supports. More... | |
virtual bool | AcquireData () override |
Pull data from the instrument. More... | |
virtual void | FlushConfigCache () override |
Instruments are allowed to cache configuration settings to reduce round trip queries to the device. More... | |
virtual std::vector< WaveShape > | GetAvailableWaveformShapes (int chan) override |
Query the set of available pre-defined waveforms for this generator. More... | |
virtual bool | GetFunctionChannelActive (int chan) override |
Returns true if the function generator channel's output is enabled. More... | |
virtual void | SetFunctionChannelActive (int chan, bool on) override |
Turns a function generator channel on or off. More... | |
virtual float | GetFunctionChannelDutyCycle (int chan) override |
Gets the duty cycle for a function generator output. More... | |
virtual void | SetFunctionChannelDutyCycle (int chan, float duty) override |
Sets the duty cycle for a function generator output. More... | |
virtual float | GetFunctionChannelAmplitude (int chan) override |
Gets the amplitude for a function generator output. More... | |
virtual void | SetFunctionChannelAmplitude (int chan, float amplitude) override |
Sets the amplitude for a function generator output. More... | |
virtual float | GetFunctionChannelOffset (int chan) override |
Gets the DC offset for a function generator output. More... | |
virtual void | SetFunctionChannelOffset (int chan, float offset) override |
Sets the DC offset for a function generator output. More... | |
virtual float | GetFunctionChannelFrequency (int chan) override |
Gets the frequency for a function generator output. More... | |
virtual void | SetFunctionChannelFrequency (int chan, float hz) override |
Sets the frequency for a function generator output. More... | |
virtual WaveShape | GetFunctionChannelShape (int chan) override |
Gets the waveform shape for a function generator output. More... | |
virtual void | SetFunctionChannelShape (int chan, WaveShape shape) override |
Sets the waveform shape for a function generator output. More... | |
virtual bool | HasFunctionRiseFallTimeControls (int chan) override |
Determines if the function generator allows control over rise/fall times. More... | |
virtual OutputImpedance | GetFunctionChannelOutputImpedance (int chan) override |
Gets the currently selected output impedance for a function generator output (if supported) More... | |
virtual void | SetFunctionChannelOutputImpedance (int chan, OutputImpedance z) override |
Sets the currently selected output impedance for a function generator output (if supported) More... | |
![]() | |
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 void | FlushConfigCache () |
Instruments are allowed to cache configuration settings to reduce round trip queries to the device. 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... | |
![]() | |
SCPIInstrument (SCPITransport *transport, bool identify=true) | |
virtual std::string | GetTransportConnectionString () |
Gets the connection string for our transport. More... | |
virtual std::string | GetTransportName () |
Gets the name of our transport. More... | |
virtual std::string | GetName () const |
virtual std::string | GetVendor () const |
virtual std::string | GetSerial () const |
virtual std::string | GetDriverName () const =0 |
![]() | |
SCPIDevice (SCPITransport *transport, bool identify=true) | |
SCPITransport * | GetTransport () const |
Static Public Member Functions | |
static std::string | GetDriverNameInternal () |
![]() | |
static void | DoAddDriverClass (std::string name, GeneratorCreateProcType proc) |
static void | EnumDrivers (std::vector< std::string > &names) |
static std::shared_ptr< SCPIFunctionGenerator > | CreateFunctionGenerator (std::string driver, SCPITransport *transport) |
![]() | |
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 | |
std::string | RemoveHeader (const std::string &str) |
void | ParseOutputState (const std::string &str, size_t i) |
Parse the response to an OUTP? query. | |
void | ParseBasicWaveform (const std::string &str, size_t i) |
Parse the response to a BSWV? query. | |
![]() | |
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... | |
![]() | |
void | DoSerializeConfiguration (YAML::Node &node, IDTable &table) |
Protected Attributes | |
bool | m_cachedFrequencyValid [2] |
int64_t | m_cachedFrequency [2] |
bool | m_cachedEnableStateValid [2] |
bool | m_cachedOutputEnable [2] |
bool | m_cachedAmplitudeValid [2] |
float | m_cachedAmplitude [2] |
bool | m_cachedOffsetValid [2] |
float | m_cachedOffset [2] |
OutputImpedance | m_cachedImpedance [2] |
bool | m_cachedImpedanceValid [2] |
WaveShape | m_cachedWaveShape [2] |
bool | m_cachedWaveShapeValid [2] |
![]() | |
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. | |
![]() | |
SCPITransport * | m_transport |
std::string | m_vendor |
std::string | m_model |
std::string | m_serial |
std::string | m_fwVersion |
Additional Inherited Members | |
![]() | |
typedef std::shared_ptr< SCPIFunctionGenerator >(* | GeneratorCreateProcType) (SCPITransport *) |
![]() | |
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 } |
![]() | |
std::string | m_nickname |
Optional user-selected nickname of the instrument. More... | |
![]() | |
typedef std::map< std::string, GeneratorCreateProcType > | GeneratorCreateMapType |
![]() | |
static GeneratorCreateMapType | m_gencreateprocs |
A Siglent SDG function generator.
|
overridevirtual |
Pull data from the instrument.
Reimplemented from FunctionGenerator.
|
overridevirtual |
Instruments are allowed to cache configuration settings to reduce round trip queries to the device.
In order to see updates made by the user at the front panel, the cache must be flushed.
Cache flushing is recommended to be manually triggered during interactive operation if there is no way to push updates from the scope to the driver.
In scripted/ATE environments where nobody should be touching the instrument, flushing is typically not needed.
The default implementation of this function does nothing since the base class provides no caching. If a derived class caches configuration, it should override this function to clear any cached data.
Reimplemented from Instrument.
|
overridevirtual |
Query the set of available pre-defined waveforms for this generator.
chan | Channel index |
Implements FunctionGenerator.
|
overridevirtual |
Returns true if the function generator channel's output is enabled.
chan | Channel index |
Implements FunctionGenerator.
|
overridevirtual |
Gets the amplitude for a function generator output.
chan | Channel index |
Implements FunctionGenerator.
|
overridevirtual |
Gets the duty cycle for a function generator output.
chan | Channel index |
Reimplemented from FunctionGenerator.
|
overridevirtual |
Gets the frequency for a function generator output.
chan | Channel index |
Implements FunctionGenerator.
|
overridevirtual |
Gets the DC offset for a function generator output.
chan | Channel index |
Implements FunctionGenerator.
|
overridevirtual |
Gets the currently selected output impedance for a function generator output (if supported)
chan | Channel index |
Reimplemented from FunctionGenerator.
|
overridevirtual |
Gets the waveform shape for a function generator output.
chan | Channel index |
Implements FunctionGenerator.
|
overridevirtual |
Returns a bitfield describing the set of instrument types that this instrument supports.
Not all types may be available on a given channel.
Implements Instrument.
|
overridevirtual |
Returns a bitfield describing the set of instrument types that a given channel supports.
i | Channel index |
Implements Instrument.
|
overridevirtual |
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 |
Implements FunctionGenerator.
|
overridevirtual |
Turns a function generator channel on or off.
chan | Channel index |
on | True to enable output, false to disable |
Implements FunctionGenerator.
|
overridevirtual |
Sets the amplitude for a function generator output.
chan | Channel index |
amplitude | Output amplitude, in Vpp |
Implements FunctionGenerator.
|
overridevirtual |
Sets the duty cycle for a function generator output.
chan | Channel index |
duty | Duty cycle, in range [0, 1] |
Reimplemented from FunctionGenerator.
|
overridevirtual |
Sets the frequency for a function generator output.
chan | Channel index |
hz | Frequency, in Hz |
Implements FunctionGenerator.
|
overridevirtual |
Sets the DC offset for a function generator output.
chan | Channel index |
amplitude | Offset, in volts |
Implements FunctionGenerator.
|
overridevirtual |
Sets the currently selected output impedance for a function generator output (if supported)
chan | Channel index |
z | Output impedance |
Reimplemented from FunctionGenerator.
|
overridevirtual |
Sets the waveform shape for a function generator output.
chan | Channel index |
shape | Desired output waveform |
Implements FunctionGenerator.