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.6.tar.gz (113.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.6-py3-none-any.whl (148.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: rminstr-0.6.6.tar.gz
  • Upload date:
  • Size: 113.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","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.6.tar.gz
Algorithm Hash digest
SHA256 02971181c8e7dc4290ee9b70ec93978abd46d9c2412d471dc4032ca9684b6ed4
MD5 f1c6d32ecec146e4529fee01e479b571
BLAKE2b-256 67b4e37734bf0fcc6d2bde60d23f91af53dc2b8a5da8da30f0682b6a126918fc

See more details on using hashes here.

File details

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

File metadata

  • Download URL: rminstr-0.6.6-py3-none-any.whl
  • Upload date:
  • Size: 148.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","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.6-py3-none-any.whl
Algorithm Hash digest
SHA256 2bda000140d9af0d69504e0b52c16bed4c92001281e236edb62abdfefad3c1c8
MD5 bd428fc91eefd69e47bd1802a0236fe3
BLAKE2b-256 b4c0bf71e57ab114cb9c357860ded79b371e1743ab12df2da25b97d633d7a842

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