class Fit4Ruby::FitDefinition
The FitDefinition
contains the blueprints for FitMessageRecord
segments of FIT files. Before a message record can occur in a FIT file, its definition must be included in the FIT file. The definition holds enough information about the message record to define its size. It also contains some basic information how to interpret the data in the record. To fully understand the message record data the full definition in the GlobalFitMessage
is required.
Public Class Methods
read(io, entity, developer_data_flag, fit_entity)
click to toggle source
Calls superclass method
# File lib/fit4ruby/FitDefinition.rb, line 60 def FitDefinition::read(io, entity, developer_data_flag, fit_entity) @@has_developer_data = developer_data_flag != 0 @@fit_entity = fit_entity super(io) end
Public Instance Methods
check()
click to toggle source
# File lib/fit4ruby/FitDefinition.rb, line 52 def check if architecture.snapshot > 1 Log.fatal "Illegal architecture value #{architecture.snapshot}" end data_fields.each { |f| f.check } developer_fields.each { |f| f.check } end
endian()
click to toggle source
# File lib/fit4ruby/FitDefinition.rb, line 48 def endian architecture.snapshot == 0 ? :little : :big end
fit_entity()
click to toggle source
# File lib/fit4ruby/FitDefinition.rb, line 74 def fit_entity @@fit_entity end
has_developer_data?()
click to toggle source
# File lib/fit4ruby/FitDefinition.rb, line 70 def has_developer_data? @@has_developer_data end
setup(fit_message_definition, field_values_by_name)
click to toggle source
# File lib/fit4ruby/FitDefinition.rb, line 78 def setup(fit_message_definition, field_values_by_name) fit_message_definition.fields_by_number.each do |number, f| fdf = FitDefinitionField.new fdf.field_definition_number = number fdf.set_type(f.type) value = field_values_by_name[f.name] # For String and Array fields we must adjust the length in the # definition message. if value.is_a?(String) && f.is_string? # String plus 0 byte fdf.set_length(value.bytes.length + 1) elsif value.is_a?(Array) && f.is_array? fdf.set_length(value.length) end data_fields << fdf end self.field_count = data_fields.length end
write(io)
click to toggle source
Calls superclass method
# File lib/fit4ruby/FitDefinition.rb, line 66 def write(io) super(io) end