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.9.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.9-py3-none-any.whl (158.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: rminstr-0.6.9.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.9.tar.gz
Algorithm Hash digest
SHA256 559ee7d361df109ea3a99550a13b9160914dd33d1c39b88caed5536065040ddc
MD5 42fefe6106c758a1fb12baa0586bd158
BLAKE2b-256 140cfe173b8db070a21c519da93541a84a1125046f68f708f316020f58ded1b3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: rminstr-0.6.9-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.9-py3-none-any.whl
Algorithm Hash digest
SHA256 58dc60fceab29558d455703d8c191b18c8a163a2064d6eac190b1b0d50fd72f1
MD5 1b35bad11ee9c38955fa0b9ea0276373
BLAKE2b-256 9b9c7974b78d5d57841ea4f124c13812f680f7a36edf316577e0dafde5b92c19

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