Metadata-Version: 2.1
Name: ika-control
Version: 0.6.1
Summary: Python driver for IKA instruments.
Home-page: https://github.com/numat/ika/
Author: Alex Ruddick
Author-email: a.ruddick@numat-tech.com
License: GPLv3
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Development Status :: 4 - Beta
Classifier: Natural Language :: English
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Human Machine Interfaces
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pyserial
Provides-Extra: test
Requires-Dist: pytest<8,>=6; extra == "test"
Requires-Dist: pytest-cov<6,>=5; extra == "test"
Requires-Dist: pytest-asyncio==0.*; extra == "test"
Requires-Dist: pytest-xdist==3.*; extra == "test"
Requires-Dist: ruff==0.4.7; extra == "test"
Requires-Dist: mypy==1.10.1; extra == "test"
Requires-Dist: types-pyserial==3.5.0.20240311; extra == "test"

ika
===

Python ≥3.8 driver and command-line tool for IKA products.
 - Eurostar 60/100 control overhead stirrers
 - MATRIX ORBITAL shaker
 - RET control-visc hotplate/stirrer
 - Vacstar control vacuum pump

Installation
============

```
pip install ika-control
```

Usage
=====

## Command Line

```
$ ika <serial-to-ethernet-ip>:<port> --type hotplate
$ ika <serial-to-ethernet-ip>:<port> --type overhead
$ ika <serial-to-ethernet-ip>:<port> --type shaker
$ ika <serial-to-ethernet-ip>:<port> --type vacuum
```


## Python

This uses Python ≥3.5's async/await syntax to asynchronously communicate with an IKA device. For example:

```python
import asyncio
from ika import Hotplate, OverheadStirrer

async def get():
    async with OverheadStirrer('ip-address:port') as stirrer:
        print(await stirrer.get())
    async with Hotplate('ip-address:port') as hotplate:
        print(await hotplate.get())


asyncio.run(get())
```
Hardware configuration
======================
For Control-Visc hotplates, make sure the "Eurostar" control option is turned off
in the system settings.  Otherwise, the device will turn the heater off when the serial
cable is unplugged.

Acknowledgements
================

©2023 Alexander Ruddick

Uses code from [the Hein group](https://gitlab.com/heingroup/ika), but otherwise no affiliation.
As of 2023, that project appears to have been abandoned.
