Tektronix¶
TekAWG2000
Arbitrary Wave Generator¶
- class instruments.tektronix.TekAWG2000(filelike, *args, **kwargs)[source]¶
Communicates with a Tektronix AWG2000 series instrument using the SCPI commands documented in the user’s guide.
- class Channel(tek, idx)[source]¶
Class representing a physical channel on the Tektronix AWG 2000
Warning
This class should NOT be manually created by the user. It
is designed to be initialized by the
TekAWG2000
class.- property amplitude¶
Gets/sets the amplitude of the specified channel.
- property frequency¶
Gets/sets the frequency of the specified channel when using the built-in function generator.
- ::units: As specified (if a
Quantity
) or assumed to be of units Hertz.
- Type:
Quantity
with units Hertz.
- ::units: As specified (if a
- property offset¶
Gets/sets the offset of the specified channel.
- property polarity¶
Gets/sets the polarity of the specified channel.
- Type:
- property shape¶
Gets/sets the waveform shape of the specified channel. The AWG will use the internal function generator for these shapes.
- Type:
- class Polarity(value)[source]¶
Enum containing valid polarity modes for the AWG2000
- inverted = 'INVERTED'¶
- normal = 'NORMAL'¶
- class Shape(value)[source]¶
Enum containing valid waveform shape modes for hte AWG2000
- pulse = 'PULSE'¶
- ramp = 'RAMP'¶
- sine = 'SINUSOID'¶
- square = 'SQUARE'¶
- triangle = 'TRIANGLE'¶
- upload_waveform(yzero, ymult, xincr, waveform)[source]¶
Uploads a waveform from the PC to the instrument.
- Parameters:
waveform (numpy.ndarray) – Numpy array of values representing the waveform to be uploaded. This array should be normalized. This means that all absolute values contained within the array should not exceed 1.
- property channel¶
Gets a specific channel on the AWG2000. The desired channel is accessed like one would access a list.
Example usage:
>>> import instruments as ik >>> inst = ik.tektronix.TekAWG2000.open_gpibusb("/dev/ttyUSB0", 1) >>> print(inst.channel[0].frequency)
- Returns:
A channel object for the AWG2000
- Return type:
TekDPO4104
Oscilloscope¶
- class instruments.tektronix.TekDPO4104(filelike, *args, **kwargs)[source]¶
The Tektronix DPO4104 is a multi-channel oscilloscope with analog bandwidths ranging from 100MHz to 1GHz.
This class inherits from
SCPIInstrument
.Example usage:
>>> import instruments as ik >>> tek = ik.tektronix.TekDPO4104.open_tcpip("192.168.0.2", 8888) >>> [x, y] = tek.channel[0].read_waveform()
- class Channel(parent, idx)[source]¶
Class representing a channel on the Tektronix DPO 4104.
This class inherits from
TekDPO4104.DataSource
.Warning
This class should NOT be manually created by the user. It is designed to be initialized by the
TekDPO4104
class.- property coupling¶
Gets/sets the coupling setting for this channel.
- Type:
- class Coupling(value)[source]¶
Enum containing valid coupling modes for the channels on the Tektronix DPO 4104
- ac = 'AC'¶
- dc = 'DC'¶
- ground = 'GND'¶
- class DataSource(tek, name)[source]¶
Class representing a data source (channel, math, or ref) on the Tektronix DPO 4104.
Warning
This class should NOT be manually created by the user. It is designed to be initialized by the
TekDPO4104
class.- read_waveform(bin_format=True)[source]¶
Read waveform from the oscilloscope. This function is all inclusive. After reading the data from the oscilloscope, it unpacks the data and scales it accordingly. Supports both ASCII and binary waveform transfer.
Function returns a tuple (x,y), where both x and y are numpy arrays.
- Parameters:
bin_format (bool) – If
True
, data is transfered in a binary format. Otherwise, data is transferred in ASCII.- Return type:
tuple`[`tuple`[`~pint.Quantity
, …],tuple`[`~pint.Quantity
, …]] or if numpy is installed,tuple
of twoQuantity
withnumpy.array
data
- property y_offset¶
- force_trigger()[source]¶
Forces a trigger event to occur on the attached oscilloscope. Note that this is distinct from the standard SCPI
*TRG
functionality.
- property aquisition_continuous¶
Gets/sets whether the aquisition is continuous (“run/stop mode”) or whether aquisiton halts after the next sequence (“single mode”).
- Type:
- property aquisition_running¶
Gets/sets the aquisition state of the attached instrument. This property is
True
if the aquisition is running, and isFalse
otherwise.- Type:
- property channel¶
Gets a specific oscilloscope channel object. The desired channel is specified like one would access a list.
For instance, this would transfer the waveform from the first channel:
>>> tek = ik.tektronix.TekDPO4104.open_tcpip("192.168.0.2", 8888) >>> [x, y] = tek.channel[0].read_waveform()
- Return type:
- property data_source¶
Gets/sets the the data source for waveform transfer.
- property data_width¶
Gets/sets the data width (number of bytes wide per data point) for waveforms transfered to/from the oscilloscope.
Valid widths are 1 or 2.
- Type:
- property math¶
Gets a data source object corresponding to the MATH channel.
- Return type:
- property ref¶
Gets a specific oscilloscope reference channel object. The desired channel is specified like one would access a list.
For instance, this would transfer the waveform from the first channel:
>>> import instruments as ik >>> tek = ik.tektronix.TekDPO4104.open_tcpip("192.168.0.2", 8888) >>> [x, y] = tek.ref[0].read_waveform()
- Return type:
- property y_offset¶
Gets/sets the Y offset of the currently selected data source.
TekDPO70000
Oscilloscope¶
- class instruments.tektronix.TekDPO70000(filelike, *args, **kwargs)[source]¶
The Tektronix DPO70000 series is a multi-channel oscilloscope with analog bandwidths ranging up to 33GHz.
This class inherits from
SCPIInstrument
.Example usage:
>>> import instruments as ik >>> tek = ik.tektronix.TekDPO70000.open_tcpip("192.168.0.2", 8888) >>> [x, y] = tek.channel[0].read_waveform()
- class AcquisitionMode(value)[source]¶
Enum containing valid acquisition modes for the Tektronix 70000 series oscilloscopes.
- average = 'AVE'¶
- envelope = 'ENV'¶
- hi_res = 'HIR'¶
- peak_detect = 'PEAK'¶
- sample = 'SAM'¶
- waveform_db = 'WFMDB'¶
- class AcquisitionState(value)[source]¶
Enum containing valid acquisition states for the Tektronix 70000 series oscilloscopes.
- off = 'OFF'¶
- on = 'ON'¶
- run = 'RUN'¶
- stop = 'STOP'¶
- class BinaryFormat(value)[source]¶
Enum containing valid binary formats for the Tektronix 70000 series oscilloscopes (int, unsigned-int, floating-point).
- float = 'FP'¶
- int = 'RI'¶
- uint = 'RP'¶
- class ByteOrder(value)[source]¶
Enum containing valid byte order (big-/little-endian) for the Tektronix 70000 series oscilloscopes.
- big_endian = 'MSB'¶
- little_endian = 'LSB'¶
- class Channel(parent, idx)[source]¶
Class representing a channel on the Tektronix DPO 70000.
This class inherits from
TekDPO70000.DataSource
.Warning
This class should NOT be manually created by the user. It is designed to be initialized by the
TekDPO70000
class.- class Coupling(value)[source]¶
Enum containing valid coupling modes for the oscilloscope channel
- ac = 'AC'¶
- dc = 'DC'¶
- dc_reject = 'DCREJ'¶
- ground = 'GND'¶
- query(cmd, size=-1)[source]¶
Wraps queries sent from property factories in this class with identifiers for the specified channel.
- sendcmd(cmd)[source]¶
Wraps commands sent from property factories in this class with identifiers for the specified channel.
- Parameters:
cmd (str) – Command to send to the instrument
- property bandwidth¶
- property coupling¶
Gets/sets the coupling for the specified channel.
Example usage:
>>> import instruments as ik >>> inst = ik.tektronix.TekDPO70000.open_tcpip("192.168.0.1", 8080) >>> channel = inst.channel[0] >>> channel.coupling = channel.Coupling.ac
- property deskew¶
- property label¶
Just a human readable label for the channel.
- property label_xpos¶
The x position, in divisions, to place the label.
- property label_ypos¶
The y position, in divisions, to place the label.
- property offset¶
The vertical offset in units of volts. Voltage is given by
offset+scale*(5*raw/2^15 - position)
.
- property position¶
The vertical position, in divisions from the center graticule, ranging from
-8
to8
. Voltage is given byoffset+scale*(5*raw/2^15 - position)
.
- property scale¶
Vertical channel scale in units volts/division. Voltage is given by
offset+scale*(5*raw/2^15 - position)
.
- property termination¶
- class DataSource(parent, name)[source]¶
Class representing a data source (channel, math, or ref) on the Tektronix DPO 70000.
Warning
This class should NOT be manually created by the user. It is designed to be initialized by the
TekDPO70000
class.- read_waveform(bin_format=True)[source]¶
Gets the waveform of the specified data source channel. This is an abstract property.
- Parameters:
bin_format (bool) – If the waveform should be transfered in binary (
True
) or ASCII (False
) formats.- Returns:
The waveform with both x and y components.
- Return type:
- class HorizontalMode(value)[source]¶
Enum containing valid horizontal scan modes for the Tektronix 70000 series oscilloscopes.
- auto = 'AUTO'¶
- constant = 'CONST'¶
- manual = 'MAN'¶
- class Math(parent, idx)[source]¶
Class representing a math channel on the Tektronix DPO 70000.
This class inherits from
TekDPO70000.DataSource
.Warning
This class should NOT be manually created by the user. It is designed to be initialized by the
TekDPO70000
class.- class FilterMode(value)[source]¶
Enum containing valid filter modes for a math channel on the TekDPO70000 series oscilloscope.
- centered = 'CENT'¶
- shifted = 'SHIF'¶
- class Mag(value)[source]¶
Enum containing valid amplitude units for a math channel on the TekDPO70000 series oscilloscope.
- db = 'DB'¶
- dbm = 'DBM'¶
- linear = 'LINEA'¶
- class Phase(value)[source]¶
Enum containing valid phase units for a math channel on the TekDPO70000 series oscilloscope.
- degrees = 'DEG'¶
- group_delay = 'GROUPD'¶
- radians = 'RAD'¶
- class SpectralWindow(value)[source]¶
Enum containing valid spectral windows for a math channel on the TekDPO70000 series oscilloscope.
- blackman_harris = 'BLACKMANH'¶
- flattop2 = 'FLATTOP2'¶
- gaussian = 'GAUSS'¶
- hamming = 'HAMM'¶
- hanning = 'HANN'¶
- kaiser_besse = 'KAISERB'¶
- rectangular = 'RECTANG'¶
- tek_exponential = 'TEKEXP'¶
- query(cmd, size=-1)[source]¶
Wraps queries sent from property factories in this class with identifiers for the specified math channel.
- sendcmd(cmd)[source]¶
Wraps commands sent from property factories in this class with identifiers for the specified math channel.
- Parameters:
cmd (str) – Command to send to the instrument
- property autoscale¶
Enables or disables the auto-scaling of new math waveforms.
- property define¶
A text string specifying the math to do, ex. CH1+CH2
- property filter_mode¶
- property filter_risetime¶
- property label¶
Just a human readable label for the channel.
- property label_xpos¶
The x position, in divisions, to place the label.
- property label_ypos¶
The y position, in divisions, to place the label.
- property num_avg¶
The number of acquisistions over which exponential averaging is performed.
- property position¶
The vertical position, in divisions from the center graticule.
- property scale¶
The scale in volts per division. The range is from
100e-36
to100e+36
.
- property spectral_center¶
The desired frequency of the spectral analyzer output data span in Hz.
- property spectral_gatepos¶
The gate position. Units are represented in seconds, with respect to trigger position.
- property spectral_gatewidth¶
The time across the 10-division screen in seconds.
- property spectral_lock¶
- property spectral_mag¶
Whether the spectral magnitude is linear, db, or dbm.
- property spectral_phase¶
Whether the spectral phase is degrees, radians, or group delay.
- property spectral_reflevel¶
The value that represents the topmost display screen graticule. The units depend on spectral_mag.
- property spectral_reflevel_offset¶
- property spectral_resolution_bandwidth¶
The desired resolution bandwidth value. Units are represented in Hertz.
- property spectral_span¶
Specifies the frequency span of the output data vector from the spectral analyzer.
- property spectral_suppress¶
The magnitude level that data with magnitude values below this value are displayed as zero phase.
- property spectral_unwrap¶
Enables or disables phase wrapping.
- property spectral_window¶
- property threshhold¶
The math threshhold in volts
- property unit_string¶
Just a label for the units…doesn”t actually change anything.
- class SamplingMode(value)[source]¶
Enum containing valid sampling modes for the Tektronix 70000 series oscilloscopes.
- equivalent_time_allowed = 'ET'¶
- interpolation_allowed = 'IT'¶
- real_time = 'RT'¶
- class StopAfter(value)[source]¶
Enum containing valid stop condition modes for the Tektronix 70000 series oscilloscopes.
- run_stop = 'RUNST'¶
- sequence = 'SEQ'¶
- class TriggerState(value)[source]¶
Enum containing valid trigger states for the Tektronix 70000 series oscilloscopes.
- armed = 'ARMED'¶
- auto = 'AUTO'¶
- dpo = 'DPO'¶
- partial = 'PARTIAL'¶
- ready = 'READY'¶
- class WaveformEncoding(value)[source]¶
Enum containing valid waveform encoding modes for the Tektronix 70000 series oscilloscopes.
- ascii = 'ASCII'¶
- binary = 'BINARY'¶
- select_fastest_encoding()[source]¶
Sets the encoding for data returned by this instrument to be the fastest encoding method consistent with the current data source.
- HOR_DIVS = 10¶
- VERT_DIVS = 10¶
- property acquire_enhanced_enob¶
Valid values are AUTO and OFF.
- property acquire_enhanced_state¶
- property acquire_interp_8bit¶
Valid values are AUTO, ON and OFF.
- property acquire_magnivu¶
- property acquire_mode¶
- property acquire_mode_actual¶
- property acquire_num_acquisitions¶
The number of waveform acquisitions that have occurred since starting acquisition with the ACQuire:STATE RUN command
- property acquire_num_avgs¶
The number of waveform acquisitions to average.
- property acquire_num_envelop¶
The number of waveform acquisitions to be enveloped
- property acquire_num_frames¶
The number of frames acquired when in FastFrame Single Sequence and acquisitions are running.
- property acquire_num_samples¶
The minimum number of acquired samples that make up a waveform database (WfmDB) waveform for single sequence mode and Mask Pass/Fail Completion Test. The default value is 16,000 samples. The range is 5,000 to 2,147,400,000 samples.
- property acquire_sampling_mode¶
- property acquire_state¶
This command starts or stops acquisitions.
- property acquire_stop_after¶
This command sets or queries whether the instrument continually acquires acquisitions or acquires a single sequence.
- property channel¶
Gets an iterator or list for easy Pythonic access to the various channel objects on the oscilloscope instrument. Typically generated by the
ProxyList
helper.
- property data_framestart¶
- property data_framestop¶
- property data_source¶
Gets/sets the data source for the oscilloscope. This will return the actual Channel/Math/DataSource object as if it was accessed through the usual
TekDPO70000.channel
,TekDPO70000.math
, orTekDPO70000.ref
properties.- Type:
- property data_start¶
The first data point that will be transferred, which ranges from 1 to the record length.
- property data_stop¶
The last data point that will be transferred.
- property data_sync_sources¶
- property horiz_acq_duration¶
The duration of the acquisition.
- property horiz_acq_length¶
The record length.
- property horiz_delay_mode¶
- property horiz_delay_pos¶
The percentage of the waveform that is displayed left of the center graticule.
- property horiz_delay_time¶
The base trigger delay time setting.
- property horiz_interp_ratio¶
The ratio of interpolated points to measured points.
- property horiz_main_pos¶
The percentage of the waveform that is displayed left of the center graticule.
- property horiz_mode¶
- property horiz_pos¶
The position of the trigger point on the screen, left is 0%, right is 100%.
- property horiz_record_length¶
The recond length in samples. See
horiz_mode
; manual mode lets you change the record length, while the length is readonly for auto and constant mode.
- property horiz_record_length_lim¶
The recond length limit in samples.
- property horiz_roll¶
Valid arguments are AUTO, OFF, and ON.
- property horiz_sample_rate¶
The sample rate in samples per second.
- property horiz_scale¶
The horizontal scale in seconds per division. The horizontal scale is readonly when
horiz_mode
is manual.
- property horiz_unit¶
- property math¶
Gets an iterator or list for easy Pythonic access to the various math data sources objects on the oscilloscope instrument. Typically generated by the
ProxyList
helper.
- property outgoing_binary_format¶
Controls the data type of samples when transferring waveforms from the instrument to the host using binary encoding.
- property outgoing_byte_order¶
Controls whether binary data is returned in little or big endian.
- property outgoing_n_bytes¶
The number of bytes per sample used in representing outgoing waveforms in binary encodings.
Must be either 1, 2, 4 or 8.
- property outgoing_waveform_encoding¶
Controls the encoding used for outgoing waveforms (instrument → host).
- property ref¶
Gets an iterator or list for easy Pythonic access to the various ref data sources objects on the oscilloscope instrument. Typically generated by the
ProxyList
helper.
- property trigger_state¶
TekTDS224
Oscilloscope¶
- class instruments.tektronix.TekTDS224(filelike)[source]¶
The Tektronix TDS224 is a multi-channel oscilloscope with analog bandwidths of 100MHz.
This class inherits from
SCPIInstrument
.Example usage:
>>> import instruments as ik >>> tek = ik.tektronix.TekTDS224.open_gpibusb("/dev/ttyUSB0", 1) >>> [x, y] = tek.channel[0].read_waveform()
- class Channel(parent, idx)[source]¶
Class representing a channel on the Tektronix TDS 224.
This class inherits from
TekTDS224.DataSource
.Warning
This class should NOT be manually created by the user. It is designed to be initialized by the
TekTDS224
class.- property coupling¶
Gets/sets the coupling setting for this channel.
- Type:
- class Coupling(value)[source]¶
Enum containing valid coupling modes for the Tek TDS224
- ac = 'AC'¶
- dc = 'DC'¶
- ground = 'GND'¶
- class DataSource(tek, name)[source]¶
Class representing a data source (channel, math, or ref) on the Tektronix TDS 224.
Warning
This class should NOT be manually created by the user. It is designed to be initialized by the
TekTDS224
class.- read_waveform(bin_format=True)[source]¶
Read waveform from the oscilloscope. This function is all inclusive. After reading the data from the oscilloscope, it unpacks the data and scales it accordingly.
Supports both ASCII and binary waveform transfer. For 2500 data points, with a width of 2 bytes, transfer takes approx 2 seconds for binary, and 7 seconds for ASCII over Galvant Industries’ GPIBUSB adapter.
Function returns a tuple (x,y), where both x and y are numpy arrays.
- Parameters:
bin_format (bool) – If
True
, data is transfered in a binary format. Otherwise, data is transferred in ASCII.- Return type:
tuple`[`tuple`[`float
, …],tuple`[`float
, …]] or if numpy is installed,tuple`[`numpy.array
,numpy.array
]
- property channel¶
Gets a specific oscilloscope channel object. The desired channel is specified like one would access a list.
For instance, this would transfer the waveform from the first channel:
>>> import instruments as ik >>> tek = ik.tektronix.TekTDS224.open_tcpip('192.168.0.2', 8888) >>> [x, y] = tek.channel[0].read_waveform()
- Return type:
- property data_source¶
Gets/sets the the data source for waveform transfer.
- property data_width¶
Gets/sets the byte-width of the data points being returned by the instrument. Valid widths are
1
or2
.- Type:
- property math¶
Gets a data source object corresponding to the MATH channel.
- Return type:
- property ref¶
Gets a specific oscilloscope reference channel object. The desired channel is specified like one would access a list.
For instance, this would transfer the waveform from the first channel:
>>> import instruments as ik >>> tek = ik.tektronix.TekTDS224.open_tcpip('192.168.0.2', 8888) >>> [x, y] = tek.ref[0].read_waveform()
- Return type:
TekTDS5xx
Oscilloscope¶
- class instruments.tektronix.TekTDS5xx(filelike, *args, **kwargs)[source]¶
- Support for the TDS5xx series of oscilloscopes
- Implemented from:
- TDS Family Digitizing Oscilloscopes(TDS 410A, 420A, 460A, 520A, 524A, 540A, 544A,620A, 640A, 644A, 684A, 744A & 784A)Tektronix Document: 070-8709-07
- class Bandwidth(value)[source]¶
Bandwidth in MHz
- FULL = 'FUL'¶
- OneHundred = 'HUN'¶
- Twenty = 'TWE'¶
- TwoHundred = 'TWO'¶
- class Channel(parent, idx)[source]¶
Class representing a channel on the Tektronix TDS 5xx.
This class inherits from
TekTDS5xx.DataSource
.Warning
This class should NOT be manually created by the user. It is designed to be initialized by the
TekTDS5xx
class.- property bandwidth¶
Gets/sets the Bandwidth setting for this channel.
- Type:
- property coupling¶
Gets/sets the coupling setting for this channel.
- Type:
- property impedance¶
Gets/sets the impedance setting for this channel.
- Type:
- class Coupling(value)[source]¶
Available coupling options for input sources and trigger
- ac = 'AC'¶
- dc = 'DC'¶
- ground = 'GND'¶
- class DataSource(parent, name)[source]¶
Class representing a data source (channel, math, or ref) on the Tektronix TDS 5xx.
Warning
This class should NOT be manually created by the user. It is designed to be initialized by the
TekTDS5xx
class.- read_waveform(bin_format=True)[source]¶
Read waveform from the oscilloscope. This function is all inclusive. After reading the data from the oscilloscope, it unpacks the data and scales it accordingly.
Supports both ASCII and binary waveform transfer. For 2500 data points, with a width of 2 bytes, transfer takes approx 2 seconds for binary, and 7 seconds for ASCII over Galvant Industries’ GPIBUSB adapter.
Function returns a tuple (x,y), where both x and y are numpy arrays.
- Parameters:
bin_format (bool) – If
True
, data is transfered in a binary format. Otherwise, data is transferred in ASCII.- Return type:
tuple`[`tuple`[`float
, …],tuple`[`float
, …]] or if numpy is installed,tuple`[`numpy.array
,numpy.array
]
- class Impedance(value)[source]¶
Available options for input source impedance
- Fifty = 'FIF'¶
- OneMeg = 'MEG'¶
- class Measurement(tek, idx)[source]¶
Class representing a measurement channel on the Tektronix TDS5xx
- class Source(value)[source]¶
Available Data sources
- CH1 = 'CH1'¶
- CH2 = 'CH2'¶
- CH3 = 'CH3'¶
- CH4 = 'CH4'¶
- Math1 = 'MATH1'¶
- Math2 = 'MATH2'¶
- Math3 = 'MATH3'¶
- Ref1 = 'REF1'¶
- Ref2 = 'REF2'¶
- Ref3 = 'REF3'¶
- Ref4 = 'REF4'¶
- class Trigger(value)[source]¶
Available Trigger sources (AUX not Available on TDS520A/TDS540A)
- AUX = 'AUX'¶
- CH1 = 'CH1'¶
- CH2 = 'CH2'¶
- CH3 = 'CH3'¶
- CH4 = 'CH4'¶
- LINE = 'LINE'¶
- property channel¶
Gets a specific oscilloscope channel object. The desired channel is specified like one would access a list.
For instance, this would transfer the waveform from the first channel:
>>> tek = ik.tektronix.TekTDS5xx.open_tcpip('192.168.0.2', 8888) >>> [x, y] = tek.channel[0].read_waveform()
- Return type:
- property clock¶
Get/Set oscilloscope clock
- Type:
- property data_source¶
Gets/sets the the data source for waveform transfer.
- Type:
- Return type:
- property math¶
Gets a data source object corresponding to the MATH channel.
- Return type:
- property measurement¶
Gets a specific oscilloscope measurement object. The desired channel is specified like one would access a list.
- Return type:
- property ref¶
Gets a specific oscilloscope reference channel object. The desired channel is specified like one would access a list.
For instance, this would transfer the waveform from the first channel:
>>> tek = ik.tektronix.TekTDS5xx.open_tcpip('192.168.0.2', 8888) >>> [x, y] = tek.ref[0].read_waveform()
- Return type:
- property trigger_coupling¶
Get/Set trigger coupling
- Type:
- property trigger_slope¶
Get/Set trigger slope
- Type:
- property trigger_source¶
Get/Set trigger source
- Type: