Commit Graph

15 Commits

Author SHA1 Message Date
Martino Ferrari f85ab8652c Add Auto publishing mode to UDPStreamer; optimise WebUI hub
UDPStreamer:
- Add PublishingMode = "Strict" | "Auto" config parameter
- Add MinRefreshRate (Hz) for Auto mode; uses HRT phase-locked tick
  counting to rate-limit sends without accumulation buffers
- Fix high-frequency integration test configs to use newline-separated
  key-value pairs (MARTe2 StandardParser does not treat ';' as delimiter)
- Add 3 new unit tests (AutoMode_Valid, AutoMode_MissingRefreshRate,
  UnknownPublishingMode); all 33 tests passing

WebUI hub:
- Skip ring-buffer LTTB writes when zoom has not been accessed in 10 s,
  reducing idle CPU usage
- Use unsafe float64→bytes reinterpretation to eliminate per-element
  encoding overhead in the hot broadcast path

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-26 22:29:40 +02:00
Martino Ferrari b465dd680c using packet timestamp 2026-05-21 15:56:29 +02:00
Martino Ferrari 3315c02282 Faster implementation with binary websocket 2026-05-21 15:48:08 +02:00
Martino Ferrari 62545503c4 Improved uo and added timerarraygam for testing 2026-05-20 00:15:38 +02:00
Martino Ferrari 620542a722 Implemented backend hr resolution data, splitted test gam 2026-05-19 14:14:22 +02:00
Martino Ferrari c122369ca7 multi source 2026-05-19 13:14:46 +02:00
Martino Ferrari b4d6e2443c multi source 2026-05-19 13:14:26 +02:00
Martino Ferrari e6ab50e90e working prototype 2026-05-19 10:48:06 +02:00
Martino Ferrari bdcdb39d21 Functional v2 2026-05-18 23:28:29 +02:00
Martino Ferrari f06b948c0f Working 1 st version 2026-05-18 18:07:09 +02:00
Martino Ferrari 06500d5399 Funcitional 2026-05-18 18:07:01 +02:00
Martino Ferrari ed5d381d32 UDPStreamer: poll data semaphore first, then non-blocking command poll
Reorder Execute() main stage so the background thread waits on dataSem
(sleeping until the RT thread posts) before doing the socket select().
The socket poll is now non-blocking (timeout=0) since command latency
bounded by UDPS_DATA_WAIT_MS is acceptable for CONNECT/DISCONNECT.

Also force-remove old udpstreamer-webui binary in run.sh before rebuild
so stale embedded assets are never served.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-17 23:51:11 +02:00
Martino Ferrari 82005ec5d3 Fix WebUI rolling-window and buffer-wrap display bugs
Replace fragile zoomGuard boolean with userInteracting flag so that
programmatic scale updates (rolling window, resize, fit) never lock
p.xRange.  Only genuine mouse drag or scroll-wheel events on the uPlot
canvas set userInteracting=true and allow onZoom to freeze the view.

Also move stale-xRange detection out of the needsRedraw gate so that a
plot whose circular buffer has scrolled past a frozen zoom range
automatically returns to rolling-window mode every frame, fixing the
second bug where data disappeared as the buffer wrapped.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-17 23:48:31 +02:00
Martino Ferrari e258b9eb7f first working prototype 2026-05-15 17:42:36 +02:00
Martino Ferrari e3389f932b FIrs 2026-05-15 17:42:14 +02:00