docs: describe the TCP transport, multiplexing and TCPStreamJoin in README, architecture and StreamHub docs
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
1 parent
05b9490b06
commit
81879b8b7a
5 files changed
+66
-3
No files matched your search
@@ -12,6 +12,7 @@ This repository integrates two complementary capabilities:
|
||||
| Capability | Component | Purpose |
|
||||
| --------------------- | ------------------------ | ------------------------------------------------------------------------------------------------------------- |
|
||||
| **Signal streaming** | `UDPStreamer` DataSource | Continuously stream selected signals to a browser-based oscilloscope over UDP |
|
||||
| **Signal streaming (TCP)** | `TCPStreamer` / `TCPStreamerClient` DataSources, `TCPStreamService`, `TCPStreamJoin` | Same UDPS stream over reliable TCP; one in-process server for many streams; multiplexed connections and merged streams |
|
||||
| **Signal debugging** | `DebugService` Interface | On-demand signal tracing, value forcing, and conditional breakpoints — zero application code changes required |
|
||||
| **Sine generation** | `SineArrayGAM` | Generate continuous sine-wave arrays for testing and simulation |
|
||||
| **Time stamping** | `TimeArrayGAM` | Provide time-reference arrays aligned to an RT cycle |
|
||||
@@ -30,8 +31,11 @@ MARTe_Integrated_components/
|
||||
│ └── Client/go/ Go packages: udpsprotocol, wshub
|
||||
├── Source/Components/
|
||||
│ ├── DataSources/UDPStreamer/ Real-time UDP signal streaming DataSource
|
||||
│ ├── DataSources/TCPStreamer/ TCP variant of UDPStreamer (plus TCPStreamerClient)
|
||||
│ ├── GAMs/SineArrayGAM/ Sine-wave array generator GAM
|
||||
│ ├── GAMs/TimeArrayGAM/ Time-reference array GAM
|
||||
│ ├── Interfaces/UDPStream/ UDPS server/client transports (UDP and TCP)
|
||||
│ ├── Interfaces/TCPStreamService/ In-process multi-stream TCP server + TCPStreamJoin
|
||||
│ ├── Interfaces/DebugService/ Signal tracing/forcing/breakpoint Interface
|
||||
│ └── Interfaces/TCPLogger/ TCP log-forwarding LoggerConsumerI
|
||||
├── Test/
|
||||
@@ -59,6 +63,21 @@ sending a `CONNECT` packet; the server then sends `CONFIG` (signal metadata) and
|
||||
|
||||
See `Docs/UDPStreamer.md` and `Docs/Protocol.md`.
|
||||
|
||||
### TCPStreamer / TCPStreamService / TCPStreamJoin
|
||||
|
||||
`TCPStreamer` and `TCPStreamerClient` are the TCP counterparts of the UDP DataSources: same
|
||||
UDPS framing, per-client bounded queues (a slow client only drops its own frames).
|
||||
`TCPStreamService` is an optional single in-process server (acceptor + worker threads)
|
||||
shared by many `TCPStreamer`s; clients pick a stream by name with a `SUBSCRIBE` frame.
|
||||
|
||||
- **Multiplexing**: a `SUBSCRIBE` may list several streams (`"fast,slow"`) to carry them over
|
||||
one socket, each with its own CONFIG and rate. StreamHub does this for a comma separated
|
||||
`StreamName`.
|
||||
- **Joining**: `TCPStreamJoin` publishes a new stream merging several streams of the service
|
||||
(`<stream>_<signal>`, sample-and-hold, paced by a master source).
|
||||
|
||||
See `Docs/TCPStreamer.md`.
|
||||
|
||||
### SineArrayGAM
|
||||
|
||||
Generates a continuous float32 sine-wave array every RT cycle. Used as a signal
|
||||
@@ -119,7 +138,7 @@ clients on a configurable port. Works as a sidecar to `DebugService`.
|
||||
### StreamHub Application
|
||||
|
||||
Headless C++ hub (`Source/Applications/StreamHub/`) that aggregates multiple
|
||||
UDPStreamer sources and serves them to oscilloscope clients over WebSocket
|
||||
UDPStreamer / TCPStreamer sources (`Transport = "tcp"`, optional `StreamName`) and serves them to oscilloscope clients over WebSocket
|
||||
(port 8090): ring buffers with wall-clock time calibration, LTTB decimation,
|
||||
hub-side trigger engine, per-window zoom. Clients: browser SPA
|
||||
(`Client/webui` + `Client/udpstreamer/static`) and native ImGui desktop client
|
||||
@@ -132,7 +151,7 @@ See `Docs/StreamHub-UserGuide.md`, `Docs/StreamHub-API.md` and
|
||||
### UDPS Protocol
|
||||
|
||||
The `Common/UDP/UDPSProtocol.h` header defines the shared binary wire format used by
|
||||
both `UDPStreamer` and `DebugService`. It is intentionally free of MARTe2-specific
|
||||
`UDPStreamer`, `TCPStreamer` and `DebugService`. It is intentionally free of MARTe2-specific
|
||||
dependencies so it can also be used by Go clients (via `Common/Client/go/udpsprotocol`).
|
||||
|
||||
See `Docs/Protocol.md`.
|
||||
@@ -244,6 +263,7 @@ Open `http://localhost:9090`, explore the object tree, trace signals, force valu
|
||||
| ----------------------------- | -------------------------------------------------------------- |
|
||||
| `Docs/Protocol.md` | UDPS binary wire protocol specification |
|
||||
| `Docs/UDPStreamer.md` | UDPStreamer DataSource configuration reference |
|
||||
| `Docs/TCPStreamer.md` | TCPStreamer, TCPStreamService, multiplexing and TCPStreamJoin |
|
||||
| `Docs/UDPS-C-Client.md` | Standalone C/C++ UDPS receiver library (`Common/Client/c`) |
|
||||
| `Docs/SineArrayGAM.md` | SineArrayGAM configuration reference |
|
||||
| `Docs/DebugService.md` | DebugService TCP API and architecture |
|
||||
|
||||
Reference in new issue
Block a user