SimTX API v24/Packet list: Difference between revisions
SimTX API documentation |
Archive the v24 protocol reference: use the v24 templates, links and categories |
||
| (One intermediate revision by the same user not shown) | |||
| Line 1: | Line 1: | ||
{{SimTX API navigation}} | {{SimTX API v24 navigation}} | ||
This page lists every packet of the [[SimTX API]] game protocol, version 24. Client-to-server and server-to-client packets have separate ID spaces, so the same number can mean different things in each direction: ID 1 is [[SimTX API/Packets/ReceiverSessionRequest|ReceiverSessionRequest]] when the client sends it and [[SimTX API/Packets/IqStreamDescriptor|IqStreamDescriptor]] when the server does. | This page lists every packet of the [[SimTX API v24]] game protocol, version 24. Client-to-server and server-to-client packets have separate ID spaces, so the same number can mean different things in each direction: ID 1 is [[SimTX API v24/Packets/ReceiverSessionRequest|ReceiverSessionRequest]] when the client sends it and [[SimTX API v24/Packets/IqStreamDescriptor|IqStreamDescriptor]] when the server does. | ||
== Framing == | == Framing == | ||
After the [[SimTX API/Packets/Handshake|handshake]], every packet in either direction is: | After the [[SimTX API v24/Packets/Handshake|handshake]], every packet in either direction is: | ||
<syntaxhighlight lang="text"> | <syntaxhighlight lang="text"> | ||
| Line 12: | Line 12: | ||
There is '''no length prefix'''. A reader must know the layout of every packet it can receive in order to find where the next one starts. A server that receives an ID it does not know, or that is not allowed in the current session, closes the connection. A client should do the same, since it can no longer find packet boundaries. | There is '''no length prefix'''. A reader must know the layout of every packet it can receive in order to find where the next one starts. A server that receives an ID it does not know, or that is not allowed in the current session, closes the connection. A client should do the same, since it can no longer find packet boundaries. | ||
The handshake itself has no packet ID byte from the client. The server's reply, [[SimTX API/Packets/HandshakeResult|HandshakeResult]], does carry its ID (30). | The handshake itself has no packet ID byte from the client. The server's reply, [[SimTX API v24/Packets/HandshakeResult|HandshakeResult]], does carry its ID (30). | ||
== Client to server == | == Client to server == | ||
| Line 18: | Line 18: | ||
! ID !! Hex !! Packet !! Session !! Summary | ! ID !! Hex !! Packet !! Session !! Summary | ||
|- | |- | ||
| — || — || [[SimTX API/Packets/Handshake|Handshake]] || All || Opens the connection: magic, version, role and credential. | | — || — || [[SimTX API v24/Packets/Handshake|Handshake]] || All || Opens the connection: magic, version, role and credential. | ||
|- | |- | ||
| 1 || 0x01 || [[SimTX API/Packets/ReceiverSessionRequest|ReceiverSessionRequest]] || Receiver || Station, antenna and tuning for a receiver. | | 1 || 0x01 || [[SimTX API v24/Packets/ReceiverSessionRequest|ReceiverSessionRequest]] || Receiver || Station, antenna and tuning for a receiver. | ||
|- | |- | ||
| 2 || 0x02 || [[SimTX API/Packets/TransmitterSessionRequest|TransmitterSessionRequest]] || Transmitter || Station, antenna, mode and power for a transmitter. | | 2 || 0x02 || [[SimTX API v24/Packets/TransmitterSessionRequest|TransmitterSessionRequest]] || Transmitter || Station, antenna, mode and power for a transmitter. | ||
|- | |- | ||
| 3 || 0x03 || [[SimTX API/Packets/SampleBlock|SampleBlock]] || Transmitter || Audio or IQ samples to transmit. | | 3 || 0x03 || [[SimTX API v24/Packets/SampleBlock|SampleBlock]] || Transmitter || Audio or IQ samples to transmit. | ||
|- | |- | ||
| 4 || 0x04 || [[SimTX API/Packets/ListStations|ListStations]] || Control || Requests the station list. | | 4 || 0x04 || [[SimTX API v24/Packets/ListStations|ListStations]] || Control || Requests the station list. | ||
|- | |- | ||
| 5 || 0x05 || [[SimTX API/Packets/KickRequest|KickRequest]] || Moderation || Disconnects stations. | | 5 || 0x05 || [[SimTX API v24/Packets/KickRequest|KickRequest]] || Moderation || Disconnects stations. | ||
|- | |- | ||
| 6 || 0x06 || [[SimTX API/Packets/StartMonitor|StartMonitor]] || Control || Starts monitoring a transmitter's output. | | 6 || 0x06 || [[SimTX API v24/Packets/StartMonitor|StartMonitor]] || Control || Starts monitoring a transmitter's output. | ||
|- | |- | ||
| 7 || 0x07 || [[SimTX API/Packets/StopMonitor|StopMonitor]] || Control || Stops monitoring. | | 7 || 0x07 || [[SimTX API v24/Packets/StopMonitor|StopMonitor]] || Control || Stops monitoring. | ||
|- | |- | ||
| 8 || 0x08 || [[SimTX API/Packets/WeatherMapRequest|WeatherMapRequest]] || Control || Requests a tropospheric weather raster. | | 8 || 0x08 || [[SimTX API v24/Packets/WeatherMapRequest|WeatherMapRequest]] || Control || Requests a tropospheric weather raster. | ||
|- | |- | ||
| 9 || 0x09 || [[SimTX API/Packets/IpModerationRequest|IpModerationRequest]] || Moderation || Bans or unbans an IP address. | | 9 || 0x09 || [[SimTX API v24/Packets/IpModerationRequest|IpModerationRequest]] || Moderation || Bans or unbans an IP address. | ||
|- | |- | ||
| 10 || 0x0A || [[SimTX API/Packets/ServerHealthRequest|ServerHealthRequest]] || Control || Requests a server health report. | | 10 || 0x0A || [[SimTX API v24/Packets/ServerHealthRequest|ServerHealthRequest]] || Control || Requests a server health report. | ||
|- | |- | ||
| 11 || 0x0B || [[SimTX API/Packets/ForwardedClientAddress|ForwardedClientAddress]] || Receiver || Real client address, sent by trusted proxies. | | 11 || 0x0B || [[SimTX API v24/Packets/ForwardedClientAddress|ForwardedClientAddress]] || Receiver || Real client address, sent by trusted proxies. | ||
|- | |- | ||
| 12 || 0x0C || [[SimTX API/Packets/BroadcastBanner|BroadcastBanner]] || Moderation || Shows a banner to every control client. | | 12 || 0x0C || [[SimTX API v24/Packets/BroadcastBanner|BroadcastBanner]] || Moderation || Shows a banner to every control client. | ||
|- | |- | ||
| 13 || 0x0D || [[SimTX API/Packets/ReceiverRetune|ReceiverRetune]] || Receiver || Changes the receiver's centre frequency. | | 13 || 0x0D || [[SimTX API v24/Packets/ReceiverRetune|ReceiverRetune]] || Receiver || Changes the receiver's centre frequency. | ||
|- | |- | ||
| 14 || 0x0E || [[SimTX API/Packets/TxModeInfo|TxModeInfo]] || Transmitter || Declares a custom mode name and bandwidth. | | 14 || 0x0E || [[SimTX API v24/Packets/TxModeInfo|TxModeInfo]] || Transmitter || Declares a custom mode name and bandwidth. | ||
|- | |- | ||
| 19 || 0x13 || [[SimTX API/Packets/TxUpdate|TxUpdate]] || Transmitter || Changes transmitter settings while on air. | | 19 || 0x13 || [[SimTX API v24/Packets/TxUpdate|TxUpdate]] || Transmitter || Changes transmitter settings while on air. | ||
|- | |- | ||
| 20 || 0x14 || [[SimTX API/Packets/CatalogListRequest|CatalogListRequest]] || Control || Requests the extension catalog index. | | 20 || 0x14 || [[SimTX API v24/Packets/CatalogListRequest|CatalogListRequest]] || Control || Requests the extension catalog index. | ||
|- | |- | ||
| 21 || 0x15 || [[SimTX API/Packets/CatalogFetch|CatalogFetch]] || Control || Downloads one catalog entry. | | 21 || 0x15 || [[SimTX API v24/Packets/CatalogFetch|CatalogFetch]] || Control || Downloads one catalog entry. | ||
|- | |- | ||
| 22 || 0x16 || [[SimTX API/Packets/CatalogUpload|CatalogUpload]] || Control || Publishes an extension or preset. | | 22 || 0x16 || [[SimTX API v24/Packets/CatalogUpload|CatalogUpload]] || Control || Publishes an extension or preset. | ||
|- | |- | ||
| 24 || 0x18 || [[SimTX API/Packets/CoverageMapRequest|CoverageMapRequest]] || Control || Requests a predicted coverage raster. | | 24 || 0x18 || [[SimTX API v24/Packets/CoverageMapRequest|CoverageMapRequest]] || Control || Requests a predicted coverage raster. | ||
|- | |- | ||
| 26 || 0x1A || [[SimTX API/Packets/CatalogDelete|CatalogDelete]] || Control || Deletes a catalog entry. | | 26 || 0x1A || [[SimTX API v24/Packets/CatalogDelete|CatalogDelete]] || Control || Deletes a catalog entry. | ||
|} | |} | ||
| Line 67: | Line 67: | ||
! ID !! Hex !! Packet !! Session !! Summary | ! ID !! Hex !! Packet !! Session !! Summary | ||
|- | |- | ||
| 1 || 0x01 || [[SimTX API/Packets/IqStreamDescriptor|IqStreamDescriptor]] || Receiver || Negotiated sample rate, block size and format. | | 1 || 0x01 || [[SimTX API v24/Packets/IqStreamDescriptor|IqStreamDescriptor]] || Receiver || Negotiated sample rate, block size and format. | ||
|- | |- | ||
| 2 || 0x02 || [[SimTX API/Packets/IqBlock|IqBlock]] || Receiver || One block of received IQ samples. | | 2 || 0x02 || [[SimTX API v24/Packets/IqBlock|IqBlock]] || Receiver || One block of received IQ samples. | ||
|- | |- | ||
| 3 || 0x03 || [[SimTX API/Packets/TxAccept|TxAccept]] || Transmitter || The transmitter is on air. | | 3 || 0x03 || [[SimTX API v24/Packets/TxAccept|TxAccept]] || Transmitter || The transmitter is on air. | ||
|- | |- | ||
| 4 || 0x04 || [[SimTX API/Packets/TxQueue|TxQueue]] || Transmitter || Position in the transmitter queue. | | 4 || 0x04 || [[SimTX API v24/Packets/TxQueue|TxQueue]] || Transmitter || Position in the transmitter queue. | ||
|- | |- | ||
| 5 || 0x05 || [[SimTX API/Packets/TxReject|TxReject]] || Transmitter || The request was refused. | | 5 || 0x05 || [[SimTX API v24/Packets/TxReject|TxReject]] || Transmitter || The request was refused. | ||
|- | |- | ||
| 6 || 0x06 || [[SimTX API/Packets/TxKick|TxKick]] || Transmitter || The transmitter was taken off air. | | 6 || 0x06 || [[SimTX API v24/Packets/TxKick|TxKick]] || Transmitter || The transmitter was taken off air. | ||
|- | |- | ||
| 7 || 0x07 || [[SimTX API/Packets/TxTelemetry|TxTelemetry]] || Transmitter || Power, SWR, temperature and buffer level. | | 7 || 0x07 || [[SimTX API v24/Packets/TxTelemetry|TxTelemetry]] || Transmitter || Power, SWR, temperature and buffer level. | ||
|- | |- | ||
| 8 || 0x08 || [[SimTX API/Packets/ControlAck|ControlAck]] || Control || The control session is ready. | | 8 || 0x08 || [[SimTX API v24/Packets/ControlAck|ControlAck]] || Control || The control session is ready. | ||
|- | |- | ||
| 9 || 0x09 || [[SimTX API/Packets/StationList|StationList]] || Control || All stations on the server. | | 9 || 0x09 || [[SimTX API v24/Packets/StationList|StationList]] || Control || All stations on the server. | ||
|- | |- | ||
| 10 || 0x0A || [[SimTX API/Packets/MonitorBlock|MonitorBlock]] || Control || Samples of a monitored transmitter. | | 10 || 0x0A || [[SimTX API v24/Packets/MonitorBlock|MonitorBlock]] || Control || Samples of a monitored transmitter. | ||
|- | |- | ||
| 11 || 0x0B || [[SimTX API/Packets/MonitorEnd|MonitorEnd]] || Control || Monitoring has ended. | | 11 || 0x0B || [[SimTX API v24/Packets/MonitorEnd|MonitorEnd]] || Control || Monitoring has ended. | ||
|- | |- | ||
| 12 || 0x0C || [[SimTX API/Packets/ModerationError|ModerationError]] || Moderation || A moderation request failed. | | 12 || 0x0C || [[SimTX API v24/Packets/ModerationError|ModerationError]] || Moderation || A moderation request failed. | ||
|- | |- | ||
| 13 || 0x0D || [[SimTX API/Packets/KickResult|KickResult]] || Moderation || Number of sessions kicked. | | 13 || 0x0D || [[SimTX API v24/Packets/KickResult|KickResult]] || Moderation || Number of sessions kicked. | ||
|- | |- | ||
| 14 || 0x0E || [[SimTX API/Packets/WeatherMapResponse|WeatherMapResponse]] || Control || Weather raster and conditions at its centre. | | 14 || 0x0E || [[SimTX API v24/Packets/WeatherMapResponse|WeatherMapResponse]] || Control || Weather raster and conditions at its centre. | ||
|- | |- | ||
| 15 || 0x0F || [[SimTX API/Packets/IpModerationResult|IpModerationResult]] || Moderation || Outcome of an IP ban or unban. | | 15 || 0x0F || [[SimTX API v24/Packets/IpModerationResult|IpModerationResult]] || Moderation || Outcome of an IP ban or unban. | ||
|- | |- | ||
| 16 || 0x10 || [[SimTX API/Packets/ServerHealthReport|ServerHealthReport]] || Control || Server load and session statistics. | | 16 || 0x10 || [[SimTX API v24/Packets/ServerHealthReport|ServerHealthReport]] || Control || Server load and session statistics. | ||
|- | |- | ||
| 17 || 0x11 || [[SimTX API/Packets/Banner|Banner]] || Control || Server-wide notice to display. | | 17 || 0x11 || [[SimTX API v24/Packets/Banner|Banner]] || Control || Server-wide notice to display. | ||
|- | |- | ||
| 18 || 0x12 || [[SimTX API/Packets/StationImpactList|StationImpactList]] || Moderation || Interference analysis of transmitters. | | 18 || 0x12 || [[SimTX API v24/Packets/StationImpactList|StationImpactList]] || Moderation || Interference analysis of transmitters. | ||
|- | |- | ||
| 21 || 0x15 || [[SimTX API/Packets/CatalogUploadResult|CatalogUploadResult]] || Control || Outcome of a catalog upload. | | 21 || 0x15 || [[SimTX API v24/Packets/CatalogUploadResult|CatalogUploadResult]] || Control || Outcome of a catalog upload. | ||
|- | |- | ||
| 23 || 0x17 || [[SimTX API/Packets/TxUpdateAck|TxUpdateAck]] || Transmitter || Outcome of each field of a TxUpdate. | | 23 || 0x17 || [[SimTX API v24/Packets/TxUpdateAck|TxUpdateAck]] || Transmitter || Outcome of each field of a TxUpdate. | ||
|- | |- | ||
| 24 || 0x18 || [[SimTX API/Packets/CatalogList|CatalogList]] || Control || The extension catalog index. | | 24 || 0x18 || [[SimTX API v24/Packets/CatalogList|CatalogList]] || Control || The extension catalog index. | ||
|- | |- | ||
| 25 || 0x19 || [[SimTX API/Packets/CatalogEntry|CatalogEntry]] || Control || The files of one catalog entry. | | 25 || 0x19 || [[SimTX API v24/Packets/CatalogEntry|CatalogEntry]] || Control || The files of one catalog entry. | ||
|- | |- | ||
| 27 || 0x1B || [[SimTX API/Packets/CoverageMapResponse|CoverageMapResponse]] || Control || Predicted coverage raster. | | 27 || 0x1B || [[SimTX API v24/Packets/CoverageMapResponse|CoverageMapResponse]] || Control || Predicted coverage raster. | ||
|- | |- | ||
| 29 || 0x1D || [[SimTX API/Packets/CatalogDeleteResult|CatalogDeleteResult]] || Control || Outcome of a catalog delete. | | 29 || 0x1D || [[SimTX API v24/Packets/CatalogDeleteResult|CatalogDeleteResult]] || Control || Outcome of a catalog delete. | ||
|- | |- | ||
| 30 || 0x1E || [[SimTX API/Packets/HandshakeResult|HandshakeResult]] || All || Accepts or rejects the handshake. | | 30 || 0x1E || [[SimTX API v24/Packets/HandshakeResult|HandshakeResult]] || All || Accepts or rejects the handshake. | ||
|- | |- | ||
| 31 || 0x1F || [[SimTX API/Packets/TimedIqBlock|TimedIqBlock]] || Receiver || IQ block with a UTC timestamp. | | 31 || 0x1F || [[SimTX API v24/Packets/TimedIqBlock|TimedIqBlock]] || Receiver || IQ block with a UTC timestamp. | ||
|} | |} | ||
| Line 123: | Line 123: | ||
== By session == | == By session == | ||
* [[SimTX API/Receiver session|Receiver session]]: roles 1 and 6. | * [[SimTX API v24/Receiver session|Receiver session]]: roles 1 and 6. | ||
* [[SimTX API/Transmitter session|Transmitter session]]: roles 2 and 3. | * [[SimTX API v24/Transmitter session|Transmitter session]]: roles 2 and 3. | ||
* [[SimTX API/Control session|Control session]]: role 4, including the [[SimTX API/Extension catalog protocol|extension catalog]]. | * [[SimTX API v24/Control session|Control session]]: role 4, including the [[SimTX API v24/Extension catalog protocol|extension catalog]]. | ||
* [[SimTX API/Moderation session|Moderation session]]: role 5. | * [[SimTX API v24/Moderation session|Moderation session]]: role 5. | ||
The packet pages are also grouped in [[:Category:SimTX API packets]]. | The packet pages are also grouped in [[:Category:SimTX API v24 packets]]. | ||
{{SimTX API navbox}} | {{SimTX API v24 navbox}} | ||
[[Category:SimTX API]] | [[Category:SimTX API v24]] | ||
Latest revision as of 16:13, 24 October 2026
This page lists every packet of the SimTX API v24 game protocol, version 24. Client-to-server and server-to-client packets have separate ID spaces, so the same number can mean different things in each direction: ID 1 is ReceiverSessionRequest when the client sends it and IqStreamDescriptor when the server does.
Framing[edit | edit source]
After the handshake, every packet in either direction is:
u8 packetId
... body, as defined on the packet's page
There is no length prefix. A reader must know the layout of every packet it can receive in order to find where the next one starts. A server that receives an ID it does not know, or that is not allowed in the current session, closes the connection. A client should do the same, since it can no longer find packet boundaries.
The handshake itself has no packet ID byte from the client. The server's reply, HandshakeResult, does carry its ID (30).
Client to server[edit | edit source]
| ID | Hex | Packet | Session | Summary |
|---|---|---|---|---|
| — | — | Handshake | All | Opens the connection: magic, version, role and credential. |
| 1 | 0x01 | ReceiverSessionRequest | Receiver | Station, antenna and tuning for a receiver. |
| 2 | 0x02 | TransmitterSessionRequest | Transmitter | Station, antenna, mode and power for a transmitter. |
| 3 | 0x03 | SampleBlock | Transmitter | Audio or IQ samples to transmit. |
| 4 | 0x04 | ListStations | Control | Requests the station list. |
| 5 | 0x05 | KickRequest | Moderation | Disconnects stations. |
| 6 | 0x06 | StartMonitor | Control | Starts monitoring a transmitter's output. |
| 7 | 0x07 | StopMonitor | Control | Stops monitoring. |
| 8 | 0x08 | WeatherMapRequest | Control | Requests a tropospheric weather raster. |
| 9 | 0x09 | IpModerationRequest | Moderation | Bans or unbans an IP address. |
| 10 | 0x0A | ServerHealthRequest | Control | Requests a server health report. |
| 11 | 0x0B | ForwardedClientAddress | Receiver | Real client address, sent by trusted proxies. |
| 12 | 0x0C | BroadcastBanner | Moderation | Shows a banner to every control client. |
| 13 | 0x0D | ReceiverRetune | Receiver | Changes the receiver's centre frequency. |
| 14 | 0x0E | TxModeInfo | Transmitter | Declares a custom mode name and bandwidth. |
| 19 | 0x13 | TxUpdate | Transmitter | Changes transmitter settings while on air. |
| 20 | 0x14 | CatalogListRequest | Control | Requests the extension catalog index. |
| 21 | 0x15 | CatalogFetch | Control | Downloads one catalog entry. |
| 22 | 0x16 | CatalogUpload | Control | Publishes an extension or preset. |
| 24 | 0x18 | CoverageMapRequest | Control | Requests a predicted coverage raster. |
| 26 | 0x1A | CatalogDelete | Control | Deletes a catalog entry. |
IDs 15 to 18, 23 and 25 are unassigned in this direction.
Server to client[edit | edit source]
| ID | Hex | Packet | Session | Summary |
|---|---|---|---|---|
| 1 | 0x01 | IqStreamDescriptor | Receiver | Negotiated sample rate, block size and format. |
| 2 | 0x02 | IqBlock | Receiver | One block of received IQ samples. |
| 3 | 0x03 | TxAccept | Transmitter | The transmitter is on air. |
| 4 | 0x04 | TxQueue | Transmitter | Position in the transmitter queue. |
| 5 | 0x05 | TxReject | Transmitter | The request was refused. |
| 6 | 0x06 | TxKick | Transmitter | The transmitter was taken off air. |
| 7 | 0x07 | TxTelemetry | Transmitter | Power, SWR, temperature and buffer level. |
| 8 | 0x08 | ControlAck | Control | The control session is ready. |
| 9 | 0x09 | StationList | Control | All stations on the server. |
| 10 | 0x0A | MonitorBlock | Control | Samples of a monitored transmitter. |
| 11 | 0x0B | MonitorEnd | Control | Monitoring has ended. |
| 12 | 0x0C | ModerationError | Moderation | A moderation request failed. |
| 13 | 0x0D | KickResult | Moderation | Number of sessions kicked. |
| 14 | 0x0E | WeatherMapResponse | Control | Weather raster and conditions at its centre. |
| 15 | 0x0F | IpModerationResult | Moderation | Outcome of an IP ban or unban. |
| 16 | 0x10 | ServerHealthReport | Control | Server load and session statistics. |
| 17 | 0x11 | Banner | Control | Server-wide notice to display. |
| 18 | 0x12 | StationImpactList | Moderation | Interference analysis of transmitters. |
| 21 | 0x15 | CatalogUploadResult | Control | Outcome of a catalog upload. |
| 23 | 0x17 | TxUpdateAck | Transmitter | Outcome of each field of a TxUpdate. |
| 24 | 0x18 | CatalogList | Control | The extension catalog index. |
| 25 | 0x19 | CatalogEntry | Control | The files of one catalog entry. |
| 27 | 0x1B | CoverageMapResponse | Control | Predicted coverage raster. |
| 29 | 0x1D | CatalogDeleteResult | Control | Outcome of a catalog delete. |
| 30 | 0x1E | HandshakeResult | All | Accepts or rejects the handshake. |
| 31 | 0x1F | TimedIqBlock | Receiver | IQ block with a UTC timestamp. |
IDs 19, 20, 22, 26 and 28 are unassigned in this direction.
By session[edit | edit source]
- Receiver session: roles 1 and 6.
- Transmitter session: roles 2 and 3.
- Control session: role 4, including the extension catalog.
- Moderation session: role 5.
The packet pages are also grouped in Category:SimTX API v24 packets.