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) ⇒ DefinitionRecord

Returns a new instance of DefinitionRecord.



6
7
8
9
10
11
12
13
14
15
# File 'lib/fitreader/definition_record.rb', line 6

def initialize(io, local_num)
  @local_num = local_num
  @reserved = io.readbyte
  @architecture = io.readbyte
  char = @architecture.zero? ? 'v' : 'n'
  @global_msg_num = readbytes(io, char, 2)
  @num_fields = io.readbyte
  @field_definitions = Array.new(num_fields) { FieldDefinition.new(io) }
  @data_records = []
end

Instance Attribute Details

#architectureObject (readonly)

Returns the value of attribute architecture.



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

def architecture
  @architecture
end

#data_recordsObject (readonly)

Returns the value of attribute data_records.



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

def data_records
  @data_records
end

#field_definitionsObject (readonly)

Returns the value of attribute field_definitions.



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

def field_definitions
  @field_definitions
end

#global_msg_numObject (readonly)

Returns the value of attribute global_msg_num.



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

def global_msg_num
  @global_msg_num
end

#local_numObject (readonly)

Returns the value of attribute local_num.



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

def local_num
  @local_num
end

#num_fieldsObject (readonly)

Returns the value of attribute num_fields.



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

def num_fields
  @num_fields
end

#reservedObject (readonly)

Returns the value of attribute reserved.



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

def reserved
  @reserved
end

Instance Method Details

#endianObject



17
18
19
# File 'lib/fitreader/definition_record.rb', line 17

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

#validObject



21
22
23
24
25
26
27
# File 'lib/fitreader/definition_record.rb', line 21

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 }
  end
end