Class: Fit4Ruby::FitDeveloperDataFieldDefinition

Inherits:
BinData::Record
  • Object
show all
Includes:
FitDefinitionFieldBase
Defined in:
lib/fit4ruby/FitDeveloperDataFieldDefinition.rb

Instance Method Summary collapse

Methods included from FitDefinitionFieldBase

fit_type_to_bin_data, #is_array?, #set_length, #set_type, #total_bytes, undefined_value

Instance Method Details

#base_type_bytesObject



36
37
38
# File 'lib/fit4ruby/FitDeveloperDataFieldDefinition.rb', line 36

def base_type_bytes
  FIT_TYPE_DEFS[checked_base_type_number][3]
end

#byte_countObject



40
41
42
# File 'lib/fit4ruby/FitDeveloperDataFieldDefinition.rb', line 40

def byte_count
  size_in_bytes
end

#find_field_definitionObject



48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# 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

#nameObject



27
28
29
30
# File 'lib/fit4ruby/FitDeveloperDataFieldDefinition.rb', line 27

def name
  "developer_field_#{developer_data_index.snapshot}_" +
    "#{field_number.snapshot}"
end

#to_s(value) ⇒ Object



65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# 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

#typeObject



32
33
34
# File 'lib/fit4ruby/FitDeveloperDataFieldDefinition.rb', line 32

def type
  FIT_TYPE_DEFS[checked_base_type_number][1]
end

#undefined_valueObject



44
45
46
# File 'lib/fit4ruby/FitDeveloperDataFieldDefinition.rb', line 44

def undefined_value
  FIT_TYPE_DEFS[checked_base_type_number][2]
end