keysight_dsox
EPICS PVAccess server for Keysight (Agilent) DSO-X oscilloscopes (may support other series). Server supports both USB and Ethernet connections.
This module connects to a scope via VISA/SCPI, publishes waveform and settings PVs, and exposes writable control PVs for acquisition and trigger configuration.
Features
- VISA connection to Keysight/Agilent DSO-X scopes
- PVAccess server using
epicsdev - Per-channel PVs for:
OnOff,Coupling,VoltsPerDiv,VoltOffsetWaveform,Mean,Peak2Peak,RMS
- Common scope PVs:
timePerDiv,tAxis,samplingRate,trigSource,trigSlope,trigMode,trigLevelacqCount,lostTrigs,scopeIDN,instrCmdS/instrCmdR
- Triggered waveform acquisition with published time axis (
tAxis)
Default VISA resource
USB0::2391::6052::MY51330356::0::INSTR
For Ethernet:
TCPIP::192.168.27.31::INSTR
or
TCPIP::192.168.27.31::SOCKET
Requirements
- Python 3.10+
numpypyvisa- a VISA backend (typically
pyvisa-py) epicsdevand its EPICS/PVA dependency stack (p4p)
Install and Run
pip install epicsdev_osc_keysight_dsox
python -m epicsdev_osc_keysight_dsox
Typical usage:
python -m epicsdev_osc_keysight_dsox -r "USB0::2391::6052::MY51330356::0::INSTR" -d keysight -i 0 -C 4 -v
This creates PVs with prefix <device><index>: (default: keysight0:).
Command-line options
-r, --resourceVISA resource string-d, --devicedevice prefix base name-i, --indexdevice index appended to prefix-C, --channelsnumber of channels to expose-l, --listdirectory where generated PV list is saved-a, --autosaveautosave control (optional argument)-c, --recalldisable restoring PV values from autosave cache-p, --putlogPVPV name for put logging-v, --verboseincrease verbosity (-vvfor more)
Example PV names
With default prefix keysight0::
keysight0:scopeIDNkeysight0:trigStatekeysight0:tAxiskeysight0:c01Waveformkeysight0:c01VoltsPerDivkeysight0:c01VoltOffsetkeysight0:c01OnOff
Phoebus screen
A simple screen generator is included:
- Source:
opi/generate_simplescope.py - Output:
opi/simplescope.bob
Generate with:
python opi/generate_simplescope.py --prefix 'keysight0:'
Notes
- On startup, the server reads selected scope settings and adopts them into PVs.
- Waveforms are acquired on trigger detection and published with channel statistics.
- If all channels are set
Off, channel 1 is used as a fallback acquisition source.
Metadata
Release files for epicsdev_osc_keysight_dsox 0.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| epicsdev_osc_keysight_dsox-0.0.3.tar.gz | 117.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| epicsdev_osc_keysight_dsox-0.0.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 127.3 kB
Release files / epicsdev_osc_keysight_dsox-0.0.3.tar.gz
| Download URL | epicsdev_osc_keysight_dsox-0.0.3.tar.gz |
|---|---|
| Size | 117.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2801f1ae7484a816f516c13015608264658c24122500b1d31680554e2577cd93
|
|
BLAKE2b-256 checksum How to use checksums |
30ca0b490503f91320e398b051c6652e2d47135ef4af022d8d915dd16051d29f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.7.1
|
Release files / epicsdev_osc_keysight_dsox-0.0.3-py3-none-any.whl
| Download URL | epicsdev_osc_keysight_dsox-0.0.3-py3-none-any.whl |
|---|---|
| Size | 10.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fe99077e3252723b25bad403345b83c2850af5c7b5f238ce39c86560ea0974e6
|
|
BLAKE2b-256 checksum How to use checksums |
a9cb30c31502896301d6fcf36fd46fdcc7f09249b1da7a1ef4a0c7daee7f0e1f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.7.1
|