Metadata-Version: 2.1
Name: dvg-devices
Version: 0.2.3
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
    Parker Compax3             servo controller
    Keysight 3497xA            digital multimeter
    Keysight N8700             power supply
    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.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


