Getting started¶
Install¶
The project uses Poetry.
poetry install # runtime + dev dependencies, console scripts
poetry install --with docs # additionally install the documentation toolchain
Run the test suite¶
poetry run pytest tests/ -q
For behaviour the suite does not cover (hardware drivers, multi-process
server/hub interaction, anything needing a real device), run it manually
through Poetry — but check tests/ first.
Console entry points¶
Defined under [tool.poetry.scripts] in pyproject.toml:
Command |
Purpose |
|---|---|
|
full-control GUI, run on the server PC |
|
view-only GUI, run on client PCs |
|
start one device’s RPC server standalone |
|
start one InfluxDB logger standalone |
|
kill leftover processes holding ZMQ ports |
start_servers.bat / start_client.bat / kill_stale.bat wrap these on the
lab machines. Run kill-stale after an unclean shutdown, when a launch fails
with “Address already in use”.
Qt windows cannot construct without a display. Set
QT_QPA_PLATFORM=offscreen before running any script that imports Qt widgets
in a non-interactive shell.
Build this documentation¶
cd docs
poetry run make html
Open docs/_build/html/index.html. The API reference under docs/api/ is
regenerated from the package docstrings by sphinx-apidoc on every build and
is not checked in; poetry run make clean removes it along with _build/.