Metadata-Version: 2.4
Name: ika-control
Version: 0.7.0
Summary: Python driver for IKA instruments.
Author-email: Alex Ruddick <alex@ruddick.tech>
Maintainer-email: Alex Ruddick <alex@ruddick.tech>
Project-URL: Homepage, https://github.com/alexrudd2/ika
Project-URL: Issues, https://github.com/alexrudd2/ika/issues
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.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Scientific/Engineering :: Human Machine Interfaces
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pyserial
Dynamic: license-file

ika
===

Python 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
============

```
uv 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 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.
