FTM format
FeitCSI provides the raw FTM data obtained from NICs. In most cases, only the average RTT will be provided, therefore, the distance must be computed based on this value.
Data structure
Saved FeitCSI FTM data consists of binary set of the data. Usually many measurements are stored in the one file. So the file contains FTM data | FTM data | FTM data | ...
.
FTM data
The FTM data
has always a size 79 bytes.
0 - 3 byte
(Unsigned int) - If bursts are reported as separate results then it will be the burst index4 - 7 byte
(Unsigned int) - Number of FTM Request frames transmitted8 - 11 byte
(Unsigned int) - Number of FTM Request frames that were acknowledged12 - 15 byte
(Unsigned int) - Actual number of bursts exponent used by the responder16 byte
(Unsigned int) - Actual burst duration used by the responder17 byte
(Unsigned int) - Actual FTMs per burst used by the responder18 byte
(Unsigned int) - Average RSSI across all FTM action frames19 - 22 byte
(Unsigned int) - RSSI spread across all FTM action frames23 - 30 byte
(Unsigned int) - Average RTT31 - 38 byte
(Unsigned int) - RTT variance39 - 46 byte
(Unsigned int) - RTT spread47 - 54 byte
(Unsigned int) - Average distance55 - 62 byte
(Unsigned int) - Distance variance63 - 70 byte
(Unsigned int) - Distance spread71 - 78 byte
(Unsigned int) - Timestamp of the computer when FTM was received, in microseconds
Parsing data
As we mention in introduce, the data consists of multiple blocks of FTM data. You can look at pseudocode how to parse FeitCSI data file.
We also provide parsing scripts for Matlab and Python.