Class: Fit4Ruby::DeviceInfo

Inherits:
FitDataRecord show all
Defined in:
lib/fit4ruby/DeviceInfo.rb

Constant Summary

Constants inherited from FitDataRecord

FitDataRecord::RecordOrder

Instance Attribute Summary

Attributes inherited from FitDataRecord

#message

Instance Method Summary collapse

Methods inherited from FitDataRecord

#==, #get, #get_as, #inspect, #set, #set_field_values, #write

Methods included from Converters

#conversion_factor, #fit_time_to_time, #secsToDHMS, #secsToHM, #secsToHMS, #speedToPace, #time_to_fit_time

Constructor Details

#initialize(field_values = {}) ⇒ DeviceInfo

Returns a new instance of DeviceInfo.



19
20
21
22
# File 'lib/fit4ruby/DeviceInfo.rb', line 19

def initialize(field_values = {})
  super('device_info')
  set_field_values(field_values)
end

Instance Method Details

#<=>(fdr) ⇒ Object

Ensure that FitDataRecords have a deterministic sequence. Device infos are sorted by device_index.



26
27
28
29
30
31
32
33
# File 'lib/fit4ruby/DeviceInfo.rb', line 26

def <=>(fdr)
  @timestamp == fdr.timestamp ?
    @message.name == fdr.message.name ?
      @device_index <=> fdr.device_index :
      RecordOrder.index(@message.name) <=>
        RecordOrder.index(fdr.message.name) :
    @timestamp <=> fdr.timestamp
end

#check(index) ⇒ Object



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/fit4ruby/DeviceInfo.rb', line 35

def check(index)
  unless @device_index
    Log.fatal 'device info record must have a device_index'
  end
  if @device_index == 0
    unless @manufacturer
      Log.fatal 'device info record 0 must have a manufacturer field set'
    end
    if @manufacturer == 'garmin'
      unless @garmin_product
        Log.fatal 'device info record 0 must have a garman_product ' +
                  'field set'
      end
    else
      unless @product
        Log.fatal 'device info record 0 must have a product field set'
      end
    end
    if @serial_number.nil?
      Log.fatal 'device info record 0 must have a serial number set'
    end
  end
end