Skip to content

A Python wrapper for the SSI-Teledyne Next Generation class HPLC pumps.

License

Notifications You must be signed in to change notification settings

pct-code/py-hplc

Repository files navigation

py-hplc GitHub PyPI - Python Version PyPI Build Status Documentation Status Style Code quality Maintainability

Overview

A Python wrapper for the SSI-Teledyne Next Generation class HPLC pumps.

If you notice something weird, fragile, or otherwise encounter a bug, please open an issue.

Installation

The package is available on PyPI.

python -m pip install --user py-hplc

Using the package

gif demonstrating example usage

You can open a pump instance like this

>>> from py_hplc import NextGenPump
>>> pump = NextGenPump("COM3")  # or "/dev/ttyUSB0", etc.

Or like this

>>> from py_hplc import NextGenPump
>>> from serial import Serial
>>> device = Serial("COM3")  # or "/dev/ttyUSB0", etc.
>>> pump = NextGenPump(device)

You can inspect the pump for useful information such as its pressure units, firmware version, max flowrate, etc.

>>> pump.version
'191017 Version 2.0.8'
>>> pump.pressure_units
'psi'
>>> pump.pressure
100

The interface behaves in a typical way. Pumps can be inspected or configured without the use of getters and setters.

>>> pump.flowrate
10.0
>>> pump.flowrate = 5.5  # mL / min
>>> pump.flowrate
5.5
>>> pump.run()
'OK/'
>>> pump.is_running
True
>>> pump.stop()
'OK/'
>>> pump.is_running
False
>>> pump.leak_detected
False
Some pump commands, such as "CC" (current conditions), return many pieces of data at once.
This package makes the data available in concise, descriptive, value-typed dataclasses.
>>> pump.current_conditions()
CurrentConditions(pressure=0, flowrate=10.0, response='OK,0000,10.00/')
>>> pump.read_faults()
Faults(motor_stall_fault=False, upper_pressure_fault=False, lower_pressure_fault=False, response='OK,0,0,0/')

See the API Documentation for more usage examples.

License / Author

Released under the MIT license, (C) 2021.

Written by @teauxfu for Premier Chemical Technologies, LLC.