Metadata-Version: 2.1
Name: dvg-devices
Version: 0.2.4
Summary: Collection of I/O interfaces to communicate with microcontroller boards and laboratory devices, with optional PyQt5 multithread support and graphical user-interfaces.
Home-page: https://python-dvg-devices.readthedocs.io
Author: Dennis van Gils
Author-email: vangils.dennis@gmail.com
License: MIT
Project-URL: Issue Tracker, https://github.com/Dennis-van-Gils/python-dvg-devices/issues
Keywords: device I/O,automation,laboratory,science,control,experiment,PyQt5,multithread,Arduino,serial,VISA
Platform: UNKNOWN
Classifier: License :: OSI Approved :: MIT License
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Topic :: Scientific/Engineering 
Classifier: Topic :: Scientific/Engineering :: Electronic Design Automation (EDA)
Classifier: Topic :: Scientific/Engineering :: Physics
Requires-Python: >=3.6
Description-Content-Type: text/x-rst
Requires-Dist: dvg-debug-functions (~=2.1)
Requires-Dist: dvg-pid-controller (~=2.0)
Requires-Dist: dvg-pyqt-controls (~=1.0)
Requires-Dist: dvg-pyqt-filelogger (~=1.0)
Requires-Dist: dvg-pyqtgraph-threadsafe (~=3.0)
Requires-Dist: dvg-qdeviceio (~=0.3.0)
Requires-Dist: matplotlib (~=3.1)
Requires-Dist: numpy (~=1.15)
Requires-Dist: pyqt5 (~=5.12)
Requires-Dist: pyserial (==3.4)
Requires-Dist: pyvisa (~=1.9)

.. 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 PyQt5 multithread support and graphical
user-interfaces.*

- Documentation: https://python-dvg-devices.readthedocs.io
- Github: https://github.com/Dennis-van-Gils/python-dvg-devices
- PyPI: https://pypi.org/project/dvg-devices

Installation::

    pip install dvg-devices

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_SerialCommand <https://github.com/Dennis-van-Gils/DvG_SerialCommand>`_ it
  allows for automatically connecting to your Arduino(-like) device and for easy
  serial I/O communication.

* Separate PyQt5 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 PyQt5 demos to directly control many of the supported
  devices with a graphical user-interface.

Changelog
=========

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)
------------------
* Fixed broken packaging

0.0.2 (2020-07-02)
------------------
* Major restructuring PyPI package
* Implemented ``DvG_QDeviceIO``

0.0.1 (2020-07-01)
------------------
* First release on PyPI


