Skip to main content
This Instrument category is new and is currently available only in the Unstable package
InstroFlowController provides a unified interface for gas flow controllers. This class is initialized with a vendor-specific driver (AlicatMC, …), and provides the vendor-agnostic API (get_flow_data, set_setpoint, select_gas, tare_flow, …).

Creating an InstroFlowController

A bare resource string applies the Alicat RS-232 defaults (19200 baud, carriage-return terminators). Pass a VisaConfig from instro.lib.transports.visa instead to override them, and device_id to address a unit other than "A".

Supported Vendors

Alicat MC

Alicat MC
If your vendor or model is not listed, see Custom Driver Development, or open a Driver Request issue on GitHub.

Example

More examples found in Examples

Details

The following presents details about the InstroFlowController. Specific driver details can be found on their pages.

Driver Composition

An InstroFlowController is built from a concrete driver:
  • The vendor driver (e.g. AlicatMC) owns the connection setup and vendor-specific command mapping.
  • InstroFlowController owns the category-level workflow: measurements, commands, publishers, the background daemon.

Lifecycle

The typical InstroFlowController workflow:
  1. Construct: instantiate the vendor driver and pass it to InstroFlowController.
  2. open(): establishes the VISA connection.
  3. Configure and measure: select gas, set flow setpoint, tare flow (optional), and read flow data.
  4. start(): begins a periodic background daemon. (Optional) By default this calls get_flow_data periodically.
  5. stop(): ends the background daemon (if started).
  6. close(): disconnects from hardware.

Custom Driver Development

For more information on writing a custom driver, see Custom Driver Development.