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
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:
- Construct: instantiate the vendor driver and pass it to
InstroFlowController.
open(): establishes the VISA connection.
- Configure and measure: select gas, set flow setpoint, tare flow (optional), and read flow data.
start(): begins a periodic background daemon. (Optional) By default this calls get_flow_data periodically.
stop(): ends the background daemon (if started).
close(): disconnects from hardware.
Custom Driver Development
For more information on writing a custom driver, see Custom Driver Development.