class Fit::File::Definition::Field

Public Instance Methods

data() click to toggle source
# File lib/fit/file/definition.rb, line 14
def data
  @data ||= Definitions.get_field(parent.parent.global_message_number.snapshot,
                                  field_definition_number.snapshot) ||
              { :name => "field_#{field_definition_number.snapshot}", :scale => nil }
end
name() click to toggle source
# File lib/fit/file/definition.rb, line 20
def name
  data[:name]
end
raw_name() click to toggle source
# File lib/fit/file/definition.rb, line 24
def raw_name
  "raw_#{name}"
end
scale() click to toggle source
# File lib/fit/file/definition.rb, line 28
def scale
  data[:scale]
end
type() click to toggle source
# File lib/fit/file/definition.rb, line 32
def type
  case base_type_number.snapshot
  when 0 # enum
    build_int_type 8, false
  when 1
    build_int_type 8, true
  when 2
    build_int_type 8, false
  when 3
    build_int_type 16, true
  when 4
    build_int_type 16, false
  when 5
    build_int_type 32, true
  when 6
    build_int_type 32, false
  when 7
    "stringz"
  when 8
    "float"
  when 9
    "double"
  when 10 # uint8z
    build_int_type 8, false
  when 11 # uint16z
    build_int_type 16, false
  when 12 # uint32z
    build_int_type 32, false
  when 13 # array of bytes
    build_int_type 8, false
  else
    raise "Can't map base_type_number #{base_type_number} to a data type"
  end
end

Private Instance Methods

build_int_type(length, signed) click to toggle source
# File lib/fit/file/definition.rb, line 69
def build_int_type(length, signed)
  (signed ? '' : 'u') << 'int' << length.to_s
end