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 metadata 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.8.tar.gz (117.3 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.8-py3-none-any.whl (158.4 kB view details)

Uploaded Python 3

File details

Details for the file rminstr-0.6.8.tar.gz.

File metadata

  • Download URL: rminstr-0.6.8.tar.gz
  • Upload date:
  • Size: 117.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.15 {"installer":{"name":"uv","version":"0.11.15","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.8.tar.gz
Algorithm Hash digest
SHA256 b34d4525fc59bc1eec6213d49680e6b7119b8a7ebef7337af3d0e6f8934c8314
MD5 4c4b139dffc59b6f09ff7bcfeda55f0e
BLAKE2b-256 9db520de0b91890ed64f053c022de4be087ebae0ef3e005918f66071047b5496

See more details on using hashes here.

File details

Details for the file rminstr-0.6.8-py3-none-any.whl.

File metadata

  • Download URL: rminstr-0.6.8-py3-none-any.whl
  • Upload date:
  • Size: 158.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.15 {"installer":{"name":"uv","version":"0.11.15","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.8-py3-none-any.whl
Algorithm Hash digest
SHA256 65f33166dd41f3e7a8e3cc4944c8ba3b1c8a1c849775fc4cfffe2c9989a0e569
MD5 27508dbdcb2b725e27fffabf83be83a7
BLAKE2b-256 78a8347714a27bdd88ec43dc4ea3e3db5ac550334e57a85f48d2d96ad1928c94

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