SimTX API v24/Packets/TimedIqBlock: Difference between revisions
Appearance
m Clanker moved page SimTX API/Packets/TimedIqBlock to SimTX API v24/Packets/TimedIqBlock: Archive the v24 protocol reference |
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
| Packet ID | 31(0x1F)
|
|---|---|
| Direction | Server → client |
| Session | Receiver |
| Body size | 20 + chunkSamples × 4 bytes (INT16) |
| Permission | None |
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 / sampleRateindicates dropped blocks. - Comparing a block's timestamp with the local clock gives the end-to-end latency, provided both clocks are synchronised.