Skip to content

missing GUI elements - #749

Merged
A13xB0 merged 2 commits into
mainfrom
missing-gui-elements
Oct 14, 2026
Merged

A13xB0 merged 2 commits into
mainfrom
missing-gui-elements

Conversation

@A13xB0

@A13xB0 A13xB0 commented Oct 14, 2026 •

Copy link
Copy Markdown
Collaborator

The chip counters Tom added (#745, #746, and the chip model work in MeshBench/virtual-sx1262#2) reached the control socket and experiment.export, but no window showed them. This puts them where somebody comparing firmware would look.

What changes

Node window, Radio tab

  • IRQ suppressed, directly under the IRQ and DIO1 masks: events the chip raised that the firmware's mask kept out. Amber above zero. A chip that predates the count reads not counted, never 0, with the release the count arrived in (virtual-sx1262 v1.3.2).
  • Spurious detections, under busy time. It was on the Stats tab and the node list but missing beside the other chip counters.

Bench view, sweep results

  • IRQ suppressed and busy time, straight after delivered so they stay in view when the panel is docked narrow, and named as the Radio tab names them.
  • IRQ suppressed: each arm's mean of the per-cell irq_suppressed, as a cost (fewer is green).
  • busy time: each arm's mean detection-flag time, in seconds, absolute rather than a delta, because more busy time means a firmware seeing more of the traffic, which is neither better nor worse.
  • Both are averaged only over the seeds whose chips counted them, and drawn as a dash where none did (an emulated node sends no record). A baseline without them leaves the other arms absolute instead of a delta against an unmeasured zero.
  • The caption under the table says which columns are costs and what a dash means.

Verbs

  • experiment.results arm summaries carry irq_suppressed and busy_ms, absent where nothing counted. Its description says so; docs/verbs.json and docs/verb-reference.md are regenerated.

Pictures

radioshot_test.go (new) and a chip-counters case in sweepshot_test.go draw these from real numbers out of a 15-cell scotland-strict run (MeshCore 1.16.0, 1.17.0, 1.17.1 at virtual-sx1262 v1.3.3):

MESHBENCH_SHOTS=<dir> go test ./internal/ui/workbench/nodeview -run TestDrawTheRadioTab
MESHBENCH_SHOTS=<dir> go test ./internal/ui/workbench -run TestDrawTheSweepResults

Verification

  • go test for internal/app/session/experiment, internal/app/state, internal/ui/workbench (control audit included), internal/ui/workbench/nodeview and internal: pass.
  • New tests, each failing without its change: an arm's chip means leave out uncounted seeds and are absent with none; a chip that did not count draws a dash and leaves its neighbour absolute; fewer suppressed is painted better; the radio row says "not counted" rather than 0 and marks a non-zero count.
  • gofmt, go vet: clean. tools/lint-ratchet.sh with golangci-lint v2.12.2: holds.
  • verbdoc.py --check: current. Verb manifest test: passes.

Manual: a MeshBench/docs PR follows with the same pictures.

The suppressed count and the per-cell chip counters reached the control
socket and the export but no window. The radio tab now carries the IRQ
suppressed count beside the masks that cause it, reading "not counted"
for a chip that predates it, and the spurious detections beside busy
time. The sweep results gain suppressed and busy columns, averaged over
the seeds whose chips counted them and drawn as a dash where none did:
two firmwares that flood identically differ there and nowhere else.
@A13xB0 A13xB0 mentioned this pull request Oct 14, 2026
@A13xB0
A13xB0 merged commit ad9028c into main Oct 14, 2026
20 of 27 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant