I worked in the last weeks on a Python library to remote control Rigol DS1000E/D oscilloscopes.
The aim is an easy to use library that encapsulates as good as possible the more arduous details, like waiting until the change of some setting is finally applied by the device. (Unfortunately the DS1000 series does not implement the SCPI command `OPC`.)
Source code:
https://gitlab.com/adeuring/ya_ds1052/The README file has a few usage examples.
A pip-installable package is also available:
pip install ya-ds1052
For the "lower communication levels" the package relies on other libraries: It works with the Linux kernel usbtmc driver, as well as with the Python packages PyVISA (tested with the pyvisa-py backend and with the National Instruments VISA library for Linux) and python-usbtmc.
I have not yet figured out a good way to specify alternative dependency packages in setup.py, hence PyVIDA or python-usbtmc must be installed separately via pip or some other Python package manager.
Run
import ds1052
help(ds1052)
to get an overview of what is possible with the library.
I had quite a few gotcha moments working with the DS1052. Tried to sum up the conclusions here:
https://gitlab.com/adeuring/ya_ds1052/-/blob/master/gotcha/gotcha.md