Metadata-Version: 2.5
Name: plesty-bench
Version: 0.3.1
Summary: Client for a PLESTY bench running plesty-server: run its commands and fetch its reports from another machine.
Author-email: Yunshuang Yuan <yuanyunshuang@gmail.com>
Maintainer-email: Plesty Development Team <plesty.dev@example.com>
License-Expression: LGPL-3.0-or-later
License-File: LICENSE
License-File: LICENSES/LGPL-3.0-or-later.txt
Requires-Python: >=3.12
Requires-Dist: click>=8.1
Requires-Dist: pyzmq>=26
Provides-Extra: control
Requires-Dist: plesty-lib[gui]>=0.4.0; extra == 'control'
Provides-Extra: gui
Requires-Dist: plesty-lib>=0.4.0; extra == 'gui'
Requires-Dist: plesty-lib[gui]>=0.4.0; extra == 'gui'
Requires-Dist: pyside6==6.11.2; extra == 'gui'
Requires-Dist: pyyaml>=6.0; extra == 'gui'
Provides-Extra: server
Requires-Dist: plesty-lib>=0.4.0; extra == 'server'
Requires-Dist: pyyaml>=6.0; extra == 'server'
Description-Content-Type: text/markdown

# plesty-server · plesty-bench

**The bench PC's own console for the PLESTY platform.** It installs hub device
modules, starts and supervises their device servers, runs field tests against
the real instruments and keeps the logs — so a lab bench is set up and kept
running from one place instead of one venv, one terminal and one hand-written
`uv` pin per instrument.

This repository publishes two packages:

| | Install on | Install with |
|---|---|---|
| **`plesty-server`** — the bench application: CLI, Qt console, agent | the bench PC | `uv tool install "plesty-server[gui]"` |
| **`plesty-bench`** — the client that drives a bench from elsewhere | your own machine | `uv tool install plesty-bench` |

On a Windows bench, the [releases](https://gitlab.com/plesty/core/plesty-bench/-/releases)
carry a `setup.exe` (per-user, no admin); macOS and Linux have `install.sh`.
Both install `uv`, run the command above and add a Start-menu / Launchpad
entry — they contain no application code of their own.

## Bringing up a bench

```bash
plesty-server fleet init                      # a fleet.yaml to declare into
plesty-server declare pm100d plesty-pm100d --version 0.2.1 \
    --arg --address --arg "USB0::0x1313::…::INSTR"
plesty-server start pm100d                    # installs, launches, waits until it answers
plesty-server status
```

The instrument is now reachable from an experiment PC at this machine's
address on the port `status` reports. `plesty-server gui` opens the same bench
in a window; `plesty-server fleet run` keeps it up headless after a reboot.

## Driving it from your own machine

The bench serves an agent; the client sends it `plesty-server` command lines
and follows the output.

```bash
plesty-bench -b lab-bench-03 status
plesty-bench -b lab-bench-03 field-test pm100d --gates connect,drain
plesty-bench -b lab-bench-03 control pm100d          # a control panel per device
```

## Documentation

`docs/` is in two parts: **using a bench** — setup, modules, running servers,
field tests, the console, remote work, the command reference — and **design
and internals**, which is where the architecture, the process model, the port
rules, the platform differences and the release machinery are explained.
