Skip to content

jpritcha-tektronix/tm_devices

Β 
Β 

Repository files navigation

Testing Code testing status Docs testing status Coverage status
Code Quality CodeQL status CodeFactor grade pre-commit status
Package PyPI: Package status PyPI: Latest release version PyPI: Supported Python versions PyPI: Downloads License: Apache 2.0 Package build status PyPI upload status TestPyPI upload status
Documentation Documentation status
Code Style Test style: pytest Code style: black Imports: isort Docstring style: google
Linting pre-commit enabled Docstring formatter: docformatter Type Checker: pyright Linter: pylint Linter: Ruff

tm_devices: Test & Measurement Device Management

tm_devices is a device management package which allows for better control and usage of Test & Measurement devices in python scripts. This is accomplished by using the PyVISA package to manage connections and communication with devices. tm_devices gives users access to a much higher level abstraction of device control by providing access to device drivers with a complete Python API.

Dependencies

tm_devices can be used without any external (non-python) dependencies on any operating system thanks to the PyVISA-py VISA backend. However, in order to use any VISA functionality that PyVISA-py does not implement, a third-party VISA backend such as NI-VISA can be installed. tm_devices will use an available VISA backend if one is found and will fall back to using PyVISA-py if no other VISA backends are installed.

Installation

pip install tm_devices

Basic Usage

Print Available VISA Devices

$ list-visa-resources
[
  "TCPIP0::192.168.0.100::inst0::INSTR",
  "ASRL4::INSTR"
]

Basic Script

from tm_devices import DeviceManager

with DeviceManager() as device_manager:
    scope = device_manager.add_scope("192.168.0.100")
    scope.query("*IDN?")
    print(scope)

Supported Devices

Legend

Symbol/Term Definition
🚧 Work in progress
βœ… Implemented
❌ Not Supported

See the glossary for information on abbreviations.

Device Support Levels
Type
Series/Model
Command
Type
Basic
Control
Python API
Validation
Status
AFGs <AFG> AFG3000 PI βœ… 🚧
Β  AFG31xxx PI βœ… Β 
AWGs <AWG> AWG5000 PI βœ… 🚧
Β  AWG5200 PI βœ… 🚧
Β  AWG7000 PI βœ… 🚧
Β  AWG70000 PI βœ… 🚧
Scopes <Scope> 2 Series MSO PI βœ… 🚧
Β  3 Series MDO PI βœ… 🚧
Β  4 Series MSO PI βœ… 🚧
Β  5 Series MSO PI βœ… 🚧
Β  5 Series B MSO PI βœ… 🚧
Β  5 Series MSO (LP) PI βœ… 🚧
Β  6 Series MSO PI βœ… 🚧
Β  6 Series B MSO PI βœ… 🚧
Β  6 Series LPD PI βœ… 🚧
Β  MSO2000/B PI βœ… 🚧
Β  DPO2000/B PI βœ… 🚧
Β  MDO3000 PI βœ… 🚧
Β  MDO4000/B/C PI βœ… 🚧
Β  MSO4000/B PI βœ… 🚧
Β  DPO4000/B PI βœ… 🚧
Β  MSO5000/B PI βœ… 🚧
Β  DPO5000/B PI βœ… 🚧
Β  DPO7000/C PI βœ… 🚧
Β  DPO70000/C/D/DX/SX PI βœ… 🚧
Β  DSA70000/C/D PI βœ… 🚧
Β  MSO70000/C/DX PI βœ… 🚧
Β  TSOVu PI βœ… Β 
Β  TekScope PI βœ… Β 
PSUs <PSU> 2200 PI βœ… Β 
Β  2220 PI βœ… Β 
Β  2230 PI βœ… Β 
Β  2231 PI βœ… Β 
Β  2280S PI βœ… Β 
Β  2281S PI βœ… Β 
SMUs <SMU> 24xx Standard PI βœ… Β 
Β  24xx Interactive TSP βœ… 🚧
Β  26xxB TSP βœ… 🚧
Β  Model 2601B-PULSE TSP βœ… 🚧
Β  Model 2606B TSP βœ… 🚧
Β  2651A TSP βœ… 🚧
Β  2657A TSP βœ… 🚧
Β  6430 (electrometer) PI βœ… Β 
Β  6514 (electrometer) PI βœ… Β 
Β  6517B (electrometer) PI βœ… Β 
MTs <MT> TMT4 API βœ… Β 
DMMs <DMM> DMM6500 TSP βœ… 🚧
Β  DMM7510 TSP βœ… 🚧
Β  DMM7512 TSP βœ… Β 
DAQs <DAQ> DAQ6510 TSP βœ… 🚧
SSs <SS> 3706A TSP βœ… 🚧

Supported Connections

  • REST API
  • VISA (NI-VISA and PyVISA-py)
    • TCPIP
    • ASRL / Serial / RS-232 / RS-485
    • SOCKET
    • USBTMC (no PyVISA-py support)
    • GPIB (no PyVISA-py support)

Documentation

See the full documentation at https://tm-devices.readthedocs.io

Maintainers

Contributing

Interested in contributing? Check out the contributing guidelines. Please note that this project is released with a Code of Conduct. By contributing to this project, you agree to abide by its terms.

License

tm_devices was created by Tektronix. It is licensed under the terms of the Apache License 2.0.

Credits

tm_devices was created with cookiecutter and the py-pkgs-cookiecutter template.

About

Test & Measurement Device Management

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%