Martino Ferrari
3ac7a8f230
Merge feature/gen-rate-and-tabs into feature/source-plugins
2026-11-02 14:21:08 +01:00
Martino Ferrari and Claude Opus 4.6
0d8c583bbb
e1608: a configurable generator update rate, and the achieved rate in the Analog out panel
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-11-02 12:19:23 +01:00
Martino Ferrari and Claude Opus 4.6
0c6e69957d
ui: draw the sidebar tabs without the placeholder icon
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-11-02 12:11:16 +01:00
Martino Ferrari and Claude Opus 4.6
5bb23e6a0a
probe: name the MathNode fields; the build baseline is now one warning
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-11-02 12:06:45 +01:00
Martino Ferrari
7b9c62c911
Merge feature/e1608-scan into feature/source-plugins
2026-11-02 11:51:25 +01:00
Martino Ferrari and Claude Opus 4.6
f74df49d33
e1608: scan review fixes (EINTR in Scan::poll, cfg-based broadcast test, no per-tick copy)
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-11-02 10:27:00 +01:00
Martino Ferrari and Claude Opus 4.6
8245324b51
docs: reconcile the E-1608 README with the real-board run and the scan lookup
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-11-02 10:22:47 +01:00
Martino Ferrari and Claude Opus 4.6
dbf145094a
e1608: probe and docs for the network scan
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-11-02 10:20:16 +01:00
Martino Ferrari and Claude Opus 4.6
24bdd6b930
e1608: a Scan network row in the connection form, with click-to-fill results
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-11-02 10:17:01 +01:00
Martino Ferrari and Claude Opus 4.6
43c21a0cc2
e1608: discover boards on every interface, not only the default route's
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-11-02 10:14:47 +01:00
Martino Ferrari
9426a61919
docs: implementation plan for the E-1608 network scan
2026-11-02 10:07:50 +01:00
Martino Ferrari
eb4e59ac50
Merge feature/text-tabs into feature/source-plugins
2026-11-02 10:03:28 +01:00
Martino Ferrari and Claude Opus 4.6
16e6d7fa75
ui: sidebar tab selector uses text labels instead of icons
...
The two drawn tab glyphs were judged not understandable enough; the
switcher goes to the wide policy with titles only, and the glyphs,
their gresource entries and the icon-naming code are removed.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-11-02 09:49:55 +01:00
Martino Ferrari
b6822cd32d
docs: tidy the scan spec
2026-11-02 09:42:54 +01:00
Martino Ferrari
19b7f25b82
docs: design spec for the E-1608 network scan
2026-11-02 09:42:50 +01:00
Martino Ferrari
a8e12b26a2
flatudp: restore the datagram_size declaration deleted by the previous comment fix
2026-11-02 07:06:02 +01:00
Martino Ferrari
bec9942d3d
flatudp: correct the all_scalar doc comment
2026-11-02 01:27:15 +01:00
Martino Ferrari and Claude Opus 4.6
d955baf612
flatudp: the signal-row editor form with a per-row Vector as drop-down, its probe line, README and architecture notes
...
Multicast was verified on a loopback group (239.255.42.99 on 127.0.0.1); a real network was not exercised.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-11-02 01:23:51 +01:00
Martino Ferrari and Claude Opus 4.6
e3bc1f72f3
flatudp: vector rows as channels or as a waveform, a re-openable source, probes for both
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-11-02 01:18:43 +01:00
Martino Ferrari
a523bc2bd9
docs: flat UDP spec and plan amendment -- vector rows as channels or as a waveform
2026-11-02 01:12:58 +01:00
Martino Ferrari and Claude Opus 4.6
78a29fbc39
flatudp: the source, kind, mock sender and stream probes
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-11-02 01:05:38 +01:00
Martino Ferrari
6e8e71b32f
flatudp: the signal-list codec, with a hand-computed decode check
2026-11-02 00:58:02 +01:00
Martino Ferrari
dde2dad5b1
docs: the flat UDP source implementation plan
2026-11-02 00:53:37 +01:00
Martino Ferrari and Claude Opus 4.6
6c01689bfe
docs: flat UDP spec -- drop time_mode, record the batching and event rules found in acquisition.cpp
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-11-02 00:36:14 +01:00
Martino Ferrari and Claude Opus 4.6
cf4d105ece
docs: design spec for the flat UDP (MARTe2 UDPSender) source
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-11-02 00:32:54 +01:00
Martino Ferrari and Claude Opus 4.6
e8db5602a2
e1608: cosmetic minors -- 2-digit frequency spin, smaller mock catch-up cap, docs wording
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-11-02 00:24:15 +01:00
Martino Ferrari and Claude Opus 4.6
87822ed4f5
Clear the open minors: lost marking and overrun logging, form teardown guard, line breaks and ERANGE in config, probe strength
...
The E-1608 source marks every restart as lost and logs each overrun; its form stops touching
siblings after the chooser destroys them; the link skips command id 0, retries a full-buffer
discover send and ignores a zero-length scan read. Session files escape \n and \r; get_int and
get_double reject out-of-range values; the UDPS port spin reports changes; a skipped source panel
says why on stderr. The E-1608 probe now checks the signal names and the reconnect itself.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-11-02 00:19:27 +01:00
Martino Ferrari and Claude Sonnet 4.6
6245811699
e1608: do not fight a hardware trigger, stop the scan on a failed connect, daemon drop timer in the mock
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-11-01 10:01:38 +01:00
Martino Ferrari and Claude Sonnet 4.6
3093568d11
docs: the E-1608 source kind, its probe readings and its unverified commands
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-11-01 09:54:49 +01:00
Martino Ferrari and Claude Sonnet 4.6
2e9f9664cf
e1608: UDPSCOPE_PROBE_E1608 and the e1608 form sample in the source-kinds probe
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-11-01 09:50:59 +01:00
Martino Ferrari and Claude Sonnet 4.6
407051959a
e1608: the Analog out and Digital I/O panels
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-11-01 09:46:26 +01:00
Martino Ferrari and Claude Sonnet 4.6
bacc960776
e1608: the settings, the DataSource state machine, and the connect form
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-11-01 09:43:45 +01:00
Martino Ferrari and Claude Sonnet 4.6
5ac1b36a1f
e1608: link and device layers (discovery, handshake, framed commands, calibration, decode)
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-11-01 09:40:58 +01:00
Martino Ferrari and Claude Sonnet 4.6
558d13d521
tools: a protocol mock of the MCC E-1608, with its unverified commands listed
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-11-01 09:39:25 +01:00
Martino Ferrari
5380a0d26c
plan: the E-1608 source plugin implementation plan
2026-11-01 09:00:41 +01:00
Martino Ferrari
69585a963b
spec: MCC E-1608 source plugin (sub-project 3)
2026-11-01 07:48:20 +01:00
Martino Ferrari
dd4aed8dec
fix: escape the source title in markup; capture peer comes from the source config
2026-10-31 20:27:47 +01:00
Martino Ferrari and Claude Opus 4.6
4d859d6a37
docs: the source-plugin framework, the --source options and the source-kinds probe
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-10-31 20:22:22 +01:00
Martino Ferrari
5cee00aaee
source: capability panels as side-stack pages, with a probe for the path
2026-10-31 20:18:28 +01:00
Martino Ferrari
79c33b25c5
chooser: refuse to edit a session of an unregistered kind
2026-10-31 20:15:15 +01:00
Martino Ferrari
14f1421b2b
chooser: pick the source type; each kind supplies its own connection form
2026-10-31 20:08:39 +01:00
Martino Ferrari and Claude Opus 4.6
059b660586
source: a synthetic probe kind, and sessions that remember their source kind
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-10-31 20:04:42 +01:00
Martino Ferrari
4ae91bd58b
source: normalise UDPS signal dimensions in to_info; comment tidy
2026-10-31 20:02:55 +01:00
Martino Ferrari
504bc193ea
acquisition: drive a DataSource from the registry; --source and --source-opt
2026-10-31 19:59:51 +01:00
Martino Ferrari
46076312cc
source: the UDPS client behind DataSource, with its config form
2026-10-31 19:57:11 +01:00
Martino Ferrari and Claude Opus 4.6
3896f404a9
source: DataSource, Frame, SourceConfig and the registry (unused yet)
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-10-31 19:56:00 +01:00
Martino Ferrari
71b904a93b
docs: settle source-plugin implementation details in the spec
2026-10-31 19:54:23 +01:00
Martino Ferrari
5bc14b1163
docs: implementation plan for the source-plugin framework
2026-10-31 19:52:21 +01:00
Martino Ferrari and Claude Opus 4.6
1a3393229a
docs: design for the data-source plugin framework (sub-project 1 of 4)
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-10-31 19:25:21 +01:00
Martino Ferrari
f3f8f67a62
tools: a remote display script, Xvfb plus x11vnc over an SSH tunnel
...
Over SSH with X11 forwarding the app does not appear: no usable Vulkan device means GTK cannot
create a swapchain, and `--renderer cairo` fixes that half only -- the plot is a GtkGLArea and asks
for its own GL context, so indirect GLX is the second wall. A virtual X server on the machine that
runs the app sidesteps both, because the GL context then lives next door to the samples.
`tools/udpscope-remote.sh` starts Xvfb on a free display, runs the app there with
`--renderer cairo`, and serves the screen through x11vnc bound to localhost only -- the SSH tunnel
is the authentication, so `-nopw` is deliberate and `-localhost` is what keeps a mistake from being
a remotely reachable screen. It prints the tunnel and viewer commands rather than assuming a
client, mentions the websockify/noVNC route for a browser, and takes the X and VNC servers with it
when the app exits. `--no-vnc` leaves just the virtual display, for another viewer; the preflight
names the install command instead of a bare "command not found".
Verified: the preflight refuses with exit 1 and the install line when x11vnc is absent; with
`--no-vnc` the app runs against the virtual display and reads `buffer allocated: 4 channels` with
no Vulkan warning and no critical, and no Xvfb is left behind when the timeout ends it. That run
also exercises what the earlier log showed by omission: nothing is enabled, so a working app
plots nothing.
The README's Limitations gains the bullet a person actually needs -- the exact warning string, that
both halves need the software preset, the script itself, and that a window which appears but stays
empty usually means no signal is enabled.
2026-10-28 16:16:32 +01:00