From e8db5602a23c09b2c20284465cf451dc37384ab5 Mon Sep 17 00:00:00 2001 From: Martino Ferrari Date: Mon, 2 Nov 2026 00:24:15 +0100 Subject: [PATCH] e1608: cosmetic minors -- 2-digit frequency spin, smaller mock catch-up cap, docs wording Co-Authored-By: Claude Opus 4.6 --- README.md | 4 ++-- docs/claude/probe-readings.md | 4 ++-- src/source/e1608/e1608_panels.cpp | 2 +- tools/mock_e1608.py | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 74fa879..5cc5359 100644 --- a/README.md +++ b/README.md @@ -142,8 +142,8 @@ trigger is configured, so as not to reset the wait for the edge; this is unverif numbering (channel + 8) and the filler byte after scan start are agreed by both references. The scan overrun count is approximate: the board does not say how many scans it dropped, so the frame after a restart reports one lost. Errors (no device, a rejected connection code, a timeout, the scan socket closing) are written to stderr as -`[e1608] ...` once per distinct message; the window shows only that the source is disconnected (the status popover -reads `waiting`, and the panels go insensitive), not why. +`[e1608] ...` once per distinct message (an overrun is logged each time it happens); the window shows only that +the source is disconnected (the status popover reads `waiting`, and the panels go insensitive), not why. A session file written before kinds existed has no `source_kind`, and is read as UDPS; a UDPS file is written exactly as before. A kind's capability panels (for instance a source's own controls) appear as diff --git a/docs/claude/probe-readings.md b/docs/claude/probe-readings.md index 4fea332..dac2c6d 100644 --- a/docs/claude/probe-readings.md +++ b/docs/claude/probe-readings.md @@ -1875,8 +1875,8 @@ The UDPS run has no `source-` page in `side_stack`, because the UDPS kind has no `UDPSCOPE_PROBE_E1608=1500` (the first eight lines; `frames=` and the exact mean vary) and `UDPSCOPE_PROBE_E1608_RECONNECT=8000` (the last two) run as `--source e1608` against `tools/mock_e1608.py` -with the options in `verification.md`. The ninth line is the source's own stderr message about the drop, not a -probe line (its text is the error the source met, once per distinct message). `connected=0` throughout, with +with the options in `verification.md`. The line between `decode` and `reconnect` is the source's own stderr message +about the drop, not a probe line (its text is the error the source met, once per distinct message). `connected=0` throughout, with `actions: skipped (not connected)`, is the no-board run; it is a reading and not a failure, and it also prints the one `[e1608] handshake with ...: Connection refused` line, `stream: ... signals=0 expect=1 ... ok=0`, `calibration: ai0_mean=nan ... ok=0` and `state: connects=0 message='handshake with ...'`. diff --git a/src/source/e1608/e1608_panels.cpp b/src/source/e1608/e1608_panels.cpp index 50e82c9..b9997d6 100644 --- a/src/source/e1608/e1608_panels.cpp +++ b/src/source/e1608/e1608_panels.cpp @@ -173,7 +173,7 @@ GtkWidget* build_ao(E1608Source* src) { w.level = spin(p + "-level", "Level (V)", -10, 10, 0.1, src->settings().ao_init[ch], 3); w.amp = spin(p + "-amp", "Amplitude (V)", 0, 10, 0.1, 1.0, 3); w.offset = spin(p + "-offset", "Offset (V)", -10, 10, 0.1, 0.0, 3); - w.freq = spin(p + "-freq", "Frequency (Hz)", 0.1, 10, 0.1, 1.0, 1); + w.freq = spin(p + "-freq", "Frequency (Hz)", 0.1, 10, 0.1, 1.0, 2); w.run = switch_row(p + "-run", "Run", nullptr); w.last = adw_action_row_new(); gtk_widget_set_name(w.last, (p + "-last").c_str()); diff --git a/tools/mock_e1608.py b/tools/mock_e1608.py index c2195f9..d907c61 100755 --- a/tools/mock_e1608.py +++ b/tools/mock_e1608.py @@ -263,7 +263,7 @@ class Board: self.streaming = False self.log("OVERRUN") return - due = min(int((now - t0) * rate) - sent, 65536) + due = min(int((now - t0) * rate) - sent, 4096) if due > 0: t = np.arange(sent, sent + due) / rate cols = [self.raw(w, r, t) for (w, r) in queue]