chore: baseline existing CI-V suite before RepeaterBook integration
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
# id5100 — Decisions
|
||||
|
||||
Format: `YYYY-MM-DD: <decision> — <why>`
|
||||
|
||||
- 2026-06-14: Pure-stdlib `termios` instead of pyserial — system Python is PEP-668
|
||||
externally-managed; per the escalation-brake rule, `--break-system-packages` for
|
||||
one dependency is the wrong trade. `termios` is zero-install and reusable.
|
||||
- 2026-06-14: Layered as codec (`civ.py`) / transport (`radio.py`) / CLI (`cli.py`)
|
||||
— the codec is pure and unit-testable; web UI / HA-MQTT front ends bolt onto the
|
||||
transport without touching byte plumbing.
|
||||
- 2026-06-14: TDD the codec against the real probe capture (`00 00 30 47 01` ↔
|
||||
147.300000 MHz) — gives a hardware-true vector, not a made-up one.
|
||||
- 2026-06-14: Cable lands on **[SP2]** (= CI-V), 9600 baud, addr 0x8C — verified
|
||||
live, not assumed.
|
||||
|
||||
- 2026-06-14: Web panel = stdlib `http.server` + single `panel.html`, no framework
|
||||
— keeps the no-deps promise; the UI is one self-contained file. One shared `Radio`
|
||||
guarded by a lock (CI-V is half-duplex; concurrent transactions would interleave).
|
||||
- 2026-06-14: `transact()` returns as soon as the radio's reply frame parses instead
|
||||
of always burning the full timeout — dropped a full status poll from ~3.6s to ~0.2s,
|
||||
making a ~1 Hz live S-meter poll viable.
|
||||
- 2026-06-14: Aesthetic = industrial instrument faceplate (amber VFD via DSEG7 font,
|
||||
LED S-meter, illuminated mode buttons) — matches the radio-gear domain and the
|
||||
Sethian dark/orange brand. Verified by headless screenshot.
|
||||
|
||||
## Deferred / Rejected
|
||||
|
||||
- **Full software control-head replica** — rejected: the detachable head talks a
|
||||
proprietary, undocumented bus to the main unit; CI-V exposes operating functions
|
||||
only (no menu/LCD mirror). Not worth reverse-engineering.
|
||||
- **pyserial** — rejected (see above).
|
||||
- **DV mode set** — deferred: 0x17 unverified on this radio; don't ship set_mode('dv')
|
||||
as trusted until confirmed against the manual's CI-V table or the live rig.
|
||||
- **RS-MS1A data-jack protocol (D-STAR DR/callsign/messaging)** — out of scope for
|
||||
this CI-V layer; separate effort if wanted.
|
||||
Reference in New Issue
Block a user