简体中文 · Demo · Architecture · API · Validation · MIT
A local acceptance station for industrial device vendors and system integrators. Turn an expected equipment list into a traceable inspection: record what was tested, preserve protocol evidence, and compare results after repairs.
| Field problem | Workbench behavior |
|---|---|
| A disconnected device disappears from a discovery list | Every selected configured device gets a result; missing devices remain failures. |
| A report cannot be tied to the configuration used | Each task keeps the full configuration snapshot, SHA-256, station/unit ID, batch, operator and timestamps. |
| Rechecking a repair loses the original evidence | Failed-only retests retain their parent task and original snapshot. Comparison shows recovery, regression and scope limits. |
| A demonstration needs field hardware | --demo uses an independent synthetic catalog, visibly stamps reports SIMULATED, and separates demo/live statistics. |
The intended position is a lightweight Linux field acceptance workflow with local evidence ownership. The project owner has confirmed the project was tested and is usable. See the design and positioning rationale and verification records.
For a ready-to-install bundle, download the Windows x64 or Linux x86_64 package from Releases. Bundles include offline runtime dependencies. Install CPython 3.10+ first; then double-click Start-Demo.cmd on Windows or run bash run_demo.sh on Linux. Release guide.
The workbench and compatibility scan page support English / 简体中文. Use the language selector to switch; your preference is remembered on this browser. On first visit, Chinese browser locales select Chinese and other locales select English. HTML reports use the selected interface language. Configured device names, entered metadata and original protocol evidence retain their source text.
Python 3.10+. The demo and offline checks also run on Windows.
python -m venv .venv
source .venv/bin/activate
python -m pip install --require-hashes -r requirements-runtime.lock
python web_app.py --demo --data-dir data/demoOn PowerShell, activate with .\.venv\Scripts\Activate.ps1. Open localhost:8080, create a mixed faults task, inspect its evidence, then retest with healthy. Demo walkthrough.
bash setup_linux.sh
bash run_web.sh --config config/device_list.json --data-dir data/liveReview the target equipment and custom request bytes before executing a live task. Built-in acceptance rejects write-labelled operations and Modbus functions outside 01–04. PCI checks are passive. Communication checks do not establish electrical performance or complete business functionality.
| Interface | Existing inspection capabilities |
|---|---|
| Serial | Modbus RTU reads 01–04; configured custom request/response matching |
| Network | Modbus TCP, TCP connectivity, custom TCP/UDP checks |
| PCI | Link/driver/interface inspection, including configured child devices |
The original scan UI remains at /legacy in live mode, sharing the station execution lock. Its reports remain separate from acceptance history. See configuration and deployment for operational boundaries.
The new inspection/ domain, service, store, adapters, HTTP and report modules isolate the browser workflow from the existing protocol core. SQLite persists task state and evidence; restart marks unfinished work interrupted without replaying hardware operations. A single process owns each station database.
The browser uses local assets without a CDN or frontend framework. Default binding is 127.0.0.1; network binding requires QLDC_ACCESS_TOKEN. The service includes bounded inputs, Host/Origin checks and escaped exports. It does not include multi-user roles or a TLS terminator.
python -m pip install --require-hashes -r requirements.lock
python validate_config.py
python self_test.py
python -m pytest -qValidation records tested paths and remaining hardware risks. Dependencies records pinned releases, source commits, licenses and artifact hashes. CI covers offline checks on Windows/Linux with Python 3.10/3.13.
