docs: the source-plugin framework, the --source options and the source-kinds probe
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
1 parent
5cee00aaee
commit
4d859d6a37
6 files changed
+96
-11
No files matched your search
@@ -5,7 +5,8 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
|
||||
## What this project is
|
||||
|
||||
udpscope is a **GTK4 oscilloscope-style viewer for a UDPStreamer source**. It receives one
|
||||
UDP stream with `deps/udpsclient`, buffers it in a large ring (default 200 MB), and draws it
|
||||
data source -- a UDPStreamer stream through `deps/udpsclient` by default, or another registered
|
||||
source kind (see `docs/claude/architecture.md`) -- buffers it in a large ring (default 200 MB), and draws it
|
||||
with `deps/plotter` — a figure of up to eight stacked rows sharing one x window. On top of
|
||||
the live view it provides the things a bench scope provides: a trigger with a pre/post event
|
||||
window, a pause that freezes the visible window, cursors, statistical measurements,
|
||||
@@ -20,7 +21,7 @@ Two documents bound the work and are **not** interchangeable with this one:
|
||||
|
||||
Three things shape almost every change here, and the linked files expand on each:
|
||||
|
||||
- **There are exactly two threads** — a producer that owns the UDP client and the GTK main
|
||||
- **There are exactly two threads** — a producer that owns the data source and the GTK main
|
||||
thread that owns every widget and the GL context — and they share `ScopeModel` under one
|
||||
mutex. Samples cross through lock-free rings, never through the lock.
|
||||
- **There is no unit test suite.** The only automated check is the application's own headless
|
||||
@@ -45,7 +46,7 @@ The detail lives in `docs/claude/`. Read the files that touch the area you are e
|
||||
|
||||
| File | What it covers |
|
||||
| --- | --- |
|
||||
| [architecture.md](docs/claude/architecture.md) | The two threads and what they share; the one `BufferStore` and the four display modes (`Live`, `Capturing`, `Held`, `Waiting`); the display clock and `stream_at_x0()`; the layers to keep straight (`SignalInfo` → `ChannelBuffer` → `SlotSeries` → `RowSet`). |
|
||||
| [architecture.md](docs/claude/architecture.md) | The two threads and what they share; the one `BufferStore` and the four display modes (`Live`, `Capturing`, `Held`, `Waiting`); the display clock and `stream_at_x0()`; the layers to keep straight (`SignalInfo` → `ChannelBuffer` → `SlotSeries` → `RowSet`); the source plugins. |
|
||||
|
||||
### Invariants worth knowing before editing
|
||||
|
||||
|
||||
Reference in new issue
Block a user