the short question is; are FIT activity files valid if records do not have a timestamp or can the timestamp field have a value that makes them invalid?
The longer explanation:
I read section 9 Activity File in FIT File Types Description, Rev 2.1 that "Only required if optional message included" for the timestamp in a record which I read as the record message is optional but if in the file it MUST have a timestamp.
On the other hand we have received user files via Garmin Connect that the library we use cannot parse since it fails for the timestamp in the records. Now I am trying to figure out if we have received faulty files via Garmin Connect(which I doubt) or there is a bug in the library and how the code of the library should be changed.
The FIT-file comes from a Garmin fr910xt which is quite common device.
To investigate this further I took the DecodeExample.java from the SDK and added the following on row 235:
printValues( mesg, RecordMesg.TimestampFieldNum);
to have it print out timestamps.
I then tested this on the file from the Forerunner but do not get any timestamps. I test the modified DecodeExample.java on another file that works with the library we use and I get timestamps.
This indicates to me that timestamps might be optional or is it that the Forerunner does not follow the protocol? Any insights to this would be much appreciated.