Class: DefinitionRecord

Inherits:
FitObject show all
Defined in:
lib/fitreader/definition_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, local_num, dev_field_defs = nil) ⇒ DefinitionRecord

Returns a new instance of DefinitionRecord.



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/fitreader/definition_record.rb', line 7

def initialize(io, local_num, dev_field_defs = nil)
  @local_num = local_num

  # read record
  @reserved = io.readbyte
  @architecture = io.readbyte
  char = @architecture.zero? ? 'v' : 'n'
  @global_msg_num = readbytes(io, char, 2)
  num_fields = io.readbyte

  # read fields
  @field_definitions = Array.new(num_fields) { FieldDefinition.new(io) }

  unless dev_field_defs.nil?
    num_fields = io.readbyte
    @dev_defs = Array.new(num_fields) { DevFieldDefinition.new(io, dev_field_defs) }
  end
  @data_records = []
end

Instance Attribute Details

#data_recordsObject (readonly)

Returns the value of attribute data_records.



5
6
7
# File 'lib/fitreader/definition_record.rb', line 5

def data_records
  @data_records
end

#dev_defsObject (readonly)

Returns the value of attribute dev_defs.



5
6
7
# File 'lib/fitreader/definition_record.rb', line 5

def dev_defs
  @dev_defs
end

#field_definitionsObject (readonly)

Returns the value of attribute field_definitions.



5
6
7
# File 'lib/fitreader/definition_record.rb', line 5

def field_definitions
  @field_definitions
end

#global_msg_numObject (readonly)

Returns the value of attribute global_msg_num.



5
6
7
# File 'lib/fitreader/definition_record.rb', line 5

def global_msg_num
  @global_msg_num
end

#local_numObject (readonly)

Returns the value of attribute local_num.



5
6
7
# File 'lib/fitreader/definition_record.rb', line 5

def local_num
  @local_num
end

#num_fieldsObject (readonly)

Returns the value of attribute num_fields.



5
6
7
# File 'lib/fitreader/definition_record.rb', line 5

def num_fields
  @num_fields
end

#reservedObject (readonly)

Returns the value of attribute reserved.



5
6
7
# File 'lib/fitreader/definition_record.rb', line 5

def reserved
  @reserved
end

Instance Method Details

#endianObject



27
28
29
# File 'lib/fitreader/definition_record.rb', line 27

def endian
  @architecture.zero? ? :little : :big
end

#validObject



31
32
33
34
35
36
37
# File 'lib/fitreader/definition_record.rb', line 31

def valid
  fd = Sdk.fields(@global_msg_num)
  return if fd.nil?
  @data_records.map do |d|
    d.valid.select { |k, _| fd.keys.include? k }.merge(d.dev_fields)
  end
end