🚧 WIP
This commit is contained in:
@@ -307,10 +307,13 @@ requirement ID for each item in parentheses.
|
||||
`--web-port`, env `WAGO_SIM_WEB_USER/PASSWORD/READONLY/
|
||||
NO_WEB/WEB_PORT`; login page + SPA shell.
|
||||
- [x] M2: node overview page — DIN-rail strip with coupler block
|
||||
(MS/NS/BF/SF LEDs), module bezels with article numbers,
|
||||
per-channel LEDs for DI/DO, bar+numeric indicators for AI/AO,
|
||||
live values via WebSocket (`/api/ws`, 10 Hz delta push),
|
||||
`GET /api/values` snapshot.
|
||||
(MS/NS/BF/SF LEDs), module bezels with article numbers plus the
|
||||
kind+slot designation (`DI0`, `DO2`, `AI4`) in the header's
|
||||
upper right corner, per-channel LEDs for DI/DO with the channel
|
||||
number beneath, bar+numeric indicators for AI/AO with the channel
|
||||
number outside the overflow/underflow limit LEDs, live values
|
||||
via WebSocket (`/api/ws`, 10 Hz delta push), `GET /api/values`
|
||||
snapshot (FR-10.2.2).
|
||||
- [x] M3: manipulation — DI/DO toggle (field side via
|
||||
`set_digital_input_channel`, master side via internal
|
||||
`write_bits`/`write_words` dispatch so mirrors/statistics stay
|
||||
@@ -331,15 +334,26 @@ requirement ID for each item in parentheses.
|
||||
graphic on top, live scrollable channel list below with I/O
|
||||
code, configured name, and a switch (DI/DO) / numeric field
|
||||
(AI/AO) for display + manipulation.
|
||||
- [x] M5b: analog display ranges (FR-10.2.14) — bar indicators fill
|
||||
from the bottom against the channel's display range, default
|
||||
0–4095 counts (100 % at 4095, WAGO 750 12-bit scaling), with
|
||||
per-channel min/max configurable in the node config
|
||||
(`channel_ranges:`) and editable on the Configuration page; values
|
||||
outside the range fill the bar red with a red LED above the bar
|
||||
(overflow) or below it (underflow); ranges carried through
|
||||
module saves, export/import, and rebuilds; also fixes the bar
|
||||
never filling (it set width instead of height on a vertical bar)
|
||||
and the invisible numeric label (clipped by overflow: hidden).
|
||||
- [ ] M6: scenario run view + alias-ownership rejection (FR-10.2.6,
|
||||
FR-10.2.9) — deferred.
|
||||
- [x] Tests: 38 web-UI tests (`tests/test_webui.py`) via httpx
|
||||
- [x] Tests: 46 web-UI tests (`tests/test_webui.py`) via httpx
|
||||
`ASGITransport` (in-process, no socket) + live verification:
|
||||
browser SAVE CONFIG rebuilds the node and persists YAML; Modbus
|
||||
master reads the module description (0x2030) correctly after the
|
||||
loader-overlap register fix; channel-name save + list sync;
|
||||
export/import round-trip with a Modbus read after the rebuild.
|
||||
Full suite: 216 passing.
|
||||
export/import round-trip with a Modbus read after the rebuild;
|
||||
bar states verified for in-range (97.7 % at 4000), overflow,
|
||||
custom-range, and underflow. Full suite: 224 passing.
|
||||
|
||||
### Framework gaps (spec §4 — Scenario & Macro Engine)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user