Files
andy a665993a7c feat(da07): decode ~P channel-serial frames; verify ~H on hardware; refit channel columns on device switch
Second hardware capture (saved as tests/da07/fixtures/capture-2026-06-12-
steady-state.txt, now with "> "-prefixed outbound lines) settles the remaining
protocol questions:

- ~P is a per-channel CT sensor serial (P + device + channel + 16-hex), matching
  the E-frame tails byte-for-byte - decoded as ChannelSerial and applied to the
  channel model. It is NOT a custom-name echo: a ~D field-11 name write is
  Z1-ACKed but never reported back, so channel names are write-only by protocol
  (a typed Tag reverts on Refresh, same as the legacy). BL-E5 part 2 closed.
- The ~H realtime layout is verified against 68 real frames: counters, LE
  buffered count, LE time, then 16 per-device status nibbles that matched the
  live Devices tab (devices 2,3 COM, rest OK). Indicator triples remain
  unobserved (no active alarm groups on the test station).
- The write queue is hardware-confirmed: 26 writes drew 25 ACKs with one
  observed idle-retransmit recovery; both device toggles survived a Refresh.

UI fix: the Channels tab now refits its columns after a device switch. TableTab
auto-fits only when the row count changes, but switching devices swaps the whole
content at the same row count, leaving Serial/Model sized for the previous pod
(fitted to empty serials, truncating 16-char ones).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-12 10:58:47 -04:00
..