drok-xyt01


Namedrok-xyt01 JSON
Version 0.1.1 PyPI version JSON
download
home_pageNone
SummaryDROK XY-T01 UART driver.
upload_time2025-09-11 04:33:26
maintainerNone
docs_urlNone
authorNone
requires_python>=3.12
licenseNone
keywords uart serial temperature controller drok xyt01
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # DROK XY-T01 Driver

Thread-safe Python driver for the DROK XY-T01 digital temperature controller over UART.

Supports safe lifecycle sequencing, synchronous command API, and a background reader thread
that demultiplexes asynchronous measurement lines from command responses.

## Features

- Pure Python 3.12
- Async measurement reader + synchronous ACK handling
- Thread-safe single-command model
- Context-manager lifecycle
- Structured state parsing
- CLI for manual interaction
- Type-hinted & documented

## Installation

```shell
pip install drok-xyt01
```

## Quickstart

```python
from drok_xyt01 import DrokXYT01, DrokXYT01Config

def on_measurement(mode: str, temp_c: float) -> None:
    print(f"{mode} {temp_c:.1f} °C")

cfg = DrokXYT01Config(port="/dev/serial1")

with DrokXYT01(cfg) as ctl:
    if not ctl.connect(on_measurement=on_measurement):
        raise RuntimeError("Failed to connect")
    print("state:", ctl.query_state())
    ctl.set_setpoint(45.0)
    ctl.on()
```

## CLI

```shell
drok-xyt01 --port /dev/serial1 --verbose
```

## API Overview

- `connect(on_measurement=...)`: open port + start background reader
- `disconnect()`: stop thread + close port
- `start()` / `stop()`: start/stop measurement streaming
- `on()` / `off()`: control output relay
- `set_setpoint(temp_c)` / `set_alarm(temp_c)`: temperature setpoints
- `query_state()`: query device state
- `reset()`: safe reconnect sequence

## Resources

- Source code on Github: [elgeeko1/drok-xyt01](https://github.com/elgeeko1/drok-xyt01)
- API documentation: <https://elgeeko1.github.io/drok-xyt01/>

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "drok-xyt01",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.12",
    "maintainer_email": null,
    "keywords": "uart, serial, temperature, controller, drok, xyt01",
    "author": null,
    "author_email": "\"Jeff C. Jensen\" <11233838+elgeeko1@users.noreply.github.com>",
    "download_url": "https://files.pythonhosted.org/packages/02/8e/befa75505c2073e867bdb815078f6c607cf44fcec856851a05cac0ef192c/drok_xyt01-0.1.1.tar.gz",
    "platform": null,
    "description": "# DROK XY-T01 Driver\n\nThread-safe Python driver for the DROK XY-T01 digital temperature controller over UART.\n\nSupports safe lifecycle sequencing, synchronous command API, and a background reader thread\nthat demultiplexes asynchronous measurement lines from command responses.\n\n## Features\n\n- Pure Python 3.12\n- Async measurement reader + synchronous ACK handling\n- Thread-safe single-command model\n- Context-manager lifecycle\n- Structured state parsing\n- CLI for manual interaction\n- Type-hinted & documented\n\n## Installation\n\n```shell\npip install drok-xyt01\n```\n\n## Quickstart\n\n```python\nfrom drok_xyt01 import DrokXYT01, DrokXYT01Config\n\ndef on_measurement(mode: str, temp_c: float) -> None:\n    print(f\"{mode} {temp_c:.1f} \u00b0C\")\n\ncfg = DrokXYT01Config(port=\"/dev/serial1\")\n\nwith DrokXYT01(cfg) as ctl:\n    if not ctl.connect(on_measurement=on_measurement):\n        raise RuntimeError(\"Failed to connect\")\n    print(\"state:\", ctl.query_state())\n    ctl.set_setpoint(45.0)\n    ctl.on()\n```\n\n## CLI\n\n```shell\ndrok-xyt01 --port /dev/serial1 --verbose\n```\n\n## API Overview\n\n- `connect(on_measurement=...)`: open port + start background reader\n- `disconnect()`: stop thread + close port\n- `start()` / `stop()`: start/stop measurement streaming\n- `on()` / `off()`: control output relay\n- `set_setpoint(temp_c)` / `set_alarm(temp_c)`: temperature setpoints\n- `query_state()`: query device state\n- `reset()`: safe reconnect sequence\n\n## Resources\n\n- Source code on Github: [elgeeko1/drok-xyt01](https://github.com/elgeeko1/drok-xyt01)\n- API documentation: <https://elgeeko1.github.io/drok-xyt01/>\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "DROK XY-T01 UART driver.",
    "version": "0.1.1",
    "project_urls": null,
    "split_keywords": [
        "uart",
        " serial",
        " temperature",
        " controller",
        " drok",
        " xyt01"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "fcf5445a59ae0175f41d95339f3e69ae3ce845e82937465136576a73b357d79e",
                "md5": "1d96a7d4a2d223fdf81cfef7e37a2a44",
                "sha256": "dece41593c0157a9e2f8134b3c0e38b41ce9a7a97c318aada99f16092149a980"
            },
            "downloads": -1,
            "filename": "drok_xyt01-0.1.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "1d96a7d4a2d223fdf81cfef7e37a2a44",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.12",
            "size": 11272,
            "upload_time": "2025-09-11T04:33:25",
            "upload_time_iso_8601": "2025-09-11T04:33:25.577220Z",
            "url": "https://files.pythonhosted.org/packages/fc/f5/445a59ae0175f41d95339f3e69ae3ce845e82937465136576a73b357d79e/drok_xyt01-0.1.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "028ebefa75505c2073e867bdb815078f6c607cf44fcec856851a05cac0ef192c",
                "md5": "61227f97a551844f3612965efac80873",
                "sha256": "0ca1266f642d024b33345259a322796895132d26f1a651dd5a7d958b3d58a1d5"
            },
            "downloads": -1,
            "filename": "drok_xyt01-0.1.1.tar.gz",
            "has_sig": false,
            "md5_digest": "61227f97a551844f3612965efac80873",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.12",
            "size": 11237,
            "upload_time": "2025-09-11T04:33:26",
            "upload_time_iso_8601": "2025-09-11T04:33:26.604480Z",
            "url": "https://files.pythonhosted.org/packages/02/8e/befa75505c2073e867bdb815078f6c607cf44fcec856851a05cac0ef192c/drok_xyt01-0.1.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-09-11 04:33:26",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "drok-xyt01"
}
        
Elapsed time: 1.33021s