fix: a source that has sent no CONFIG reads connecting, not connected
A stream that answered CONNECT but has sent no CONFIG has no signal list, so nothing can be enabled and no DATA frame is owed. Calling that "connected, but no data is arriving: another reader may hold the source" blamed a second reader that does not exist, and the badge blinked green over it -- a working pipeline is exactly what it did not have. The glance word is `connecting` (ten characters, no wider than `event held`, so the fixed-set layout rule still holds) and the badge takes a fourth, steady yellow phase, both from the first frame rather than after the three-second stall test. The stall notice itself now splits on `have_config`: the unicast contention wording where a signal list exists, "trying to connect" where it does not, with `[udpscope] connecting:` on stderr beside the old `starved:`.
This commit is contained in:
1 parent
b313cac46e
commit
811c6d80f0
5 files changed
+145
-52
No files matched your search
@@ -995,13 +995,21 @@ connection, the measured rate, the packet/frame/gap counters, what plot 1 holds
|
||||
the buffer's size and span. Three of those are worth calling out:
|
||||
|
||||
- **The badge blinks green at 1 Hz while the pipeline is actually running** — the
|
||||
stream is connected, acquisition is not paused, and in trigger mode the trigger is
|
||||
armed. Anything else leaves it a steady grey, with the reason on its tooltip
|
||||
(`paused`, `trigger disarmed`, `waiting for the stream`). *Blinking* is the signal,
|
||||
not the colour: a steady badge is a stopped pipeline, and that distinction survives
|
||||
a screenshot. It is one glyph whose colour is all that changes, so blinking it
|
||||
stream is connected, a CONFIG has arrived, acquisition is not paused, and in trigger
|
||||
mode the trigger is armed. Anything else leaves it steady, with the reason on its
|
||||
tooltip (`paused`, `trigger disarmed`, `waiting for the stream`). *Blinking* is the
|
||||
signal, not the colour: a steady badge is a stopped pipeline, and that distinction
|
||||
survives a screenshot. It is one glyph whose colour is all that changes, so blinking it
|
||||
cannot change its width — a badge that grew and shrank twice a second would move the
|
||||
label beside it and re-lay out the plot with it.
|
||||
There are two steady colours, and the difference is how far the handshake got.
|
||||
**Grey** is a socket with nothing behind it, or a pipeline the user stopped.
|
||||
**Yellow** is a source that answered CONNECT but has sent **no CONFIG**: there is no
|
||||
signal list, so nothing can be enabled and no DATA frame is owed. The glance line reads
|
||||
`connecting` in both, because neither has the signal list every other state word claims;
|
||||
the colour is what separates "no socket yet" from "a socket and no stream behind it". A
|
||||
blinking green over a source that has sent nothing would claim a working pipeline, which
|
||||
is the one reading the badge exists to prevent.
|
||||
- **`rate 9.99 kS/s` is the rate the buffer actually stored over the last second**, not
|
||||
the rate the CONFIG declared. The two agree unless the requested window is too long
|
||||
to hold at the wire rate, in which case the ingest resamples (see "A window longer
|
||||
@@ -1565,7 +1573,8 @@ fails validation renders a one-line stand-in so the window always opens rather t
|
||||
no `Gtk-CRITICAL`.
|
||||
|
||||
**The status bar is two tiers.** The bar itself shows one glance line: the activity badge, the
|
||||
display state (one word from a fixed set), the stored rate and the window. Everything else —
|
||||
display state (one word from a fixed set — `connecting`, `live`, `paused`, `armed`, `capturing`,
|
||||
`event held`, `disarmed`, none wider than ten characters), the stored rate and the window. Everything else —
|
||||
packet and frame counts, gaps, buffer size and span, per-plot trace counts — is behind the ⓘ
|
||||
button at the bar's right-hand end, opening a popover. The two moved there because a bar that
|
||||
carried all of them was too wide to read while watching a signal, and because the bar sits
|
||||
@@ -1650,6 +1659,17 @@ status line as `N reconnects` once it is nonzero) it says so in the status line
|
||||
leaving an empty plot to be puzzled over, and prints a `starved:` line to stderr while the
|
||||
state holds.
|
||||
|
||||
That notice is **split on whether a CONFIG ever arrived**, because the two states are
|
||||
different diagnoses and only one of them is about another reader. With a signal list in
|
||||
hand, a stream that stops is the fight above: something took the session away, and the
|
||||
notice says so (`starved:` on stderr). With **no CONFIG at all** nothing was ever taken —
|
||||
there is no signal list, so nothing can be enabled and no DATA frame is owed — and the app
|
||||
says `trying to connect` instead (`connecting:` on stderr), with the glance line reading
|
||||
`connecting` and the badge yellow from the first frame rather than after the three-second
|
||||
stall test. Calling that one "connected, but no data is arriving" blamed a second reader
|
||||
that does not exist; the usual cause is a streamer that is not running, or one serving a
|
||||
different port.
|
||||
|
||||
## Limitations
|
||||
|
||||
- **Multi-element (vector/matrix) signals are acquired with a zero-order hold.**
|
||||
|
||||
Reference in new issue
Block a user