fix: bound the density grid, and make [notrace] a reading instead of a flood
The plotter caps a density grid at kDensityCellCap now (deps/plotter), so a 2 s window with persistence on no longer scales the image with the window: the probe's four one-signal rows read 1 044 714 cells / 4 178 856 bytes where they read 2 226 150 / 8 904 600, and a moved frame uploads 1 044 714 bytes where it uploaded 2 226 150. The probe's own legs are unchanged (on peak=1.0000, step-acquisitions peak=1.5000, step-time ratio=0.367879). The paint probe no longer counts a frame the density is drawing as *traceless*. `Renderer::draw_traces()` returns while the ink is the image, so every frame of a persistence display stages no trace: the dump read `traceless paints: 653 (637 after the first bind)` for a run whose real figure is 4 (0), and the `[notrace]` line printed for each of those frames. It is now behind UDPSCOPE_PROBE_NOTRACE -- a per-paint line is a log flood and not a reading -- while the counters it details stay in every build, and the line stays reachable for the state it was written for (a bound row that draws nothing). Docs corrected where they stated the old rule: the README, the trigger invariants, the density probe's readings, the verification list (the new variable) and the manual page behind the panel's tooltip.
This commit is contained in:
1 parent
da826f2cb5
commit
ac054a30c9
11 files changed
+131
-76
No files matched your search
@@ -115,7 +115,9 @@ precedent, not an exception.
|
||||
schedule in use, oldest first — halves, and `1/2^age` at that. Both lines and the two exit-dump
|
||||
lines are in [probe-readings.md](probe-readings.md).
|
||||
- `UDPSCOPE_PROBE_DENSITY_MS` (+ `UDPSCOPE_PROBE_DENSITY_TAU`, default 1.0 s) — the **phosphor
|
||||
density**: one screen-sized intensity image **per trace**, in that trace's own colour, every
|
||||
density**: an intensity image **per trace**, in that trace's own colour, the axes rect in device
|
||||
pixels up to the plotter's `kDensityCellCap` (past which it scales the rect down uniformly and
|
||||
magnifies the image back over it with a linear filter), every
|
||||
triggered acquisition accumulated into it (the newest included), drawn *in place of* the traces,
|
||||
fading by a per-acquisition factor or by a time constant. It states the display
|
||||
**off** through the panel's own switch first, so the `off` leg is the run without it, then arms the
|
||||
@@ -144,6 +146,15 @@ precedent, not an exception.
|
||||
one run), and the exit dump's `density:` line says what the last frame it was on held. Both lines
|
||||
and the dump line are in [probe-readings.md](probe-readings.md).
|
||||
|
||||
- `UDPSCOPE_PROBE_NOTRACE` (no value; **not** a scheduled probe, and off unless it is set) — the
|
||||
per-paint detail behind the exit dump's `traceless paints:` counter: one `[notrace]` line for each
|
||||
of the first 40 paints after the first bind that staged no trace, naming the mode, the axis the
|
||||
frame was asked for and every slot's bounds. It is behind a variable because a state that draws
|
||||
nothing lasts as long as it lasts, so an ungated line is one per frame for the whole time -- and it
|
||||
is *not* printed for a frame a phosphor density is drawing, which stages no trace by construction
|
||||
(the frame's ink is the image) and would otherwise be counted as well. The counter itself is in
|
||||
every build; see [probe-readings.md](probe-readings.md).
|
||||
|
||||
- `UDPSCOPE_PROBE_TRIGRENUM_MS` — the trigger's capture must survive a **renumbering of its own
|
||||
channel**. It sets the reported geometry through the real widgets (1 s window, 10 % pre share,
|
||||
hold-off from `--holdoff`) on the mock's *square* alone, polls for a capture to open, and then
|
||||
|
||||
Reference in new issue
Block a user