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

Uploaded Python 3

File details

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

File metadata

  • Download URL: rminstr-0.6.7.tar.gz
  • Upload date:
  • Size: 116.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","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.7.tar.gz
Algorithm Hash digest
SHA256 ad89f7aae9a90b250cf101c7abba4665cf1c73e05aa77f4088b924582a1c8a63
MD5 e7f7f11352ce476d8a5412554e526460
BLAKE2b-256 573085811ae4838e0d853169453f577a3756aa2e8841028ee16549d29fa11f31

See more details on using hashes here.

File details

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

File metadata

  • Download URL: rminstr-0.6.7-py3-none-any.whl
  • Upload date:
  • Size: 154.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","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.7-py3-none-any.whl
Algorithm Hash digest
SHA256 8de7d7b57c5f317bb6b1e65cf0d1c9f8180e21058fffacb26de0734fe515f808
MD5 94c911885ec95c2617431c2f96f650cc
BLAKE2b-256 495b2e96bd817e65021429d3f95e45a235743b5509bc6f2cdc3136d318fc84b8

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