SimTX API/Packets/StartMonitor: Difference between revisions
Appearance
Protocol v25 reference: StartMonitor Tag: Removed redirect |
Remove development history and server internals |
||
| Line 13: | Line 13: | ||
| file = control.proto | | file = control.proto | ||
}} | }} | ||
'''StartMonitor''' asks the server to stream the signal of a transmitter back to the client | '''StartMonitor''' asks the server to stream the signal of a transmitter back to the client. The stream is the transmitter's complex baseband after the modulator and amplifier model, before the antenna and propagation. | ||
== Definition == | == Definition == | ||
| Line 37: | Line 37: | ||
== Examples == | == Examples == | ||
Complete frames, including the varint length prefix | Complete frames, including the varint length prefix. | ||
'''<code>start_monitor</code>''' (client to server, 24 bytes): | '''<code>start_monitor</code>''' (client to server, 24 bytes): | ||
Latest revision as of 17:16, 24 October 2026
| Frame | ClientFrame, field 31
|
|---|---|
| Member | start_monitor
|
| Direction | Client → server |
| Session | Control, moderation |
| Roles | ROLE_CONTROL (authenticated), ROLE_MODERATION.
|
| Permission | Control: the transmitter must belong to the account. Moderation: monitor.any.
|
| Answered by | MonitorAck, then MonitorBlock frames, or Error |
| Defined in | control.proto
|
StartMonitor asks the server to stream the signal of a transmitter back to the client. The stream is the transmitter's complex baseband after the modulator and amplifier model, before the antenna and propagation.
Definition[edit | edit source]
message StartMonitor { bytes session_id = 1; int64 request_id = 2; }
Fields[edit | edit source]
| # | Field | Type | Description |
|---|---|---|---|
| 1 | session_id |
bytes |
16-byte session id of the transmitter to monitor. |
| 2 | request_id |
int64 |
Nonzero; echoed in the MonitorAck or Error. |
Rules[edit | edit source]
- On a control session, the transmitter must belong to the same account as the control session. An anonymous control session cannot monitor anything. Authenticated control sessions need a
controlticket, which the account service issues only to credentials withcatalog.publish. - On a moderation session, any transmitter may be monitored with
monitor.any. - Take
session_idfrom the transmitter's own SessionStatus, or from aLiveSession.session_idin the StationList. - Success: MonitorAck with
active = true, then MonitorBlock frames. Failure: Error withNOT_FOUND(no live transmitter with that id) orFORBIDDEN(not yours). - Not a heavy request. The stream starts with the newest samples; there is no backlog.
Examples[edit | edit source]
Complete frames, including the varint length prefix.
start_monitor (client to server, 24 bytes):
17 frame length 23
FA 01 14 start_monitor (StartMonitor), 20 bytes
0A 10 AA AA AA AA … session_id = aaaaaaaa-bbbb-4ccc-8ddd-eeeeeeeeeeee
10 2C request_id = 44
monitor_ack_started (server to client, 26 bytes):
19 frame length 25
D2 02 16 monitor_ack (MonitorAck), 22 bytes
08 2C request_id = 44
12 10 AA AA AA AA … session_id = aaaaaaaa-bbbb-4ccc-8ddd-eeeeeeeeeeee
18 01 active = true