FlowControllerDriverBase#

class FlowControllerDriverBase[source]#

Bases: ABC

Vendor flow-controller driver contract. Concrete drivers own their transport and lifecycle.

Attributes

mass_flow

Current mass flow reading.

pressure

Current pressure reading.

process_value

Current process value (primary feedback measurement for control).

process_value_source

Key constant (e.g. MASS_FLOW_KEY, VOLUMETRIC_FLOW_KEY, PRESSURE_KEY) indicating which measurement is the process value.

setpoint

Current setpoint in the device's configured engineering units.

volumetric_flow

Current volumetric flow reading.

Methods

close

Close the underlying transport.

get_flow_data

Read a full measurement frame from the device.

open

Open the underlying transport.

select_working_fluid

Select the active working fluid by name; driver resolves the device-internal identifier.

set_setpoint

Command a new flow setpoint in the device's configured engineering units.

tare_flow

Zero the flow reading.

abstractmethod open() → None[source]#

Open the underlying transport.

abstractmethod close() → None[source]#

Close the underlying transport. Idempotent.

abstractmethod get_flow_data() → FlowData[source]#

Read a full measurement frame from the device.

abstractmethod set_setpoint(setpt: float) → float[source]#

Command a new flow setpoint in the device’s configured engineering units.

abstractmethod select_working_fluid(fluid_name: str) → str[source]#

Select the active working fluid by name; driver resolves the device-internal identifier.

tare_flow() → FlowData[source]#

Zero the flow reading. Device must have zero flow when called. Raises NotImplementedError if controller does not support taring.

abstract property setpoint: float#

Current setpoint in the device’s configured engineering units. Required for all controller types.

property mass_flow: float#

Current mass flow reading. Raises NotImplementedError if controller does not measure mass flow.

property volumetric_flow: float#

Current volumetric flow reading. Raises NotImplementedError if controller does not measure volumetric flow.

property pressure: float#

Current pressure reading. Raises NotImplementedError if controller does not measure pressure.

abstract property process_value: float#

Current process value (primary feedback measurement for control). Each controller variant returns its primary measured value.

abstract property process_value_source: str#

Key constant (e.g. MASS_FLOW_KEY, VOLUMETRIC_FLOW_KEY, PRESSURE_KEY) indicating which measurement is the process value.