module Fit4Ruby::FitDefinitionFieldBase
Public Class Methods
fit_type_to_bin_data(fit_type)
click to toggle source
# File lib/fit4ruby/FitDefinitionFieldBase.rb, line 19 def FitDefinitionFieldBase::fit_type_to_bin_data(fit_type) entry = FIT_TYPE_DEFS.find { |e| e[0] == fit_type } raise "Unknown fit type #{fit_type}" unless entry entry[1] end
undefined_value(fit_type)
click to toggle source
# File lib/fit4ruby/FitDefinitionFieldBase.rb, line 25 def FitDefinitionFieldBase::undefined_value(fit_type) entry = FIT_TYPE_DEFS.find { |e| e[0] == fit_type } raise "Unknown fit type #{fit_type}" unless entry entry[2] end
Public Instance Methods
base_type_bytes()
click to toggle source
# File lib/fit4ruby/FitDefinitionFieldBase.rb, line 68 def base_type_bytes FIT_TYPE_DEFS[checked_base_type_number][3] end
is_array?()
click to toggle source
# File lib/fit4ruby/FitDefinitionFieldBase.rb, line 50 def is_array? if total_bytes > base_type_bytes if total_bytes % base_type_bytes != 0 raise RuntimeError, "Total bytes (#{total_bytes}) must be multiple of " + "base type bytes (#{base_type_bytes}) of type " + "#{base_type_number.snapshot} in Global FIT " + "Message #{name}." end return true end false end
set_length(count)
click to toggle source
# File lib/fit4ruby/FitDefinitionFieldBase.rb, line 42 def set_length(count) if (byte_count = FIT_TYPE_DEFS[self.base_type_number][3] * count) > 255 raise ArgumentError, "FitDefinitionField byte count too large (#{byte_count})" end self.byte_count = byte_count end
set_type(fit_type)
click to toggle source
# File lib/fit4ruby/FitDefinitionFieldBase.rb, line 31 def set_type(fit_type) idx = FIT_TYPE_DEFS.index { |x| x[0] == fit_type } raise ArgumentError, "Unknown type #{fit_type}" unless idx self.base_type_number = idx self.byte_count = FIT_TYPE_DEFS[idx][3] end
total_bytes()
click to toggle source
# File lib/fit4ruby/FitDefinitionFieldBase.rb, line 64 def total_bytes self.byte_count.snapshot end
type(fit_type = false)
click to toggle source
# File lib/fit4ruby/FitDefinitionFieldBase.rb, line 38 def type(fit_type = false) FIT_TYPE_DEFS[checked_base_type_number][fit_type ? 0 : 1] end
undefined_value()
click to toggle source
# File lib/fit4ruby/FitDefinitionFieldBase.rb, line 72 def undefined_value FIT_TYPE_DEFS[checked_base_type_number][2] end
Private Instance Methods
check_fit_base_type()
click to toggle source
# File lib/fit4ruby/FitDefinitionFieldBase.rb, line 87 def check_fit_base_type if FIT_TYPE_DEFS.length <= base_type_number.snapshot end end
checked_base_type_number()
click to toggle source
# File lib/fit4ruby/FitDefinitionFieldBase.rb, line 78 def checked_base_type_number if FIT_TYPE_DEFS.length <= base_type_number.snapshot Log.error "Unknown FIT Base type #{base_type_number.snapshot} in " + "Global FIT Message #{name}" return 0 end base_type_number.snapshot end