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:
Martino FerrariandClaude Opus 4.6 committed 2026-11-06 13:44:19 +01:00
1 parent 05b9490b06
commit 81879b8b7a
5 files changed
+66 -3

No files matched your search

+5
View File
@@ -63,6 +63,11 @@ Full streaming pipeline: MARTe2 (FileReader -> IOGAM -> UDPStreamer) -> StreamHu
(live, zoom, window, trigger). The validator compares the recording against the analytic
ground truth (fidelity, sine shape fit, continuity) and optionally a fed-reference tap.
Chain scenarios `s60`-`s73` use TCP transports (`network = "tcp"` or `"tcp_service"`). The
optional `hub` field adds `{"mode": "mux"}` (the hub takes all sources over one multiplexed
connection, `s72`) or `{"mode": "join"}` (a `TCPStreamJoin` merges the sources and the hub
subscribes to the merge, `s73`).
### direct
MARTe2 FileReader -> UDPStreamer -> UDPStreamerClient -> FileWriter round-trip. Validates that
+4
View File
@@ -33,6 +33,9 @@ Reply (unicast): `{"type":"pong"}`.
- `addr` — `host:port` of the UDPStreamer control port.
- `multicastGroup` / `dataPort` — optional; if present the hub joins the
multicast group for DATA and keeps a TCP control connection for CONNECT/CONFIG.
- `transport` (`"udp"` default, or `"tcp"`) and `streamName` — for a TCP source, the
`TCPStreamService` stream to subscribe to. A comma list (`"a,b"`) multiplexes several
streams over one connection and adds one source per stream, labelled `<label>_<stream>`.
- The hub assigns ids `s1`, `s2`, … and broadcasts an updated `sources` event.
### `removeSource`
@@ -421,6 +424,7 @@ warning.
[
{"label": "wave", "addr": "127.0.0.1:44500"},
{"label": "mc", "addr": "127.0.0.1:44501", "multicastGroup": "239.0.0.1", "dataPort": 44502},
{"label": "svc", "addr": "127.0.0.1:44500", "transport": "tcp", "streamName": "fast,slow"},
{"source": "wave", "signal": "Adc", "scale": 0.00030518, "offset": -1.25, "unit": "V"}
]
```
+4
View File
@@ -58,6 +58,10 @@ Useful flags: `-p <port>` WS port, `-n <pts>` ring size, `-s` skip rebuild,
./Client/streamhub/build/StreamHubClient -host <hub-host> -port 8090
```
A source can use TCP instead of UDP: add `Transport = "tcp"` (and `StreamName = "<stream>"`
for a `TCPStreamService`). `StreamName = "a,b"` takes several streams over one connection,
shown as separate sources `<Label>_a`, `<Label>_b`. See `Docs/TCPStreamer.md`.
Sources can also be added at runtime from either client ("Add source": label +
`host:port`, optional multicast group/data port). "Save sources" persists the
runtime list to `streamhub_sources.json` so the hub reloads it on restart.