Class: DataRecord

Inherits:
FitObject show all
Defined in:
lib/fitreader/data_record.rb

Constant Summary

Constants included from Unpack

Unpack::MASKS

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from FitObject

#to_h

Methods included from Unpack

#read_bit, #read_bits, #read_multiple, #readbytes

Constructor Details

#initialize(io, definition) ⇒ DataRecord

Returns a new instance of DataRecord.



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/fitreader/data_record.rb', line 4

def initialize(io, definition)
  @global_num = definition.global_msg_num
  @fields = Hash[definition.field_definitions.map do |f|
    opts = {base_num: f.base_num,
            size: f.size,
            arch: definition.endian}
    [f.field_def_num, DataField.new(io, opts)]
  end]
  if definition.dev_defs
    @dev_fields = Hash[definition.dev_defs.map do |f|
      opts = {base_num: f.field_def[:base_type_id].raw,
              size: f.size,
              arch: definition.endian}
      [f.field_def[:field_name].raw.to_sym, DataField.new(io, opts)]
    end]
  end
end

Instance Attribute Details

#fieldsObject (readonly)

Returns the value of attribute fields.



2
3
4
# File 'lib/fitreader/data_record.rb', line 2

def fields
  @fields
end

#global_numObject (readonly)

Returns the value of attribute global_num.



2
3
4
# File 'lib/fitreader/data_record.rb', line 2

def global_num
  @global_num
end

Instance Method Details

#dev_fieldsObject



26
27
28
29
30
31
32
# File 'lib/fitreader/data_record.rb', line 26

def dev_fields
  if defined? @dev_fields
    @dev_fields
  else
    Hash.new
  end
end

#validObject



22
23
24
# File 'lib/fitreader/data_record.rb', line 22

def valid
  @fields.select { |_, v| v.valid }
end