Sensor accuracy

August 24, 2020 ยท View on GitHub

The file consist of three sections written after each other:

  • Header
  • Basic data
  • Data event list And is closed with an end-of-file marker.

Data types

All integers (16, 32 and 64 bit) are stored as big-endians. All floats (32 and 64 bit) are stored in IEEE 754 format. Their bit-represenation is stored as big-endians.

Field data format

A 'field' is a data structure used in the file.

OffsetSizeValueMeaning
01 Byte'#'Start-of-the-Field marker.
12 BytesintegerField identifier.
34 BytesintegerLength of the data.
7equal to "Length of the data"The contained data.
OffsetSizeValueMeaning
020 Bytes"//MILTSCHEK/TRACKER/"File type identifier.
202 Bytesinteger = 2Version of the file.

Basic data

Consists of any number of 'fields' with identifiers between 0x1000 and 0x1fff.

IdDescriptionLength (bytes)Data typeUnits
0x1001Real-time-clock timestamp of the beginning of the sport activity.8long integermilliseconds since Jan, 1st 1970
0x1002Real-time-clock timestamp of the end of the sport activity.8long integermilliseconds since Jan, 1st 1979
0x1003Ticks timestamp of the beginning of the sport activity (relevant for comparison of sensor events' timestamps).8long integernanoseconds abstract
0x1004Ticks timestamp of the end of the sport activity (relevant for comparison of sensor events' timestamps).8long integernanoseconds abstract
0x1011Average heart rate during the sport activity.4floatbeats per minute
0x1012Maximum heart rate during the sport activity.4integerbeats per minute
0x1013Total number of steps during the sport activity.4integernumber
0x1014Average steps rate during the sport activity.4floatsteps per minute
0x1015Total ascent during the sport activity (using GNSS data).4floatmeters
0x1016Total descent during the sport activity (using GNSS data).4floatmeters
0x1017Average speed during the sport activity (using GNSS data).4floatmeters per second

Data event list

Consists of any number of 'fields' with identifiers between 0x2000 and 0x2fff. The data area of each field usually contain multiple values stored after each other with no additional separators.

IdDescriptionLength (bytes)Data typeValueUnits
0x2011Heart rate sensor event.8long integerTimestamp of the event (comparable to 0x1003 and 0x1004).nanoseconds abstract
4integerMeasured heart rate.beats per minute
4integerSensor accuracy.See: Sensor accuracy.
0x2021Steps counter event.8long integerTimestamp of the event (comparable to 0x1003 and 0x1004).nanoseconds abstract
4integerSteps counter state (always total amount of steps since sensor reset).number
4integerSensor accuracy.See: Sensor accuracy.
0x2031Air pressure sensor event.8long integerTimestamp of the event (comparable to 0x1003 and 0x1004).nanoseconds abstract
4floatMeasured air pressure.millibars
4integerSensor accuracy.See: Sensor accuracy.
0x2041Geo (GNSS) sensor event.8long integerTimestamp of the event (comparable to 0x1003 and 0x1004).nanoseconds abstract
8long integerTimestamp of the fix (ticks, comparable to 0x1003 and 0x1004).nanoseconds abstract
8long integerReal-time-clock timestamp of the fix.milliseconds since Jan, 1st 1970
8doubleLatitude.degrees
8doubleLongitude.degrees
4floatLateral accuracy.meters
8doubleAltitude.meters
4floatBearing.degrees
4floatSpeed.meters per second
4integerSensor accuracy. Not used for GNSS.See: Sensor accuracy.

End-of-File marker

The marker is a 'field' of the identifier = 0xffff and an empty data area (length value = 0).

IdDescriptionLength (bytes)Data typeUnits
0xffffEnd-of-file marker.0n/an/a

Sensor accuracy


Some sensors do report the measurement accuracy. The summary values (e.g. average heart rate) are calculated on events of at least low accuracy.

ValueMeaning
-1Measurement not to be trusted as the sensor did not have a contact with what it was supposed to measure.
0Measurement is unreliable (e.g. uncalibrated).
1Low accuracy (e.g. calibration needed).
2Medium accuracy (e.g. calibration could improve the readings).
3High accuracy (maximum available for the sensor).