.. image:: https://img.shields.io/pypi/v/dvg-devices
:target: https://pypi.org/project/dvg-devices
.. image:: https://img.shields.io/pypi/pyversions/dvg-devices
:target: https://pypi.org/project/dvg-devices
.. image:: https://requires.io/github/Dennis-van-Gils/python-dvg-devices/requirements.svg?branch=master
:target: https://requires.io/github/Dennis-van-Gils/python-dvg-devices/requirements/?branch=master
:alt: Requirements Status
.. image:: https://readthedocs.org/projects/python-dvg-devices/badge/?version=latest
:target: https://python-dvg-devices.readthedocs.io/en/latest/?badge=latest
.. image:: https://img.shields.io/badge/code%20style-black-000000.svg
:target: https://github.com/psf/black
.. image:: https://img.shields.io/badge/License-MIT-purple.svg
:target: https://github.com/Dennis-van-Gils/python-dvg-devices/blob/master/LICENSE.txt
DvG_Devices
Collection of I/O interfaces to communicate with microcontroller boards and
laboratory devices, with optional PyQt/PySide multithread support and graphical
user-interfaces.
Supports PyQt5, PyQt6, PySide2 and PySide6.
Installation::
pip install dvg-devices
Installation with an optional Qt-library::
pip install dvg-devices[pyqt5/pyqt6/pyside2/pyside6]
Supported devices
======================= =======================
Arduino, or similar microcontroller board
Aim TTi QL series II power supply
Bronkhorst EL-FLOW mass flow controller
Julabo circulator recirculating bath
Keysight 3497xA digital multimeter
Keysight N8700 power supply
Parker Compax3 servo controller
Picotech PT104 temperature logger
PolyScience PD recirculating bath
ThermoFisher ThermoFlex chiller
======================= =======================
Highlights
-
Class SerialDevice()
offering higher-level general I/O methods for
a serial device, such as auto_connect()
, write()
and query()
.
-
Class Arduino()
which wraps around SerialDevice()
. In combination with
DvG_StreamCommand <https://github.com/Dennis-van-Gils/DvG_StreamCommand>
_ it
allows for automatically connecting to your Arduino(-like) device and for easy
serial I/O communication.
-
Separate PyQt/PySide interfaces are provided for each of these devices,
offering out-of-the-box multithreaded data acquisition and communication. It
relies on DvG_QDeviceIO <https://python-dvg-qdeviceio.readthedocs.io>
_.
-
Ready-to-run PyQt/PySide demos to directly control many of the supported
devices with a graphical user-interface.
Changelog
1.3.0 (2023-02-23)
- Added method
BaseDevice.SerialDevice.query_bytes()
- Fixed type hints in
BaseDevice.SerialDevice
1.2.0 (2022-09-14)
- Added support for PyQt5, PyQt6, PySide2 and PySide6
1.1.0 (2022-02-01)
- Added method
BaseDevice.SerialDevice.readline()
1.0.0 (2021-07-02)
- Stable release, identical to v0.2.6
0.2.6 (2021-03-02)
- Minor: Adjusted width of GUI control in
Julabo_circulator_qdev.py
0.2.5 (2021-03-02)
- Loosened dependence to
pyserial~= 3.4
0.2.4 (2021-03-02)
- Added device: Julabo circulator
0.2.3 (2020-08-27)
- Workaround for bug with unknown cause in
Aim_TTi_PSU_protocol_RS232
where
the power supply occasionally will skew the serial input and output stream,
such that the reply matches the second-previous query statement. Fixed by
forcefully flushing the serial input and output buffers whenever a wrong reply
is received. Hopefully, this will fix the skew when the next query()
operation gets executed.
0.2.2 (2020-08-27)
- Fixed bug in
BaseDevice.query_ascii()
. The use of ast.literal_eval
got
removed because it chokes on nan
. Everything is now interpreted as a
float
instead.
0.2.1 (2020-08-12)
- Fix wrong import statement
dvg-pyqt-controls
- Fix wrong import statement
dvg-pyqt-filelogger
0.2.0 (2020-08-11)
- Added dependence
dvg-pyqt-controls~=1.0
- Added dependence
dvg-pyqt-filelogger~=1.0
- Added dependence
dvg-pyqtgraph-threadsafe~=3.0
0.1.0 (2020-07-23)
- Fixed bug in
BaseDevice.py
where inspect.getouterframes()
would
momentarily suspend the thread. Solved by ditching inspect. The new
ID_validation_query
mechanism now relies on a simple boolean flag that
gets set to force query()
to raise on timeout. - Update dependence
dvg-qdeviceio==0.3.0
0.0.7 (2020-07-17)
- Update dependence
dvg-qdeviceio==0.2.2
0.0.6 (2020-07-16)
- Finished implementing
BaseDevice.SerialDevice()
- Update dependence
dvg-qdeviceio==0.2.1
0.0.5 (2020-07-07)
- Update dependence
dvg-qdeviceio==0.2.0
Enum DAQ_trigger
is now called DAQ_TRIGGER
- Code style: Black
0.0.4 (2020-07-04)
- Update dependence
dvg-qdeviceio==0.1.2
0.0.3 (2020-07-02)
0.0.2 (2020-07-02)
- Major restructuring PyPI package
- Implemented
DvG_QDeviceIO
0.0.1 (2020-07-01)