Introduction¶
The labbench
module provides API tools to support python scripting for laboratory automation.
The goal is to simplify the process of developing an experimental procedure into clear, concise, explainable, and reusable code.
These characteristics are necessary to scale up the complexity of large testbeds and experiments.
Features include:
Expedited development of python device wrappers, including specialized backends for pythonnet, pyvisa, pyserial, subprocess, telnetlib
Descriptor-driven development: minimize the distance between programming manuals and python wrappers and apply calibrations transparently
Automated logging of simple device parameters into root CSV or sqlite root tables, pointing to relational data and metadata in json and plain-text
Simplified multi-threaded concurrency tools for lab applications
Container objects for nesting device wrappers and snippets of test procedures
Support for running experiments based on tables of test conditions
The source code was developed at NIST to support complex measurement efforts. Examples of these projects include:
NIST TN 2069: Characterizing LTE User Equipment Emissions: Factor Screening
NIST TN 2140: AWS-3 LTE Impacts on Aeronautical Mobile Telemetry (data)
NIST TN 2147: Characterizing LTE User Equipment Emissions Under Closed-Loop Power Control
Automated Testbed for Interference Testing in Communications Systems (code, data)
Status¶
The project is under ongoing development
API changes have slowed, but deprecation warnings are not yet being provided
Suggest pinning labbench dependency to an exact version
Parts of the documentation are in need of updates, and others have not yet been written
Installation¶
Ensure prerequisites are installed:
python (3.9-3.12)
pip
for package management
Recommended module installation:
For python distributions based on anaconda:
pip --upgrade-strategy only-if-needed install labbench
For other python installations:
pip install labbench
Resources¶
PyPI module page
ssmdevices: a collection of device wrappers implemented with labbench
Contributing¶
Pull requests and bug reports are welcome!
Contributors¶
Name |
Contact |
---|---|
Dan Kuester (maintainer) |
|
Shane Allman |
Formerly with NIST |
Paul Blanchard |
Formerly with NIST |
Yao Ma |