Class: Fit4Ruby::FieldDescription
- Inherits:
-
FitDataRecord
- Object
- FitDataRecord
- Fit4Ruby::FieldDescription
- Defined in:
- lib/fit4ruby/FieldDescription.rb
Overview
This class corresponds to the FieldDescription FIT message.
Constant Summary
Constants inherited from FitDataRecord
Fit4Ruby::FitDataRecord::RecordOrder
Instance Attribute Summary
Attributes inherited from FitDataRecord
Instance Method Summary collapse
- #create_global_definition(fit_entity) ⇒ Object
-
#initialize(field_values = {}) ⇒ FieldDescription
constructor
Create a new FieldDescription object.
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 = {}) ⇒ FieldDescription
Create a new FieldDescription object.
25 26 27 28 |
# File 'lib/fit4ruby/FieldDescription.rb', line 25 def initialize(field_values = {}) super('field_description') set_field_values(field_values) end |
Instance Method Details
#create_global_definition(fit_entity) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/fit4ruby/FieldDescription.rb', line 30 def create_global_definition(fit_entity) = fit_entity. unless (gfm = GlobalFitMessages[@native_mesg_num]) Log.error "Developer field description references unknown global " + "message number #{@native_mesg_num}" return end if @developer_data_index >= fit_entity.top_level_record.developer_data_ids.size Log.error "Developer data index #{@developer_data_index} is too large" return end msg = [@native_mesg_num] || .(@native_mesg_num, gfm.name) unless (@fit_base_type_id & 0x7F) < FIT_TYPE_DEFS.size Log.error "fit_base_type_id #{@fit_base_type_id} is too large" return end name = "_#{@developer_data_index}_#{@field_name}" # A fit file may include multiple definitions of the same field. We # ignore all subsequent definitions. return if msg.has_field?(name) = {} [:scale] = @scale if @scale [:offset] = @offset if @offset [:array] = @array if @array [:unit] = @units msg.field(@field_definition_number, FIT_TYPE_DEFS[@fit_base_type_id & 0x7F][1], name, ) end |