Metadata-Version: 2.1
Name: hvl-ccb
Version: 0.3.5
Summary: Python common code base to control devices high voltage research devices, in particular, as used in Christian Franck's High Voltage Lab (HVL), D-ITET, ETH
Home-page: https://gitlab.com/ethz_hvl/hvl_ccb/
Author: Mikołaj Rybiński, David Graber
Author-email: mikolaj.rybinski@id.ethz.ch, graber@eeh.ee.ethz.ch
License: GNU General Public License v3
Keywords: hvl_ccb
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Requires-Dist: pyserial (>=3.4)
Requires-Dist: labjack-ljm (>=1.20.0)
Requires-Dist: pymodbus (==2.1.0)
Requires-Dist: IPy (>=0.83)
Requires-Dist: bitstring (>=3.1.5)
Requires-Dist: pyvisa (>=1.9.1)
Requires-Dist: pyvisa-py (>=0.3.1)
Requires-Dist: typeguard (>=2.3.0)
Requires-Dist: aenum (>=2.1.2)
Requires-Dist: opcua (>=0.98.6)
Requires-Dist: cryptography (>=2.6.1)

====================
HVL Common Code Base
====================

.. image:: https://gitlab.com/ethz_hvl/hvl_ccb/badges/master/pipeline.svg
        :target: https://gitlab.com/ethz_hvl/hvl_ccb/commits/master
        :alt: Pipeline status

.. image:: https://gitlab.com/ethz_hvl/hvl_ccb/badges/master/coverage.svg
        :target: https://gitlab.com/ethz_hvl/hvl_ccb/commits/master
        :alt: Coverage report

.. image:: https://readthedocs.org/projects/hvl-ccb/badge/?version=stable
        :target: https://hvl-ccb.readthedocs.io/en/latest/?badge=stable
        :alt: Documentation Status

Python common code base to control devices high voltage research devices, in
particular, as used in Christian Franck's High Voltage Lab (HVL), D-ITET, ETH.


* Free software: GNU General Public License v3
* Documentation:
    * if you're planning to develop start w/ reading "CONTRIBUTING.rst",
      otherwise either
    * read `HVL CCB documentation at RTD`_, or
    * install `Sphinx` and `sphinx_rtd_theme` Python packages and locally build docs
      on Windows in git-bash by running::

      $ ./make.sh docs

      from a shell with Make installed by running::

      $ make docs

      The target index HTML ("docs/_build/html/index.html") will open automatically in
      your Web browser.

.. _`HVL CCB documentation at RTD`: https://readthedocs.org/projects/hvl-ccb/


Features
--------

Manage experiments with :code:`ExperimentManager` instance controlling one or more of
the following devices:

* a MBW973 SF6 Analyzer / dew point mirror over a serial connection (COM-ports)
* a LabJack (T7-PRO) device using a LabJack LJM Library for communication
* a Schneider Electric ILS2T stepper motor drive over Modbus TCP
* a Elektro-Automatik PSI9000 DC power supply using VISA over TCP for communication
* a Rhode & Schwarz RTO 1024 oscilloscope using VISA interface over :code:`TCP::INSTR`
* a state-of-the-art HVL in-house Supercube device variants using an OPC UA client
* a Heinzinger Digital Interface I/II and a Heinzinger PNC power supply over a serial
  connection
* a passively Q-switched Pulsed Laser and a laser attenuator from CryLas over a serial
  connection
* a Newport SMC100PP single axis motion controller for 2-phase stepper motors over
  a serial connection
* a Pfeiffer TPG controller (TPG 25x, TPG 26x and TPG 36x) for Compact pressure Gauges


Credits
-------

This package was created with Cookiecutter_ and the
`audreyr/cookiecutter-pypackage`_ project template.

.. _Cookiecutter: https://github.com/audreyr/cookiecutter
.. _`audreyr/cookiecutter-pypackage`: https://github.com/audreyr/cookiecutter-pypackage


=======
History
=======

0.3.5 (2020-02-18)
------------------

* Fix issue with reading integers from LabJack LJM Library (device's product ID, serial
  number etc.)
* Fix development requirements specification (tox version).

0.3.4 (2019-12-20)
------------------

* New devices using serial connection:
    * Heinzinger Digital Interface I/II and a Heinzinger PNC power supply
    * Q-switched Pulsed Laser and a laser attenuator from CryLas
    * Newport SMC100PP single axis motion controller for 2-phase stepper motors
    * Pfeiffer TPG controller (TPG 25x, TPG 26x and TPG 36x) for Compact pressure Gauges
* PEP 561 compatibility and related corrections for static type checking (now in CI)
* Refactorings:
    * Protected non-thread safe read and write in communication protocols
    * Device sequence mixin: start/stop, add/rm and lookup
    * `.format()` to f-strings
    * more enumerations and a quite some improvements of existing code
* Improved error docstrings (:code:`:raises:` annotations) and extended tests for
  errors.

0.3.3 (2019-05-08)
------------------

* Use PyPI labjack-ljm (no external dependencies)


0.3.2 (2019-05-08)
------------------

* INSTALLATION.rst with LJMPython prerequisite info


0.3.1 (2019-05-02)
------------------

* readthedocs.org support

0.3 (2019-05-02)
----------------

* Prevent an automatic close of VISA connection when not used.
* Rhode & Schwarz RTO 1024 oscilloscope using VISA interface over TCP::INSTR.
* Extended tests incl. messages sent to devices.
* Added Supercube device using an OPC UA client
* Added Supercube 2015 device using an OPC UA client (for interfacing with old system
  version)

0.2.1 (2019-04-01)
------------------

* Fix issue with LJMPython not being installed automatically with setuptools.

0.2.0 (2019-03-31)
------------------

* LabJack LJM Library communication wrapper and LabJack device.
* Modbus TCP communication protocol.
* Schneider Electric ILS2T stepper motor drive device.
* Elektro-Automatik PSI9000 current source device and VISA communication wrapper.
* Separate configuration classes for communication protocols and devices.
* Simple experiment manager class.

0.1.0 (2019-02-06)
------------------

* Communication protocol base and serial communication implementation.
* Device base and MBW973 implementation.


