History
0.19.1 (2025-11-18)
Update the Dockerfile
Update License Classifier (Comply with PEP 639)
Fix brocken pipeline for Python 3.12
0.19.0 (2025-11-18)
Update to be compatible with
9.0.0ofpytestChange
rst_ttojinjafor8.1.0ofsphinxAgree on the use of units issue #416 (in temperature, pressure, gas density, voltage, current, concentration, humidity, absolute humidity, …)
New device: Keysight-B2985A electrometer
0.18.3 (2025-10-27)
Fix an unintended indent in
tiepie
0.18.2 (2025-09-24)
Fix ReadTheDocs
Update to be compatible with
0.13.0ofruff
0.18.1 (2025-08-19)
Hot-fix to be compatible with the newly released version
3.10.0ofpymodbus(removal ofBinaryPayloadBuilderandBinaryPayloadDecoder)Update
CONTRIBUTING.md, fix typos and grammarAdd “Coding Style” in
CONTRIBUTING.md
0.18.0 (2025-06-23)
New device: PFA-2 filter
RangeEnumsupports now also reverse rangeUpdate on
README.mdandINSTALLATION.mdincludeuv
0.17.1 (2025-05-14)
Update to be compatible with
0.11.0ofruffChange
AUTHOR.rst,CONTRIBUTING.rst,INSTALLATION.rst,README.rst, andHISTORY.rstto*.mdformatUpdate
CONTRIBUTING.mdincludeuvusage and test guidelineUpdate
pyproject.toml: add dependency-groups dev and lint
0.17.0 (2025-01-17)
New devices: FPCSCube and SynthCube
Drop support for Python 3.9
Add support for Python 3.13
Drop TelnetCommunication and use TCP for our devices
Update code style (e.g.
ruff>=0.9.2)Use
pytest-profiling>=1.8.1for development
0.16.0 (2024-10-18)
New device: Korad laboratory bench DC power supply KA3000p-series
Fix
pytest-profilingto1.7.0as new release has a bugUse
datetime.now()with timezone
0.15.1 (2024-09-25)
Update to be compatible with
0.6.0ofruffRemove wrong kwarg from
ModbusTcpClientSmall fix of logging in
tcp-communicationChange logging behaviour when checking the status of a
labjackconnectionReport test results in CI as jUnit-data
0.15.0 (2024-05-14)
Support of Python 3.11 and 3.12 (Older Python versions will not be supported with future release)
Code formatting and linting is performed with
Ruff(black,isort,pylintare not used anymore)Minor rework of VISA communication
Minor rework of
fug-packageBugfixes in
tiepieNew feature in
lauda: Read temperature from external sensor
0.14.4 (2023-12-22)
Hot-fix to be compatible with the newly released version
23.12.0ofblackSwitch to src-layout
In
tiepie:implementation property
generator_is_runningto check, whether the generator is runningproperties
probe_offsetandprobe_gainare not implemented and raise NotImplementedError
0.14.3 (2023-11-17)
Fix Heinzinger conversion from mA to A and fix wrong docstrings
Hot-fix to be compatible with the newly released version
23.11.0ofblackFix
bumpvertag messagesImplementation of Technix to fulfil
protocols.Source
0.14.2 (2023-09-07)
Change dependency to
libtiepiewith linux binaries using forked versionpython-libtiepie-biAdapt
makefileafter removingsetup.pyFix commit messages and tag with
bumpverHot-fix to be compatible with the newly released version
3.5.0ofpymodbus
0.14.1 (2023-08-21)
Remove
setup.cfg,setup.py,mypy.ini,pytest.ini,requirements_dev.txtand change topyproject.tomlReplace
bump2versionwithbumpverChange dependency to
libtiepiewith linux binariesHot-fix to be compatible with the newly released version
6.1.0offlake8
0.14.0 (2023-07-28)
Rework of Heinzinger high voltage source control
validation of input values (e.g.
voltage-property)merge
HeinzingerPNCandHeinzingerDItoHeinzingeralways return values as V for voltage and A for current
RangeEnum for
number_of_recordingsfulfil
protocols.Sourceraise Error for getter and setter (e.g. set_current, get_current …), use property instead
Hot-fix to be compatible with the newly released version
23.7.0ofblackHot-fix to be compatible with the newly released version
3.4.0ofpymodbusHot-fix to be compatible with the newly released version
1.1.6oflibtiepiedrop support for I2C
Remove default import from
hvl_ccb.commandhvl_ccb.devfor specific communication protocols and devices
0.13.3 (2023-03-31)
Introduce common protocol for voltage and current sources
hvl_ccb.dev.protocols.sourcesUpdate code style to
black23.3.0 andisort5.12.0An
_EarthingStickofBaseCubeis implemented as a_SwitchCode improvements for device
Heinzingeruse property-based instead of getter and setter
DeprecationWarning for getter and setter (e.g. set_current, get_current …)
0.13.2 (2023-03-17)
Hot-fix to be compatible with the newly released version
3.0.0oftypeguard
0.13.1 (2023-03-03)
Repository maintenance
add the option to manually set
n_attempts_maxandattempt_interval_secinqueryof theSyncCommunicationProtocolfix links in description for
Heinzingerdigital interface and universal high voltage power supplieskeep copyright year information only in
docs/conf.pyandREADME.rstremove copyright year information from the files
fix readthedocs build failed issue
update code style to
black23.1.0
0.13.0 (2023-01-27)
Drop support for Python 3.7 and 3.8:
remove version dependent implementations
changed typing acc. to PEP 585
Un-freeze version number of dependencies and upgrade to most recent versions
0.12.3 (2022-12-27)
Code improvements for device
cube:split
alarmsfromconstantssplit
errorsfromconstantssplit
earthing_stickfromconstantssplit
supportfromconstants
Update code style to
black22.12.0Smaller change of device
tiepie:change hard coded trigger time out value for no time out/infinite (-1) to
ltp.const.TO_INFINITY
0.12.2 (2022-11-29)
Move the device modules into packages
Bugfix in
validate_numberto check the order of the limitsRepository maintenance:
imports are sorted with
isortsome
mypyfixing and additional typing
0.12.1 (2022-10-31)
Fix
numpyversion requirement problemfor Python 3.7: 1.21.6
for Python 3.8 and onwards: 1.23.4
0.12.0 (2022-10-17)
Last release for Python 3.7 and 3.8
Repository maintenance
update Labjack LJM software installer link in the pipeline
fix dependencies to the fixed version
fix
asyncuato 0.9.95 andpymodbusto 2.5.3 (newer versions break the code)fix PICube checker for slope as it is always positive
0.11.1 (2022-09-15)
Repository maintenance
fix issue with
mypyand Python 3.10.7update code style to
black22.8.0project configurations merged into
setup.cfgfix coverage indicator
0.11.0 (2022-06-22)
New device: Fluke 884X Bench 6.5 Digit Precision Multimeter
RangeEnumis a new enum for e.g. measurement ranges which also finds a suitable range objectsmaller changes of device
tiepie:introduce status method
is_measurement_running()to check if the device is armedintroduce
stop_measurement()to disarm the trigger of the devicefix bug with docs due to change of
libtiepie
NameEnumand inherited enums can only have unique entries
0.10.3 (2022-03-21)
fix bug in the Labjack pulse feature that occurred when the start time was set to 0s
new conversion utility to map two ranges on each other
update CONTRIBUTING.RST
update makefile and make.sh
improve the mockup telnet test server
0.10.2 (2022-02-28)
introduction of
blackas code formatterincrease the required version of the package
aenumremove device
supercube2015- as it is no longer usedremove unused package
openpyxlrequirementfix bug in highland logging
improve handling for communication error with picotech
0.10.1 (2022-01-24)
several improvements and fixes for device
cube:privatize
AlarmsandAlarmsOverviewfix list of cube alarms
improve docs
fix bugs with earthing sticks
fix bug in config dataclass of cube
introduction of BoolEnum
introduction of RangeEnum
bumpversion -> bump2version
0.10.0 (2022-01-17)
Reimplementation of the Cube (before known as Supercube)
new names:
Supercube Typ B -> BaseCube
Supercube Typ A -> PICube (power inverter Cube)
new import:
from hvl_ccb.dev.supercube import SupercubeB->from hvl_ccb.dev.cube import BaseCube
new programming style:
getter / setter methods -> properties
e.g. get:
cube.get_support_output(port=1, contact=1)->cube.support_1.output_1e.g. set:
cube.get_support_output(port=1, contact=1, state=True)->cube.support_1.output_1 = True
unify Exceptions of Cube
implement Fast Switch-Off of Cube
remove method
support_output_impulseall active alarms can now be queried
cube.active_alarms()alarms will now result in different logging levels depending on the seriousness of the alarm.
introduction of limits for slope and safety limit for RedReady
during the startup the CCB will update the time of the cube.
verification of inputs
polarity of DC voltage
Switch from
python-opcuatoopcua-asyncio(former package is no longer maintained)
0.9.0 (2022-01-07)
New device: Highland T560 digital delay and pulse generator over Telnet.
Rework of the Technix Capacitor Charger.
Moved into a separate sub-package
NEW import over
import hvl_ccb.dev.technix as XXXSlightly adapted behaviour
Add
validate_tcp_portto validate port number.Add
validate_and_resolve_hostto validate and resolve host names and IPs.Remove requirement
IPy
Add a unified CCB Exception schema for all devices and communication protocols.
Add data conversion functions to README.
Update CI and devel images from Debian 10 buster to Debian 11 bullseye.
Fix typing due to
numpyupdate.Fix incorrect overloading of
clean_values()in classes of typeXCommunicationConfig.
0.8.5 (2021-11-05)
Added arbitrary waveform for TiePie signal generation, configurable via
dev.tiepie.generator.TiePieGeneratorConfig.waveformproperty.In
utils.conversion_sensor: improvements for class constants; removed SciPy dependency.Added Python 3.10 support.
0.8.4 (2021-10-22)
utils.validation.validate_numberextension to handle NumPy arrays and array-like objects.utils.conversion_unitutility classes handle correctlyNamedTupleinstances.utils.conversion_sensorandutils.conversion_unitcode simplification (notransfer_function_orderattribute) and cleanups.Fixed incorrect error logging in
configuration.configdataclass.comm.telnet.TelnetCommunicationtests fixes for local run errors.
0.8.3 (2021-09-27)
New data conversion functions in
utils.conversion_sensorandutils.conversion_unitmodules. Note: to use these functions you must installhvl_ccbwith extra requirement, eitherhvl_ccb[conversion]orhvl_ccb[all].Improved documentation with respect to installation of external libraries.
0.8.2 (2021-08-27)
New functionality in
dev.labjack.LabJack:configure clock and send timed pulse sequences
set DAC/analog output voltage
Bugfix: ignore random bits sent by to
dev.newport.NewportSMC100PPcontroller during start-up/powering-up.
0.8.1 (2021-08-13)
Add Python version check (min version error; max version warning).
Daily checks for upstream dependencies compatibility and devel environment improvements.
0.8.0 (2021-07-02)
TCP communication protocol.
Lauda PRO RP 245 E circulation thermostat device over TCP.
Pico Technology PT-104 Platinum Resistance Data Logger device as a wrapper of the Python bindings for the PicoSDK.
In
com.visa.VisaCommunication: periodic status polling when VISA/TCP keep alive connection is not supported by a host.
0.7.1 (2021-06-04)
New
utils.validationsubmodule withvalidate_boolandvalidate_numberutilities extracted from internal use within adev.tiepiesubpackage.In
comm.serial.SerialCommunication:strict encoding errors handling strategy for subclasses,
user warning for a low communication timeout value.
0.7.0 (2021-05-25)
The
dev.tiepiemodule was splitted into a subpackage with, in particular, submodules for each of the device types –oscilloscope,generator, andi2c– and with backward-incompatible direct imports from the submodules.In
dev.technix:fixed communication crash on nested status byte query;
added enums for GET and SET register commands.
Further minor logging improvements: added missing module level logger and removed some error logs in
exceptblocks used for a flow control.In
examples/folder renamed consistently all the examples.In API documentation: fix incorrect links mapping on inheritance diagrams.
0.6.1 (2021-05-08)
In
dev.tiepie:dynamically set oscilloscope’s channel limits in
OscilloscopeChannelParameterLimits:input_rangeandtrigger_level_abs, incl. update of latter on each change ofinput_rangevalue of aTiePieOscilloscopeChannelConfiginstances;quick fix for opening of combined instruments by disabling
OscilloscopeParameterLimits.trigger_delay(an advanced feature);enable automatic devices detection to be able to find network devices with
TiePieOscilloscope.list_devices().
Fix
examples/example_labjack.py.Improved logging: consistently use module level loggers, and always log exception tracebacks.
Improve API documentation: separate pages per modules, each with an inheritance diagram as an overview.
0.6.0 (2021-04-23)
Technix capacitor charger using either serial connection or Telnet protocol.
Extensions, improvements and fixes in existing devices:
In
dev.tiepie.TiePieOscilloscope:redesigned measurement start and data collection API, incl. time out argument, with no/infinite time out option;
trigger allows now a no/infinite time out;
record length and trigger level were fixed to accept, respectively, floating point and integer numbers;
fixed resolution validation bug;
dev.heinzinger.HeinzingerDIanddev.rs_rto1024.RTO1024instances are now resilient to multiplestop()calls.In
dev.crylas.CryLasLaser: default configuration timeout and polling period were adjusted;Fixed PSI9080 example script.
Package and source code improvements:
Update to backward-incompatible
pyvisa-py>=0.5.2. Developers, do update your local development environments!External libraries, like LibTiePie SDK or LJM Library, are now not installed by default; they are now extra installation options.
Added Python 3.9 support.
Improved number formatting in logs.
Typing improvements and fixes for
mypy>=0.800.
0.5.0 (2020-11-11)
TiePie USB oscilloscope, generator and I2C host devices, as a wrapper of the Python bindings for the LibTiePie SDK.
a FuG Elektronik Power Supply (e.g. Capacitor Charger HCK) using the built-in ADDAT controller with the Probus V protocol over a serial connection
All devices poling status or measurements use now a
dev.utils.Pollerutility class.Extensions and improvements in existing devices:
In
dev.rs_rto1024.RTO1024: added Channel state, scale, range, position and offset accessors, and measurements activation and read methods.In
dev.sst_luminox.Luminox: added querying for all measurements in polling mode, and made output mode activation more robust.In
dev.newport.NewportSMC100PP: an error-pronewait_until_move_finishedmethod of replaced by a fixed waiting time, device operations are now robust to a power supply cut, and device restart is not required to apply a start configuration.
Other minor improvements:
Single failure-safe starting and stopping of devices sequenced via
dev.base.DeviceSequenceMixin.Moved
read_text_nonemptyup tocomm.serial.SerialCommunication.Added development Dockerfile.
Updated package and development dependencies:
pymodbus,pytest-mock.
0.4.0 (2020-07-16)
Significantly improved new Supercube device controller:
more robust error-handling,
status polling with generic
Pollerhelper,messages and status boards.
tested with a physical device,
Improved OPC UA client wrapper, with better error handling, incl. re-tries on
concurrent.futures.TimeoutError.SST Luminox Oxygen sensor device controller.
Backward-incompatible changes:
CommunicationProtocol.access_lockhas changed type fromthreading.Locktothreading.RLock.ILS2T.relative_stepandILS2T.absolute_positionare now called, respectively,ILS2T.write_relative_stepandILS2T.write_absolute_position.
Minor bugfixes and improvements:
fix use of max resolution in
Labjack.set_ain_resolution(),resolve ILS2T devices relative and absolute position setters race condition,
added acoustic horn function in the 2015 Supercube.
Toolchain changes:
add Python 3.8 support,
drop pytest-runner support,
ensure compatibility with
labjack_ljm2019 version library.
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-stringsmore enumerations and a quite some improvements of existing code
Improved error docstrings (
: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.