ngscopeclient 0.1-dev+51fbda87c
|
Generic representation of an oscilloscope, logic analyzer, or spectrum analyzer. More...
#include <Oscilloscope.h>
Public Types | |
enum | TriggerMode { TRIGGER_MODE_RUN , TRIGGER_MODE_STOP , TRIGGER_MODE_TRIGGERED , TRIGGER_MODE_WAIT , TRIGGER_MODE_AUTO , TRIGGER_MODE_COUNT } |
enum | SamplingMode { REAL_TIME , EQUIVALENT_TIME } |
typedef std::pair< OscilloscopeChannel *, OscilloscopeChannel * > | InterleaveConflict |
Get the set of conflicting channels. More... | |
typedef std::vector< OscilloscopeChannel * > | AnalogBank |
typedef std::vector< OscilloscopeChannel * > | DigitalBank |
typedef std::shared_ptr< Oscilloscope >(* | CreateProcType) (SCPITransport *) |
![]() | |
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 std::string | IDPing ()=0 |
Returns the instrument's identification string. More... | |
virtual void | FlushConfigCache () |
Instruments are allowed to cache configuration settings to reduce round trip queries to the device. More... | |
virtual bool | IsOffline () |
Checks if the instrument is currently online. More... | |
OscilloscopeChannel * | GetOscilloscopeChannel (size_t i) |
Gets a channel by index. More... | |
virtual bool | IsChannelEnabled (size_t i)=0 |
Checks if a channel is enabled in hardware. More... | |
virtual void | EnableChannel (size_t i)=0 |
Turn a channel on, given the index. More... | |
virtual bool | CanEnableChannel (size_t i) |
Determines if a channel can be enabled. More... | |
virtual void | DisableChannel (size_t i)=0 |
Turn a channel off, given the index. More... | |
int | GetEnabledChannelCount () |
Returns the number of enabled channels for this oscilloscope. More... | |
OscilloscopeChannel * | GetOscilloscopeChannelByHwName (const std::string &name) |
Gets a channel given the hardware name. | |
virtual OscilloscopeChannel::CouplingType | GetChannelCoupling (size_t i)=0 |
Gets the coupling used for an input channel. More... | |
virtual void | SetChannelCoupling (size_t i, OscilloscopeChannel::CouplingType type)=0 |
Sets the coupling used for an input channel. More... | |
virtual std::vector< OscilloscopeChannel::CouplingType > | GetAvailableCouplings (size_t i)=0 |
Gets the set of legal coupling values for an input channel. More... | |
virtual double | GetChannelAttenuation (size_t i)=0 |
Gets the probe attenuation for an input channel. More... | |
virtual void | SetChannelAttenuation (size_t i, double atten)=0 |
Sets the probe attenuation used for an input channel. More... | |
virtual std::vector< unsigned int > | GetChannelBandwidthLimiters (size_t i) |
Gets the set of available bandwidth limiters for an input channel. More... | |
virtual unsigned int | GetChannelBandwidthLimit (size_t i)=0 |
Gets the bandwidth limit for an input channel. More... | |
virtual void | SetChannelBandwidthLimit (size_t i, unsigned int limit_mhz)=0 |
Sets the bandwidth limit for an input channel. More... | |
virtual OscilloscopeChannel * | GetExternalTrigger ()=0 |
Returns the external trigger input channel, if we have one. More... | |
virtual float | GetChannelVoltageRange (size_t i, size_t stream)=0 |
Gets the range of the current channel configuration. More... | |
virtual void | SetChannelVoltageRange (size_t i, size_t stream, float range)=0 |
Sets the range of the current channel configuration. More... | |
virtual bool | CanAutoZero (size_t i) |
Determines if a channel has a probe connected which supports the "auto zero" feature. More... | |
virtual void | AutoZero (size_t i) |
Performs an "auto zero" cycle on the attached active probe, if supported by the hardware. More... | |
virtual bool | CanDegauss (size_t i) |
Determines if a channel has a probe connected which supports the "degauss" feature. More... | |
virtual bool | ShouldDegauss (size_t i) |
Determines if a channel requires a degauss cycle (if supported) More... | |
virtual void | Degauss (size_t i) |
Performs an "degauss" cycle on the attached active probe, if supported by the hardware. More... | |
virtual bool | CanAverage (size_t i) |
Determines if the channel supports hardware averaging. More... | |
virtual size_t | GetNumAverages (size_t i) |
Returns the number of averages the channel is configured for. More... | |
virtual void | SetNumAverages (size_t i, size_t navg) |
Sets the number of hardware averages to use. More... | |
virtual std::string | GetProbeName (size_t i) |
Returns the name of the probe connected to the scope, if possible. More... | |
virtual bool | HasInputMux (size_t i) |
Checks if a channel has an input multiplexer. More... | |
virtual size_t | GetInputMuxSetting (size_t i) |
Gets the setting for a channel's input mux (if it has one) More... | |
virtual std::vector< std::string > | GetInputMuxNames (size_t i) |
Gets names for the input mux ports of a channel. More... | |
virtual void | SetInputMux (size_t i, size_t select) |
Sets the input mux for a channel. More... | |
virtual float | GetChannelOffset (size_t i, size_t stream)=0 |
Gets the offset, in volts, for a given channel. More... | |
virtual void | SetChannelOffset (size_t i, size_t stream, float offset)=0 |
Sets the offset for a given channel. More... | |
virtual bool | CanInvert (size_t i) |
Checks if a channel is capable of hardware polarity inversion. More... | |
virtual void | Invert (size_t i, bool invert) |
Enables hardware polarity inversion for a channel, if supported. More... | |
virtual bool | IsInverted (size_t i) |
Checks if hardware polarity inversion is enabled for a channel. More... | |
virtual Oscilloscope::TriggerMode | PollTrigger ()=0 |
Checks the curent trigger status. More... | |
virtual bool | PeekTriggerArmed () |
Checks if the trigger is armed directly on the instrument, without altering internal state or touching caches. More... | |
bool | WaitForTrigger (int timeout) |
Block until a trigger happens or a timeout elapses. More... | |
void | SetTrigger (Trigger *trigger) |
Sets a new trigger on the instrument and pushes changes. More... | |
virtual void | PushTrigger ()=0 |
Pushes changes made to m_trigger to the instrument. More... | |
Trigger * | GetTrigger (bool sync=false) |
Gets the current trigger. More... | |
virtual std::vector< std::string > | GetTriggerTypes () |
Gets a list of triggers this instrument supports. More... | |
virtual void | PullTrigger ()=0 |
Updates m_trigger with any changes made from the instrument side. More... | |
virtual void | Start ()=0 |
Starts the instrument in continuous trigger mode. More... | |
virtual void | StartSingleTrigger ()=0 |
Arms the trigger for a single acquistion. More... | |
virtual void | Stop ()=0 |
Stops triggering. More... | |
virtual void | ForceTrigger ()=0 |
Forces a single acquisition as soon as possible. More... | |
virtual bool | IsTriggerArmed ()=0 |
Checks if the trigger is currently armed. More... | |
virtual void | EnableTriggerOutput () |
Enables the trigger output, configuring a shared auxiliary port for this purpose if needed. More... | |
virtual std::vector< uint64_t > | GetSampleRatesNonInterleaved ()=0 |
Get the legal sampling rates (in Hz) for this scope in all-channels mode. More... | |
virtual std::vector< uint64_t > | GetSampleRatesInterleaved ()=0 |
Get the legal sampling rates (in Hz) for this scope in combined-channels mode. More... | |
virtual uint64_t | GetSampleRate ()=0 |
Gets the current sampling rate (in Hz) of this scope. More... | |
virtual bool | IsInterleaving ()=0 |
Checks if the scope is currently combining channels. More... | |
virtual bool | SetInterleaving (bool combine)=0 |
Configures the scope to combine channels. More... | |
virtual bool | CanInterleave () |
Returns true if we have no interleave conflicts, false if we have conflicts. More... | |
virtual std::set< InterleaveConflict > | GetInterleaveConflicts ()=0 |
virtual std::vector< uint64_t > | GetSampleDepthsNonInterleaved ()=0 |
Get the legal memory depths for this scope in all-channels mode. More... | |
virtual std::vector< uint64_t > | GetSampleDepthsInterleaved ()=0 |
Get the legal memory depths for this scope in combined-channels mode. More... | |
virtual uint64_t | GetSampleDepth ()=0 |
Gets the current sample depth of this scope. More... | |
virtual void | SetSampleDepth (uint64_t depth)=0 |
Sets the sample depth of the scope. More... | |
virtual void | SetSampleRate (uint64_t rate)=0 |
Sets the sample rate of the scope, in Hz. More... | |
virtual bool | IsSamplingModeAvailable (SamplingMode mode) |
Returns true if the requested sampling mode is available with the current instrument configuration. More... | |
virtual SamplingMode | GetSamplingMode () |
Gets the current sampling mode of the instrument. More... | |
virtual void | SetSamplingMode (SamplingMode mode) |
Sets the current sampling mode of the instrument. More... | |
virtual void | SetUseExternalRefclk (bool external) |
Configures the instrument's clock source. More... | |
virtual void | SetTriggerOffset (int64_t offset)=0 |
Sets the trigger offset. More... | |
virtual int64_t | GetTriggerOffset ()=0 |
Gets the trigger offset. More... | |
virtual void | SetDeskewForChannel (size_t channel, int64_t skew) |
Sets the deskew setting for a channel. More... | |
virtual int64_t | GetDeskewForChannel (size_t channel) |
Gets the deskew setting for a channel. More... | |
virtual std::vector< AnalogBank > | GetAnalogBanks () |
Gets the analog banks for this instrument. More... | |
virtual AnalogBank | GetAnalogBank (size_t channel) |
Gets the bank containing a given channel. More... | |
virtual bool | IsADCModeConfigurable () |
Returns true if the ADC is configurable, false if it can only run in one mode. More... | |
virtual std::vector< std::string > | GetADCModeNames (size_t channel) |
Gets the names of the ADC modes for the bank a given channel is located in. More... | |
virtual size_t | GetADCMode (size_t channel) |
Gets the ADC mode for a channel. More... | |
virtual void | SetADCMode (size_t channel, size_t mode) |
Sets the ADC mode for a channel. More... | |
virtual std::vector< DigitalBank > | GetDigitalBanks () |
Gets the digital channel banks for this instrument. More... | |
virtual DigitalBank | GetDigitalBank (size_t channel) |
Gets the bank containing a given channel. More... | |
virtual bool | IsDigitalHysteresisConfigurable () |
Checks if digital input hysteresis is configurable or fixed. More... | |
virtual bool | IsDigitalThresholdConfigurable () |
Checks if digital input threshold is configurable or fixed. More... | |
virtual float | GetDigitalHysteresis (size_t channel) |
Gets the hysteresis for a digital input. More... | |
virtual float | GetDigitalThreshold (size_t channel) |
Gets the threshold for a digital input. More... | |
virtual void | SetDigitalHysteresis (size_t channel, float level) |
Sets the hysteresis for a digital input. More... | |
virtual void | SetDigitalThreshold (size_t channel, float level) |
Gets the threshold for a digital input. More... | |
virtual void | SetSpan (int64_t span) |
Sets the span for frequency-domain channels. More... | |
virtual int64_t | GetSpan () |
Gets the span for frequency-domain channels. More... | |
virtual void | SetCenterFrequency (size_t channel, int64_t freq) |
Sets the center frequency for frequency-domain channels. More... | |
virtual int64_t | GetCenterFrequency (size_t channel) |
Gets the center frequency for a frequency-domain channel. More... | |
virtual void | SetResolutionBandwidth (int64_t rbw) |
Gets the resolution bandwidth for frequency-domain channels. More... | |
virtual int64_t | GetResolutionBandwidth () |
Gets the resolution bandwidth for frequency-domain channels. More... | |
virtual bool | HasFrequencyControls () |
Returns true if the instrument has at least one frequency-domain channel. More... | |
virtual bool | HasResolutionBandwidth () |
Returns true if the instrument has a resolution bandwidth setting. More... | |
virtual bool | HasTimebaseControls () |
Returns true if the instrument has at least one time-domain channel. More... | |
bool | HasPendingWaveforms () |
void | ClearPendingWaveforms () |
Discard any pending waveforms that haven't yet been processed. | |
size_t | GetPendingWaveformCount () |
virtual bool | PopPendingWaveform () |
Pops the queue of pending waveforms and updates each channel with a new waveform. | |
virtual bool | IsAppendingToWaveform () |
Checks if we are appending to the existing waveform or creating a new one. | |
bool | HasPendingDiagnosticLogMessages () |
std::string | PopPendingDiagnosticLogMessage () |
std::map< std::string, FilterParameter * > & | GetDiagnosticsValues () |
bool | FreeWaveformPools () |
Free all waveforms in our pool to reclaim memory. More... | |
void | AddWaveformToAnalogPool (WaveformBase *w) |
void | AddWaveformToDigitalPool (WaveformBase *w) |
![]() | |
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 void | Convert8BitSamples (float *pout, const int8_t *pin, float gain, float offset, size_t count) |
Converts 8-bit ADC samples to floating point. | |
static void | Convert8BitSamplesGeneric (float *pout, const int8_t *pin, float gain, float offset, size_t count) |
Generic backend for Convert8BitSamples() | |
static void | ConvertUnsigned8BitSamples (float *pout, const uint8_t *pin, float gain, float offset, size_t count) |
Converts Unsigned 8-bit ADC samples to floating point. | |
static void | ConvertUnsigned8BitSamplesGeneric (float *pout, const uint8_t *pin, float gain, float offset, size_t count) |
Generic backend for ConvertUnsigned8BitSamples() | |
static void | Convert16BitSamples (float *pout, const int16_t *pin, float gain, float offset, size_t count) |
Converts 16-bit ADC samples to floating point. | |
static void | Convert16BitSamplesGeneric (float *pout, const int16_t *pin, float gain, float offset, size_t count) |
Converts raw ADC samples to floating point. | |
static void | DoAddDriverClass (std::string name, CreateProcType proc) |
static void | EnumDrivers (std::vector< std::string > &names) |
static std::shared_ptr< Oscilloscope > | CreateOscilloscope (std::string driver, SCPITransport *transport) |
Protected Types | |
typedef std::map< StreamDescriptor, WaveformBase * > | SequenceSet |
typedef std::map< std::string, CreateProcType > | CreateMapType |
Protected Member Functions | |
void | ChannelsDownloadStarted () |
Helper method called by drivers to reset all channels to "waiting to download" state. | |
void | ChannelsDownloadStatusUpdate (size_t ch, InstrumentChannel::DownloadState state, float progress) |
Helper method called by drivers to set one channel's download status and update its download progress. Be aware that there is a measurement on ngscopeclient UI of the time spent between the download start and the progress of the last enabled channel. This measurement is used to decide whether to display a progress bar or not. This download speed evaluation method only works if enabled channels are download sequencially in increasing numeric order or if all channels are downloaded at the same speed. More... | |
void | ChannelsDownloadFinished () |
Helper method called by drivers when waveform download is finished to reset all channels to "no download" state. | |
void | DoSerializeConfiguration (YAML::Node &node, IDTable &table) |
Serializes this oscilloscope's configuration to a YAML node. | |
void | DoLoadConfiguration (int version, const YAML::Node &node, IDTable &idmap) |
Load instrument and channel configuration from a save file. | |
void | DoPreLoadConfiguration (int version, const YAML::Node &node, IDTable &idmap, ConfigWarningList &list) |
Validate instrument and channel configuration from a save file. | |
void | AddDiagnosticLog (std::string message) |
UniformAnalogWaveform * | AllocateAnalogWaveform (const std::string &name) |
SparseDigitalWaveform * | AllocateDigitalWaveform (const std::string &name) |
Protected Attributes | |
std::list< SequenceSet > | m_pendingWaveforms |
std::mutex | m_pendingWaveformsMutex |
std::recursive_mutex | m_mutex |
std::deque< std::string > | m_diagnosticLogMessages |
std::map< std::string, FilterParameter * > | m_diagnosticValues |
Trigger * | m_trigger |
WaveformPool | m_analogWaveformPool |
WaveformPool | m_digitalWaveformPool |
![]() | |
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. | |
Static Protected Attributes | |
static CreateMapType | m_createprocs |
Additional Inherited Members | |
![]() | |
std::string | m_nickname |
Optional user-selected nickname of the instrument. More... | |
Generic representation of an oscilloscope, logic analyzer, or spectrum analyzer.
An Oscilloscope contains triggering logic and one or more OscilloscopeChannel objects.
typedef std::pair<OscilloscopeChannel*, OscilloscopeChannel* > Oscilloscope::InterleaveConflict |
Get the set of conflicting channels.
If any pair of channels in this list is enabled, channel interleaving is not possible.
|
virtual |
Performs an "auto zero" cycle on the attached active probe, if supported by the hardware.
i | Zero-based index of channel |
Reimplemented in LeCroyOscilloscope.
|
virtual |
Determines if a channel has a probe connected which supports the "auto zero" feature.
This is typically true for power rail and differential probes and false for most others.
i | Zero-based index of channel |
Reimplemented in LeCroyOscilloscope.
|
virtual |
Determines if the channel supports hardware averaging.
i | Zero-based index of channel |
Reimplemented in LeCroyOscilloscope.
|
virtual |
Determines if a channel has a probe connected which supports the "degauss" feature.
This is typically true for current probes and false for most others.
i | Zero-based index of channel |
Reimplemented in TektronixOscilloscope.
|
virtual |
Determines if a channel can be enabled.
True if the channel is available or is already enabled.
i | Zero-based index of channel |
The default implementation always returns true.
Reimplemented in DigilentOscilloscope, DSLabsOscilloscope, LeCroyOscilloscope, PicoOscilloscope, SiglentSCPIOscilloscope, TektronixOscilloscope, and ThunderScopeOscilloscope.
|
virtual |
Returns true if we have no interleave conflicts, false if we have conflicts.
Reimplemented in AntikernelLabsTriggerCrossbar, PicoOscilloscope, and UHDBridgeSDR.
|
virtual |
Checks if a channel is capable of hardware polarity inversion.
i | Zero-based index of channel |
Reimplemented in LeCroyOscilloscope, and SiglentSCPIOscilloscope.
|
protected |
Helper method called by drivers to set one channel's download status and update its download progress. Be aware that there is a measurement on ngscopeclient UI of the time spent between the download start and the progress of the last enabled channel. This measurement is used to decide whether to display a progress bar or not. This download speed evaluation method only works if enabled channels are download sequencially in increasing numeric order or if all channels are downloaded at the same speed.
ch | Zero-based index of channel |
state | The new InstrumentChannel::DownloadState for this channel |
progress | A float value ranging from 0 to 1 to represent the download progress |
|
virtual |
Performs an "degauss" cycle on the attached active probe, if supported by the hardware.
i | Zero-based index of channel |
Reimplemented in TektronixOscilloscope.
|
pure virtual |
Turn a channel off, given the index.
This function may optionally configure channel interleaving, if supported in hardware.
i | Zero-based index of channel |
Implemented in AgilentOscilloscope, AntikernelLabsOscilloscope, AntikernelLabsTriggerCrossbar, AntikernelLogicAnalyzer, DemoOscilloscope, KeysightDCA, LeCroyFWPOscilloscope, LeCroyOscilloscope, MockOscilloscope, PicoOscilloscope, RemoteBridgeOscilloscope, RigolOscilloscope, RohdeSchwarzOscilloscope, RSRTO6Oscilloscope, SCPISA, SCPISDR, SCPISpectrometer, SCPIVNA, SiglentSCPIOscilloscope, TektronixOscilloscope, and UHDBridgeSDR.
|
pure virtual |
Turn a channel on, given the index.
i | Zero-based index of channel |
Implemented in AgilentOscilloscope, AntikernelLabsOscilloscope, AntikernelLabsTriggerCrossbar, AntikernelLogicAnalyzer, DemoOscilloscope, KeysightDCA, LeCroyFWPOscilloscope, LeCroyOscilloscope, MockOscilloscope, PicoOscilloscope, RemoteBridgeOscilloscope, RigolOscilloscope, RohdeSchwarzOscilloscope, RSRTO6Oscilloscope, SCPISA, SCPISDR, SCPISpectrometer, SCPIVNA, SiglentSCPIOscilloscope, TektronixOscilloscope, and UHDBridgeSDR.
|
virtual |
Enables the trigger output, configuring a shared auxiliary port for this purpose if needed.
The default implementation does nothing, and is intended for instruments where the trigger output is always enabled.
Reimplemented in LeCroyOscilloscope, SiglentSCPIOscilloscope, and TektronixOscilloscope.
|
virtual |
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 in AgilentOscilloscope, AntikernelLabsOscilloscope, AseqSpectrometer, DigilentOscilloscope, DSLabsOscilloscope, KeysightDCA, LeCroyOscilloscope, PicoOscilloscope, PicoVNA, RigolOscilloscope, RohdeSchwarzOscilloscope, RSRTO6Oscilloscope, SiglentSCPIOscilloscope, TektronixOscilloscope, ThunderScopeOscilloscope, and UHDBridgeSDR.
|
pure virtual |
Forces a single acquisition as soon as possible.
Note that PollTrigger() may not return 'triggered' immediately, due to command processing latency.
Implemented in AgilentOscilloscope, AntikernelLabsOscilloscope, AntikernelLabsTriggerCrossbar, AntikernelLogicAnalyzer, AseqSpectrometer, CopperMountainVNA, DemoOscilloscope, DSLabsOscilloscope, KeysightDCA, LeCroyOscilloscope, MockOscilloscope, NanoVNA, PicoVNA, RemoteBridgeOscilloscope, RigolOscilloscope, RohdeSchwarzOscilloscope, RSRTO6Oscilloscope, SCPISA, SiglentSCPIOscilloscope, TektronixOscilloscope, and ThunderScopeOscilloscope.
|
inline |
Free all waveforms in our pool to reclaim memory.
|
virtual |
Gets the ADC mode for a channel.
Reimplemented in DemoOscilloscope, DigilentOscilloscope, DSLabsOscilloscope, LeCroyOscilloscope, PicoOscilloscope, and SiglentSCPIOscilloscope.
|
virtual |
Gets the names of the ADC modes for the bank a given channel is located in.
ADC mode names are usually descriptive, like "12 bit, 640 Msps max" or "8 bit, 1 Gsps max"; but some instruments may use more generic
channel | Index of the channel to query modes for |
Reimplemented in DemoOscilloscope, DigilentOscilloscope, DSLabsOscilloscope, LeCroyOscilloscope, PicoOscilloscope, and SiglentSCPIOscilloscope.
|
virtual |
Gets the bank containing a given channel.
Reimplemented in DemoOscilloscope, DigilentOscilloscope, DSLabsOscilloscope, and PicoOscilloscope.
|
virtual |
Gets the analog banks for this instrument.
A bank is a set of one or more channels all sharing a common ADC configuration.
Reimplemented in DemoOscilloscope, DigilentOscilloscope, DSLabsOscilloscope, and PicoOscilloscope.
|
pure virtual |
Gets the set of legal coupling values for an input channel.
i | Zero-based index of channel |
Implemented in AgilentOscilloscope, AntikernelLabsOscilloscope, AntikernelLabsTriggerCrossbar, AntikernelLogicAnalyzer, DemoOscilloscope, DigilentOscilloscope, DSLabsOscilloscope, KeysightDCA, LeCroyOscilloscope, MockOscilloscope, PicoOscilloscope, RigolOscilloscope, RohdeSchwarzOscilloscope, RSRTO6Oscilloscope, SCPISA, SCPISDR, SCPISpectrometer, SCPIVNA, SiglentSCPIOscilloscope, TektronixOscilloscope, ThunderScopeOscilloscope, and UHDBridgeSDR.
|
virtual |
Gets the center frequency for a frequency-domain channel.
channel | Channel number |
Reimplemented in CopperMountainVNA, NanoVNA, PicoVNA, TektronixOscilloscope, TinySA, and UHDBridgeSDR.
|
pure virtual |
Gets the probe attenuation for an input channel.
Note that this function returns attenuation, not gain. For example, a 10x probe would return 10 and not 0.1.
i | Zero-based index of channel |
Implemented in AgilentOscilloscope, AntikernelLabsOscilloscope, AntikernelLabsTriggerCrossbar, AntikernelLogicAnalyzer, DemoOscilloscope, DigilentOscilloscope, DSLabsOscilloscope, KeysightDCA, LeCroyOscilloscope, MockOscilloscope, PicoOscilloscope, RigolOscilloscope, RohdeSchwarzOscilloscope, RSRTO6Oscilloscope, SCPISA, SCPISDR, SCPISpectrometer, SCPIVNA, SiglentSCPIOscilloscope, TektronixOscilloscope, ThunderScopeOscilloscope, and UHDBridgeSDR.
|
pure virtual |
Gets the bandwidth limit for an input channel.
i | Zero-based index of channel |
Implemented in AgilentOscilloscope, AntikernelLabsOscilloscope, AntikernelLabsTriggerCrossbar, AntikernelLogicAnalyzer, DemoOscilloscope, DigilentOscilloscope, DSLabsOscilloscope, KeysightDCA, LeCroyOscilloscope, MockOscilloscope, PicoOscilloscope, RigolOscilloscope, RohdeSchwarzOscilloscope, RSRTO6Oscilloscope, SCPISA, SCPISDR, SCPISpectrometer, SCPIVNA, SiglentSCPIOscilloscope, TektronixOscilloscope, ThunderScopeOscilloscope, and UHDBridgeSDR.
|
virtual |
Gets the set of available bandwidth limiters for an input channel.
i | Zero-based index of channel |
Reimplemented in LeCroyOscilloscope, RigolOscilloscope, RSRTO6Oscilloscope, SiglentSCPIOscilloscope, TektronixOscilloscope, and ThunderScopeOscilloscope.
|
pure virtual |
Gets the coupling used for an input channel.
i | Zero-based index of channel |
Implemented in AgilentOscilloscope, AntikernelLabsOscilloscope, AntikernelLabsTriggerCrossbar, AntikernelLogicAnalyzer, DemoOscilloscope, KeysightDCA, LeCroyOscilloscope, MockOscilloscope, RemoteBridgeOscilloscope, RigolOscilloscope, RohdeSchwarzOscilloscope, RSRTO6Oscilloscope, SCPISA, SCPISDR, SCPISpectrometer, SCPIVNA, SiglentSCPIOscilloscope, TektronixOscilloscope, and UHDBridgeSDR.
|
pure virtual |
Gets the offset, in volts, for a given channel.
i | Zero-based index of channel |
stream | Zero-based index of stream within channel (0 if only one stream, as is normally the case) |
Implemented in AgilentOscilloscope, AntikernelLabsOscilloscope, AntikernelLabsTriggerCrossbar, AntikernelLogicAnalyzer, DemoOscilloscope, KeysightDCA, LeCroyOscilloscope, MockOscilloscope, RemoteBridgeOscilloscope, RigolOscilloscope, RohdeSchwarzOscilloscope, RSRTO6Oscilloscope, SCPISA, SCPISDR, SCPISpectrometer, SCPIVNA, SiglentSCPIOscilloscope, TektronixOscilloscope, and UHDBridgeSDR.
|
pure virtual |
Gets the range of the current channel configuration.
The range is the distance, in volts, between the most negative/smallest and most positive/largest voltage which the ADC can represent using the current vertical gain configuration. This can be calculated as the number of vertical divisions times the number of volts per division.
The range does not depend on the offset.
i | Zero-based index of channel |
stream | Zero-based index of stream within channel (0 if only one stream, as is normally the case) |
Implemented in AgilentOscilloscope, AntikernelLabsOscilloscope, AntikernelLabsTriggerCrossbar, AntikernelLogicAnalyzer, DemoOscilloscope, KeysightDCA, LeCroyOscilloscope, MockOscilloscope, RemoteBridgeOscilloscope, RigolOscilloscope, RohdeSchwarzOscilloscope, RSRTO6Oscilloscope, SCPISA, SCPISDR, SCPISpectrometer, SCPIVNA, SiglentSCPIOscilloscope, TektronixOscilloscope, and UHDBridgeSDR.
|
virtual |
Gets the deskew setting for a channel.
The default implementation returns zero, and is suitable for lower-end instruments that do not support deskew.
Reimplemented in LeCroyOscilloscope, SiglentSCPIOscilloscope, and TektronixOscilloscope.
|
virtual |
Gets the bank containing a given channel.
Reimplemented in DigilentOscilloscope, DSLabsOscilloscope, LeCroyOscilloscope, PicoOscilloscope, RSRTO6Oscilloscope, SiglentSCPIOscilloscope, and TektronixOscilloscope.
|
virtual |
Gets the digital channel banks for this instrument.
A bank is a set of one or more channels all sharing a common threshold and hysteresis setting.
Reimplemented in DigilentOscilloscope, DSLabsOscilloscope, LeCroyOscilloscope, PicoOscilloscope, RSRTO6Oscilloscope, SiglentSCPIOscilloscope, and TektronixOscilloscope.
|
virtual |
Gets the hysteresis for a digital input.
Reimplemented in DigilentOscilloscope, DSLabsOscilloscope, LeCroyOscilloscope, PicoOscilloscope, SiglentSCPIOscilloscope, and TektronixOscilloscope.
|
virtual |
Gets the threshold for a digital input.
Reimplemented in DigilentOscilloscope, DSLabsOscilloscope, LeCroyOscilloscope, PicoOscilloscope, RSRTO6Oscilloscope, SiglentSCPIOscilloscope, and TektronixOscilloscope.
int Oscilloscope::GetEnabledChannelCount | ( | ) |
Returns the number of enabled channels for this oscilloscope.
|
pure virtual |
Returns the external trigger input channel, if we have one.
Note that some very high end oscilloscopes have multiple external trigger inputs. We do not currently support this.
Implemented in AgilentOscilloscope, AntikernelLabsOscilloscope, AntikernelLabsTriggerCrossbar, AntikernelLogicAnalyzer, AseqSpectrometer, CopperMountainVNA, DemoOscilloscope, DigilentOscilloscope, DSLabsOscilloscope, KeysightDCA, LeCroyOscilloscope, MockOscilloscope, NanoVNA, PicoOscilloscope, PicoVNA, RigolOscilloscope, RohdeSchwarzOscilloscope, RSRTO6Oscilloscope, SCPISA, SiglentSCPIOscilloscope, TektronixOscilloscope, ThunderScopeOscilloscope, and UHDBridgeSDR.
|
virtual |
Gets names for the input mux ports of a channel.
i | Zero-based index of channel |
Reimplemented in LeCroyOscilloscope.
|
virtual |
Gets the setting for a channel's input mux (if it has one)
i | Zero-based index of channel |
Reimplemented in LeCroyOscilloscope.
|
virtual |
Returns the number of averages the channel is configured for.
i | Zero-based index of channel |
Reimplemented in LeCroyOscilloscope.
|
inline |
Gets a channel by index.
i | Zero-based index of channel |
|
virtual |
Returns the name of the probe connected to the scope, if possible.
If a passive or no probe is connected, or the instrument driver does not support probe identification, an empty string may be returned.
i | Zero-based index of channel |
Reimplemented in LeCroyOscilloscope, RSRTO6Oscilloscope, and TektronixOscilloscope.
|
virtual |
Gets the resolution bandwidth for frequency-domain channels.
Reimplemented in CopperMountainVNA, NanoVNA, PicoVNA, SCPISA, and TektronixOscilloscope.
|
pure virtual |
Gets the current sample depth of this scope.
Implemented in AgilentOscilloscope, AntikernelLabsOscilloscope, AntikernelLabsTriggerCrossbar, AntikernelLogicAnalyzer, AseqSpectrometer, CopperMountainVNA, DemoOscilloscope, KeysightDCA, LeCroyOscilloscope, MockOscilloscope, NanoVNA, PicoOscilloscope, PicoVNA, RemoteBridgeOscilloscope, RigolOscilloscope, RohdeSchwarzOscilloscope, RSRTO6Oscilloscope, SCPISA, SiglentSCPIOscilloscope, and TektronixOscilloscope.
|
pure virtual |
Get the legal memory depths for this scope in combined-channels mode.
Implemented in AgilentOscilloscope, AntikernelLabsOscilloscope, AntikernelLabsTriggerCrossbar, AntikernelLogicAnalyzer, DemoOscilloscope, DigilentOscilloscope, DSLabsOscilloscope, KeysightDCA, LeCroyFWPOscilloscope, LeCroyOscilloscope, MockOscilloscope, PicoOscilloscope, RigolOscilloscope, RohdeSchwarzOscilloscope, RSRTO6Oscilloscope, SCPISA, SCPISDR, SCPISpectrometer, SCPIVNA, SiglentSCPIOscilloscope, TektronixOscilloscope, and ThunderScopeOscilloscope.
|
pure virtual |
Get the legal memory depths for this scope in all-channels mode.
Implemented in AgilentOscilloscope, AntikernelLabsOscilloscope, AntikernelLabsTriggerCrossbar, AntikernelLogicAnalyzer, AseqSpectrometer, CopperMountainVNA, DemoOscilloscope, DigilentOscilloscope, DSLabsOscilloscope, KeysightDCA, LeCroyFWPOscilloscope, LeCroyOscilloscope, MockOscilloscope, NanoVNA, PicoOscilloscope, PicoVNA, RigolOscilloscope, RohdeSchwarzOscilloscope, RSRTO6Oscilloscope, SCPISA, SiglentSCPIOscilloscope, TektronixOscilloscope, ThunderScopeOscilloscope, TinySA, and UHDBridgeSDR.
|
pure virtual |
Gets the current sampling rate (in Hz) of this scope.
Implemented in AgilentOscilloscope, AntikernelLabsOscilloscope, AntikernelLabsTriggerCrossbar, AntikernelLogicAnalyzer, AseqSpectrometer, DemoOscilloscope, KeysightDCA, LeCroyOscilloscope, MockOscilloscope, PicoOscilloscope, RemoteBridgeOscilloscope, RigolOscilloscope, RohdeSchwarzOscilloscope, RSRTO6Oscilloscope, SCPISA, SCPISDR, SCPISpectrometer, SCPIVNA, SiglentSCPIOscilloscope, TektronixOscilloscope, and UHDBridgeSDR.
|
pure virtual |
Get the legal sampling rates (in Hz) for this scope in combined-channels mode.
Implemented in AgilentOscilloscope, AntikernelLabsOscilloscope, AntikernelLabsTriggerCrossbar, AntikernelLogicAnalyzer, DemoOscilloscope, DigilentOscilloscope, DSLabsOscilloscope, KeysightDCA, LeCroyOscilloscope, MockOscilloscope, PicoOscilloscope, RigolOscilloscope, RohdeSchwarzOscilloscope, RSRTO6Oscilloscope, SCPISA, SCPISDR, SCPISpectrometer, SCPIVNA, SiglentSCPIOscilloscope, TektronixOscilloscope, and ThunderScopeOscilloscope.
|
pure virtual |
Get the legal sampling rates (in Hz) for this scope in all-channels mode.
Implemented in AgilentOscilloscope, AntikernelLabsOscilloscope, AntikernelLabsTriggerCrossbar, AntikernelLogicAnalyzer, DemoOscilloscope, DigilentOscilloscope, DSLabsOscilloscope, KeysightDCA, LeCroyOscilloscope, MockOscilloscope, PicoOscilloscope, RigolOscilloscope, RohdeSchwarzOscilloscope, RSRTO6Oscilloscope, SCPISA, SCPISDR, SCPISpectrometer, SCPIVNA, SiglentSCPIOscilloscope, TektronixOscilloscope, ThunderScopeOscilloscope, and UHDBridgeSDR.
|
virtual |
Gets the current sampling mode of the instrument.
The default implementation returns "real time"
Reimplemented in LeCroyOscilloscope.
|
virtual |
Gets the span for frequency-domain channels.
Reimplemented in CopperMountainVNA, NanoVNA, PicoVNA, TektronixOscilloscope, TinySA, and UHDBridgeSDR.
|
inline |
Gets the current trigger.
Ownership of the trigger object is retained by the Oscilloscope. This pointer may be invalidated by any future call to GetTrigger() or PullTrigger().
|
pure virtual |
Gets the trigger offset.
Implemented in AgilentOscilloscope, AntikernelLabsOscilloscope, AntikernelLabsTriggerCrossbar, AntikernelLogicAnalyzer, DemoOscilloscope, KeysightDCA, LeCroyOscilloscope, MockOscilloscope, PicoOscilloscope, RemoteBridgeOscilloscope, RigolOscilloscope, RohdeSchwarzOscilloscope, RSRTO6Oscilloscope, SCPISA, SCPISDR, SCPISpectrometer, SCPIVNA, SiglentSCPIOscilloscope, TektronixOscilloscope, and UHDBridgeSDR.
|
virtual |
Gets a list of triggers this instrument supports.
Reimplemented in AgilentOscilloscope, KeysightDCA, LeCroyOscilloscope, SiglentSCPIOscilloscope, and TektronixOscilloscope.
|
virtual |
Returns true if the instrument has at least one frequency-domain channel.
Reimplemented in SCPISA, SCPISDR, SCPISpectrometer, SCPIVNA, TektronixOscilloscope, and UHDBridgeSDR.
|
virtual |
Checks if a channel has an input multiplexer.
i | Zero-based index of channel |
Reimplemented in LeCroyOscilloscope.
|
virtual |
Returns true if the instrument has a resolution bandwidth setting.
Only valid if HasFrequencyControls() returns tre.
If false, GetResolutionBandwidth() always returns 1 and SetResolutionBandwidth() does nothing.
Reimplemented in UHDBridgeSDR.
|
virtual |
Returns true if the instrument has at least one time-domain channel.
Reimplemented in SCPISA, SCPISDR, SCPISpectrometer, SCPIVNA, and UHDBridgeSDR.
|
pure virtual |
Returns the instrument's identification string.
This function MUST NOT CACHE the return value and is safe to use as a barrier synchronization to ensure that the instrument has received and processed all previous commands.
Implemented in SCPIOscilloscope, AntikernelLogicAnalyzer, DemoOscilloscope, and MockOscilloscope.
|
virtual |
Enables hardware polarity inversion for a channel, if supported.
i | Zero-based index of channel |
invert | True to invert, false for normal operation |
Reimplemented in LeCroyOscilloscope, and SiglentSCPIOscilloscope.
|
virtual |
Returns true if the ADC is configurable, false if it can only run in one mode.
Reimplemented in DemoOscilloscope, DigilentOscilloscope, DSLabsOscilloscope, LeCroyOscilloscope, PicoOscilloscope, and SiglentSCPIOscilloscope.
|
pure virtual |
Checks if a channel is enabled in hardware.
Implemented in AgilentOscilloscope, AntikernelLabsOscilloscope, AntikernelLabsTriggerCrossbar, AntikernelLogicAnalyzer, DemoOscilloscope, KeysightDCA, LeCroyOscilloscope, MockOscilloscope, PicoOscilloscope, RemoteBridgeOscilloscope, RigolOscilloscope, RohdeSchwarzOscilloscope, RSRTO6Oscilloscope, SCPISA, SCPISDR, SCPISpectrometer, SCPIVNA, SiglentSCPIOscilloscope, TektronixOscilloscope, and UHDBridgeSDR.
|
virtual |
Checks if digital input hysteresis is configurable or fixed.
Reimplemented in DigilentOscilloscope, DSLabsOscilloscope, LeCroyOscilloscope, PicoOscilloscope, RSRTO6Oscilloscope, SiglentSCPIOscilloscope, and TektronixOscilloscope.
|
virtual |
Checks if digital input threshold is configurable or fixed.
Reimplemented in DigilentOscilloscope, DSLabsOscilloscope, LeCroyOscilloscope, PicoOscilloscope, RSRTO6Oscilloscope, SiglentSCPIOscilloscope, and TektronixOscilloscope.
|
pure virtual |
Checks if the scope is currently combining channels.
Implemented in AgilentOscilloscope, AntikernelLabsOscilloscope, AntikernelLabsTriggerCrossbar, AntikernelLogicAnalyzer, DemoOscilloscope, DigilentOscilloscope, DSLabsOscilloscope, KeysightDCA, LeCroyOscilloscope, MockOscilloscope, PicoOscilloscope, RigolOscilloscope, RohdeSchwarzOscilloscope, RSRTO6Oscilloscope, SCPISA, SCPISDR, SCPISpectrometer, SCPIVNA, SiglentSCPIOscilloscope, TektronixOscilloscope, and ThunderScopeOscilloscope.
|
virtual |
Checks if hardware polarity inversion is enabled for a channel.
i | Zero-based index of channel |
Reimplemented in LeCroyOscilloscope, and SiglentSCPIOscilloscope.
|
virtual |
Checks if the instrument is currently online.
Reimplemented in MockOscilloscope.
|
virtual |
Returns true if the requested sampling mode is available with the current instrument configuration.
The default implementation returns true for real-time only.
Reimplemented in LeCroyOscilloscope.
|
pure virtual |
Checks if the trigger is currently armed.
Implemented in AgilentOscilloscope, AntikernelLabsOscilloscope, AntikernelLabsTriggerCrossbar, AntikernelLogicAnalyzer, AseqSpectrometer, CopperMountainVNA, DemoOscilloscope, KeysightDCA, LeCroyOscilloscope, MockOscilloscope, NanoVNA, PicoOscilloscope, PicoVNA, RemoteBridgeOscilloscope, RigolOscilloscope, RohdeSchwarzOscilloscope, RSRTO6Oscilloscope, SCPISA, SiglentSCPIOscilloscope, and TektronixOscilloscope.
|
virtual |
Checks if the trigger is armed directly on the instrument, without altering internal state or touching caches.
The default implementation of this function simply calls PollTrigger(). This function should be overridden by the driver class if PollTrigger() changes any internal driver state or accesses cached state (including a clientside "trigger armed" flag).
In particular, the multi-scope synchronization feature requires that this function not return true until the instment has confirmed the arm command has completely executed. Otherwise we risk losing trigger events by arming the primary before the secondary is ready to accept a trigger.
Reimplemented in LeCroyOscilloscope, RemoteBridgeOscilloscope, and TektronixOscilloscope.
|
pure virtual |
Checks the curent trigger status.
Implemented in AgilentOscilloscope, AntikernelLabsOscilloscope, AntikernelLabsTriggerCrossbar, AntikernelLogicAnalyzer, AseqSpectrometer, CopperMountainVNA, DemoOscilloscope, DigilentOscilloscope, DSLabsOscilloscope, KeysightDCA, LeCroyFWPOscilloscope, LeCroyOscilloscope, MockOscilloscope, NanoVNA, PicoOscilloscope, PicoVNA, RigolOscilloscope, RohdeSchwarzOscilloscope, RSRTO6Oscilloscope, SCPISA, SiglentSCPIOscilloscope, TektronixHSIOscilloscope, TektronixOscilloscope, ThunderScopeOscilloscope, and UHDBridgeSDR.
|
pure virtual |
Updates m_trigger with any changes made from the instrument side.
Implemented in AgilentOscilloscope, AntikernelLabsOscilloscope, AntikernelLabsTriggerCrossbar, AntikernelLogicAnalyzer, AseqSpectrometer, CopperMountainVNA, DemoOscilloscope, KeysightDCA, LeCroyOscilloscope, MockOscilloscope, NanoVNA, PicoVNA, RemoteBridgeOscilloscope, RigolOscilloscope, RohdeSchwarzOscilloscope, RSRTO6Oscilloscope, SCPISA, SiglentSCPIOscilloscope, and TektronixOscilloscope.
|
pure virtual |
Pushes changes made to m_trigger to the instrument.
Implemented in AgilentOscilloscope, AntikernelLabsOscilloscope, AntikernelLabsTriggerCrossbar, AntikernelLogicAnalyzer, AseqSpectrometer, CopperMountainVNA, DemoOscilloscope, DigilentOscilloscope, KeysightDCA, LeCroyOscilloscope, MockOscilloscope, NanoVNA, PicoOscilloscope, PicoVNA, RemoteBridgeOscilloscope, RigolOscilloscope, RohdeSchwarzOscilloscope, RSRTO6Oscilloscope, SCPISA, SiglentSCPIOscilloscope, and TektronixOscilloscope.
|
virtual |
Sets the ADC mode for a channel.
Reimplemented in DemoOscilloscope, DigilentOscilloscope, DSLabsOscilloscope, LeCroyOscilloscope, PicoOscilloscope, and SiglentSCPIOscilloscope.
|
virtual |
Sets the center frequency for frequency-domain channels.
channel | Channel number |
freq | Center frequency, in Hz |
Reimplemented in CopperMountainVNA, NanoVNA, PicoVNA, TektronixOscilloscope, TinySA, and UHDBridgeSDR.
|
pure virtual |
Sets the probe attenuation used for an input channel.
i | Zero-based index of channel |
atten | Attenuation factor |
Implemented in AgilentOscilloscope, AntikernelLabsOscilloscope, AntikernelLabsTriggerCrossbar, AntikernelLogicAnalyzer, DemoOscilloscope, DigilentOscilloscope, DSLabsOscilloscope, KeysightDCA, LeCroyOscilloscope, MockOscilloscope, PicoOscilloscope, RigolOscilloscope, RohdeSchwarzOscilloscope, RSRTO6Oscilloscope, SCPISA, SCPISDR, SCPISpectrometer, SCPIVNA, SiglentSCPIOscilloscope, TektronixOscilloscope, ThunderScopeOscilloscope, and UHDBridgeSDR.
|
pure virtual |
Sets the bandwidth limit for an input channel.
i | Zero-based index of channel |
limit_mhz | Bandwidth limit, in MHz. Zero means "no bandwidth limit". |
Implemented in AgilentOscilloscope, AntikernelLabsOscilloscope, AntikernelLabsTriggerCrossbar, AntikernelLogicAnalyzer, DemoOscilloscope, DigilentOscilloscope, DSLabsOscilloscope, KeysightDCA, LeCroyOscilloscope, MockOscilloscope, PicoOscilloscope, RigolOscilloscope, RohdeSchwarzOscilloscope, RSRTO6Oscilloscope, SCPISA, SCPISDR, SCPISpectrometer, SCPIVNA, SiglentSCPIOscilloscope, TektronixOscilloscope, ThunderScopeOscilloscope, and UHDBridgeSDR.
|
pure virtual |
Sets the coupling used for an input channel.
i | Zero-based index of channel |
Implemented in AgilentOscilloscope, AntikernelLabsOscilloscope, AntikernelLabsTriggerCrossbar, AntikernelLogicAnalyzer, DemoOscilloscope, KeysightDCA, LeCroyOscilloscope, MockOscilloscope, RemoteBridgeOscilloscope, RigolOscilloscope, RohdeSchwarzOscilloscope, RSRTO6Oscilloscope, SCPISA, SCPISDR, SCPISpectrometer, SCPIVNA, SiglentSCPIOscilloscope, TektronixOscilloscope, ThunderScopeOscilloscope, and UHDBridgeSDR.
|
pure virtual |
Sets the offset for a given channel.
i | Zero-based index of channel |
stream | Zero-based index of stream within channel (0 if only one stream, as is normally the case) |
offset | Offset, in volts |
Implemented in AgilentOscilloscope, AntikernelLabsOscilloscope, AntikernelLabsTriggerCrossbar, AntikernelLogicAnalyzer, DemoOscilloscope, KeysightDCA, LeCroyOscilloscope, MockOscilloscope, RemoteBridgeOscilloscope, RigolOscilloscope, RohdeSchwarzOscilloscope, RSRTO6Oscilloscope, SCPISA, SCPISDR, SCPISpectrometer, SCPIVNA, SiglentSCPIOscilloscope, TektronixOscilloscope, and UHDBridgeSDR.
|
pure virtual |
Sets the range of the current channel configuration.
The range is the distance, in volts, between the most negative/smallest and most positive/largest voltage which the ADC can represent using the current vertical gain configuration. This can be calculated as the number of vertical divisions times the number of volts per division.
The range does not depend on the offset.
i | Zero-based index of channel |
stream | Zero-based index of stream within channel (0 if only one stream, as is normally the case) |
range | Voltage range |
Implemented in AgilentOscilloscope, AntikernelLabsOscilloscope, AntikernelLabsTriggerCrossbar, AntikernelLogicAnalyzer, DemoOscilloscope, KeysightDCA, LeCroyOscilloscope, MockOscilloscope, RemoteBridgeOscilloscope, RigolOscilloscope, RohdeSchwarzOscilloscope, RSRTO6Oscilloscope, SCPISA, SCPISDR, SCPISpectrometer, SCPIVNA, SiglentSCPIOscilloscope, TektronixOscilloscope, and UHDBridgeSDR.
|
virtual |
Sets the deskew setting for a channel.
channel | The channel to deskew |
skew | Skew value, in femtoseconds. Negative values move the channel earlier relative to the zero point. Positive values move the channel later. |
The default implementation does nothing, and is suitable for lower-end instruments that do not support deskew.
Reimplemented in LeCroyOscilloscope, SiglentSCPIOscilloscope, and TektronixOscilloscope.
|
virtual |
Sets the hysteresis for a digital input.
Reimplemented in DigilentOscilloscope, DSLabsOscilloscope, LeCroyOscilloscope, PicoOscilloscope, SiglentSCPIOscilloscope, and TektronixOscilloscope.
|
virtual |
Gets the threshold for a digital input.
Reimplemented in DigilentOscilloscope, DSLabsOscilloscope, LeCroyOscilloscope, PicoOscilloscope, RSRTO6Oscilloscope, SiglentSCPIOscilloscope, and TektronixOscilloscope.
|
virtual |
Sets the input mux for a channel.
i | Zero-based index of channel |
select | Selector for the mux |
Reimplemented in LeCroyOscilloscope.
|
pure virtual |
Configures the scope to combine channels.
This function may fail to enable channel combining if conflicts are present, check the return value!
Implemented in AgilentOscilloscope, AntikernelLabsOscilloscope, AntikernelLabsTriggerCrossbar, AntikernelLogicAnalyzer, DemoOscilloscope, DigilentOscilloscope, DSLabsOscilloscope, KeysightDCA, LeCroyOscilloscope, MockOscilloscope, PicoOscilloscope, RigolOscilloscope, RohdeSchwarzOscilloscope, RSRTO6Oscilloscope, SCPISA, SCPISDR, SCPISpectrometer, SCPIVNA, SiglentSCPIOscilloscope, TektronixOscilloscope, and ThunderScopeOscilloscope.
|
virtual |
Sets the number of hardware averages to use.
i | Zero-based index of channel |
navg | Number of averages to use |
Reimplemented in LeCroyOscilloscope.
|
virtual |
Gets the resolution bandwidth for frequency-domain channels.
Reimplemented in NanoVNA, SCPISA, TektronixOscilloscope, and TinySA.
|
pure virtual |
Sets the sample depth of the scope.
Implemented in AgilentOscilloscope, AntikernelLabsOscilloscope, AntikernelLabsTriggerCrossbar, AntikernelLogicAnalyzer, AseqSpectrometer, CopperMountainVNA, DemoOscilloscope, KeysightDCA, LeCroyOscilloscope, MockOscilloscope, NanoVNA, PicoOscilloscope, PicoVNA, RemoteBridgeOscilloscope, RigolOscilloscope, RohdeSchwarzOscilloscope, RSRTO6Oscilloscope, SCPISA, SiglentSCPIOscilloscope, and TektronixOscilloscope.
|
pure virtual |
Sets the sample rate of the scope, in Hz.
Implemented in AgilentOscilloscope, AntikernelLabsOscilloscope, AntikernelLabsTriggerCrossbar, AntikernelLogicAnalyzer, AseqSpectrometer, DemoOscilloscope, KeysightDCA, LeCroyOscilloscope, MockOscilloscope, PicoOscilloscope, RemoteBridgeOscilloscope, RigolOscilloscope, RohdeSchwarzOscilloscope, RSRTO6Oscilloscope, SCPISA, SCPISDR, SCPISpectrometer, SCPIVNA, SiglentSCPIOscilloscope, TektronixOscilloscope, and UHDBridgeSDR.
|
virtual |
Sets the current sampling mode of the instrument.
The default implementation is a no-op.
Reimplemented in LeCroyOscilloscope.
|
virtual |
Sets the span for frequency-domain channels.
span | Span, in Hz |
Reimplemented in CopperMountainVNA, NanoVNA, PicoVNA, TektronixOscilloscope, TinySA, and UHDBridgeSDR.
|
inline |
Sets a new trigger on the instrument and pushes changes.
Calling SetTrigger() with the currently selected trigger is legal and is equivalent to calling PushTrigger().
Ownership of the trigger object is transferred to the Oscilloscope.
|
pure virtual |
Sets the trigger offset.
offset | Femtoseconds from the start of the capture to the trigger point. Positive values mean the trigger is within the waveform. Negative values mean there is a delay from the trigger point to the start of the waveform. |
Implemented in AgilentOscilloscope, AntikernelLabsOscilloscope, AntikernelLabsTriggerCrossbar, AntikernelLogicAnalyzer, DemoOscilloscope, KeysightDCA, LeCroyOscilloscope, MockOscilloscope, PicoOscilloscope, RemoteBridgeOscilloscope, RigolOscilloscope, RohdeSchwarzOscilloscope, RSRTO6Oscilloscope, SCPISA, SCPISDR, SCPISpectrometer, SCPIVNA, SiglentSCPIOscilloscope, TektronixOscilloscope, and UHDBridgeSDR.
|
virtual |
Configures the instrument's clock source.
external | True to use external reference False to use internal clock |
The default implementation prints an "unsupported operation" warning, and is suitable for lower-end instruments that do not support external clock inputs.
Reimplemented in AntikernelLabsTriggerCrossbar, LeCroyOscilloscope, SiglentSCPIOscilloscope, and TektronixOscilloscope.
|
virtual |
Determines if a channel requires a degauss cycle (if supported)
i | Zero-based index of channel |
Reimplemented in TektronixOscilloscope.
|
pure virtual |
Starts the instrument in continuous trigger mode.
Most drivers will implement this as repeated calls to the "single trigger" function to avoid race conditions when the instrument triggers halfway through downloading captured waveforms.
Implemented in AgilentOscilloscope, AntikernelLabsOscilloscope, AntikernelLabsTriggerCrossbar, AntikernelLogicAnalyzer, AseqSpectrometer, CopperMountainVNA, DemoOscilloscope, DSLabsOscilloscope, KeysightDCA, LeCroyFWPOscilloscope, LeCroyOscilloscope, MockOscilloscope, NanoVNA, PicoVNA, RemoteBridgeOscilloscope, RigolOscilloscope, RohdeSchwarzOscilloscope, RSRTO6Oscilloscope, SCPISA, SiglentSCPIOscilloscope, TektronixHSIOscilloscope, TektronixOscilloscope, and ThunderScopeOscilloscope.
|
pure virtual |
Arms the trigger for a single acquistion.
Implemented in AgilentOscilloscope, AntikernelLabsOscilloscope, AntikernelLabsTriggerCrossbar, AntikernelLogicAnalyzer, AseqSpectrometer, CopperMountainVNA, DemoOscilloscope, DSLabsOscilloscope, KeysightDCA, LeCroyOscilloscope, MockOscilloscope, NanoVNA, PicoVNA, RemoteBridgeOscilloscope, RigolOscilloscope, RohdeSchwarzOscilloscope, RSRTO6Oscilloscope, SCPISA, SiglentSCPIOscilloscope, TektronixHSIOscilloscope, TektronixOscilloscope, and ThunderScopeOscilloscope.
|
pure virtual |
Stops triggering.
Implemented in AgilentOscilloscope, AntikernelLabsOscilloscope, AntikernelLabsTriggerCrossbar, AntikernelLogicAnalyzer, AseqSpectrometer, CopperMountainVNA, DemoOscilloscope, KeysightDCA, LeCroyOscilloscope, MockOscilloscope, NanoVNA, PicoVNA, RemoteBridgeOscilloscope, RigolOscilloscope, RohdeSchwarzOscilloscope, RSRTO6Oscilloscope, SCPISA, SiglentSCPIOscilloscope, TektronixHSIOscilloscope, and TektronixOscilloscope.
bool Oscilloscope::WaitForTrigger | ( | int | timeout | ) |
Block until a trigger happens or a timeout elapses.
Note that this function has no provision to dispatch any UI events etc. It's intended as a convenience helper for non-interactive ATE applications only.
timeout | Timeout value, in milliseconds |