Module: Fit4Ruby::FitDefinitionFieldBase
- Included in:
- FitDefinitionField, FitDeveloperDataFieldDefinition
- Defined in:
- lib/fit4ruby/FitDefinitionFieldBase.rb
Constant Summary collapse
- @@TypeDefs =
[ # FIT Type, BinData type, undefined value, bytes [ 'enum', 'uint8', 0xFF, 1 ], [ 'sint8', 'int8', 0x7F, 1 ], [ 'uint8', 'uint8', 0xFF, 1 ], [ 'sint16', 'int16', 0x7FFF, 2 ], [ 'uint16', 'uint16', 0xFFFF, 2 ], [ 'sint32', 'int32', 0x7FFFFFFF, 4 ], [ 'uint32', 'uint32', 0xFFFFFFFF, 4 ], [ 'string', 'string', '', 0 ], [ 'float32', 'float', 0xFFFFFFFF, 4 ], [ 'float63', 'double', 0xFFFFFFFF, 4 ], [ 'uint8z', 'uint8', 0, 1 ], [ 'uint16z', 'uint16', 0, 2 ], [ 'uint32z', 'uint32', 0, 4 ], [ 'byte', 'uint8', 0xFF, 1 ], [ 'sint64', 'int64', 0x7FFFFFFFFFFFFFFF, 8 ], [ 'uint64', 'uint64', 0xFFFFFFFFFFFFFFFF, 8 ], [ 'uint64z', 'uint64', 0, 8 ] ]
Class Method Summary collapse
Instance Method Summary collapse
- #base_type_bytes ⇒ Object
- #is_array? ⇒ Boolean
- #set_type(fit_type) ⇒ Object
- #total_bytes ⇒ Object
- #type(fit_type = false) ⇒ Object
- #undefined_value ⇒ Object
Class Method Details
.fit_type_to_bin_data(fit_type) ⇒ Object
38 39 40 41 42 |
# File 'lib/fit4ruby/FitDefinitionFieldBase.rb', line 38 def FitDefinitionFieldBase::fit_type_to_bin_data(fit_type) entry = @@TypeDefs.find { |e| e[0] == fit_type } raise "Unknown fit type #{fit_type}" unless entry entry[1] end |
.undefined_value(fit_type) ⇒ Object
44 45 46 47 48 |
# File 'lib/fit4ruby/FitDefinitionFieldBase.rb', line 44 def FitDefinitionFieldBase::undefined_value(fit_type) entry = @@TypeDefs.find { |e| e[0] == fit_type } raise "Unknown fit type #{fit_type}" unless entry entry[2] end |
Instance Method Details
#base_type_bytes ⇒ Object
78 79 80 |
# File 'lib/fit4ruby/FitDefinitionFieldBase.rb', line 78 def base_type_bytes @@TypeDefs[checked_base_type_number][3] end |
#is_array? ⇒ Boolean
61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/fit4ruby/FitDefinitionFieldBase.rb', line 61 def is_array? if total_bytes > base_type_bytes if total_bytes % base_type_bytes != 0 Log.error "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_type(fit_type) ⇒ Object
50 51 52 53 54 55 |
# File 'lib/fit4ruby/FitDefinitionFieldBase.rb', line 50 def set_type(fit_type) idx = @@TypeDefs.index { |x| x[0] == fit_type } raise "Unknown type #{fit_type}" unless idx self.base_type_number = idx self.byte_count = @@TypeDefs[idx][3] end |
#total_bytes ⇒ Object
74 75 76 |
# File 'lib/fit4ruby/FitDefinitionFieldBase.rb', line 74 def total_bytes self.byte_count.snapshot end |
#type(fit_type = false) ⇒ Object
57 58 59 |
# File 'lib/fit4ruby/FitDefinitionFieldBase.rb', line 57 def type(fit_type = false) @@TypeDefs[checked_base_type_number][fit_type ? 0 : 1] end |
#undefined_value ⇒ Object
82 83 84 |
# File 'lib/fit4ruby/FitDefinitionFieldBase.rb', line 82 def undefined_value @@TypeDefs[checked_base_type_number][2] end |