Jump to content

SimTX API v24/Packets/TimedIqBlock: Difference between revisions

From SimTX Wiki
Clanker (talk | contribs)
m Clanker moved page SimTX API/Packets/TimedIqBlock to SimTX API v24/Packets/TimedIqBlock: Archive the v24 protocol reference
Clanker (talk | contribs)
Archive the v24 protocol reference: use the v24 templates, links and categories
 
Line 1: Line 1:
{{SimTX API navigation}}
{{SimTX API v24 navigation}}
{{SimTX packet
{{SimTX packet v24
| name = TimedIqBlock
| name = TimedIqBlock
| id = 31
| id = 31
| hex = 0x1F
| hex = 0x1F
| direction = s2c
| direction = s2c
| session = [[SimTX API/Receiver session|Receiver]]
| session = [[SimTX API v24/Receiver session|Receiver]]
| size = 20 + chunkSamples × 4 bytes (INT16)
| size = 20 + chunkSamples × 4 bytes (INT16)
| permission = None
| permission = None
| group = receiver
| group = receiver
}}
}}
'''TimedIqBlock''' is an [[SimTX API/Packets/IqBlock|IqBlock]] with a timestamp. Receiver sessions opened with role 6 (<code>TIMESTAMPED_RECEIVER</code>) receive these instead of plain IQ blocks. The timestamp is the UTC instant of the block's first sample on the server's simulated RF timeline.
'''TimedIqBlock''' is an [[SimTX API v24/Packets/IqBlock|IqBlock]] with a timestamp. Receiver sessions opened with role 6 (<code>TIMESTAMPED_RECEIVER</code>) receive these instead of plain IQ blocks. The timestamp is the UTC instant of the block's first sample on the server's simulated RF timeline.


== Layout ==
== Layout ==
Line 24: Line 24:
| <code>payloadLength</code> || <code>i32</code> || Length of the payload in bytes. At most 1 MiB.
| <code>payloadLength</code> || <code>i32</code> || Length of the payload in bytes. At most 1 MiB.
|-
|-
| <code>payload</code> || <code>u8[payloadLength]</code> || <code>f32 blockScale</code> followed by the samples, exactly as in [[SimTX API/Packets/IqBlock|IqBlock]].
| <code>payload</code> || <code>u8[payloadLength]</code> || <code>f32 blockScale</code> followed by the samples, exactly as in [[SimTX API v24/Packets/IqBlock|IqBlock]].
|}
|}


Line 34: Line 34:


== See also ==
== See also ==
* [[SimTX API/Receiver session#Timestamped receivers|Timestamped receivers]]
* [[SimTX API v24/Receiver session#Timestamped receivers|Timestamped receivers]]


{{SimTX API navbox}}
{{SimTX API v24 navbox}}
[[Category:SimTX API]]
[[Category:SimTX API v24]]

Latest revision as of 16:18, 24 October 2026

This page documents protocol v24, which current servers no longer accept. See SimTX API for v25.
TimedIqBlock
Packet ID 31(0x1F)
Direction Server → client
Session Receiver
Body size 20 + chunkSamples × 4 bytes (INT16)
Permission None
Answered by
Answers

TimedIqBlock is an IqBlock with a timestamp. Receiver sessions opened with role 6 (TIMESTAMPED_RECEIVER) receive these instead of plain IQ blocks. The timestamp is the UTC instant of the block's first sample on the server's simulated RF timeline.

Layout[edit | edit source]

Field Type Description
packetId u8 Always 31.
epochSecond i64 Seconds since 1970-01-01T00:00:00Z of the first sample.
nanos i32 Nanoseconds within that second, 0–999,999,999.
payloadLength i32 Length of the payload in bytes. At most 1 MiB.
payload u8[payloadLength] f32 blockScale followed by the samples, exactly as in IqBlock.

Usage[edit | edit source]

  • Sample k of a block was received at epochSecond + nanos / 109 + k / sampleRate.
  • Timestamps from different receivers on the same server share one timeline, so they can be compared directly. This enables time-difference-of-arrival measurements and alignment of several receivers.
  • A jump between consecutive blocks larger than chunkSamples / sampleRate indicates dropped blocks.
  • Comparing a block's timestamp with the local clock gives the end-to-end latency, provided both clocks are synchronised.

See also[edit | edit source]

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