Python library for interfacing with Rigol DS1000Z series oscilloscopes.
Project description
rigol-ds1000z
An oscilloscope user interface that never leaves the terminal.
A simple command line tool for grabbing data and pictures.
rigol-ds1000z --help
rigol-ds1000z --visa rsrc --display path/to/file.png
rigol-ds1000z --visa rsrc --waveform src path/to/file.csv
Unless a VISA resource is specified with the --visa
argument, the CLI will search for a Rigol DS1000Z series oscilloscope and connect to the first one it finds.
The CLI can capture and save to file an image of the display (--display
) or the waveform data of the specified source channel (--waveform
).
A compact Python interface for automating test procedures.
See the provided examples and read the documentation.
from rigol_ds1000z import Rigol_DS1000Z
from rigol_ds1000z import process_display, process_waveform
from time import sleep
with Rigol_DS1000Z() as oscope:
# reset to defaults and print the IEEE 488.2 instrument identifier
ieee = oscope.ieee(rst=True)
print(ieee.idn)
# configure channels 1 and 2, the timebase, and the trigger
channel1 = oscope.channel(1, probe=1, coupling="AC", offset=3.0, scale=2)
channel2 = oscope.channel(2, probe=1, scale=1, display=True)
timebase = oscope.timebase(main_scale=200e-6)
trigger = oscope.trigger(mode="EDGE", source=2, coupling="DC", level=1.5)
# send an SCPI commands to setup the math channel
oscope.write(":MATH:DISPlay ON")
oscope.write(":MATH:OPER SUBT")
oscope.write(":MATH:SOUR2 CHAN2")
oscope.write(":MATH:SCAL 5")
oscope.write(":MATH:OFFS -10")
# wait three seconds then single trigger
sleep(3)
oscope.single()
# capture the display image
display = oscope.display()
process_display(display, show=True)
# plot the channel 1 waveform data
waveform = oscope.waveform(source=1)
process_waveform(waveform, show=True)
Installation instructions and notes to the user.
pip install rigol-ds1000z
Available on PyPI. This package uses PyVISA to communicate with the oscilloscope, which requires that the user also installs the National Instrument's VISA library for their operating system.
This software has been tested on Windows (Command Prompt and PowerShell), although it should be possible to run in other shells and/or operating systems. For best visual performance, a default of white text on a black background is recommended.
The software does insert some sleep time on specific commands (such as reset and autoscale) to ensure fluid operation of the oscilloscope. The user may find that they require additional downtime after certain command sequences.
Software development and references.
Rigol DS1000Z programming manual.
Command Category | Coverage |
---|---|
AUToscale, etc. | YES |
ACQuire | no |
CALibrate | no |
CHANnel | YES |
CURSor | no |
DECoder | no |
DISPlay | YES |
ETABle | no |
FUNCtion | no |
IEEE 488.2 | YES |
LA | no |
LAN | no |
MATH | no |
MASK | no |
MEASure | no |
REFerence | no |
STORage | no |
SYSTem | no |
TIMebase | YES |
TRIGger | PARTIAL |
WAVeform | YES |
- Package management by Poetry.
- Automated processing hooks by pre-commit.
- Code formatting in compliance with PEP8 by isort, black, and flake8.
- Static type checking in compliance with PEP484 by mypy.
- Test execution with random ordering and code coverage analysis by pytest.
- Automated documentation generation by sphinx.
Installing the development environment requires running the following command sequence.
poetry install
poetry run pre-commit install
In order for all tests to pass channel 2 must be connected to the calibration square wave.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for rigol_ds1000z-0.2.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 857e8c18916af05ae2900934ddaeccff181eec0c78ae0661ae159bd2e3f0ad80 |
|
MD5 | 3e025839a04a1299a4b25634b3bf9322 |
|
BLAKE2b-256 | e7bf4c50705a33d4484e80badbf9da66ebafd4836385d5e9713aced9c4943a4c |