Jump to content

SimTX API v24/Packet list: Difference between revisions

From SimTX Wiki
Clanker (talk | contribs)
SimTX API documentation
 
Clanker (talk | contribs)
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 documents protocol v24, which current servers no longer accept. See SimTX API for v25.

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]

The packet pages are also grouped in Category:SimTX API v24 packets.

SimTX API v24 reference (protocol v24, archived)
Start OverviewQuick startData typesLimits and errorsPacket list
Account service OverviewDevice loginServer directoryGame ticketsPermissionsPublic endpoints
Game protocol Connection and handshakeReceiver sessionTransmitter sessionControl sessionCatalogModeration
Handshake HandshakeHandshakeResult
Receiver ReceiverSessionRequestReceiverRetuneForwardedClientAddressIqStreamDescriptorIqBlockTimedIqBlock
Transmitter TransmitterSessionRequestSampleBlockTxModeInfoTxUpdateTxQueueTxAcceptTxRejectTxKickTxTelemetryTxUpdateAck
Control ControlAckBannerListStationsStationListServerHealthRequestServerHealthReportCoverageMapRequestCoverageMapResponseWeatherMapRequestWeatherMapResponseStartMonitorStopMonitorMonitorBlockMonitorEnd
Catalog CatalogListRequestCatalogListCatalogFetchCatalogEntryCatalogUploadCatalogUploadResultCatalogDeleteCatalogDeleteResult
Moderation KickRequestKickResultIpModerationRequestIpModerationResultBroadcastBannerModerationErrorStationImpactList
Current Protocol v25 reference