Initial commit

This commit is contained in:
Martino Ferrari committed 2026-10-01 15:42:48 +02:00
commit 8059b90de7
29 files changed
+7893

No files matched your search

+38
View File
@@ -0,0 +1,38 @@
- Initialize 2 identical large buffer at initialization (default 200MB each, configurable as cli argument) to use as sample buffer for the rest of the application
- Uses `deps/plotter` for plotting
- Uses `deps/udpsclient/udps_client.h` to connect to one stream source
- the application should be composed of:
1. main toolbar that contain:
- time window selection
- plot layout selection
- pause/resume button
- enable/disable trigger mode
- show/hide and reset cursors [horizontal and or vertical]
2. when in trigger mode a collapsable right panel to configure trigger logic:
- select signal to use as trigger
- select edge detection type (rising, falling, both)
- select trigger level
- select pre trigger window size (in %)
- select trigger hold off time (default 10ms)
- select trigger mode [normal], [single]
- arm/disarm trigger button
3. a collapsable signal panel:
- list with all available signals
- enable/disable signal to acquire
- calibrate signal: popup to select offset and gain for signal
- drag and drop signal on plot to start plotting it
- button to show signal info in a popup (unit, range, rate, type, quantisation etc)
4. main view with plot:
- multiples plots depending from selected layout
- each plot have it x-axis sync
- each plot can have y-axis with [right click menu]:
1. auto scale (default)
2. fixed range (user definable)
- each plot can show one or more signals
- signal acqusition:
- the memory buffer should be split in N+1 (where N is the number of enabled signals) and +1 is for the shared time base
- only if the time window \* signal sample rate is greater than size of signal buffer decimate input signal
- the buffer should be used as circular buffer
- the time should be computed from the time associated with the signal (not from the client but from the streamed data)
- in trigger mode data visualisation should not be refreshed till next event, that's why 2 identical buffer, one is the currently
viewed event, the other used to acquire live data for next event