Filippo - 05 April 2018 08:04 PM
I tihnk any time given in millisecond unit must be divided by 1000 otherwise you end up summing 2 quantities with different units:
210 s + 234 ms = 444
210 s + 0.234 s = 210.234 s
ciao
No, look at my previous reply. It works fine so far and corresponds to when the time footage was recorded (this is on a Garmin Virb Ultra 30).
With GPS turned on, correlation values are recorded when the camera manages to sync with the satellite. This can be used as an offset value - seconds and milliseconds counting from 1989-12-31 00:00:00 - to produce absolute timestamps from the relative timestamps for all the recorded events in the fit-file.
Try looking at a CSV-file, converted using the FitCSVTool.jar, in e.g. Excel and something might click. Search for a row called "timestamp_correlation" (it should also begin with "Data", not "Definition").
A "normal" data message (e.g. gps_metadata) might have a (relative) timestamp like so:
timestamp 204 s ... timestamp_ms 850 ms
Whereas for the timestamp_correlation row you instead get the correlation value in the same column, e.g.:
timestamp 854511660 s ... timestamp_ms 0 ms
The "normal", relative timestamp can instead be found later on the the same row:
system_timestamp 258 s ... system_timestamp_ms 128 ms
I couldn't find any mention of system_timestamp in the documentation but it corresponds well to the rest of the file and to the actual time of recording.
If you, like me, are decoding the FIT-file directly you have to check what the corresponding definition message is telling you about the data structure of a specific type of data message.