-
Notifications
You must be signed in to change notification settings - Fork 21
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Error when parsing FIT from Garmin 935? #26
Comments
Could you please provide a file which is failing as mentioned in your report ? |
Oh yeah, sorry! |
I can reproduce the issue with your file. |
Ok, thanks! I will take a look at it and see if I can sort it out. |
According to the FIT file protocol, there seem to be 16 base types, not 13 (4.2.1.4.3 Base Type). And something they call Developer Data Field Description (4.2.1.5). I will look into this and see if I can figure something out. I am not used to working with binaries tho. D00001275 Flexible & Interoperable Data Transfer (FIT) Protocol Rev 2.3.pdf |
More info on this... This is the header, message and fields for a record av developer data. The global_message_number 33792 and its fields is something that would be nice to skip in the parsing, or if it would be possible to interpret these messages and build it in to the lib. There are multiple fields with the same field_definition_number in this which also causes errors so the best way around this and make the library read at least build a useable object instead of raising the error would be awesome.
def read(io)
@header = RecordHeader.read(io)
@content = case @header.message_type.snapshot
when 1
Definition.read(io).tap do |definition|
puts "--------"
puts "> header: #{@header.local_message_type.snapshot}"
puts @header
puts definition
@@definitions[@header.local_message_type.snapshot] = Data.generate(definition)
end
when 0
definition = @@definitions[@header.local_message_type.snapshot]
raise "No definition for local message type: #{@header.local_message_type}" if definition.nil?
definition.read(io)
end
self
end
|
I have a FIT file from Garmin 935. I dont really have more info as the file comes from a customer. When trying to parse the file it raises a runtime error. Any ideas on this?
The text was updated successfully, but these errors were encountered: