Files
meshcore-analyzer/public
dborup ad1680ca0a fix(#1868): decode CONTROL DISCOVER_REQ/RESP fields for humans
Follow-up to #1806, which decoded the raw fields but left them
unfriendly to read:
- Detail sidepanel no longer falls through to a generic "Raw" row for
  CONTROL packets -- proper Subtype/Filter/Tag/Since/SNR/Pubkey rows
  with byte offsets, matching the ADVERT/TRACE field-table pattern.
- DISCOVER_REQ's filter byte is a per-type bitmask (firmware checks
  `filter & (1 << ADV_TYPE_x)`); now rendered as type names
  (Companion/Repeater/Room Server/Sensor) instead of raw hex.
- DISCOVER_RESP's node_type nibble gets the same human-readable label
  (shares the ADV_TYPE_* enum already used for ADVERT roles).
- SNR converted from the wire int8 (value*4) to real dB, matching the
  /4.0 conversion TRACE's snrValues already apply in both decoders.
- Responder pubkey (full 32B or 8B prefix) resolved to a clickable
  node link in the detail panel via /api/nodes/{pubkey}, which already
  handles prefix resolution server-side (#772); falls back to the
  first 8 hex chars when unresolved. The packet-row preview (rendered
  per-row, no live lookup) always shows the 8-hex-char form.

Frontend-only (public/packets.js) -- the ingestor's decodeControl()
already emits every field used here (#1806); this just makes the
existing data readable.
2026-07-28 14:35:15 +02:00
..