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>
This commit is contained in:
1 parent
e3bc1f72f3
commit
d955baf612
6 files changed
+385
-20
No files matched your search
@@ -1912,6 +1912,7 @@ the one `[e1608] handshake with ...: Connection refused` line, `stream: ... sign
|
||||
|
||||
```
|
||||
[flatudp] codec: ok=1
|
||||
[flatudp] form: initial_valid=0 good_valid=1 size_ok=1 dup_valid=0 dup_msg=1 oversize_valid=0 add=1 remove=1 wave_valid=1 wave_sub=1 wave_roundtrip=1 mixed_valid=0 mixed_msg=1 length_valid=0 length_msg=1 cap_valid=0 cap_msg=1 cap_wave_valid=1 vec_shown=1 vec_drive=1 vec_reset=1 ok=1
|
||||
[flatudp] datagram of 22 bytes, expected 21, check the signal list
|
||||
[flatudp] stream: connected=1 signals=7 names=Trigger,Ia,Cnt,Wave[0],Wave[1],Wave[2],Wave[3] expect=Trigger,Ia,Cnt,Wave[0],Wave[1],Wave[2],Wave[3] frames=368 rate=1000.000 ok=1
|
||||
[flatudp] channels: count=7 expect=7 ok=1
|
||||
@@ -1945,6 +1946,22 @@ same reason.
|
||||
rules refuse what they should (a waveform of count 1, a waveform mixed with another row or of another length,
|
||||
257 channels). It needs no source, so `--source probe` shows it too. `ok=0` is a codec defect: a swapped byte
|
||||
order, a wrong width or a rule that does not fire.
|
||||
- `form: ... ok=1`: driven through the widgets, not the settings. `initial_valid=0` -- an empty list is not
|
||||
connectable (`1` is a form that lets a source with no signals through). `good_valid=1 size_ok=1` -- a
|
||||
13-byte list is valid and its subtitle says `13 bytes` and `6 channels` (`W:int16[4]` as channels).
|
||||
`dup_valid=0 dup_msg=1` -- a duplicate name is refused *and the subtitle says why* ("used twice").
|
||||
`oversize_valid=0` -- two `float64[4096]` rows (65536 bytes) exceed a datagram. `add=1` -- two clicks on
|
||||
"Add signal" append `S1` and `S2`; `remove=1` -- the first row's "Remove" button takes that row out. A `0`
|
||||
on `add`/`remove` with a `Gtk-CRITICAL` is a row handled after it was removed. The vector fields:
|
||||
`wave_valid=1 wave_sub=1 wave_roundtrip=1` -- two waveform rows of one length are valid, the subtitle says
|
||||
`2 channels`, and `signals` reads back with its `w`; `mixed_valid=0 mixed_msg=1` -- a waveform beside a
|
||||
scalar is refused and the subtitle names the waveform rule; `length_valid=0 length_msg=1` -- waveforms of
|
||||
two lengths are refused ("same length"); `cap_valid=0 cap_msg=1 cap_wave_valid=1` -- 300 channels are over
|
||||
the 256 cap and the subtitle says `256`, while two `[200]w` waveforms (2 channels) are fine; `vec_shown=1`
|
||||
-- the "Vector as" drop-down (`flatudp-vector`) is shown on a count above 1 and hidden on a scalar row;
|
||||
`vec_drive=1` -- setting it to Waveform writes `Row::wave` (one waveform beside a channels row, then beside
|
||||
a scalar, are both still invalid, and the text gains its `w`); `vec_reset=1` -- a row whose count returns
|
||||
to 1 hides its drop-down and returns to Channels. Like `codec`, it needs no flatudp source.
|
||||
- `stream: ... ok=1`: the model's signals are the list's channels in order, each at its declared rate: `rate`
|
||||
for a scalar or a `channels` element (named `Name[k]`), `rate * count` for a waveform. `names` out of order is a
|
||||
decode that mixed rows; a rate that is not the expected one is a `sampling_rate` that did not reach the model
|
||||
|
||||
Reference in new issue
Block a user