SimTX API v24/Packets/TimedIqBlock
Appearance
| 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.