class Fit4Ruby::FitDeveloperDataFieldDefinition

Public Instance Methods

base_type_bytes() click to toggle source
# File lib/fit4ruby/FitDeveloperDataFieldDefinition.rb, line 36
def base_type_bytes
  FIT_TYPE_DEFS[checked_base_type_number][3]
end
byte_count() click to toggle source
# File lib/fit4ruby/FitDeveloperDataFieldDefinition.rb, line 40
def byte_count
  size_in_bytes
end
find_field_definition() click to toggle source
# File lib/fit4ruby/FitDeveloperDataFieldDefinition.rb, line 48
def find_field_definition
  return @field_definition if @field_definition

  tlr = parent.parent.fit_entity
  @field_definition = tlr.field_descriptions.find do |fd|
    fd.field_definition_number == field_number.snapshot &&
      fd.developer_data_index == developer_data_index.snapshot
  end
  unless @field_definition
    Log.error "Unknown developer field #{field_number.snapshot} " +
      "for developer #{developer_data_index.snapshot}"
    return nil
  end

  @field_definition
end
name() click to toggle source
# File lib/fit4ruby/FitDeveloperDataFieldDefinition.rb, line 27
def name
  "developer_field_#{developer_data_index.snapshot}_" +
    "#{field_number.snapshot}"
end
to_s(value) click to toggle source
# File lib/fit4ruby/FitDeveloperDataFieldDefinition.rb, line 65
def to_s(value)
  return '' if value.nil?

  if (field_definition = find_field_definition)
    "#{value} #{find_field_definition.units}"
  else
    if value.kind_of?(Array)
      s = '[ '
      value.each do |v|
        v /= @field_def.scale.to_f if @field_def.scale
        v -= @fielid_def.offset if @field_def.offset
        s << to_s(v) + ' '
      end
      s + ']'

      return s
    else
      field_number = field_definition_number.snapshot

      value /= @field_def.scale.to_f if @field_def.scale
      value -= @fielid_def.offset if @field_def.offset

      return value.to_s
    end
  end
end
type() click to toggle source
# File lib/fit4ruby/FitDeveloperDataFieldDefinition.rb, line 32
def type
  FIT_TYPE_DEFS[checked_base_type_number][1]
end
undefined_value() click to toggle source
# File lib/fit4ruby/FitDeveloperDataFieldDefinition.rb, line 44
def undefined_value
  FIT_TYPE_DEFS[checked_base_type_number][2]
end

Private Instance Methods

checked_base_type_number() click to toggle source
# File lib/fit4ruby/FitDeveloperDataFieldDefinition.rb, line 94
def checked_base_type_number
  field = find_field_definition
  base_type_number = field.fit_base_type_id & 0x7F
  if FIT_TYPE_DEFS.length <= base_type_number
    Log.error "Unknown FIT Base type #{base_type_number} in " +
      "Global FIT Message #{name}"
    return 0
  end

  base_type_number
end