Skip to main content

A library for convenient instrumentation and measurement flow control.

Project description

Rocky Mountain Instruments

[!NOTE] This software is in active and early development by the RF power calibrations service at NIST to support RF power calibrations and the development primary RF power standards. Expect breaking breaking changes as the software evolves. Instrument interfaces are added and tested as needed for the calibration service. Bugs may be present in the instrument interfaces that we are unaware of. Please exercise caution when using interfaces presented in this code.

This package is a library of instrument control and data recording code. Instruments capable of providing the same service have control classes with a shared syntax, allowing similar instruments to be easily swapped into experiment scripts.

Read the pages for code API and examples.

Usage

For example, suppose you have a nano voltmeter (an HP 34420A in this example) and an a digital multi-meter (HP 3458A in this example). While these instruments are slightly different, they can both be configured to behave like a voltmeter in an experiment. In this package, both instruments have a measurement functionality called Voltmeter defined. This means that interacting with one instrument model that can act as a Voltmeter,

from rminstr.instruments.HP3458A import Voltmeter
vm = Voltmeter('GPIB0::16::INSTR')
vm.initial_setup()
vm.setup(v_range = 1)
vm.arm()
vm.trigger()
vm.wait_until_data_available(timeout = 10)
data = vm.fetch_data()

is identical to the code to interact with a different model of Voltmeter.

from rminstr.instruments.HP34420A import Voltmeter
vm = Voltmeter('GPIB0::16::INSTR')
vm.initial_setup()
vm.setup(v_range = 1)
vm.arm()
vm.trigger()
vm.wait_until_data_available(timeout = 10)
data = vm.fetch_data()

The basic idea of the package, is that any instruments which share a measurement functionality - this could be Voltmeter, Ammeter, etc - can be swapped at the import statement and still function. This makes it very easy to develop readable, straight forward flow control scripts that can be very quickly adapted to support multiple instrument models that provide similar functionalities.

In addition to the library of instruments, the package provides some additional features for managing experiments like the

  • ExperimentParameters - a type safe csv based markup language for defining configuration files (can be edited in Excel).
  • DataRecord - a class for recording, managing, and retrieving timeseries data and metadatga collected from multiple instruments in human readable csv files.

Authors

Contributors names and contact info

Daniel C. Gray, Zenn C. Roberts, Aaron M. Hagerstrom

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

rminstr-0.6.6a2.tar.gz (112.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rminstr-0.6.6a2-py3-none-any.whl (146.8 kB view details)

Uploaded Python 3

File details

Details for the file rminstr-0.6.6a2.tar.gz.

File metadata

  • Download URL: rminstr-0.6.6a2.tar.gz
  • Upload date:
  • Size: 112.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.7 {"installer":{"name":"uv","version":"0.10.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for rminstr-0.6.6a2.tar.gz
Algorithm Hash digest
SHA256 00da615658478ac3d174ceb047cc4584335bdd06e90e4b2943a8d24e50150d09
MD5 2c5bfcbb4c35b057519732fd25f04878
BLAKE2b-256 5d94cea3a456f780da991dadb7ef6135e183b539590b767addfaf34e697dbe69

See more details on using hashes here.

File details

Details for the file rminstr-0.6.6a2-py3-none-any.whl.

File metadata

  • Download URL: rminstr-0.6.6a2-py3-none-any.whl
  • Upload date:
  • Size: 146.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.7 {"installer":{"name":"uv","version":"0.10.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for rminstr-0.6.6a2-py3-none-any.whl
Algorithm Hash digest
SHA256 de62a237c99cf144e04c8da5f58e9cb99815e0b1622995c8cffdab5cabdfdcc7
MD5 6bdacf64193080e151c7ac97b78ffc87
BLAKE2b-256 0a99e18b081da0e11905480787561b5821127b63a5b16e786c1a2c250fe2a453

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page