fit_parser 0.0.5 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,7 +2,7 @@ module FitParser
2
2
  class File
3
3
  module Definitions
4
4
  def self.fields
5
- @fields ||= Hash.new { |h, k| h[k]= {} }
5
+ @fields ||= Hash.new { |h, k| h[k] = {} }
6
6
  end
7
7
 
8
8
  def self.fields=(value)
@@ -10,7 +10,7 @@ module FitParser
10
10
  end
11
11
 
12
12
  def self.dyn_fields
13
- @dyn_fields ||= Hash.new { |h, k| h[k]= {} }
13
+ @dyn_fields ||= Hash.new { |h, k| h[k] = {} }
14
14
  end
15
15
 
16
16
  def self.dyn_fields=(value)
@@ -26,8 +26,8 @@ module FitParser
26
26
  end
27
27
 
28
28
  def self.add_field(global_msg_num, field_def_num, name, options = {})
29
- if Definitions.fields[global_msg_num].has_key? field_def_num
30
- raise "bad definition of dynamic field (#{name}) without :ref_field_name or :ref_field_values" unless options.has_key?(:ref_field_name) && options.has_key?(:ref_field_values)
29
+ if Definitions.fields[global_msg_num].key?(field_def_num)
30
+ raise "bad definition of dynamic field (#{name}) without :ref_field_name or :ref_field_values" unless options.key?(:ref_field_name) && options.key?(:ref_field_values)
31
31
  Definitions.dyn_fields[global_msg_num][field_def_num] ||= {}
32
32
  Definitions.dyn_fields[global_msg_num][field_def_num][name.to_sym] = options
33
33
  # let's put the ref_field_values with the raw_value instead of the real value
@@ -38,7 +38,7 @@ module FitParser
38
38
  Definitions.dyn_fields[global_msg_num][field_def_num][name.to_sym][:ref_field_values] = options[:ref_field_values].map { |elt| type[elt.to_s] }
39
39
  end
40
40
  else
41
- Definitions.fields[global_msg_num][field_def_num] = options.merge(:name => name)
41
+ Definitions.fields[global_msg_num][field_def_num] = options.merge(name: name)
42
42
  end
43
43
  end
44
44
 
@@ -62,660 +62,660 @@ module FitParser
62
62
  end
63
63
 
64
64
  # DATA
65
- FitParser::File::Definitions.add_name 0, 'file_id'
66
- FitParser::File::Definitions.add_field 0, 0, 'type', :type => :file
67
- FitParser::File::Definitions.add_field 0, 1, 'manufacturer', :type => :manufacturer
68
- FitParser::File::Definitions.add_field 0, 2, 'product', :type => :uint16
69
- FitParser::File::Definitions.add_field 0, 2, 'garmin_product', :type => :garmin_product, :ref_field_name => 'manufacturer', :ref_field_values => [:garmin, :dynastream, :dynastream_oem]
70
- FitParser::File::Definitions.add_field 0, 3, 'serial_number', :type => :uint32z
71
- FitParser::File::Definitions.add_field 0, 4, 'time_created', :type => :date_time
72
- FitParser::File::Definitions.add_field 0, 5, 'number', :type => :uint16
73
-
74
- FitParser::File::Definitions.add_name 49, 'file_creator'
75
- FitParser::File::Definitions.add_field 49, 0, 'software_version', :type => :uint16
76
- FitParser::File::Definitions.add_field 49, 1, 'hardware_version', :type => :uint8
77
-
78
- FitParser::File::Definitions.add_name 35, 'software'
79
- FitParser::File::Definitions.add_field 35, 254, 'message_index', :type => :message_index
80
- FitParser::File::Definitions.add_field 35, 3, 'version', :type => :uint16, :scale => 100
81
- FitParser::File::Definitions.add_field 35, 5, 'part_number', :type => :string
65
+ FitParser::File::Definitions.add_name(0, 'file_id')
66
+ FitParser::File::Definitions.add_field(0, 0, 'type', type: :file)
67
+ FitParser::File::Definitions.add_field(0, 1, 'manufacturer', type: :manufacturer)
68
+ FitParser::File::Definitions.add_field(0, 2, 'product', type: :uint16)
69
+ FitParser::File::Definitions.add_field(0, 2, 'garmin_product', type: :garmin_product, ref_field_name: 'manufacturer', ref_field_values: [:garmin, :dynastream, :dynastream_oem])
70
+ FitParser::File::Definitions.add_field(0, 3, 'serial_number', type: :uint32z)
71
+ FitParser::File::Definitions.add_field(0, 4, 'time_created', type: :date_time)
72
+ FitParser::File::Definitions.add_field(0, 5, 'number', type: :uint16)
73
+
74
+ FitParser::File::Definitions.add_name(49, 'file_creator')
75
+ FitParser::File::Definitions.add_field(49, 0, 'software_version', type: :uint16)
76
+ FitParser::File::Definitions.add_field(49, 1, 'hardware_version', type: :uint8)
77
+
78
+ FitParser::File::Definitions.add_name(35, 'software')
79
+ FitParser::File::Definitions.add_field 35, 254, 'message_index', type: :message_index
80
+ FitParser::File::Definitions.add_field 35, 3, 'version', type: :uint16, scale: 100
81
+ FitParser::File::Definitions.add_field 35, 5, 'part_number', type: :string
82
82
 
83
83
  FitParser::File::Definitions.add_name 106, 'slave_device'
84
- FitParser::File::Definitions.add_field 106, 0, 'manufacturer', :type => :manufacturer
85
- FitParser::File::Definitions.add_field 106, 1, 'product', :type => :uint16
86
- FitParser::File::Definitions.add_field 106, 1, 'garmin_product', :type => :garmin_product, :ref_field_name => 'manufacturer', :ref_field_values => [:garmin, :dynastream, :dynastream_oem]
84
+ FitParser::File::Definitions.add_field 106, 0, 'manufacturer', type: :manufacturer
85
+ FitParser::File::Definitions.add_field 106, 1, 'product', type: :uint16
86
+ FitParser::File::Definitions.add_field 106, 1, 'garmin_product', type: :garmin_product, ref_field_name: 'manufacturer', ref_field_values: [:garmin, :dynastream, :dynastream_oem]
87
87
 
88
88
  FitParser::File::Definitions.add_name 1, 'capabilities'
89
- FitParser::File::Definitions.add_field 1, 0, 'languages', :type => :uint8z
90
- FitParser::File::Definitions.add_field 1, 1, 'sports', :type => :sport_bits_0
91
- FitParser::File::Definitions.add_field 1, 21, 'workouts_supported', :type => :workout_capabilities
92
- FitParser::File::Definitions.add_field 1, 23, 'connectivity_supported', :type => :connectivity_capabilities
89
+ FitParser::File::Definitions.add_field 1, 0, 'languages', type: :uint8z
90
+ FitParser::File::Definitions.add_field 1, 1, 'sports', type: :sport_bits_0
91
+ FitParser::File::Definitions.add_field 1, 21, 'workouts_supported', type: :workout_capabilities
92
+ FitParser::File::Definitions.add_field 1, 23, 'connectivity_supported', type: :connectivity_capabilities
93
93
 
94
94
  FitParser::File::Definitions.add_name 37, 'file_capabilities'
95
- FitParser::File::Definitions.add_field 37, 254, 'message_index', :type => :message_index
96
- FitParser::File::Definitions.add_field 37, 0, 'type', :type => :file
97
- FitParser::File::Definitions.add_field 37, 1, 'flags', :type => :file_flags
98
- FitParser::File::Definitions.add_field 37, 2, 'directory', :type => :string
99
- FitParser::File::Definitions.add_field 37, 3, 'max_count', :type => :uint16
100
- FitParser::File::Definitions.add_field 37, 4, 'max_size', :type => :uint32, :unit => 'bytes'
95
+ FitParser::File::Definitions.add_field 37, 254, 'message_index', type: :message_index
96
+ FitParser::File::Definitions.add_field 37, 0, 'type', type: :file
97
+ FitParser::File::Definitions.add_field 37, 1, 'flags', type: :file_flags
98
+ FitParser::File::Definitions.add_field 37, 2, 'directory', type: :string
99
+ FitParser::File::Definitions.add_field 37, 3, 'max_count', type: :uint16
100
+ FitParser::File::Definitions.add_field 37, 4, 'max_size', type: :uint32, unit: 'bytes'
101
101
 
102
102
  FitParser::File::Definitions.add_name 38, 'mesg_capabilities'
103
- FitParser::File::Definitions.add_field 38, 254, 'message_index', :type => :message_index
104
- FitParser::File::Definitions.add_field 38, 0, 'file', :type => :file
105
- FitParser::File::Definitions.add_field 38, 1, 'mesg_num', :type => :mesg_num
106
- FitParser::File::Definitions.add_field 38, 2, 'count_type', :type => :mesg_count
107
- FitParser::File::Definitions.add_field 38, 3, 'count', :type => :uint16
108
- FitParser::File::Definitions.add_field 38, 3, 'num_per_file', :type => :uint16, :ref_field_name => 'count_type', :ref_field_values => [:num_per_file]
109
- FitParser::File::Definitions.add_field 38, 3, 'max_per_file', :type => :uint16, :ref_field_name => 'count_type', :ref_field_values => [:max_per_file]
110
- FitParser::File::Definitions.add_field 38, 3, 'max_per_file_type', :type => :uint16, :ref_field_name => 'count_type', :ref_field_values => [:max_per_file_type]
103
+ FitParser::File::Definitions.add_field 38, 254, 'message_index', type: :message_index
104
+ FitParser::File::Definitions.add_field 38, 0, 'file', type: :file
105
+ FitParser::File::Definitions.add_field 38, 1, 'mesg_num', type: :mesg_num
106
+ FitParser::File::Definitions.add_field 38, 2, 'count_type', type: :mesg_count
107
+ FitParser::File::Definitions.add_field 38, 3, 'count', type: :uint16
108
+ FitParser::File::Definitions.add_field 38, 3, 'num_per_file', type: :uint16, ref_field_name: 'count_type', ref_field_values: [:num_per_file]
109
+ FitParser::File::Definitions.add_field 38, 3, 'max_per_file', type: :uint16, ref_field_name: 'count_type', ref_field_values: [:max_per_file]
110
+ FitParser::File::Definitions.add_field 38, 3, 'max_per_file_type', type: :uint16, ref_field_name: 'count_type', ref_field_values: [:max_per_file_type]
111
111
 
112
112
  FitParser::File::Definitions.add_name 39, 'field_capabilities'
113
- FitParser::File::Definitions.add_field 39, 254, 'message_index', :type => :message_index
114
- FitParser::File::Definitions.add_field 39, 0, 'file', :type => :file
115
- FitParser::File::Definitions.add_field 39, 1, 'mesg_num', :type => :mesg_num
116
- FitParser::File::Definitions.add_field 39, 2, 'field_num', :type => :uint8
117
- FitParser::File::Definitions.add_field 39, 3, 'count', :type => :uint16
113
+ FitParser::File::Definitions.add_field 39, 254, 'message_index', type: :message_index
114
+ FitParser::File::Definitions.add_field 39, 0, 'file', type: :file
115
+ FitParser::File::Definitions.add_field 39, 1, 'mesg_num', type: :mesg_num
116
+ FitParser::File::Definitions.add_field 39, 2, 'field_num', type: :uint8
117
+ FitParser::File::Definitions.add_field 39, 3, 'count', type: :uint16
118
118
 
119
119
  FitParser::File::Definitions.add_name 2, 'device_settings'
120
- FitParser::File::Definitions.add_field 2, 0, 'active_time_zone', :type => :uint8, :scale => 1
121
- FitParser::File::Definitions.add_field 2, 1, 'utc_offset', :type => :uint32
122
- FitParser::File::Definitions.add_field 2, 5, 'time_zone_offset', :type => :sint8, :scale => 4, :unit => 'hr'
120
+ FitParser::File::Definitions.add_field 2, 0, 'active_time_zone', type: :uint8, scale: 1
121
+ FitParser::File::Definitions.add_field 2, 1, 'utc_offset', type: :uint32
122
+ FitParser::File::Definitions.add_field 2, 5, 'time_zone_offset', type: :sint8, scale: 4, unit: 'hr'
123
123
 
124
124
  FitParser::File::Definitions.add_name 3, 'user_profile'
125
- FitParser::File::Definitions.add_field 3, 254, 'message_index', :type => :message_index
126
- FitParser::File::Definitions.add_field 3, 0, 'friendly_name', :type => :string, :scale => 1
127
- FitParser::File::Definitions.add_field 3, 1, 'gender', :type => :gender, :scale => 1
128
- FitParser::File::Definitions.add_field 3, 2, 'age', :type => :uint8, :scale => 1, :unit => 'years'
129
- FitParser::File::Definitions.add_field 3, 3, 'height', :type => :uint8, :scale => 100, :unit => 'm'
130
- FitParser::File::Definitions.add_field 3, 4, 'weight', :type => :uint16, :scale => 10, :unit => 'kg'
131
- FitParser::File::Definitions.add_field 3, 5, 'language', :type => :language, :scale => 1
132
- FitParser::File::Definitions.add_field 3, 6, 'elev_setting', :type => :display_measure, :scale => 1
133
- FitParser::File::Definitions.add_field 3, 7, 'weight_setting', :type => :display_measure, :scale => 1
134
- FitParser::File::Definitions.add_field 3, 8, 'resting_heart_rate', :type => :uint8, :scale => 1, :unit => 'bpm'
135
- FitParser::File::Definitions.add_field 3, 9, 'default_max_running_heart_rate', :type => :uint8, :scale => 1, :unit => 'bpm'
136
- FitParser::File::Definitions.add_field 3, 10, 'default_max_biking_heart_rate', :type => :uint8, :scale => 1, :unit => 'bpm'
137
- FitParser::File::Definitions.add_field 3, 11, 'default_max_heart_rate', :type => :uint8, :scale => 1, :unit => 'bpm'
138
- FitParser::File::Definitions.add_field 3, 12, 'hr_setting', :type => :display_heart, :scale => 1
139
- FitParser::File::Definitions.add_field 3, 13, 'speed_setting', :type => :display_measure, :scale => 1
140
- FitParser::File::Definitions.add_field 3, 14, 'dist_setting', :type => :display_measure, :scale => 1
141
- FitParser::File::Definitions.add_field 3, 16, 'power_setting', :type => :display_power, :scale => 1
142
- FitParser::File::Definitions.add_field 3, 17, 'activity_class', :type => :activity_class, :scale => 1
143
- FitParser::File::Definitions.add_field 3, 18, 'position_setting', :type => :display_position, :scale => 1
144
- FitParser::File::Definitions.add_field 3, 21, 'temperature_setting', :type => :display_measure, :scale => 1
145
- FitParser::File::Definitions.add_field 3, 22, 'local_id', :type => :user_local_id
146
- FitParser::File::Definitions.add_field 3, 23, 'global_id', :type => :byte
147
- FitParser::File::Definitions.add_field 3, 30, 'height_setting', :type => :display_measure
125
+ FitParser::File::Definitions.add_field 3, 254, 'message_index', type: :message_index
126
+ FitParser::File::Definitions.add_field 3, 0, 'friendly_name', type: :string, scale: 1
127
+ FitParser::File::Definitions.add_field 3, 1, 'gender', type: :gender, scale: 1
128
+ FitParser::File::Definitions.add_field 3, 2, 'age', type: :uint8, scale: 1, unit: 'years'
129
+ FitParser::File::Definitions.add_field 3, 3, 'height', type: :uint8, scale: 100, unit: 'm'
130
+ FitParser::File::Definitions.add_field 3, 4, 'weight', type: :uint16, scale: 10, unit: 'kg'
131
+ FitParser::File::Definitions.add_field 3, 5, 'language', type: :language, scale: 1
132
+ FitParser::File::Definitions.add_field 3, 6, 'elev_setting', type: :display_measure, scale: 1
133
+ FitParser::File::Definitions.add_field 3, 7, 'weight_setting', type: :display_measure, scale: 1
134
+ FitParser::File::Definitions.add_field 3, 8, 'resting_heart_rate', type: :uint8, scale: 1, unit: 'bpm'
135
+ FitParser::File::Definitions.add_field 3, 9, 'default_max_running_heart_rate', type: :uint8, scale: 1, unit: 'bpm'
136
+ FitParser::File::Definitions.add_field 3, 10, 'default_max_biking_heart_rate', type: :uint8, scale: 1, unit: 'bpm'
137
+ FitParser::File::Definitions.add_field 3, 11, 'default_max_heart_rate', type: :uint8, scale: 1, unit: 'bpm'
138
+ FitParser::File::Definitions.add_field 3, 12, 'hr_setting', type: :display_heart, scale: 1
139
+ FitParser::File::Definitions.add_field 3, 13, 'speed_setting', type: :display_measure, scale: 1
140
+ FitParser::File::Definitions.add_field 3, 14, 'dist_setting', type: :display_measure, scale: 1
141
+ FitParser::File::Definitions.add_field 3, 16, 'power_setting', type: :display_power, scale: 1
142
+ FitParser::File::Definitions.add_field 3, 17, 'activity_class', type: :activity_class, scale: 1
143
+ FitParser::File::Definitions.add_field 3, 18, 'position_setting', type: :display_position, scale: 1
144
+ FitParser::File::Definitions.add_field 3, 21, 'temperature_setting', type: :display_measure, scale: 1
145
+ FitParser::File::Definitions.add_field 3, 22, 'local_id', type: :user_local_id
146
+ FitParser::File::Definitions.add_field 3, 23, 'global_id', type: :byte
147
+ FitParser::File::Definitions.add_field 3, 30, 'height_setting', type: :display_measure
148
148
 
149
149
  FitParser::File::Definitions.add_name 4, 'hrm_profile'
150
- FitParser::File::Definitions.add_field 4, 254, 'message_index', :type => :message_index, :scale => 1
151
- FitParser::File::Definitions.add_field 4, 0, 'enabled', :type => :bool
152
- FitParser::File::Definitions.add_field 4, 1, 'hrm_ant_id', :type => :uint16z, :scale => 1
153
- FitParser::File::Definitions.add_field 4, 2, 'log_hrv', :type => :bool
154
- FitParser::File::Definitions.add_field 4, 3, 'hrm_ant_id_trans_type', :type => :uint8z
150
+ FitParser::File::Definitions.add_field 4, 254, 'message_index', type: :message_index, scale: 1
151
+ FitParser::File::Definitions.add_field 4, 0, 'enabled', type: :bool
152
+ FitParser::File::Definitions.add_field 4, 1, 'hrm_ant_id', type: :uint16z, scale: 1
153
+ FitParser::File::Definitions.add_field 4, 2, 'log_hrv', type: :bool
154
+ FitParser::File::Definitions.add_field 4, 3, 'hrm_ant_id_trans_type', type: :uint8z
155
155
 
156
156
  FitParser::File::Definitions.add_name 5, 'sdm_profile'
157
- FitParser::File::Definitions.add_field 5, 254, 'message_index', :type => :message_index, :scale => 1
158
- FitParser::File::Definitions.add_field 5, 0, 'enabled', :type => :bool
159
- FitParser::File::Definitions.add_field 5, 1, 'sdm_ant_id', :type => :uint16z, :scale => 1
160
- FitParser::File::Definitions.add_field 5, 2, 'sdm_cal_factor', :type => :uint16, :scale => 10, :unit => '%'
161
- FitParser::File::Definitions.add_field 5, 3, 'odometer', :type => :uint32, :scale => 100, :unit => 'm'
162
- FitParser::File::Definitions.add_field 5, 4, 'speed_source', :type => :bool
163
- FitParser::File::Definitions.add_field 5, 5, 'sdm_ant_id_trans_type', :type => :uint8z
164
- FitParser::File::Definitions.add_field 5, 7, 'odometer_rollover', :type => :uint8
157
+ FitParser::File::Definitions.add_field 5, 254, 'message_index', type: :message_index, scale: 1
158
+ FitParser::File::Definitions.add_field 5, 0, 'enabled', type: :bool
159
+ FitParser::File::Definitions.add_field 5, 1, 'sdm_ant_id', type: :uint16z, scale: 1
160
+ FitParser::File::Definitions.add_field 5, 2, 'sdm_cal_factor', type: :uint16, scale: 10, unit: '%'
161
+ FitParser::File::Definitions.add_field 5, 3, 'odometer', type: :uint32, scale: 100, unit: 'm'
162
+ FitParser::File::Definitions.add_field 5, 4, 'speed_source', type: :bool
163
+ FitParser::File::Definitions.add_field 5, 5, 'sdm_ant_id_trans_type', type: :uint8z
164
+ FitParser::File::Definitions.add_field 5, 7, 'odometer_rollover', type: :uint8
165
165
 
166
166
  FitParser::File::Definitions.add_name 6, 'bike_profile'
167
- FitParser::File::Definitions.add_field 6, 254, 'message_index', :type => :message_index, :scale => 1
168
- FitParser::File::Definitions.add_field 6, 0, 'name', :type => :string, :scale => 1
169
- FitParser::File::Definitions.add_field 6, 1, 'sport', :type => :sport, :scale => 1
170
- FitParser::File::Definitions.add_field 6, 2, 'sub_sport', :type => :sub_sport, :scale => 1
171
- FitParser::File::Definitions.add_field 6, 3, 'odometer', :type => :uint32, :scale => 100, :unit => 'm'
172
- FitParser::File::Definitions.add_field 6, 4, 'bike_spd_ant_id', :type => :uint16z, :scale => 1
173
- FitParser::File::Definitions.add_field 6, 5, 'bike_cad_ant_id', :type => :uint16z, :scale => 1
174
- FitParser::File::Definitions.add_field 6, 6, 'bike_spdcad_ant_id', :type => :uint16z, :scale => 1
175
- FitParser::File::Definitions.add_field 6, 7, 'bike_power_ant_id', :type => :uint16z, :scale => 1
176
- FitParser::File::Definitions.add_field 6, 8, 'custom_wheelsize', :type => :uint16, :scale => 1000, :unit => 'm'
177
- FitParser::File::Definitions.add_field 6, 9, 'auto_wheelsize', :type => :uint16, :scale => 1000, :unit => 'm'
178
- FitParser::File::Definitions.add_field 6, 10, 'bike_weight', :type => :uint16, :scale => 10, :unit => 'kg'
179
- FitParser::File::Definitions.add_field 6, 11, 'power_cal_factor', :type => :uint16, :scale => 10, :unit => '%'
180
- FitParser::File::Definitions.add_field 6, 12, 'auto_wheel_cal', :type => :bool, :scale => 1
181
- FitParser::File::Definitions.add_field 6, 13, 'auto_power_zero', :type => :bool, :scale => 1
182
- FitParser::File::Definitions.add_field 6, 14, 'id', :type => :uint8
183
- FitParser::File::Definitions.add_field 6, 15, 'spd_enabled', :type => :bool
184
- FitParser::File::Definitions.add_field 6, 16, 'cad_enabled', :type => :bool
185
- FitParser::File::Definitions.add_field 6, 17, 'spdcad_enabled', :type => :bool
186
- FitParser::File::Definitions.add_field 6, 18, 'power_enabled', :type => :bool
187
- FitParser::File::Definitions.add_field 6, 19, 'crank_length', :type => :uint8, :scale => 2, :offset => -110, :unit => 'mm'
188
- FitParser::File::Definitions.add_field 6, 20, 'enabled', :type => :bool
189
- FitParser::File::Definitions.add_field 6, 21, 'bike_spd_ant_id_trans_type', :type => :uint8z
190
- FitParser::File::Definitions.add_field 6, 22, 'bike_cad_ant_id_trans_type', :type => :uint8z
191
- FitParser::File::Definitions.add_field 6, 23, 'bike_spdcad_ant_id_trans_type', :type => :uint8z
192
- FitParser::File::Definitions.add_field 6, 24, 'bike_power_ant_id_trans_type', :type => :uint8z
193
- FitParser::File::Definitions.add_field 6, 37, 'odometer_rollover', :type => :uint8
194
- FitParser::File::Definitions.add_field 6, 38, 'front_gear_num', :type => :uint8z
195
- FitParser::File::Definitions.add_field 6, 39, 'front_gear', :type => :uint8z
196
- FitParser::File::Definitions.add_field 6, 40, 'rear_gear_num', :type => :uint8z
197
- FitParser::File::Definitions.add_field 6, 41, 'rear_gear', :type => :uint8z
167
+ FitParser::File::Definitions.add_field 6, 254, 'message_index', type: :message_index, scale: 1
168
+ FitParser::File::Definitions.add_field 6, 0, 'name', type: :string, scale: 1
169
+ FitParser::File::Definitions.add_field 6, 1, 'sport', type: :sport, scale: 1
170
+ FitParser::File::Definitions.add_field 6, 2, 'sub_sport', type: :sub_sport, scale: 1
171
+ FitParser::File::Definitions.add_field 6, 3, 'odometer', type: :uint32, scale: 100, unit: 'm'
172
+ FitParser::File::Definitions.add_field 6, 4, 'bike_spd_ant_id', type: :uint16z, scale: 1
173
+ FitParser::File::Definitions.add_field 6, 5, 'bike_cad_ant_id', type: :uint16z, scale: 1
174
+ FitParser::File::Definitions.add_field 6, 6, 'bike_spdcad_ant_id', type: :uint16z, scale: 1
175
+ FitParser::File::Definitions.add_field 6, 7, 'bike_power_ant_id', type: :uint16z, scale: 1
176
+ FitParser::File::Definitions.add_field 6, 8, 'custom_wheelsize', type: :uint16, scale: 1000, unit: 'm'
177
+ FitParser::File::Definitions.add_field 6, 9, 'auto_wheelsize', type: :uint16, scale: 1000, unit: 'm'
178
+ FitParser::File::Definitions.add_field 6, 10, 'bike_weight', type: :uint16, scale: 10, unit: 'kg'
179
+ FitParser::File::Definitions.add_field 6, 11, 'power_cal_factor', type: :uint16, scale: 10, unit: '%'
180
+ FitParser::File::Definitions.add_field 6, 12, 'auto_wheel_cal', type: :bool, scale: 1
181
+ FitParser::File::Definitions.add_field 6, 13, 'auto_power_zero', type: :bool, scale: 1
182
+ FitParser::File::Definitions.add_field 6, 14, 'id', type: :uint8
183
+ FitParser::File::Definitions.add_field 6, 15, 'spd_enabled', type: :bool
184
+ FitParser::File::Definitions.add_field 6, 16, 'cad_enabled', type: :bool
185
+ FitParser::File::Definitions.add_field 6, 17, 'spdcad_enabled', type: :bool
186
+ FitParser::File::Definitions.add_field 6, 18, 'power_enabled', type: :bool
187
+ FitParser::File::Definitions.add_field 6, 19, 'crank_length', type: :uint8, scale: 2, offset: -110, unit: 'mm'
188
+ FitParser::File::Definitions.add_field 6, 20, 'enabled', type: :bool
189
+ FitParser::File::Definitions.add_field 6, 21, 'bike_spd_ant_id_trans_type', type: :uint8z
190
+ FitParser::File::Definitions.add_field 6, 22, 'bike_cad_ant_id_trans_type', type: :uint8z
191
+ FitParser::File::Definitions.add_field 6, 23, 'bike_spdcad_ant_id_trans_type', type: :uint8z
192
+ FitParser::File::Definitions.add_field 6, 24, 'bike_power_ant_id_trans_type', type: :uint8z
193
+ FitParser::File::Definitions.add_field 6, 37, 'odometer_rollover', type: :uint8
194
+ FitParser::File::Definitions.add_field 6, 38, 'front_gear_num', type: :uint8z
195
+ FitParser::File::Definitions.add_field 6, 39, 'front_gear', type: :uint8z
196
+ FitParser::File::Definitions.add_field 6, 40, 'rear_gear_num', type: :uint8z
197
+ FitParser::File::Definitions.add_field 6, 41, 'rear_gear', type: :uint8z
198
198
 
199
199
  FitParser::File::Definitions.add_name 7, 'zones_target'
200
- FitParser::File::Definitions.add_field 7, 1, 'max_heart_rate', :type => :uint8, :scale => 1
201
- FitParser::File::Definitions.add_field 7, 2, 'threshold_heart_rate', :type => :uint8, :scale => 1
202
- FitParser::File::Definitions.add_field 7, 3, 'functional_threshold_power', :type => :uint16, :scale => 1
203
- FitParser::File::Definitions.add_field 7, 5, 'hr_calc_type', :type => :hr_zone_calc, :scale => 1
204
- FitParser::File::Definitions.add_field 7, 7, 'pwr_calc_type', :type => :pwr_zone_calc, :scale => 1
200
+ FitParser::File::Definitions.add_field 7, 1, 'max_heart_rate', type: :uint8, scale: 1
201
+ FitParser::File::Definitions.add_field 7, 2, 'threshold_heart_rate', type: :uint8, scale: 1
202
+ FitParser::File::Definitions.add_field 7, 3, 'functional_threshold_power', type: :uint16, scale: 1
203
+ FitParser::File::Definitions.add_field 7, 5, 'hr_calc_type', type: :hr_zone_calc, scale: 1
204
+ FitParser::File::Definitions.add_field 7, 7, 'pwr_calc_type', type: :pwr_zone_calc, scale: 1
205
205
 
206
206
  FitParser::File::Definitions.add_name 12, 'sport'
207
- FitParser::File::Definitions.add_field 12, 0, 'sport', :type => :sport, :scale => 1
208
- FitParser::File::Definitions.add_field 12, 1, 'sub_sport', :type => :sub_sport, :scale => 1
209
- FitParser::File::Definitions.add_field 12, 3, 'name', :type => :string
207
+ FitParser::File::Definitions.add_field 12, 0, 'sport', type: :sport, scale: 1
208
+ FitParser::File::Definitions.add_field 12, 1, 'sub_sport', type: :sub_sport, scale: 1
209
+ FitParser::File::Definitions.add_field 12, 3, 'name', type: :string
210
210
 
211
211
  FitParser::File::Definitions.add_name 8, 'hr_zone'
212
- FitParser::File::Definitions.add_field 8, 254, 'message_index', :type => :message_index, :scale => 1
213
- FitParser::File::Definitions.add_field 8, 1, 'high_bpm', :type => :uint8, :scale => 1, :unit => 'bpm'
214
- FitParser::File::Definitions.add_field 8, 2, 'name', :type => :string, :scale => 1
212
+ FitParser::File::Definitions.add_field 8, 254, 'message_index', type: :message_index, scale: 1
213
+ FitParser::File::Definitions.add_field 8, 1, 'high_bpm', type: :uint8, scale: 1, unit: 'bpm'
214
+ FitParser::File::Definitions.add_field 8, 2, 'name', type: :string, scale: 1
215
215
 
216
216
  FitParser::File::Definitions.add_name 53, 'speed_zone'
217
- FitParser::File::Definitions.add_field 53, 254, 'message_index', :type => :message_index, :scale => 1
218
- FitParser::File::Definitions.add_field 53, 0, 'high_value', :type => :uint16, :scale => 1000, :unit => 'm/s'
219
- FitParser::File::Definitions.add_field 53, 1, 'name', :type => :string, :scale => 1
217
+ FitParser::File::Definitions.add_field 53, 254, 'message_index', type: :message_index, scale: 1
218
+ FitParser::File::Definitions.add_field 53, 0, 'high_value', type: :uint16, scale: 1000, unit: 'm/s'
219
+ FitParser::File::Definitions.add_field 53, 1, 'name', type: :string, scale: 1
220
220
 
221
221
  FitParser::File::Definitions.add_name 131, 'cadence_zone'
222
- FitParser::File::Definitions.add_field 131, 254, 'message_index', :type => :message_index, :scale => 1
223
- FitParser::File::Definitions.add_field 131, 0, 'high_value', :type => :uint8, :scale => 1, :unit => 'rpm'
224
- FitParser::File::Definitions.add_field 131, 1, 'name', :type => :string, :scale => 1
222
+ FitParser::File::Definitions.add_field 131, 254, 'message_index', type: :message_index, scale: 1
223
+ FitParser::File::Definitions.add_field 131, 0, 'high_value', type: :uint8, scale: 1, unit: 'rpm'
224
+ FitParser::File::Definitions.add_field 131, 1, 'name', type: :string, scale: 1
225
225
 
226
226
  FitParser::File::Definitions.add_name 9, 'power_zone'
227
- FitParser::File::Definitions.add_field 9, 254, 'message_index', :type => :message_index, :scale => 1
228
- FitParser::File::Definitions.add_field 9, 1, 'high_value', :type => :uint16, :scale => 1, :unit => 'watts'
229
- FitParser::File::Definitions.add_field 9, 2, 'name', :type => :string, :scale => 1
227
+ FitParser::File::Definitions.add_field 9, 254, 'message_index', type: :message_index, scale: 1
228
+ FitParser::File::Definitions.add_field 9, 1, 'high_value', type: :uint16, scale: 1, unit: 'watts'
229
+ FitParser::File::Definitions.add_field 9, 2, 'name', type: :string, scale: 1
230
230
 
231
231
  FitParser::File::Definitions.add_name 10, 'met_zone'
232
- FitParser::File::Definitions.add_field 10, 254, 'message_index', :type => :message_index, :scale => 1
233
- FitParser::File::Definitions.add_field 10, 1, 'high_bpm', :type => :uint8, :scale => 1
234
- FitParser::File::Definitions.add_field 10, 2, 'calories', :type => :uint16, :scale => 10, :unit => 'kcal / min'
235
- FitParser::File::Definitions.add_field 10, 3, 'fat_calories', :type => :uint8, :scale => 10, :unit => 'kcal / min'
232
+ FitParser::File::Definitions.add_field 10, 254, 'message_index', type: :message_index, scale: 1
233
+ FitParser::File::Definitions.add_field 10, 1, 'high_bpm', type: :uint8, scale: 1
234
+ FitParser::File::Definitions.add_field 10, 2, 'calories', type: :uint16, scale: 10, unit: 'kcal / min'
235
+ FitParser::File::Definitions.add_field 10, 3, 'fat_calories', type: :uint8, scale: 10, unit: 'kcal / min'
236
236
 
237
237
  FitParser::File::Definitions.add_name 15, 'goal'
238
- FitParser::File::Definitions.add_field 15, 254, 'message_index', :type => :message_index, :scale => 1
239
- FitParser::File::Definitions.add_field 15, 0, 'sport', :type => :sport, :scale => 1
240
- FitParser::File::Definitions.add_field 15, 1, 'sub_sport', :type => :sub_sport, :scale => 1
241
- FitParser::File::Definitions.add_field 15, 2, 'start_date', :type => :date_time
242
- FitParser::File::Definitions.add_field 15, 3, 'end_date', :type => :date_time
243
- FitParser::File::Definitions.add_field 15, 4, 'type', :type => :goal
244
- FitParser::File::Definitions.add_field 15, 5, 'value', :type => :uint32, :scale => 1
245
- FitParser::File::Definitions.add_field 15, 6, 'repeat', :type => :bool
246
- FitParser::File::Definitions.add_field 15, 7, 'target_value', :type => :uint32, :scale => 1
247
- FitParser::File::Definitions.add_field 15, 8, 'recurrence', :type => :goal_recurrence, :scale => 1
248
- FitParser::File::Definitions.add_field 15, 9, 'recurrence_value', :type => :uint16, :scale => 1
249
- FitParser::File::Definitions.add_field 15, 10, 'enabled', :type => :bool, :scale => 1
238
+ FitParser::File::Definitions.add_field 15, 254, 'message_index', type: :message_index, scale: 1
239
+ FitParser::File::Definitions.add_field 15, 0, 'sport', type: :sport, scale: 1
240
+ FitParser::File::Definitions.add_field 15, 1, 'sub_sport', type: :sub_sport, scale: 1
241
+ FitParser::File::Definitions.add_field 15, 2, 'start_date', type: :date_time
242
+ FitParser::File::Definitions.add_field 15, 3, 'end_date', type: :date_time
243
+ FitParser::File::Definitions.add_field 15, 4, 'type', type: :goal
244
+ FitParser::File::Definitions.add_field 15, 5, 'value', type: :uint32, scale: 1
245
+ FitParser::File::Definitions.add_field 15, 6, 'repeat', type: :bool
246
+ FitParser::File::Definitions.add_field 15, 7, 'target_value', type: :uint32, scale: 1
247
+ FitParser::File::Definitions.add_field 15, 8, 'recurrence', type: :goal_recurrence, scale: 1
248
+ FitParser::File::Definitions.add_field 15, 9, 'recurrence_value', type: :uint16, scale: 1
249
+ FitParser::File::Definitions.add_field 15, 10, 'enabled', type: :bool, scale: 1
250
250
 
251
251
  FitParser::File::Definitions.add_name 34, 'activity'
252
- FitParser::File::Definitions.add_field 34, 253, 'timestamp', :type => :date_time
253
- FitParser::File::Definitions.add_field 34, 0, 'total_timer_time', :type => :uint32, :scale => 1000, :unit => 's'
254
- FitParser::File::Definitions.add_field 34, 1, 'num_sessions', :type => :uint16, :scale => 1
255
- FitParser::File::Definitions.add_field 34, 2, 'type', :type => :activity
256
- FitParser::File::Definitions.add_field 34, 3, 'event', :type => :event
257
- FitParser::File::Definitions.add_field 34, 4, 'event_type', :type => :event_type
258
- FitParser::File::Definitions.add_field 34, 5, 'local_timestamp', :type => :local_date_time
259
- FitParser::File::Definitions.add_field 34, 6, 'event_group', :type => :uint8
252
+ FitParser::File::Definitions.add_field 34, 253, 'timestamp', type: :date_time
253
+ FitParser::File::Definitions.add_field 34, 0, 'total_timer_time', type: :uint32, scale: 1000, unit: 's'
254
+ FitParser::File::Definitions.add_field 34, 1, 'num_sessions', type: :uint16, scale: 1
255
+ FitParser::File::Definitions.add_field 34, 2, 'type', type: :activity
256
+ FitParser::File::Definitions.add_field 34, 3, 'event', type: :event
257
+ FitParser::File::Definitions.add_field 34, 4, 'event_type', type: :event_type
258
+ FitParser::File::Definitions.add_field 34, 5, 'local_timestamp', type: :local_date_time
259
+ FitParser::File::Definitions.add_field 34, 6, 'event_group', type: :uint8
260
260
 
261
261
  FitParser::File::Definitions.add_name 18, 'session'
262
- FitParser::File::Definitions.add_field 18, 254, 'message_index', :type => :message_index, :scale => 1
263
- FitParser::File::Definitions.add_field 18, 253, 'timestamp', :type => :date_time, :unit => 's'
264
- FitParser::File::Definitions.add_field 18, 0, 'event', :type => :event
265
- FitParser::File::Definitions.add_field 18, 1, 'event_type', :type => :event_type
266
- FitParser::File::Definitions.add_field 18, 2, 'start_time', :type => :date_time, :scale => 1
267
- FitParser::File::Definitions.add_field 18, 3, 'start_position_lat', :type => :sint32, :scale => 1, :unit => 'semicircles'
268
- FitParser::File::Definitions.add_field 18, 4, 'start_position_long', :type => :sint32, :scale => 1, :unit => 'semicircles'
269
- FitParser::File::Definitions.add_field 18, 5, 'sport', :type => :sport, :scale => 1
270
- FitParser::File::Definitions.add_field 18, 6, 'sub_sport', :type => :sub_sport, :scale => 1
271
- FitParser::File::Definitions.add_field 18, 7, 'total_elapsed_time', :type => :uint32, :scale => 1000, :unit => 's'
272
- FitParser::File::Definitions.add_field 18, 8, 'total_timer_time', :type => :uint32, :scale => 1000, :unit => 's'
273
- FitParser::File::Definitions.add_field 18, 9, 'total_distance', :type => :uint32, :scale => 100, :unit => 'm'
274
- FitParser::File::Definitions.add_field 18, 10, 'total_cycles', :type => :uint32, :scale => 1, :unit => 'cycles'
275
- FitParser::File::Definitions.add_field 18, 10, 'total_strides', :type => :uint32, :scale => 1, :unit => 'strides', :ref_field_name => 'sport', :ref_field_values => [:running]
276
- FitParser::File::Definitions.add_field 18, 11, 'total_calories', :type => :uint16, :scale => 1, :unit => 'kcal'
277
- FitParser::File::Definitions.add_field 18, 13, 'total_fat_calories', :type => :uint16, :scale => 1, :unit => 'kcal'
278
- FitParser::File::Definitions.add_field 18, 14, 'avg_speed', :type => :uint16, :scale => 1000, :unit => 'm/s'
279
- FitParser::File::Definitions.add_field 18, 15, 'max_speed', :type => :uint16, :scale => 1000, :unit => 'm/s'
280
- FitParser::File::Definitions.add_field 18, 16, 'avg_heart_rate', :type => :uint8, :scale => 1, :unit => 'bpm'
281
- FitParser::File::Definitions.add_field 18, 17, 'max_heart_rate', :type => :uint8, :scale => 1, :unit => 'bpm'
282
- FitParser::File::Definitions.add_field 18, 18, 'avg_cadence', :type => :uint8, :scale => 1, :unit => 'rpm'
283
- FitParser::File::Definitions.add_field 18, 18, 'avg_running_cadence', :type => :uint8, :scale => 1, :unit => 'strides/min', :ref_field_name => 'sport', :ref_field_values => [:running]
284
- FitParser::File::Definitions.add_field 18, 19, 'max_cadence', :type => :uint8, :scale => 1, :unit => 'rpm'
285
- FitParser::File::Definitions.add_field 18, 18, 'max_running_cadence', :type => :uint8, :scale => 1, :unit => 'strides/min', :ref_field_name => 'sport', :ref_field_values => [:running]
286
- FitParser::File::Definitions.add_field 18, 20, 'avg_power', :type => :uint16, :scale => 1, :unit => 'watts'
287
- FitParser::File::Definitions.add_field 18, 21, 'max_power', :type => :uint16, :scale => 1, :unit => 'watts'
288
- FitParser::File::Definitions.add_field 18, 22, 'total_ascent', :type => :uint16, :scale => 1, :unit => 'm'
289
- FitParser::File::Definitions.add_field 18, 23, 'total_descent', :type => :uint16, :scale => 1, :unit => 'm'
290
- FitParser::File::Definitions.add_field 18, 24, 'total_training_effect', :type => :uint8, :scale => 10
291
- FitParser::File::Definitions.add_field 18, 25, 'first_lap_index', :type => :uint16, :scale => 1
292
- FitParser::File::Definitions.add_field 18, 26, 'num_laps', :type => :uint16, :scale => 1
293
- FitParser::File::Definitions.add_field 18, 27, 'event_group', :type => :uint8
294
- FitParser::File::Definitions.add_field 18, 28, 'trigger', :type => :session_trigger
295
- FitParser::File::Definitions.add_field 18, 29, 'nec_lat', :type => :sint32, :unit => 'semicircles'
296
- FitParser::File::Definitions.add_field 18, 30, 'nec_long', :type => :sint32, :unit => 'semicircles'
297
- FitParser::File::Definitions.add_field 18, 31, 'swc_lat', :type => :sint32, :unit => 'semicircles'
298
- FitParser::File::Definitions.add_field 18, 32, 'swc_long', :type => :sint32, :unit => 'semicircles'
299
- FitParser::File::Definitions.add_field 18, 34, 'normalized_power', :type => :uint16, :unit => 'watts'
300
- FitParser::File::Definitions.add_field 18, 35, 'training_stress_score', :type => :uint16, :scale => 10, :unit => 'tss'
301
- FitParser::File::Definitions.add_field 18, 36, 'intensity_factor', :type => :uint16, :scale => 1000, :unit => 'if'
302
- FitParser::File::Definitions.add_field 18, 37, 'left_right_balance', :type => :left_right_balance_100
303
- FitParser::File::Definitions.add_field 18, 41, 'avg_stroke_count', :type => :uint32, :scale => 10, :unit => 'strokes/lap'
304
- FitParser::File::Definitions.add_field 18, 42, 'avg_stroke_distance', :type => :uint16, :scale => 100, :unit => 'm'
305
- FitParser::File::Definitions.add_field 18, 43, 'swim_stroke', :type => :swim_stroke, :unit => 'swim_stroke', :ref_field_name => 'sport', :ref_field_values => [:swimming]
306
- FitParser::File::Definitions.add_field 18, 44, 'pool_length', :type => :uint16, :scale => 100, :unit => 'm'
307
- FitParser::File::Definitions.add_field 18, 46, 'pool_length_unit', :type => :display_measure, :scale => 1
308
- FitParser::File::Definitions.add_field 18, 47, 'num_active_lengths', :type => :uint16, :unit => 'lengths'
309
- FitParser::File::Definitions.add_field 18, 48, 'total_work', :type => :uint32, :unit => 'J'
310
- FitParser::File::Definitions.add_field 18, 49, 'avg_altitude', :type => :uint16, :scale => 5, :offset => 500, :unit => 'm'
311
- FitParser::File::Definitions.add_field 18, 50, 'max_altitude', :type => :uint16, :scale => 5, :offset => 500, :unit => 'm'
312
- FitParser::File::Definitions.add_field 18, 51, 'gps_accuracy', :type => :uint8, :unit => 'm'
313
- FitParser::File::Definitions.add_field 18, 52, 'avg_grade', :type => :sint16, :scale => 100, :unit => '%'
314
- FitParser::File::Definitions.add_field 18, 53, 'avg_pos_grade', :type => :sint16, :scale => 100, :unit => '%'
315
- FitParser::File::Definitions.add_field 18, 54, 'avg_neg_grade', :type => :sint16, :scale => 100, :unit => '%'
316
- FitParser::File::Definitions.add_field 18, 55, 'max_pos_grade', :type => :sint16, :scale => 100, :unit => '%'
317
- FitParser::File::Definitions.add_field 18, 56, 'max_neg_grade', :type => :sint16, :scale => 100, :unit => '%'
318
- FitParser::File::Definitions.add_field 18, 57, 'avg_temperature', :type => :sint8, :unit => 'C'
319
- FitParser::File::Definitions.add_field 18, 58, 'max_temperature', :type => :sint8, :unit => 'C'
320
- FitParser::File::Definitions.add_field 18, 59, 'total_moving_time', :type => :uint32, :scale => 1000, :unit => 's'
321
- FitParser::File::Definitions.add_field 18, 60, 'avg_pos_vertical_speed', :type => :sint16, :scale => 1000, :unit => 'm/s'
322
- FitParser::File::Definitions.add_field 18, 61, 'avg_neg_vertical_speed', :type => :sint16, :scale => 1000, :unit => 'm/s'
323
- FitParser::File::Definitions.add_field 18, 62, 'max_pos_vertical_speed', :type => :sint16, :scale => 1000, :unit => 'm/s'
324
- FitParser::File::Definitions.add_field 18, 63, 'max_neg_vertical_speed', :type => :sint16, :scale => 1000, :unit => 'm/s'
325
- FitParser::File::Definitions.add_field 18, 64, 'min_heart_rate', :type => :uint8, :scale => 1, :unit => 'bpm'
326
- FitParser::File::Definitions.add_field 18, 65, 'time_in_hr_zone', :type => :uint32, :scale => 1000, :unit => 's'
327
- FitParser::File::Definitions.add_field 18, 66, 'time_in_speed_zone', :type => :uint32, :scale => 1000, :unit => 's'
328
- FitParser::File::Definitions.add_field 18, 67, 'time_in_cadence_zone', :type => :uint32, :scale => 1000, :unit => 's'
329
- FitParser::File::Definitions.add_field 18, 68, 'time_in_power_zone', :type => :uint32, :scale => 1000, :unit => 's'
330
- FitParser::File::Definitions.add_field 18, 69, 'avg_lap_time', :type => :uint32, :scale => 1000, :unit => 's'
331
- FitParser::File::Definitions.add_field 18, 70, 'best_lap_index', :type => :uint16
332
- FitParser::File::Definitions.add_field 18, 71, 'min_altitude', :type => :uint16, :scale => 5, :offset => 500, :unit => 'm'
333
- FitParser::File::Definitions.add_field 18, 82, 'player_score', :type => :uint16
334
- FitParser::File::Definitions.add_field 18, 83, 'opponent_score', :type => :uint16
335
- FitParser::File::Definitions.add_field 18, 84, 'opponent_name', :type => :string
336
- FitParser::File::Definitions.add_field 18, 85, 'stroke_count', :type => :uint16, :unit => 'counts'
337
- FitParser::File::Definitions.add_field 18, 86, 'zone_count', :type => :uint16, :unit => 'counts'
338
- FitParser::File::Definitions.add_field 18, 87, 'max_ball_speed', :type => :uint16, :scale => 100, :unit => 'm/s'
339
- FitParser::File::Definitions.add_field 18, 88, 'avg_ball_speed', :type => :uint16, :scale => 100, :unit => 'm/s'
340
- FitParser::File::Definitions.add_field 18, 89, 'avg_vertical_oscillation', :type => :uint16, :scale => 10, :unit => 'mm'
341
- FitParser::File::Definitions.add_field 18, 90, 'avg_stance_time_percent', :type => :uint16, :scale => 100, :unit => 'percent'
342
- FitParser::File::Definitions.add_field 18, 91, 'avg_stance_time', :type => :uint16, :scale => 10, :unit => 'ms'
343
- FitParser::File::Definitions.add_field 18, 92, 'avg_fractional_cadence', :type => :uint8, :scale => 128, :unit => 'rpm'
344
- FitParser::File::Definitions.add_field 18, 93, 'max_fractional_cadence', :type => :uint8, :scale => 128, :unit => 'rpm'
345
- FitParser::File::Definitions.add_field 18, 94, 'total_fractional_cycles', :type => :uint8, :scale => 128, :unit => 'cycles'
346
- FitParser::File::Definitions.add_field 18, 95, 'avg_total_hemoglobin_conc', :type => :uint16, :scale => 100, :unit => 'g/dL'
347
- FitParser::File::Definitions.add_field 18, 96, 'min_total_hemoglobin_conc', :type => :uint16, :scale => 100, :unit => 'g/dL'
348
- FitParser::File::Definitions.add_field 18, 97, 'max_total_hemoglobin_conc', :type => :uint16, :scale => 100, :unit => 'g/dL'
349
- FitParser::File::Definitions.add_field 18, 98, 'avg_saturated_hemoglobin_percent', :type => :uint16, :scale => 10, :unit => '%'
350
- FitParser::File::Definitions.add_field 18, 99, 'min_saturated_hemoglobin_percent', :type => :uint16, :scale => 10, :unit => '%'
351
- FitParser::File::Definitions.add_field 18, 100, 'max_saturated_hemoglobin_percent', :type => :uint16, :scale => 10, :unit => '%'
352
- FitParser::File::Definitions.add_field 18, 101, 'avg_left_torque_effectiveness', :type => :uint8, :scale => 2, :unit => 'percent'
353
- FitParser::File::Definitions.add_field 18, 102, 'avg_right_torque_effectiveness', :type => :uint8, :scale => 2, :unit => 'percent'
354
- FitParser::File::Definitions.add_field 18, 103, 'avg_left_pedal_smoothness', :type => :uint8, :scale => 2, :unit => 'percent'
355
- FitParser::File::Definitions.add_field 18, 104, 'avg_right_pedal_smoothness', :type => :uint8, :scale => 2, :unit => 'percent'
356
- FitParser::File::Definitions.add_field 18, 105, 'avg_combined_pedal_smoothness', :type => :uint8, :scale => 2, :unit => 'percent'
262
+ FitParser::File::Definitions.add_field 18, 254, 'message_index', type: :message_index, scale: 1
263
+ FitParser::File::Definitions.add_field 18, 253, 'timestamp', type: :date_time, unit: 's'
264
+ FitParser::File::Definitions.add_field 18, 0, 'event', type: :event
265
+ FitParser::File::Definitions.add_field 18, 1, 'event_type', type: :event_type
266
+ FitParser::File::Definitions.add_field 18, 2, 'start_time', type: :date_time, scale: 1
267
+ FitParser::File::Definitions.add_field 18, 3, 'start_position_lat', type: :sint32, scale: 1, unit: 'semicircles'
268
+ FitParser::File::Definitions.add_field 18, 4, 'start_position_long', type: :sint32, scale: 1, unit: 'semicircles'
269
+ FitParser::File::Definitions.add_field 18, 5, 'sport', type: :sport, scale: 1
270
+ FitParser::File::Definitions.add_field 18, 6, 'sub_sport', type: :sub_sport, scale: 1
271
+ FitParser::File::Definitions.add_field 18, 7, 'total_elapsed_time', type: :uint32, scale: 1000, unit: 's'
272
+ FitParser::File::Definitions.add_field 18, 8, 'total_timer_time', type: :uint32, scale: 1000, unit: 's'
273
+ FitParser::File::Definitions.add_field 18, 9, 'total_distance', type: :uint32, scale: 100, unit: 'm'
274
+ FitParser::File::Definitions.add_field 18, 10, 'total_cycles', type: :uint32, scale: 1, unit: 'cycles'
275
+ FitParser::File::Definitions.add_field 18, 10, 'total_strides', type: :uint32, scale: 1, unit: 'strides', ref_field_name: 'sport', ref_field_values: [:running]
276
+ FitParser::File::Definitions.add_field 18, 11, 'total_calories', type: :uint16, scale: 1, unit: 'kcal'
277
+ FitParser::File::Definitions.add_field 18, 13, 'total_fat_calories', type: :uint16, scale: 1, unit: 'kcal'
278
+ FitParser::File::Definitions.add_field 18, 14, 'avg_speed', type: :uint16, scale: 1000, unit: 'm/s'
279
+ FitParser::File::Definitions.add_field 18, 15, 'max_speed', type: :uint16, scale: 1000, unit: 'm/s'
280
+ FitParser::File::Definitions.add_field 18, 16, 'avg_heart_rate', type: :uint8, scale: 1, unit: 'bpm'
281
+ FitParser::File::Definitions.add_field 18, 17, 'max_heart_rate', type: :uint8, scale: 1, unit: 'bpm'
282
+ FitParser::File::Definitions.add_field 18, 18, 'avg_cadence', type: :uint8, scale: 1, unit: 'rpm'
283
+ FitParser::File::Definitions.add_field 18, 18, 'avg_running_cadence', type: :uint8, scale: 1, unit: 'strides/min', ref_field_name: 'sport', ref_field_values: [:running]
284
+ FitParser::File::Definitions.add_field 18, 19, 'max_cadence', type: :uint8, scale: 1, unit: 'rpm'
285
+ FitParser::File::Definitions.add_field 18, 18, 'max_running_cadence', type: :uint8, scale: 1, unit: 'strides/min', ref_field_name: 'sport', ref_field_values: [:running]
286
+ FitParser::File::Definitions.add_field 18, 20, 'avg_power', type: :uint16, scale: 1, unit: 'watts'
287
+ FitParser::File::Definitions.add_field 18, 21, 'max_power', type: :uint16, scale: 1, unit: 'watts'
288
+ FitParser::File::Definitions.add_field 18, 22, 'total_ascent', type: :uint16, scale: 1, unit: 'm'
289
+ FitParser::File::Definitions.add_field 18, 23, 'total_descent', type: :uint16, scale: 1, unit: 'm'
290
+ FitParser::File::Definitions.add_field 18, 24, 'total_training_effect', type: :uint8, scale: 10
291
+ FitParser::File::Definitions.add_field 18, 25, 'first_lap_index', type: :uint16, scale: 1
292
+ FitParser::File::Definitions.add_field 18, 26, 'num_laps', type: :uint16, scale: 1
293
+ FitParser::File::Definitions.add_field 18, 27, 'event_group', type: :uint8
294
+ FitParser::File::Definitions.add_field 18, 28, 'trigger', type: :session_trigger
295
+ FitParser::File::Definitions.add_field 18, 29, 'nec_lat', type: :sint32, unit: 'semicircles'
296
+ FitParser::File::Definitions.add_field 18, 30, 'nec_long', type: :sint32, unit: 'semicircles'
297
+ FitParser::File::Definitions.add_field 18, 31, 'swc_lat', type: :sint32, unit: 'semicircles'
298
+ FitParser::File::Definitions.add_field 18, 32, 'swc_long', type: :sint32, unit: 'semicircles'
299
+ FitParser::File::Definitions.add_field 18, 34, 'normalized_power', type: :uint16, unit: 'watts'
300
+ FitParser::File::Definitions.add_field 18, 35, 'training_stress_score', type: :uint16, scale: 10, unit: 'tss'
301
+ FitParser::File::Definitions.add_field 18, 36, 'intensity_factor', type: :uint16, scale: 1000, unit: 'if'
302
+ FitParser::File::Definitions.add_field 18, 37, 'left_right_balance', type: :left_right_balance_100
303
+ FitParser::File::Definitions.add_field 18, 41, 'avg_stroke_count', type: :uint32, scale: 10, unit: 'strokes/lap'
304
+ FitParser::File::Definitions.add_field 18, 42, 'avg_stroke_distance', type: :uint16, scale: 100, unit: 'm'
305
+ FitParser::File::Definitions.add_field 18, 43, 'swim_stroke', type: :swim_stroke, unit: 'swim_stroke', ref_field_name: 'sport', ref_field_values: [:swimming]
306
+ FitParser::File::Definitions.add_field 18, 44, 'pool_length', type: :uint16, scale: 100, unit: 'm'
307
+ FitParser::File::Definitions.add_field 18, 46, 'pool_length_unit', type: :display_measure, scale: 1
308
+ FitParser::File::Definitions.add_field 18, 47, 'num_active_lengths', type: :uint16, unit: 'lengths'
309
+ FitParser::File::Definitions.add_field 18, 48, 'total_work', type: :uint32, unit: 'J'
310
+ FitParser::File::Definitions.add_field 18, 49, 'avg_altitude', type: :uint16, scale: 5, offset: 500, unit: 'm'
311
+ FitParser::File::Definitions.add_field 18, 50, 'max_altitude', type: :uint16, scale: 5, offset: 500, unit: 'm'
312
+ FitParser::File::Definitions.add_field 18, 51, 'gps_accuracy', type: :uint8, unit: 'm'
313
+ FitParser::File::Definitions.add_field 18, 52, 'avg_grade', type: :sint16, scale: 100, unit: '%'
314
+ FitParser::File::Definitions.add_field 18, 53, 'avg_pos_grade', type: :sint16, scale: 100, unit: '%'
315
+ FitParser::File::Definitions.add_field 18, 54, 'avg_neg_grade', type: :sint16, scale: 100, unit: '%'
316
+ FitParser::File::Definitions.add_field 18, 55, 'max_pos_grade', type: :sint16, scale: 100, unit: '%'
317
+ FitParser::File::Definitions.add_field 18, 56, 'max_neg_grade', type: :sint16, scale: 100, unit: '%'
318
+ FitParser::File::Definitions.add_field 18, 57, 'avg_temperature', type: :sint8, unit: 'C'
319
+ FitParser::File::Definitions.add_field 18, 58, 'max_temperature', type: :sint8, unit: 'C'
320
+ FitParser::File::Definitions.add_field 18, 59, 'total_moving_time', type: :uint32, scale: 1000, unit: 's'
321
+ FitParser::File::Definitions.add_field 18, 60, 'avg_pos_vertical_speed', type: :sint16, scale: 1000, unit: 'm/s'
322
+ FitParser::File::Definitions.add_field 18, 61, 'avg_neg_vertical_speed', type: :sint16, scale: 1000, unit: 'm/s'
323
+ FitParser::File::Definitions.add_field 18, 62, 'max_pos_vertical_speed', type: :sint16, scale: 1000, unit: 'm/s'
324
+ FitParser::File::Definitions.add_field 18, 63, 'max_neg_vertical_speed', type: :sint16, scale: 1000, unit: 'm/s'
325
+ FitParser::File::Definitions.add_field 18, 64, 'min_heart_rate', type: :uint8, scale: 1, unit: 'bpm'
326
+ FitParser::File::Definitions.add_field 18, 65, 'time_in_hr_zone', type: :uint32, scale: 1000, unit: 's'
327
+ FitParser::File::Definitions.add_field 18, 66, 'time_in_speed_zone', type: :uint32, scale: 1000, unit: 's'
328
+ FitParser::File::Definitions.add_field 18, 67, 'time_in_cadence_zone', type: :uint32, scale: 1000, unit: 's'
329
+ FitParser::File::Definitions.add_field 18, 68, 'time_in_power_zone', type: :uint32, scale: 1000, unit: 's'
330
+ FitParser::File::Definitions.add_field 18, 69, 'avg_lap_time', type: :uint32, scale: 1000, unit: 's'
331
+ FitParser::File::Definitions.add_field 18, 70, 'best_lap_index', type: :uint16
332
+ FitParser::File::Definitions.add_field 18, 71, 'min_altitude', type: :uint16, scale: 5, offset: 500, unit: 'm'
333
+ FitParser::File::Definitions.add_field 18, 82, 'player_score', type: :uint16
334
+ FitParser::File::Definitions.add_field 18, 83, 'opponent_score', type: :uint16
335
+ FitParser::File::Definitions.add_field 18, 84, 'opponent_name', type: :string
336
+ FitParser::File::Definitions.add_field 18, 85, 'stroke_count', type: :uint16, unit: 'counts'
337
+ FitParser::File::Definitions.add_field 18, 86, 'zone_count', type: :uint16, unit: 'counts'
338
+ FitParser::File::Definitions.add_field 18, 87, 'max_ball_speed', type: :uint16, scale: 100, unit: 'm/s'
339
+ FitParser::File::Definitions.add_field 18, 88, 'avg_ball_speed', type: :uint16, scale: 100, unit: 'm/s'
340
+ FitParser::File::Definitions.add_field 18, 89, 'avg_vertical_oscillation', type: :uint16, scale: 10, unit: 'mm'
341
+ FitParser::File::Definitions.add_field 18, 90, 'avg_stance_time_percent', type: :uint16, scale: 100, unit: 'percent'
342
+ FitParser::File::Definitions.add_field 18, 91, 'avg_stance_time', type: :uint16, scale: 10, unit: 'ms'
343
+ FitParser::File::Definitions.add_field 18, 92, 'avg_fractional_cadence', type: :uint8, scale: 128, unit: 'rpm'
344
+ FitParser::File::Definitions.add_field 18, 93, 'max_fractional_cadence', type: :uint8, scale: 128, unit: 'rpm'
345
+ FitParser::File::Definitions.add_field 18, 94, 'total_fractional_cycles', type: :uint8, scale: 128, unit: 'cycles'
346
+ FitParser::File::Definitions.add_field 18, 95, 'avg_total_hemoglobin_conc', type: :uint16, scale: 100, unit: 'g/dL'
347
+ FitParser::File::Definitions.add_field 18, 96, 'min_total_hemoglobin_conc', type: :uint16, scale: 100, unit: 'g/dL'
348
+ FitParser::File::Definitions.add_field 18, 97, 'max_total_hemoglobin_conc', type: :uint16, scale: 100, unit: 'g/dL'
349
+ FitParser::File::Definitions.add_field 18, 98, 'avg_saturated_hemoglobin_percent', type: :uint16, scale: 10, unit: '%'
350
+ FitParser::File::Definitions.add_field 18, 99, 'min_saturated_hemoglobin_percent', type: :uint16, scale: 10, unit: '%'
351
+ FitParser::File::Definitions.add_field 18, 100, 'max_saturated_hemoglobin_percent', type: :uint16, scale: 10, unit: '%'
352
+ FitParser::File::Definitions.add_field 18, 101, 'avg_left_torque_effectiveness', type: :uint8, scale: 2, unit: 'percent'
353
+ FitParser::File::Definitions.add_field 18, 102, 'avg_right_torque_effectiveness', type: :uint8, scale: 2, unit: 'percent'
354
+ FitParser::File::Definitions.add_field 18, 103, 'avg_left_pedal_smoothness', type: :uint8, scale: 2, unit: 'percent'
355
+ FitParser::File::Definitions.add_field 18, 104, 'avg_right_pedal_smoothness', type: :uint8, scale: 2, unit: 'percent'
356
+ FitParser::File::Definitions.add_field 18, 105, 'avg_combined_pedal_smoothness', type: :uint8, scale: 2, unit: 'percent'
357
357
 
358
358
  FitParser::File::Definitions.add_name 19, 'lap'
359
- FitParser::File::Definitions.add_field 19, 254, 'message_index', :type => :message_index, :scale => 1
360
- FitParser::File::Definitions.add_field 19, 253, 'timestamp', :type => :date_time, :unit => 's'
361
- FitParser::File::Definitions.add_field 19, 0, 'event', :type => :event
362
- FitParser::File::Definitions.add_field 19, 1, 'event_type', :type => :event_type
363
- FitParser::File::Definitions.add_field 19, 2, 'start_time', :type => :date_time, :scale => 1
364
- FitParser::File::Definitions.add_field 19, 3, 'start_position_lat', :type => :sint32, :scale => 1, :unit => 'semicircles'
365
- FitParser::File::Definitions.add_field 19, 4, 'start_position_long', :type => :sint32, :scale => 1, :unit => 'semicircles'
366
- FitParser::File::Definitions.add_field 19, 5, 'end_position_lat', :type => :sint32, :scale => 1, :unit => 'semicircles'
367
- FitParser::File::Definitions.add_field 19, 6, 'end_position_long', :type => :sint32, :scale => 1, :unit => 'semicircles'
368
- FitParser::File::Definitions.add_field 19, 7, 'total_elapsed_time', :type => :uint32, :scale => 1000, :unit => 's'
369
- FitParser::File::Definitions.add_field 19, 8, 'total_timer_time', :type => :uint32, :scale => 1000, :unit => 's'
370
- FitParser::File::Definitions.add_field 19, 9, 'total_distance', :type => :uint32, :scale => 100, :unit => 'm'
371
- FitParser::File::Definitions.add_field 19, 10, 'total_cycles', :type => :uint32, :unit => 'cycles'
372
- FitParser::File::Definitions.add_field 19, 10, 'total_strides', :type => :uint32, :unit => 'strides', :ref_field_name => 'sport', :ref_field_values => [:running]
373
- FitParser::File::Definitions.add_field 19, 11, 'total_calories', :type => :uint16, :unit => 'kcal'
374
- FitParser::File::Definitions.add_field 19, 12, 'total_fat_calories', :type => :uint16, :unit => 'kcal'
375
- FitParser::File::Definitions.add_field 19, 13, 'avg_speed', :type => :uint16, :scale => 1000, :unit => 'm/s'
376
- FitParser::File::Definitions.add_field 19, 14, 'max_speed', :type => :uint16, :scale => 1000, :unit => 'm/s'
377
- FitParser::File::Definitions.add_field 19, 15, 'avg_heart_rate', :type => :uint8, :unit => 'bpm'
378
- FitParser::File::Definitions.add_field 19, 16, 'max_heart_rate', :type => :uint8, :unit => 'bpm'
379
- FitParser::File::Definitions.add_field 19, 17, 'avg_cadence', :type => :uint8, :unit => 'rpm'
380
- FitParser::File::Definitions.add_field 19, 17, 'avg_running_cadence', :type => :uint8, :unit => 'strides/min', :ref_field_name => 'sport', :ref_field_values => [:running]
381
- FitParser::File::Definitions.add_field 19, 18, 'max_cadence', :type => :uint8, :unit => 'rpm'
382
- FitParser::File::Definitions.add_field 19, 18, 'max_running_cadence', :type => :uint8, :unit => 'strides/min', :ref_field_name => 'sport', :ref_field_values => [:running]
383
- FitParser::File::Definitions.add_field 19, 19, 'avg_power', :type => :uint16, :unit => 'watts'
384
- FitParser::File::Definitions.add_field 19, 20, 'max_power', :type => :uint16, :unit => 'watts'
385
- FitParser::File::Definitions.add_field 19, 21, 'total_ascent', :type => :uint16, :unit => 'm'
386
- FitParser::File::Definitions.add_field 19, 22, 'total_descent', :type => :uint16, :unit => 'm'
387
- FitParser::File::Definitions.add_field 19, 23, 'intensity', :type => :intensity
388
- FitParser::File::Definitions.add_field 19, 24, 'lap_trigger', :type => :lap_trigger
389
- FitParser::File::Definitions.add_field 19, 25, 'sport', :type => :sport
390
- FitParser::File::Definitions.add_field 19, 26, 'event_group', :type => :uint8
391
- FitParser::File::Definitions.add_field 19, 32, 'num_lengths', :type => :uint16, :unit => 'lengths'
392
- FitParser::File::Definitions.add_field 19, 33, 'normalized_power', :type => :uint16, :unit => 'watts'
393
- FitParser::File::Definitions.add_field 19, 34, 'left_right_balance', :type => :left_right_balance_100
394
- FitParser::File::Definitions.add_field 19, 35, 'first_length_index', :type => :uint16, :scale => 1
395
- FitParser::File::Definitions.add_field 19, 37, 'avg_stroke_distance', :type => :uint16, :scale => 100, :unit => 'm'
396
- FitParser::File::Definitions.add_field 19, 38, 'swim_stroke', :type => :swim_stroke
397
- FitParser::File::Definitions.add_field 19, 39, 'sub_sport', :type => :sub_sport, :scale => 1
398
- FitParser::File::Definitions.add_field 19, 40, 'num_active_lengths', :type => :uint16, :unit => 'lengths'
399
- FitParser::File::Definitions.add_field 19, 41, 'total_work', :type => :uint32, :unit => 'J'
400
- FitParser::File::Definitions.add_field 19, 42, 'avg_altitude', :type => :uint16, :scale => 5, :offset => 500, :unit => 'm'
401
- FitParser::File::Definitions.add_field 19, 43, 'max_altitude', :type => :uint16, :scale => 5, :offset => 500, :unit => 'm'
402
- FitParser::File::Definitions.add_field 19, 44, 'gps_accuracy', :type => :uint8, :unit => 'm'
403
- FitParser::File::Definitions.add_field 19, 45, 'avg_grade', :type => :sint16, :scale => 100, :unit => '%'
404
- FitParser::File::Definitions.add_field 19, 46, 'avg_pos_grade', :type => :sint16, :scale => 100, :unit => '%'
405
- FitParser::File::Definitions.add_field 19, 47, 'avg_neg_grade', :type => :sint16, :scale => 100, :unit => '%'
406
- FitParser::File::Definitions.add_field 19, 48, 'max_pos_grade', :type => :sint16, :scale => 100, :unit => '%'
407
- FitParser::File::Definitions.add_field 19, 49, 'max_neg_grade', :type => :sint16, :scale => 100, :unit => '%'
408
- FitParser::File::Definitions.add_field 19, 50, 'avg_temperature', :type => :sint8, :unit => 'C'
409
- FitParser::File::Definitions.add_field 19, 51, 'max_temperature', :type => :sint8, :unit => 'C'
410
- FitParser::File::Definitions.add_field 19, 52, 'total_moving_time', :type => :uint32, :scale => 1000, :unit => 's'
411
- FitParser::File::Definitions.add_field 19, 53, 'avg_pos_vertical_speed', :type => :sint16, :scale => 1000, :unit => 'm/s'
412
- FitParser::File::Definitions.add_field 19, 54, 'avg_neg_vertical_speed', :type => :sint16, :scale => 1000, :unit => 'm/s'
413
- FitParser::File::Definitions.add_field 19, 55, 'max_pos_vertical_speed', :type => :sint16, :scale => 1000, :unit => 'm/s'
414
- FitParser::File::Definitions.add_field 19, 56, 'max_neg_vertical_speed', :type => :sint16, :scale => 1000, :unit => 'm/s'
415
- FitParser::File::Definitions.add_field 19, 57, 'time_in_hr_zone', :type => :uint32, :scale => 1000, :unit => 's'
416
- FitParser::File::Definitions.add_field 19, 58, 'time_in_speed_zone', :type => :uint32, :scale => 1000, :unit => 's'
417
- FitParser::File::Definitions.add_field 19, 59, 'time_in_cadence_zone', :type => :uint32, :scale => 1000, :unit => 's'
418
- FitParser::File::Definitions.add_field 19, 60, 'time_in_power_zone', :type => :uint32, :scale => 1000, :unit => 's'
419
- FitParser::File::Definitions.add_field 19, 61, 'repetition_num', :type => :uint16
420
- FitParser::File::Definitions.add_field 19, 62, 'min_altitude', :type => :uint16, :scale => 5, :offset => 500, :unit => 'm'
421
- FitParser::File::Definitions.add_field 19, 63, 'min_heart_rate', :type => :uint8, :scale => 1, :unit => 'bpm'
422
- FitParser::File::Definitions.add_field 19, 71, 'wkt_step_index', :type => :message_index
423
- FitParser::File::Definitions.add_field 19, 74, 'opponent_score', :type => :uint16
424
- FitParser::File::Definitions.add_field 19, 75, 'stroke_count', :type => :uint16, :unit => 'counts'
425
- FitParser::File::Definitions.add_field 19, 76, 'zone_count', :type => :uint16, :unit => 'counts'
426
- FitParser::File::Definitions.add_field 19, 77, 'avg_vertical_oscillation', :type => :uint16, :scale => 10, :unit => 'mm'
427
- FitParser::File::Definitions.add_field 19, 78, 'avg_stance_time_percent', :type => :uint16, :scale => 100, :unit => 'percent'
428
- FitParser::File::Definitions.add_field 19, 79, 'avg_stance_time', :type => :uint16, :scale => 10, :unit => 'ms'
429
- FitParser::File::Definitions.add_field 19, 80, 'avg_fractional_cadence', :type => :uint8, :scale => 128, :unit => 'rpm'
430
- FitParser::File::Definitions.add_field 19, 81, 'max_fractional_cadence', :type => :uint8, :scale => 128, :unit => 'rpm'
431
- FitParser::File::Definitions.add_field 19, 82, 'total_fractional_cycles', :type => :uint8, :scale => 128, :unit => 'cycles'
432
- FitParser::File::Definitions.add_field 19, 83, 'player_score', :type => :uint16
433
- FitParser::File::Definitions.add_field 19, 84, 'avg_total_hemoglobin_conc', :type => :uint16, :scale => 100, :unit => 'g/dL'
434
- FitParser::File::Definitions.add_field 19, 85, 'min_total_hemoglobin_conc', :type => :uint16, :scale => 100, :unit => 'g/dL'
435
- FitParser::File::Definitions.add_field 19, 86, 'max_total_hemoglobin_conc', :type => :uint16, :scale => 100, :unit => 'g/dL'
436
- FitParser::File::Definitions.add_field 19, 87, 'avg_saturated_hemoglobin_percent', :type => :uint16, :scale => 10, :unit => '%'
437
- FitParser::File::Definitions.add_field 19, 88, 'min_saturated_hemoglobin_percent', :type => :uint16, :scale => 10, :unit => '%'
438
- FitParser::File::Definitions.add_field 19, 89, 'max_saturated_hemoglobin_percent', :type => :uint16, :scale => 10, :unit => '%'
439
- FitParser::File::Definitions.add_field 19, 91, 'avg_left_torque_effectiveness', :type => :uint8, :scale => 2, :unit => 'percent'
440
- FitParser::File::Definitions.add_field 19, 92, 'avg_right_torque_effectiveness', :type => :uint8, :scale => 2, :unit => 'percent'
441
- FitParser::File::Definitions.add_field 19, 93, 'avg_left_pedal_smoothness', :type => :uint8, :scale => 2, :unit => 'percent'
442
- FitParser::File::Definitions.add_field 19, 94, 'avg_right_pedal_smoothness', :type => :uint8, :scale => 2, :unit => 'percent'
443
- FitParser::File::Definitions.add_field 19, 95, 'avg_combined_pedal_smoothness', :type => :uint8, :scale => 2, :unit => 'percent'
359
+ FitParser::File::Definitions.add_field 19, 254, 'message_index', type: :message_index, scale: 1
360
+ FitParser::File::Definitions.add_field 19, 253, 'timestamp', type: :date_time, unit: 's'
361
+ FitParser::File::Definitions.add_field 19, 0, 'event', type: :event
362
+ FitParser::File::Definitions.add_field 19, 1, 'event_type', type: :event_type
363
+ FitParser::File::Definitions.add_field 19, 2, 'start_time', type: :date_time, scale: 1
364
+ FitParser::File::Definitions.add_field 19, 3, 'start_position_lat', type: :sint32, scale: 1, unit: 'semicircles'
365
+ FitParser::File::Definitions.add_field 19, 4, 'start_position_long', type: :sint32, scale: 1, unit: 'semicircles'
366
+ FitParser::File::Definitions.add_field 19, 5, 'end_position_lat', type: :sint32, scale: 1, unit: 'semicircles'
367
+ FitParser::File::Definitions.add_field 19, 6, 'end_position_long', type: :sint32, scale: 1, unit: 'semicircles'
368
+ FitParser::File::Definitions.add_field 19, 7, 'total_elapsed_time', type: :uint32, scale: 1000, unit: 's'
369
+ FitParser::File::Definitions.add_field 19, 8, 'total_timer_time', type: :uint32, scale: 1000, unit: 's'
370
+ FitParser::File::Definitions.add_field 19, 9, 'total_distance', type: :uint32, scale: 100, unit: 'm'
371
+ FitParser::File::Definitions.add_field 19, 10, 'total_cycles', type: :uint32, unit: 'cycles'
372
+ FitParser::File::Definitions.add_field 19, 10, 'total_strides', type: :uint32, unit: 'strides', ref_field_name: 'sport', ref_field_values: [:running]
373
+ FitParser::File::Definitions.add_field 19, 11, 'total_calories', type: :uint16, unit: 'kcal'
374
+ FitParser::File::Definitions.add_field 19, 12, 'total_fat_calories', type: :uint16, unit: 'kcal'
375
+ FitParser::File::Definitions.add_field 19, 13, 'avg_speed', type: :uint16, scale: 1000, unit: 'm/s'
376
+ FitParser::File::Definitions.add_field 19, 14, 'max_speed', type: :uint16, scale: 1000, unit: 'm/s'
377
+ FitParser::File::Definitions.add_field 19, 15, 'avg_heart_rate', type: :uint8, unit: 'bpm'
378
+ FitParser::File::Definitions.add_field 19, 16, 'max_heart_rate', type: :uint8, unit: 'bpm'
379
+ FitParser::File::Definitions.add_field 19, 17, 'avg_cadence', type: :uint8, unit: 'rpm'
380
+ FitParser::File::Definitions.add_field 19, 17, 'avg_running_cadence', type: :uint8, unit: 'strides/min', ref_field_name: 'sport', ref_field_values: [:running]
381
+ FitParser::File::Definitions.add_field 19, 18, 'max_cadence', type: :uint8, unit: 'rpm'
382
+ FitParser::File::Definitions.add_field 19, 18, 'max_running_cadence', type: :uint8, unit: 'strides/min', ref_field_name: 'sport', ref_field_values: [:running]
383
+ FitParser::File::Definitions.add_field 19, 19, 'avg_power', type: :uint16, unit: 'watts'
384
+ FitParser::File::Definitions.add_field 19, 20, 'max_power', type: :uint16, unit: 'watts'
385
+ FitParser::File::Definitions.add_field 19, 21, 'total_ascent', type: :uint16, unit: 'm'
386
+ FitParser::File::Definitions.add_field 19, 22, 'total_descent', type: :uint16, unit: 'm'
387
+ FitParser::File::Definitions.add_field 19, 23, 'intensity', type: :intensity
388
+ FitParser::File::Definitions.add_field 19, 24, 'lap_trigger', type: :lap_trigger
389
+ FitParser::File::Definitions.add_field 19, 25, 'sport', type: :sport
390
+ FitParser::File::Definitions.add_field 19, 26, 'event_group', type: :uint8
391
+ FitParser::File::Definitions.add_field 19, 32, 'num_lengths', type: :uint16, unit: 'lengths'
392
+ FitParser::File::Definitions.add_field 19, 33, 'normalized_power', type: :uint16, unit: 'watts'
393
+ FitParser::File::Definitions.add_field 19, 34, 'left_right_balance', type: :left_right_balance_100
394
+ FitParser::File::Definitions.add_field 19, 35, 'first_length_index', type: :uint16, scale: 1
395
+ FitParser::File::Definitions.add_field 19, 37, 'avg_stroke_distance', type: :uint16, scale: 100, unit: 'm'
396
+ FitParser::File::Definitions.add_field 19, 38, 'swim_stroke', type: :swim_stroke
397
+ FitParser::File::Definitions.add_field 19, 39, 'sub_sport', type: :sub_sport, scale: 1
398
+ FitParser::File::Definitions.add_field 19, 40, 'num_active_lengths', type: :uint16, unit: 'lengths'
399
+ FitParser::File::Definitions.add_field 19, 41, 'total_work', type: :uint32, unit: 'J'
400
+ FitParser::File::Definitions.add_field 19, 42, 'avg_altitude', type: :uint16, scale: 5, offset: 500, unit: 'm'
401
+ FitParser::File::Definitions.add_field 19, 43, 'max_altitude', type: :uint16, scale: 5, offset: 500, unit: 'm'
402
+ FitParser::File::Definitions.add_field 19, 44, 'gps_accuracy', type: :uint8, unit: 'm'
403
+ FitParser::File::Definitions.add_field 19, 45, 'avg_grade', type: :sint16, scale: 100, unit: '%'
404
+ FitParser::File::Definitions.add_field 19, 46, 'avg_pos_grade', type: :sint16, scale: 100, unit: '%'
405
+ FitParser::File::Definitions.add_field 19, 47, 'avg_neg_grade', type: :sint16, scale: 100, unit: '%'
406
+ FitParser::File::Definitions.add_field 19, 48, 'max_pos_grade', type: :sint16, scale: 100, unit: '%'
407
+ FitParser::File::Definitions.add_field 19, 49, 'max_neg_grade', type: :sint16, scale: 100, unit: '%'
408
+ FitParser::File::Definitions.add_field 19, 50, 'avg_temperature', type: :sint8, unit: 'C'
409
+ FitParser::File::Definitions.add_field 19, 51, 'max_temperature', type: :sint8, unit: 'C'
410
+ FitParser::File::Definitions.add_field 19, 52, 'total_moving_time', type: :uint32, scale: 1000, unit: 's'
411
+ FitParser::File::Definitions.add_field 19, 53, 'avg_pos_vertical_speed', type: :sint16, scale: 1000, unit: 'm/s'
412
+ FitParser::File::Definitions.add_field 19, 54, 'avg_neg_vertical_speed', type: :sint16, scale: 1000, unit: 'm/s'
413
+ FitParser::File::Definitions.add_field 19, 55, 'max_pos_vertical_speed', type: :sint16, scale: 1000, unit: 'm/s'
414
+ FitParser::File::Definitions.add_field 19, 56, 'max_neg_vertical_speed', type: :sint16, scale: 1000, unit: 'm/s'
415
+ FitParser::File::Definitions.add_field 19, 57, 'time_in_hr_zone', type: :uint32, scale: 1000, unit: 's'
416
+ FitParser::File::Definitions.add_field 19, 58, 'time_in_speed_zone', type: :uint32, scale: 1000, unit: 's'
417
+ FitParser::File::Definitions.add_field 19, 59, 'time_in_cadence_zone', type: :uint32, scale: 1000, unit: 's'
418
+ FitParser::File::Definitions.add_field 19, 60, 'time_in_power_zone', type: :uint32, scale: 1000, unit: 's'
419
+ FitParser::File::Definitions.add_field 19, 61, 'repetition_num', type: :uint16
420
+ FitParser::File::Definitions.add_field 19, 62, 'min_altitude', type: :uint16, scale: 5, offset: 500, unit: 'm'
421
+ FitParser::File::Definitions.add_field 19, 63, 'min_heart_rate', type: :uint8, scale: 1, unit: 'bpm'
422
+ FitParser::File::Definitions.add_field 19, 71, 'wkt_step_index', type: :message_index
423
+ FitParser::File::Definitions.add_field 19, 74, 'opponent_score', type: :uint16
424
+ FitParser::File::Definitions.add_field 19, 75, 'stroke_count', type: :uint16, unit: 'counts'
425
+ FitParser::File::Definitions.add_field 19, 76, 'zone_count', type: :uint16, unit: 'counts'
426
+ FitParser::File::Definitions.add_field 19, 77, 'avg_vertical_oscillation', type: :uint16, scale: 10, unit: 'mm'
427
+ FitParser::File::Definitions.add_field 19, 78, 'avg_stance_time_percent', type: :uint16, scale: 100, unit: 'percent'
428
+ FitParser::File::Definitions.add_field 19, 79, 'avg_stance_time', type: :uint16, scale: 10, unit: 'ms'
429
+ FitParser::File::Definitions.add_field 19, 80, 'avg_fractional_cadence', type: :uint8, scale: 128, unit: 'rpm'
430
+ FitParser::File::Definitions.add_field 19, 81, 'max_fractional_cadence', type: :uint8, scale: 128, unit: 'rpm'
431
+ FitParser::File::Definitions.add_field 19, 82, 'total_fractional_cycles', type: :uint8, scale: 128, unit: 'cycles'
432
+ FitParser::File::Definitions.add_field 19, 83, 'player_score', type: :uint16
433
+ FitParser::File::Definitions.add_field 19, 84, 'avg_total_hemoglobin_conc', type: :uint16, scale: 100, unit: 'g/dL'
434
+ FitParser::File::Definitions.add_field 19, 85, 'min_total_hemoglobin_conc', type: :uint16, scale: 100, unit: 'g/dL'
435
+ FitParser::File::Definitions.add_field 19, 86, 'max_total_hemoglobin_conc', type: :uint16, scale: 100, unit: 'g/dL'
436
+ FitParser::File::Definitions.add_field 19, 87, 'avg_saturated_hemoglobin_percent', type: :uint16, scale: 10, unit: '%'
437
+ FitParser::File::Definitions.add_field 19, 88, 'min_saturated_hemoglobin_percent', type: :uint16, scale: 10, unit: '%'
438
+ FitParser::File::Definitions.add_field 19, 89, 'max_saturated_hemoglobin_percent', type: :uint16, scale: 10, unit: '%'
439
+ FitParser::File::Definitions.add_field 19, 91, 'avg_left_torque_effectiveness', type: :uint8, scale: 2, unit: 'percent'
440
+ FitParser::File::Definitions.add_field 19, 92, 'avg_right_torque_effectiveness', type: :uint8, scale: 2, unit: 'percent'
441
+ FitParser::File::Definitions.add_field 19, 93, 'avg_left_pedal_smoothness', type: :uint8, scale: 2, unit: 'percent'
442
+ FitParser::File::Definitions.add_field 19, 94, 'avg_right_pedal_smoothness', type: :uint8, scale: 2, unit: 'percent'
443
+ FitParser::File::Definitions.add_field 19, 95, 'avg_combined_pedal_smoothness', type: :uint8, scale: 2, unit: 'percent'
444
444
 
445
445
  FitParser::File::Definitions.add_name 101, 'length'
446
- FitParser::File::Definitions.add_field 101, 254, 'message_index', :type => :message_index, :scale => 1
447
- FitParser::File::Definitions.add_field 101, 253, 'timestamp', :type => :date_time, :scale => 1
448
- FitParser::File::Definitions.add_field 101, 0, 'event', :type => :event
449
- FitParser::File::Definitions.add_field 101, 1, 'event_type', :type => :event_type
450
- FitParser::File::Definitions.add_field 101, 2, 'start_time', :type => :date_time, :scale => 1
451
- FitParser::File::Definitions.add_field 101, 3, 'total_elapsed_time', :type => :uint32, :scale => 1000, :unit => 's'
452
- FitParser::File::Definitions.add_field 101, 4, 'total_timer_time', :type => :uint32, :scale => 1000, :unit => 's'
453
- FitParser::File::Definitions.add_field 101, 5, 'total_strokes', :type => :uint16, :scale => 1, :unit => 'strokes'
454
- FitParser::File::Definitions.add_field 101, 6, 'avg_speed', :type => :uint16, :scale => 1000, :unit => 'm/s'
455
- FitParser::File::Definitions.add_field 101, 7, 'swim_stroke', :type => :swim_stroke, :unit => 'swim_stroke'
456
- FitParser::File::Definitions.add_field 101, 9, 'avg_swimming_cadence', :type => :uint8, :unit => 'strokes/min'
457
- FitParser::File::Definitions.add_field 101, 10, 'event_group', :type => :uint8
458
- FitParser::File::Definitions.add_field 101, 11, 'total_calories', :type => :uint16, :unit => 'kcal'
459
- FitParser::File::Definitions.add_field 101, 12, 'length_type', :type => :length_type
460
- FitParser::File::Definitions.add_field 101, 18, 'player_score', :type => :uint16
461
- FitParser::File::Definitions.add_field 101, 19, 'opponent_score', :type => :uint16
462
- FitParser::File::Definitions.add_field 101, 20, 'stroke_count', :type => :uint16, :unit => 'counts'
463
- FitParser::File::Definitions.add_field 101, 21, 'zone_count', :type => :uint16, :unit => 'counts'
446
+ FitParser::File::Definitions.add_field 101, 254, 'message_index', type: :message_index, scale: 1
447
+ FitParser::File::Definitions.add_field 101, 253, 'timestamp', type: :date_time, scale: 1
448
+ FitParser::File::Definitions.add_field 101, 0, 'event', type: :event
449
+ FitParser::File::Definitions.add_field 101, 1, 'event_type', type: :event_type
450
+ FitParser::File::Definitions.add_field 101, 2, 'start_time', type: :date_time, scale: 1
451
+ FitParser::File::Definitions.add_field 101, 3, 'total_elapsed_time', type: :uint32, scale: 1000, unit: 's'
452
+ FitParser::File::Definitions.add_field 101, 4, 'total_timer_time', type: :uint32, scale: 1000, unit: 's'
453
+ FitParser::File::Definitions.add_field 101, 5, 'total_strokes', type: :uint16, scale: 1, unit: 'strokes'
454
+ FitParser::File::Definitions.add_field 101, 6, 'avg_speed', type: :uint16, scale: 1000, unit: 'm/s'
455
+ FitParser::File::Definitions.add_field 101, 7, 'swim_stroke', type: :swim_stroke, unit: 'swim_stroke'
456
+ FitParser::File::Definitions.add_field 101, 9, 'avg_swimming_cadence', type: :uint8, unit: 'strokes/min'
457
+ FitParser::File::Definitions.add_field 101, 10, 'event_group', type: :uint8
458
+ FitParser::File::Definitions.add_field 101, 11, 'total_calories', type: :uint16, unit: 'kcal'
459
+ FitParser::File::Definitions.add_field 101, 12, 'length_type', type: :length_type
460
+ FitParser::File::Definitions.add_field 101, 18, 'player_score', type: :uint16
461
+ FitParser::File::Definitions.add_field 101, 19, 'opponent_score', type: :uint16
462
+ FitParser::File::Definitions.add_field 101, 20, 'stroke_count', type: :uint16, unit: 'counts'
463
+ FitParser::File::Definitions.add_field 101, 21, 'zone_count', type: :uint16, unit: 'counts'
464
464
 
465
465
  FitParser::File::Definitions.add_name 20, 'record'
466
- FitParser::File::Definitions.add_field 20, 253, 'timestamp', :type => :date_time, :scale => 1, :unit => 's'
467
- FitParser::File::Definitions.add_field 20, 0, 'position_lat', :type => :sint32, :scale => 1, :unit => 'semicircles'
468
- FitParser::File::Definitions.add_field 20, 1, 'position_long', :type => :sint32, :scale => 1, :unit => 'semicircles'
469
- FitParser::File::Definitions.add_field 20, 2, 'altitude', :type => :uint16, :scale => 5, :offset => 500, :unit => 'm'
470
- FitParser::File::Definitions.add_field 20, 3, 'heart_rate', :type => :uint8, :scale => 1, :unit => 'bpm'
471
- FitParser::File::Definitions.add_field 20, 4, 'cadence', :type => :uint8, :scale => 1, :unit => 'rpm'
472
- FitParser::File::Definitions.add_field 20, 5, 'distance', :type => :uint32, :scale => 100, :unit => 'm'
473
- FitParser::File::Definitions.add_field 20, 6, 'speed', :type => :uint16, :scale => 1000, :unit => 'm/s'
474
- FitParser::File::Definitions.add_field 20, 7, 'power', :type => :uint16, :unit => 'watts'
475
- FitParser::File::Definitions.add_field 20, 8, 'compressed_speed_distance', :type => :byte, :unit => 'm/s,m'
476
- FitParser::File::Definitions.add_field 20, 9, 'grade', :type => :sint16, :scale => 100, :unit => '%'
477
- FitParser::File::Definitions.add_field 20, 10, 'resistance', :type => :uint8, :scale => 1
478
- FitParser::File::Definitions.add_field 20, 11, 'time_from_course', :type => :sint32, :scale => 1000, :unit => 's'
479
- FitParser::File::Definitions.add_field 20, 12, 'cycle_length', :type => :uint8, :scale => 100, :unit => 'm'
480
- FitParser::File::Definitions.add_field 20, 13, 'temperature', :type => :sint8, :unit => 'C'
481
- FitParser::File::Definitions.add_field 20, 17, 'speed_1s', :type => :uint8, :scale => 16, :unit => 'm/s'
482
- FitParser::File::Definitions.add_field 20, 18, 'cycles', :type => :uint8, :unit => 'cycles'
483
- FitParser::File::Definitions.add_field 20, 19, 'total_cycles', :type => :uint32, :unit => 'cycles'
484
- FitParser::File::Definitions.add_field 20, 28, 'compressed_accumulated_power', :type => :uint16, :unit => 'watts'
485
- FitParser::File::Definitions.add_field 20, 29, 'accumulated_power', :type => :uint32, :unit => 'watts'
486
- FitParser::File::Definitions.add_field 20, 30, 'left_right_balance', :type => :left_right_balance
487
- FitParser::File::Definitions.add_field 20, 31, 'gps_accuracy', :type => :uint8, :unit => 'm'
488
- FitParser::File::Definitions.add_field 20, 32, 'vertical_speed', :type => :sint16, :scale => 1000, :unit => 'm/s'
489
- FitParser::File::Definitions.add_field 20, 33, 'calories', :type => :uint16, :scale => 1, :unit => 'kcal'
490
- FitParser::File::Definitions.add_field 20, 39, 'vertical_oscillation', :type => :uint16, :scale => 10, :unit => 'mm'
491
- FitParser::File::Definitions.add_field 20, 40, 'stance_time_percent', :type => :uint16, :scale => 100, :unit => 'percent'
492
- FitParser::File::Definitions.add_field 20, 41, 'stance_time', :type => :uint16, :scale => 10, :unit => 'ms'
493
- FitParser::File::Definitions.add_field 20, 42, 'activity_type', :type => :activity_type
494
- FitParser::File::Definitions.add_field 20, 43, 'left_torque_effectiveness', :type => :uint8, :scale => 2, :unit => 'percent'
495
- FitParser::File::Definitions.add_field 20, 44, 'right_torque_effectiveness', :type => :uint8, :scale => 2, :unit => 'percent'
496
- FitParser::File::Definitions.add_field 20, 45, 'left_pedal_smoothness', :type => :uint8, :scale => 2, :unit => 'percent'
497
- FitParser::File::Definitions.add_field 20, 46, 'right_pedal_smoothness', :type => :uint8, :scale => 2, :unit => 'percent'
498
- FitParser::File::Definitions.add_field 20, 47, 'combined_pedal_smoothness', :type => :uint8, :scale => 2, :unit => 'percent'
499
- FitParser::File::Definitions.add_field 20, 48, 'time128', :type => :uint8, :scale => 128, :unit => 's'
500
- FitParser::File::Definitions.add_field 20, 49, 'stroke_type', :type => :stroke_type
501
- FitParser::File::Definitions.add_field 20, 50, 'zone', :type => :uint8
502
- FitParser::File::Definitions.add_field 20, 51, 'ball_speed', :type => :uint16, :scale => 100, :unit => 'm/s'
503
- FitParser::File::Definitions.add_field 20, 52, 'cadence256', :type => :uint16, :scale => 256, :unit => 'rpm'
504
- FitParser::File::Definitions.add_field 20, 53, 'fractional_cadence', :type => :uint8, :scale => 128, :unit => 'rpm'
505
- FitParser::File::Definitions.add_field 20, 54, 'total_hemoglobin_conc', :type => :uint16, :scale => 100, :unit => 'g/dL'
506
- FitParser::File::Definitions.add_field 20, 55, 'total_hemoglobin_conc_min', :type => :uint16, :scale => 100, :unit => 'g/dL'
507
- FitParser::File::Definitions.add_field 20, 56, 'total_hemoglobin_conc_max', :type => :uint16, :scale => 100, :unit => 'g/dL'
508
- FitParser::File::Definitions.add_field 20, 57, 'saturated_hemoglobin_percent', :type => :uint16, :scale => 10, :unit => '%'
509
- FitParser::File::Definitions.add_field 20, 58, 'saturated_hemoglobin_percent_min', :type => :uint16, :scale => 10, :unit => '%'
510
- FitParser::File::Definitions.add_field 20, 59, 'saturated_hemoglobin_percent_max', :type => :uint16, :scale => 10, :unit => '%'
511
- FitParser::File::Definitions.add_field 20, 62, 'device_index', :type => :device_index
466
+ FitParser::File::Definitions.add_field 20, 253, 'timestamp', type: :date_time, scale: 1, unit: 's'
467
+ FitParser::File::Definitions.add_field 20, 0, 'position_lat', type: :sint32, scale: 1, unit: 'semicircles'
468
+ FitParser::File::Definitions.add_field 20, 1, 'position_long', type: :sint32, scale: 1, unit: 'semicircles'
469
+ FitParser::File::Definitions.add_field 20, 2, 'altitude', type: :uint16, scale: 5, offset: 500, unit: 'm'
470
+ FitParser::File::Definitions.add_field 20, 3, 'heart_rate', type: :uint8, scale: 1, unit: 'bpm'
471
+ FitParser::File::Definitions.add_field 20, 4, 'cadence', type: :uint8, scale: 1, unit: 'rpm'
472
+ FitParser::File::Definitions.add_field 20, 5, 'distance', type: :uint32, scale: 100, unit: 'm'
473
+ FitParser::File::Definitions.add_field 20, 6, 'speed', type: :uint16, scale: 1000, unit: 'm/s'
474
+ FitParser::File::Definitions.add_field 20, 7, 'power', type: :uint16, unit: 'watts'
475
+ FitParser::File::Definitions.add_field 20, 8, 'compressed_speed_distance', type: :byte, unit: 'm/s,m'
476
+ FitParser::File::Definitions.add_field 20, 9, 'grade', type: :sint16, scale: 100, unit: '%'
477
+ FitParser::File::Definitions.add_field 20, 10, 'resistance', type: :uint8, scale: 1
478
+ FitParser::File::Definitions.add_field 20, 11, 'time_from_course', type: :sint32, scale: 1000, unit: 's'
479
+ FitParser::File::Definitions.add_field 20, 12, 'cycle_length', type: :uint8, scale: 100, unit: 'm'
480
+ FitParser::File::Definitions.add_field 20, 13, 'temperature', type: :sint8, unit: 'C'
481
+ FitParser::File::Definitions.add_field 20, 17, 'speed_1s', type: :uint8, scale: 16, unit: 'm/s'
482
+ FitParser::File::Definitions.add_field 20, 18, 'cycles', type: :uint8, unit: 'cycles'
483
+ FitParser::File::Definitions.add_field 20, 19, 'total_cycles', type: :uint32, unit: 'cycles'
484
+ FitParser::File::Definitions.add_field 20, 28, 'compressed_accumulated_power', type: :uint16, unit: 'watts'
485
+ FitParser::File::Definitions.add_field 20, 29, 'accumulated_power', type: :uint32, unit: 'watts'
486
+ FitParser::File::Definitions.add_field 20, 30, 'left_right_balance', type: :left_right_balance
487
+ FitParser::File::Definitions.add_field 20, 31, 'gps_accuracy', type: :uint8, unit: 'm'
488
+ FitParser::File::Definitions.add_field 20, 32, 'vertical_speed', type: :sint16, scale: 1000, unit: 'm/s'
489
+ FitParser::File::Definitions.add_field 20, 33, 'calories', type: :uint16, scale: 1, unit: 'kcal'
490
+ FitParser::File::Definitions.add_field 20, 39, 'vertical_oscillation', type: :uint16, scale: 10, unit: 'mm'
491
+ FitParser::File::Definitions.add_field 20, 40, 'stance_time_percent', type: :uint16, scale: 100, unit: 'percent'
492
+ FitParser::File::Definitions.add_field 20, 41, 'stance_time', type: :uint16, scale: 10, unit: 'ms'
493
+ FitParser::File::Definitions.add_field 20, 42, 'activity_type', type: :activity_type
494
+ FitParser::File::Definitions.add_field 20, 43, 'left_torque_effectiveness', type: :uint8, scale: 2, unit: 'percent'
495
+ FitParser::File::Definitions.add_field 20, 44, 'right_torque_effectiveness', type: :uint8, scale: 2, unit: 'percent'
496
+ FitParser::File::Definitions.add_field 20, 45, 'left_pedal_smoothness', type: :uint8, scale: 2, unit: 'percent'
497
+ FitParser::File::Definitions.add_field 20, 46, 'right_pedal_smoothness', type: :uint8, scale: 2, unit: 'percent'
498
+ FitParser::File::Definitions.add_field 20, 47, 'combined_pedal_smoothness', type: :uint8, scale: 2, unit: 'percent'
499
+ FitParser::File::Definitions.add_field 20, 48, 'time128', type: :uint8, scale: 128, unit: 's'
500
+ FitParser::File::Definitions.add_field 20, 49, 'stroke_type', type: :stroke_type
501
+ FitParser::File::Definitions.add_field 20, 50, 'zone', type: :uint8
502
+ FitParser::File::Definitions.add_field 20, 51, 'ball_speed', type: :uint16, scale: 100, unit: 'm/s'
503
+ FitParser::File::Definitions.add_field 20, 52, 'cadence256', type: :uint16, scale: 256, unit: 'rpm'
504
+ FitParser::File::Definitions.add_field 20, 53, 'fractional_cadence', type: :uint8, scale: 128, unit: 'rpm'
505
+ FitParser::File::Definitions.add_field 20, 54, 'total_hemoglobin_conc', type: :uint16, scale: 100, unit: 'g/dL'
506
+ FitParser::File::Definitions.add_field 20, 55, 'total_hemoglobin_conc_min', type: :uint16, scale: 100, unit: 'g/dL'
507
+ FitParser::File::Definitions.add_field 20, 56, 'total_hemoglobin_conc_max', type: :uint16, scale: 100, unit: 'g/dL'
508
+ FitParser::File::Definitions.add_field 20, 57, 'saturated_hemoglobin_percent', type: :uint16, scale: 10, unit: '%'
509
+ FitParser::File::Definitions.add_field 20, 58, 'saturated_hemoglobin_percent_min', type: :uint16, scale: 10, unit: '%'
510
+ FitParser::File::Definitions.add_field 20, 59, 'saturated_hemoglobin_percent_max', type: :uint16, scale: 10, unit: '%'
511
+ FitParser::File::Definitions.add_field 20, 62, 'device_index', type: :device_index
512
512
 
513
513
  FitParser::File::Definitions.add_name 21, 'event'
514
- FitParser::File::Definitions.add_field 21, 253, 'timestamp', :type => :date_time, :unit => 's'
515
- FitParser::File::Definitions.add_field 21, 0, 'event', :type => :event
516
- FitParser::File::Definitions.add_field 21, 1, 'event_type', :type => :event_type
517
- FitParser::File::Definitions.add_field 21, 2, 'data16', :type => :uint16, :scale => 1
518
- FitParser::File::Definitions.add_field 21, 3, 'data', :type => :uint32, :scale => 1
519
- FitParser::File::Definitions.add_field 21, 3, 'timer_trigger', :type => :timer_trigger, :scale => 1, :ref_field_name => 'event', :ref_field_values => [:timer]
520
- FitParser::File::Definitions.add_field 21, 3, 'course_point_index', :type => :message_index, :scale => 1, :ref_field_name => 'event', :ref_field_values => [:course_point]
521
- FitParser::File::Definitions.add_field 21, 3, 'battery_level', :type => :uint16, :scale => 1000, :unit => 'V', :ref_field_name => 'event', :ref_field_values => [:battery]
522
- FitParser::File::Definitions.add_field 21, 3, 'virtual_partner_speed', :type => :uint16, :scale => 1000, :unit => 'm/s', :ref_field_name => 'event', :ref_field_values => [:virtual_partner_pace]
523
- FitParser::File::Definitions.add_field 21, 3, 'hr_high_alert', :type => :uint8, :scale => 1, :unit => 'bpm', :ref_field_name => 'event', :ref_field_values => [:hr_high_alert]
524
- FitParser::File::Definitions.add_field 21, 3, 'hr_low_alert', :type => :uint8, :scale => 1, :unit => 'bpm', :ref_field_name => 'event', :ref_field_values => [:hr_low_alert]
525
- FitParser::File::Definitions.add_field 21, 3, 'speed_high_alert', :type => :uint16, :scale => 1000, :unit => 'm/s', :ref_field_name => 'event', :ref_field_values => [:speed_high_alert]
526
- FitParser::File::Definitions.add_field 21, 3, 'speed_low_alert', :type => :uint16, :scale => 1000, :unit => 'm/s', :ref_field_name => 'event', :ref_field_values => [:speed_low_alert]
527
- FitParser::File::Definitions.add_field 21, 3, 'cad_high_alert', :type => :uint16, :scale => 1, :unit => 'rpm', :ref_field_name => 'event', :ref_field_values => [:cad_high_alert]
528
- FitParser::File::Definitions.add_field 21, 3, 'cad_low_alert', :type => :uint16, :scale => 1, :unit => 'rpm', :ref_field_name => 'event', :ref_field_values => [:cad_low_alert]
529
- FitParser::File::Definitions.add_field 21, 3, 'power_high_alert', :type => :uint16, :scale => 1, :unit => 'watts', :ref_field_name => 'event', :ref_field_values => [:power_high_alert]
530
- FitParser::File::Definitions.add_field 21, 3, 'power_low_alert', :type => :uint16, :scale => 1, :unit => 'watts', :ref_field_name => 'event', :ref_field_values => [:power_low_alert]
531
- FitParser::File::Definitions.add_field 21, 3, 'time_duration_alert', :type => :uint32, :scale => 1000, :unit => 's', :ref_field_name => 'event', :ref_field_values => [:time_duration_alert]
532
- FitParser::File::Definitions.add_field 21, 3, 'distance_duration_alert', :type => :uint32, :scale => 100, :unit => 'm', :ref_field_name => 'event', :ref_field_values => [:distance_duration_alert]
533
- FitParser::File::Definitions.add_field 21, 3, 'calorie_duration_alert', :type => :uint32, :scale => 1, :unit => 'calories', :ref_field_name => 'event', :ref_field_values => [:calorie_duration_alert]
534
- FitParser::File::Definitions.add_field 21, 3, 'fitness_equipment_state', :type => :fitness_equipment_state, :scale => 1, :ref_field_name => 'event', :ref_field_values => [:fitness_equipment]
535
- FitParser::File::Definitions.add_field 21, 3, 'sport_point', :type => :uint32, :scale => 1, :ref_field_name => 'event', :ref_field_values => [:sport_point]
536
- FitParser::File::Definitions.add_field 21, 3, 'gear_change_data', :type => :uint32, :scale => 1, :ref_field_name => 'event', :ref_field_values => [:front_gear_change, :rear_gear_change]
537
- FitParser::File::Definitions.add_field 21, 4, 'event_group', :type => :uint8
538
- FitParser::File::Definitions.add_field 21, 7, 'score', :type => :uint16
539
- FitParser::File::Definitions.add_field 21, 8, 'opponent_score', :type => :uint16
540
- FitParser::File::Definitions.add_field 21, 9, 'front_gear_num', :type => :uint8z
541
- FitParser::File::Definitions.add_field 21, 10, 'front_gear', :type => :uint8z
542
- FitParser::File::Definitions.add_field 21, 11, 'rear_gear_num', :type => :uint8z
543
- FitParser::File::Definitions.add_field 21, 12, 'rear_gear', :type => :uint8z
514
+ FitParser::File::Definitions.add_field 21, 253, 'timestamp', type: :date_time, unit: 's'
515
+ FitParser::File::Definitions.add_field 21, 0, 'event', type: :event
516
+ FitParser::File::Definitions.add_field 21, 1, 'event_type', type: :event_type
517
+ FitParser::File::Definitions.add_field 21, 2, 'data16', type: :uint16, scale: 1
518
+ FitParser::File::Definitions.add_field 21, 3, 'data', type: :uint32, scale: 1
519
+ FitParser::File::Definitions.add_field 21, 3, 'timer_trigger', type: :timer_trigger, scale: 1, ref_field_name: 'event', ref_field_values: [:timer]
520
+ FitParser::File::Definitions.add_field 21, 3, 'course_point_index', type: :message_index, scale: 1, ref_field_name: 'event', ref_field_values: [:course_point]
521
+ FitParser::File::Definitions.add_field 21, 3, 'battery_level', type: :uint16, scale: 1000, unit: 'V', ref_field_name: 'event', ref_field_values: [:battery]
522
+ FitParser::File::Definitions.add_field 21, 3, 'virtual_partner_speed', type: :uint16, scale: 1000, unit: 'm/s', ref_field_name: 'event', ref_field_values: [:virtual_partner_pace]
523
+ FitParser::File::Definitions.add_field 21, 3, 'hr_high_alert', type: :uint8, scale: 1, unit: 'bpm', ref_field_name: 'event', ref_field_values: [:hr_high_alert]
524
+ FitParser::File::Definitions.add_field 21, 3, 'hr_low_alert', type: :uint8, scale: 1, unit: 'bpm', ref_field_name: 'event', ref_field_values: [:hr_low_alert]
525
+ FitParser::File::Definitions.add_field 21, 3, 'speed_high_alert', type: :uint16, scale: 1000, unit: 'm/s', ref_field_name: 'event', ref_field_values: [:speed_high_alert]
526
+ FitParser::File::Definitions.add_field 21, 3, 'speed_low_alert', type: :uint16, scale: 1000, unit: 'm/s', ref_field_name: 'event', ref_field_values: [:speed_low_alert]
527
+ FitParser::File::Definitions.add_field 21, 3, 'cad_high_alert', type: :uint16, scale: 1, unit: 'rpm', ref_field_name: 'event', ref_field_values: [:cad_high_alert]
528
+ FitParser::File::Definitions.add_field 21, 3, 'cad_low_alert', type: :uint16, scale: 1, unit: 'rpm', ref_field_name: 'event', ref_field_values: [:cad_low_alert]
529
+ FitParser::File::Definitions.add_field 21, 3, 'power_high_alert', type: :uint16, scale: 1, unit: 'watts', ref_field_name: 'event', ref_field_values: [:power_high_alert]
530
+ FitParser::File::Definitions.add_field 21, 3, 'power_low_alert', type: :uint16, scale: 1, unit: 'watts', ref_field_name: 'event', ref_field_values: [:power_low_alert]
531
+ FitParser::File::Definitions.add_field 21, 3, 'time_duration_alert', type: :uint32, scale: 1000, unit: 's', ref_field_name: 'event', ref_field_values: [:time_duration_alert]
532
+ FitParser::File::Definitions.add_field 21, 3, 'distance_duration_alert', type: :uint32, scale: 100, unit: 'm', ref_field_name: 'event', ref_field_values: [:distance_duration_alert]
533
+ FitParser::File::Definitions.add_field 21, 3, 'calorie_duration_alert', type: :uint32, scale: 1, unit: 'calories', ref_field_name: 'event', ref_field_values: [:calorie_duration_alert]
534
+ FitParser::File::Definitions.add_field 21, 3, 'fitness_equipment_state', type: :fitness_equipment_state, scale: 1, ref_field_name: 'event', ref_field_values: [:fitness_equipment]
535
+ FitParser::File::Definitions.add_field 21, 3, 'sport_point', type: :uint32, scale: 1, ref_field_name: 'event', ref_field_values: [:sport_point]
536
+ FitParser::File::Definitions.add_field 21, 3, 'gear_change_data', type: :uint32, scale: 1, ref_field_name: 'event', ref_field_values: [:front_gear_change, :rear_gear_change]
537
+ FitParser::File::Definitions.add_field 21, 4, 'event_group', type: :uint8
538
+ FitParser::File::Definitions.add_field 21, 7, 'score', type: :uint16
539
+ FitParser::File::Definitions.add_field 21, 8, 'opponent_score', type: :uint16
540
+ FitParser::File::Definitions.add_field 21, 9, 'front_gear_num', type: :uint8z
541
+ FitParser::File::Definitions.add_field 21, 10, 'front_gear', type: :uint8z
542
+ FitParser::File::Definitions.add_field 21, 11, 'rear_gear_num', type: :uint8z
543
+ FitParser::File::Definitions.add_field 21, 12, 'rear_gear', type: :uint8z
544
544
 
545
545
  FitParser::File::Definitions.add_name 23, 'device_info'
546
- FitParser::File::Definitions.add_field 23, 253, 'timestamp', :type => :date_time, :scale => 1, :unit => 's'
547
- FitParser::File::Definitions.add_field 23, 0, 'device_index', :type => :device_index, :scale => 1
548
- FitParser::File::Definitions.add_field 23, 1, 'device_type', :type => :uint8, :scale => 1
549
- FitParser::File::Definitions.add_field 23, 1, 'antplus_device_type', :type => :antplus_device_type, :ref_field_name => 'source_type', :ref_field_values => [:antplus]
550
- FitParser::File::Definitions.add_field 23, 1, 'ant_device_type', :type => :uint8, :ref_field_name => 'source_type', :ref_field_values => [:ant]
551
- FitParser::File::Definitions.add_field 23, 2, 'manufacturer', :type => :manufacturer, :scale => 1
552
- FitParser::File::Definitions.add_field 23, 3, 'serial_number', :type => :uint32z, :scale => 1
553
- FitParser::File::Definitions.add_field 23, 4, 'product', :type => :uint16, :scale => 1
554
- FitParser::File::Definitions.add_field 23, 5, 'software_version', :type => :uint16, :scale => 100
555
- FitParser::File::Definitions.add_field 23, 6, 'hardware_version', :type => :uint8, :scale => 1
556
- FitParser::File::Definitions.add_field 23, 7, 'cum_operating_time', :type => :uint32, :scale => 1, :unit => 's'
557
- FitParser::File::Definitions.add_field 23, 10, 'battery_voltage', :type => :uint16, :scale => 256, :unit => 'V'
558
- FitParser::File::Definitions.add_field 23, 11, 'battery_status', :type => :battery_status
559
- FitParser::File::Definitions.add_field 23, 18, 'sensor_position', :type => :body_location
560
- FitParser::File::Definitions.add_field 23, 19, 'descriptor', :type => :string
561
- FitParser::File::Definitions.add_field 23, 20, 'ant_transmission_type', :type => :uint8z
562
- FitParser::File::Definitions.add_field 23, 21, 'ant_device_number', :type => :uint16z
563
- FitParser::File::Definitions.add_field 23, 22, 'ant_network', :type => :ant_network
564
- FitParser::File::Definitions.add_field 23, 25, 'source_type', :type => :source_type
546
+ FitParser::File::Definitions.add_field 23, 253, 'timestamp', type: :date_time, scale: 1, unit: 's'
547
+ FitParser::File::Definitions.add_field 23, 0, 'device_index', type: :device_index, scale: 1
548
+ FitParser::File::Definitions.add_field 23, 1, 'device_type', type: :uint8, scale: 1
549
+ FitParser::File::Definitions.add_field 23, 1, 'antplus_device_type', type: :antplus_device_type, ref_field_name: 'source_type', ref_field_values: [:antplus]
550
+ FitParser::File::Definitions.add_field 23, 1, 'ant_device_type', type: :uint8, ref_field_name: 'source_type', ref_field_values: [:ant]
551
+ FitParser::File::Definitions.add_field 23, 2, 'manufacturer', type: :manufacturer, scale: 1
552
+ FitParser::File::Definitions.add_field 23, 3, 'serial_number', type: :uint32z, scale: 1
553
+ FitParser::File::Definitions.add_field 23, 4, 'product', type: :uint16, scale: 1
554
+ FitParser::File::Definitions.add_field 23, 5, 'software_version', type: :uint16, scale: 100
555
+ FitParser::File::Definitions.add_field 23, 6, 'hardware_version', type: :uint8, scale: 1
556
+ FitParser::File::Definitions.add_field 23, 7, 'cum_operating_time', type: :uint32, scale: 1, unit: 's'
557
+ FitParser::File::Definitions.add_field 23, 10, 'battery_voltage', type: :uint16, scale: 256, unit: 'V'
558
+ FitParser::File::Definitions.add_field 23, 11, 'battery_status', type: :battery_status
559
+ FitParser::File::Definitions.add_field 23, 18, 'sensor_position', type: :body_location
560
+ FitParser::File::Definitions.add_field 23, 19, 'descriptor', type: :string
561
+ FitParser::File::Definitions.add_field 23, 20, 'ant_transmission_type', type: :uint8z
562
+ FitParser::File::Definitions.add_field 23, 21, 'ant_device_number', type: :uint16z
563
+ FitParser::File::Definitions.add_field 23, 22, 'ant_network', type: :ant_network
564
+ FitParser::File::Definitions.add_field 23, 25, 'source_type', type: :source_type
565
565
 
566
566
  FitParser::File::Definitions.add_name 72, 'training_file'
567
- FitParser::File::Definitions.add_field 72, 253, 'timestamp', :type => :date_time
568
- FitParser::File::Definitions.add_field 72, 0, 'type', :type => :file
569
- FitParser::File::Definitions.add_field 72, 1, 'manufacturer', :type => :manufacturer
570
- FitParser::File::Definitions.add_field 72, 2, 'product', :type => :uint16
571
- FitParser::File::Definitions.add_field 72, 2, 'garmin_product', :type => :garmin_product, :ref_field_name => 'manufacturer', :ref_field_values => [:garmin, :dynastream, :dynastream_oem]
572
- FitParser::File::Definitions.add_field 72, 3, 'serial_number', :type => :uint32z
573
- FitParser::File::Definitions.add_field 72, 4, 'time_created', :type => :date_time
567
+ FitParser::File::Definitions.add_field 72, 253, 'timestamp', type: :date_time
568
+ FitParser::File::Definitions.add_field 72, 0, 'type', type: :file
569
+ FitParser::File::Definitions.add_field 72, 1, 'manufacturer', type: :manufacturer
570
+ FitParser::File::Definitions.add_field 72, 2, 'product', type: :uint16
571
+ FitParser::File::Definitions.add_field 72, 2, 'garmin_product', type: :garmin_product, ref_field_name: 'manufacturer', ref_field_values: [:garmin, :dynastream, :dynastream_oem]
572
+ FitParser::File::Definitions.add_field 72, 3, 'serial_number', type: :uint32z
573
+ FitParser::File::Definitions.add_field 72, 4, 'time_created', type: :date_time
574
574
 
575
575
  FitParser::File::Definitions.add_name 78, 'hrv'
576
- FitParser::File::Definitions.add_field 78, 0, 'time', :type => :uint16, :scale => 1000, :unit => 's'
576
+ FitParser::File::Definitions.add_field 78, 0, 'time', type: :uint16, scale: 1000, unit: 's'
577
577
 
578
578
  FitParser::File::Definitions.add_name 31, 'course'
579
- FitParser::File::Definitions.add_field 31, 4, 'sport', :type => :sport
580
- FitParser::File::Definitions.add_field 31, 5, 'name', :type => :string
581
- FitParser::File::Definitions.add_field 31, 6, 'capabilities', :type => :course_capabilities
579
+ FitParser::File::Definitions.add_field 31, 4, 'sport', type: :sport
580
+ FitParser::File::Definitions.add_field 31, 5, 'name', type: :string
581
+ FitParser::File::Definitions.add_field 31, 6, 'capabilities', type: :course_capabilities
582
582
 
583
583
  FitParser::File::Definitions.add_name 32, 'course_point'
584
- FitParser::File::Definitions.add_field 32, 254, 'message_index', :type => :message_index
585
- FitParser::File::Definitions.add_field 32, 1, 'timestamp', :type => :date_time, :scale => 1
586
- FitParser::File::Definitions.add_field 32, 2, 'position_lat', :type => :sint32, :scale => 1, :unit => 'semicircles'
587
- FitParser::File::Definitions.add_field 32, 3, 'position_long', :type => :sint32, :scale => 1, :unit => 'semicircles'
588
- FitParser::File::Definitions.add_field 32, 4, 'distance', :type => :uint32, :scale => 100, :unit => 'm'
589
- FitParser::File::Definitions.add_field 32, 5, 'type', :type => :course_point, :scale => 1
590
- FitParser::File::Definitions.add_field 32, 6, 'name', :type => :string
584
+ FitParser::File::Definitions.add_field 32, 254, 'message_index', type: :message_index
585
+ FitParser::File::Definitions.add_field 32, 1, 'timestamp', type: :date_time, scale: 1
586
+ FitParser::File::Definitions.add_field 32, 2, 'position_lat', type: :sint32, scale: 1, unit: 'semicircles'
587
+ FitParser::File::Definitions.add_field 32, 3, 'position_long', type: :sint32, scale: 1, unit: 'semicircles'
588
+ FitParser::File::Definitions.add_field 32, 4, 'distance', type: :uint32, scale: 100, unit: 'm'
589
+ FitParser::File::Definitions.add_field 32, 5, 'type', type: :course_point, scale: 1
590
+ FitParser::File::Definitions.add_field 32, 6, 'name', type: :string
591
591
 
592
592
  FitParser::File::Definitions.add_name 26, 'workout'
593
- FitParser::File::Definitions.add_field 26, 4, 'sport', :type => :sport, :scale => 1
594
- FitParser::File::Definitions.add_field 26, 5, 'capabilities', :type => :workout_capabilities
595
- FitParser::File::Definitions.add_field 26, 6, 'num_valid_steps', :type => :uint16, :scale => 1
596
- FitParser::File::Definitions.add_field 26, 8, 'wkt_name', :type => :string, :scale => 1
593
+ FitParser::File::Definitions.add_field 26, 4, 'sport', type: :sport, scale: 1
594
+ FitParser::File::Definitions.add_field 26, 5, 'capabilities', type: :workout_capabilities
595
+ FitParser::File::Definitions.add_field 26, 6, 'num_valid_steps', type: :uint16, scale: 1
596
+ FitParser::File::Definitions.add_field 26, 8, 'wkt_name', type: :string, scale: 1
597
597
 
598
598
  FitParser::File::Definitions.add_name 27, 'workout_step'
599
- FitParser::File::Definitions.add_field 27, 254, 'message_index', :type => :message_index
600
- FitParser::File::Definitions.add_field 27, 0, 'wkt_step_name', :type => :string, :scale => 1
601
- FitParser::File::Definitions.add_field 27, 1, 'duration_type', :type => :wkt_step_duration, :scale => 1
602
- FitParser::File::Definitions.add_field 27, 2, 'duration_value', :type => :uint32, :scale => 1
603
- FitParser::File::Definitions.add_field 27, 2, 'duration_time', :type => :uint32, :scale => 1000, :unit => 's', :ref_field_name => 'duration_type', :ref_field_values => [:time, :repetition_time]
604
- FitParser::File::Definitions.add_field 27, 2, 'duration_distance', :type => :uint32, :scale => 100, :unit => 'm', :ref_field_name => 'duration_type', :ref_field_values => [:distance]
605
- FitParser::File::Definitions.add_field 27, 2, 'duration_hr', :type => :workout_hr, :scale => 1, :unit => '% or bpm', :ref_field_name => 'duration_type', :ref_field_values => [:hr_less_than, :hr_greater_than]
606
- FitParser::File::Definitions.add_field 27, 2, 'duration_calories', :type => :uint32, :scale => 1, :unit => 'calories', :ref_field_name => 'duration_type', :ref_field_values => [:calories]
607
- FitParser::File::Definitions.add_field 27, 2, 'duration_step', :type => :uint32, :ref_field_name => 'duration_type', :ref_field_values => [:repeat_until_steps_cmplt, :repeat_until_time, :repeat_until_distance, :repeat_until_calories, :repeat_until_hr_less_than, :repeat_until_hr_greater_than, :repeat_until_power_less_than,:repeat_until_power_greater_than]
608
- FitParser::File::Definitions.add_field 27, 2, 'duration_power', :type => :workout_power, :scale => 1, :unit => '% or watts', :ref_field_name => 'duration_type', :ref_field_values => [:power_less_than, :power_greater_than]
609
- FitParser::File::Definitions.add_field 27, 3, 'target_type', :type => :wkt_step_target, :scale => 1
610
- FitParser::File::Definitions.add_field 27, 4, 'target_value', :type => :uint32, :scale => 1
611
- FitParser::File::Definitions.add_field 27, 4, 'target_hr_zone', :type => :uint32, :ref_field_name => 'target_type', :ref_field_values => [:heart_rate]
612
- FitParser::File::Definitions.add_field 27, 4, 'target_power_zone', :type => :uint32, :ref_field_name => 'target_type', :ref_field_values => [:power]
613
- FitParser::File::Definitions.add_field 27, 4, 'repeat_steps', :type => :uint32, :ref_field_name => 'duration_type', :ref_field_values => [:repeat_until_steps_cmplt]
614
- FitParser::File::Definitions.add_field 27, 4, 'repeat_time', :type => :uint32, :scale => 1000, :unit => 's', :ref_field_name => 'duration_type', :ref_field_values => [:repeat_until_time]
615
- FitParser::File::Definitions.add_field 27, 4, 'repeat_distance', :type => :uint32, :scale => 100, :unit => 'm', :ref_field_name => 'duration_type', :ref_field_values => [:repeat_until_distance]
616
- FitParser::File::Definitions.add_field 27, 4, 'repeat_calories', :type => :uint32, :scale => 1, :unit => 'calories', :ref_field_name => 'duration_type', :ref_field_values => [:repeat_until_calories]
617
- FitParser::File::Definitions.add_field 27, 4, 'repeat_hr', :type => :workout_hr, :scale => 1, :unit => '% or bpm', :ref_field_name => 'duration_type', :ref_field_values => [:repeat_until_hr_less_than, :repeat_until_hr_greater_than]
618
- FitParser::File::Definitions.add_field 27, 4, 'repeat_power', :type => :workout_power, :scale => 1, :unit => '% or watts', :ref_field_name => 'duration_type', :ref_field_values => [:repeat_until_power_less_than, :repeat_until_power_greater_than]
619
- FitParser::File::Definitions.add_field 27, 5, 'custom_target_value_low', :type => :uint32, :scale => 1
620
- FitParser::File::Definitions.add_field 27, 5, 'custom_target_speed_low', :type => :uint32, :scale => 1000, :unit => 'm/s', :ref_field_name => 'target_type', :ref_field_values => [:speed]
621
- FitParser::File::Definitions.add_field 27, 5, 'custom_target_heart_rate_low', :type => :workout_hr, :scale => 1, :unit => '% or bpm', :ref_field_name => 'target_type', :ref_field_values => [:heart_rate]
622
- FitParser::File::Definitions.add_field 27, 5, 'custom_target_cadence_low', :type => :uint32, :scale => 1, :unit => 'rpm', :ref_field_name => 'target_type', :ref_field_values => [:cadence]
623
- FitParser::File::Definitions.add_field 27, 5, 'custom_target_power_low', :type => :workout_power, :scale => 1, :unit => '% or watts', :ref_field_name => 'target_type', :ref_field_values => [:power]
624
- FitParser::File::Definitions.add_field 27, 6, 'custom_target_value_high', :type => :uint32, :scale => 1
625
- FitParser::File::Definitions.add_field 27, 6, 'custom_target_speed_high', :type => :uint32, :scale => 1000, :unit => 'm/s', :ref_field_name => 'target_type', :ref_field_values => [:speed]
626
- FitParser::File::Definitions.add_field 27, 6, 'custom_target_heart_rate_high', :type => :workout_hr, :scale => 1, :unit => '% or bpm', :ref_field_name => 'target_type', :ref_field_values => [:heart_rate]
627
- FitParser::File::Definitions.add_field 27, 6, 'custom_target_cadence_high', :type => :uint32, :scale => 1, :unit => 'rpm', :ref_field_name => 'target_type', :ref_field_values => [:cadence]
628
- FitParser::File::Definitions.add_field 27, 6, 'custom_target_power_high', :type => :workout_power, :scale => 1, :unit => '% or watts', :ref_field_name => 'target_type', :ref_field_values => [:power]
629
- FitParser::File::Definitions.add_field 27, 7, 'intensity', :type => :intensity, :scale => 1
599
+ FitParser::File::Definitions.add_field 27, 254, 'message_index', type: :message_index
600
+ FitParser::File::Definitions.add_field 27, 0, 'wkt_step_name', type: :string, scale: 1
601
+ FitParser::File::Definitions.add_field 27, 1, 'duration_type', type: :wkt_step_duration, scale: 1
602
+ FitParser::File::Definitions.add_field 27, 2, 'duration_value', type: :uint32, scale: 1
603
+ FitParser::File::Definitions.add_field 27, 2, 'duration_time', type: :uint32, scale: 1000, unit: 's', ref_field_name: 'duration_type', ref_field_values: [:time, :repetition_time]
604
+ FitParser::File::Definitions.add_field 27, 2, 'duration_distance', type: :uint32, scale: 100, unit: 'm', ref_field_name: 'duration_type', ref_field_values: [:distance]
605
+ FitParser::File::Definitions.add_field 27, 2, 'duration_hr', type: :workout_hr, scale: 1, unit: '% or bpm', ref_field_name: 'duration_type', ref_field_values: [:hr_less_than, :hr_greater_than]
606
+ FitParser::File::Definitions.add_field 27, 2, 'duration_calories', type: :uint32, scale: 1, unit: 'calories', ref_field_name: 'duration_type', ref_field_values: [:calories]
607
+ FitParser::File::Definitions.add_field 27, 2, 'duration_step', type: :uint32, ref_field_name: 'duration_type', ref_field_values: [:repeat_until_steps_cmplt, :repeat_until_time, :repeat_until_distance, :repeat_until_calories, :repeat_until_hr_less_than, :repeat_until_hr_greater_than, :repeat_until_power_less_than,:repeat_until_power_greater_than]
608
+ FitParser::File::Definitions.add_field 27, 2, 'duration_power', type: :workout_power, scale: 1, unit: '% or watts', ref_field_name: 'duration_type', ref_field_values: [:power_less_than, :power_greater_than]
609
+ FitParser::File::Definitions.add_field 27, 3, 'target_type', type: :wkt_step_target, scale: 1
610
+ FitParser::File::Definitions.add_field 27, 4, 'target_value', type: :uint32, scale: 1
611
+ FitParser::File::Definitions.add_field 27, 4, 'target_hr_zone', type: :uint32, ref_field_name: 'target_type', ref_field_values: [:heart_rate]
612
+ FitParser::File::Definitions.add_field 27, 4, 'target_power_zone', type: :uint32, ref_field_name: 'target_type', ref_field_values: [:power]
613
+ FitParser::File::Definitions.add_field 27, 4, 'repeat_steps', type: :uint32, ref_field_name: 'duration_type', ref_field_values: [:repeat_until_steps_cmplt]
614
+ FitParser::File::Definitions.add_field 27, 4, 'repeat_time', type: :uint32, scale: 1000, unit: 's', ref_field_name: 'duration_type', ref_field_values: [:repeat_until_time]
615
+ FitParser::File::Definitions.add_field 27, 4, 'repeat_distance', type: :uint32, scale: 100, unit: 'm', ref_field_name: 'duration_type', ref_field_values: [:repeat_until_distance]
616
+ FitParser::File::Definitions.add_field 27, 4, 'repeat_calories', type: :uint32, scale: 1, unit: 'calories', ref_field_name: 'duration_type', ref_field_values: [:repeat_until_calories]
617
+ FitParser::File::Definitions.add_field 27, 4, 'repeat_hr', type: :workout_hr, scale: 1, unit: '% or bpm', ref_field_name: 'duration_type', ref_field_values: [:repeat_until_hr_less_than, :repeat_until_hr_greater_than]
618
+ FitParser::File::Definitions.add_field 27, 4, 'repeat_power', type: :workout_power, scale: 1, unit: '% or watts', ref_field_name: 'duration_type', ref_field_values: [:repeat_until_power_less_than, :repeat_until_power_greater_than]
619
+ FitParser::File::Definitions.add_field 27, 5, 'custom_target_value_low', type: :uint32, scale: 1
620
+ FitParser::File::Definitions.add_field 27, 5, 'custom_target_speed_low', type: :uint32, scale: 1000, unit: 'm/s', ref_field_name: 'target_type', ref_field_values: [:speed]
621
+ FitParser::File::Definitions.add_field 27, 5, 'custom_target_heart_rate_low', type: :workout_hr, scale: 1, unit: '% or bpm', ref_field_name: 'target_type', ref_field_values: [:heart_rate]
622
+ FitParser::File::Definitions.add_field 27, 5, 'custom_target_cadence_low', type: :uint32, scale: 1, unit: 'rpm', ref_field_name: 'target_type', ref_field_values: [:cadence]
623
+ FitParser::File::Definitions.add_field 27, 5, 'custom_target_power_low', type: :workout_power, scale: 1, unit: '% or watts', ref_field_name: 'target_type', ref_field_values: [:power]
624
+ FitParser::File::Definitions.add_field 27, 6, 'custom_target_value_high', type: :uint32, scale: 1
625
+ FitParser::File::Definitions.add_field 27, 6, 'custom_target_speed_high', type: :uint32, scale: 1000, unit: 'm/s', ref_field_name: 'target_type', ref_field_values: [:speed]
626
+ FitParser::File::Definitions.add_field 27, 6, 'custom_target_heart_rate_high', type: :workout_hr, scale: 1, unit: '% or bpm', ref_field_name: 'target_type', ref_field_values: [:heart_rate]
627
+ FitParser::File::Definitions.add_field 27, 6, 'custom_target_cadence_high', type: :uint32, scale: 1, unit: 'rpm', ref_field_name: 'target_type', ref_field_values: [:cadence]
628
+ FitParser::File::Definitions.add_field 27, 6, 'custom_target_power_high', type: :workout_power, scale: 1, unit: '% or watts', ref_field_name: 'target_type', ref_field_values: [:power]
629
+ FitParser::File::Definitions.add_field 27, 7, 'intensity', type: :intensity, scale: 1
630
630
 
631
631
  FitParser::File::Definitions.add_name 28, 'schedule'
632
- FitParser::File::Definitions.add_field 28, 0, 'manufacturer', :type => :manufacturer
633
- FitParser::File::Definitions.add_field 28, 1, 'product', :type => :uint16
634
- FitParser::File::Definitions.add_field 28, 1, 'garmin_product', :type => :garmin_product, :ref_field_name => 'manufacturer', :ref_field_values => [:garmin, :dynastream, :dynastream_oem]
635
- FitParser::File::Definitions.add_field 28, 2, 'serial_number', :type => :uint32z
636
- FitParser::File::Definitions.add_field 28, 3, 'time_created', :type => :date_time
637
- FitParser::File::Definitions.add_field 28, 4, 'completed', :type => :bool, :scale => 1
638
- FitParser::File::Definitions.add_field 28, 5, 'type', :type => :schedule, :scale => 1
639
- FitParser::File::Definitions.add_field 28, 6, 'scheduled_time', :type => :local_date_time
632
+ FitParser::File::Definitions.add_field 28, 0, 'manufacturer', type: :manufacturer
633
+ FitParser::File::Definitions.add_field 28, 1, 'product', type: :uint16
634
+ FitParser::File::Definitions.add_field 28, 1, 'garmin_product', type: :garmin_product, ref_field_name: 'manufacturer', ref_field_values: [:garmin, :dynastream, :dynastream_oem]
635
+ FitParser::File::Definitions.add_field 28, 2, 'serial_number', type: :uint32z
636
+ FitParser::File::Definitions.add_field 28, 3, 'time_created', type: :date_time
637
+ FitParser::File::Definitions.add_field 28, 4, 'completed', type: :bool, scale: 1
638
+ FitParser::File::Definitions.add_field 28, 5, 'type', type: :schedule, scale: 1
639
+ FitParser::File::Definitions.add_field 28, 6, 'scheduled_time', type: :local_date_time
640
640
 
641
641
  FitParser::File::Definitions.add_name 33, 'totals'
642
- FitParser::File::Definitions.add_field 33, 254, 'message_index', :type => :message_index
643
- FitParser::File::Definitions.add_field 33, 253, 'timestamp', :type => :date_time, :unit => 's'
644
- FitParser::File::Definitions.add_field 33, 0, 'timer_time', :type => :uint32, :unit => 's'
645
- FitParser::File::Definitions.add_field 33, 1, 'distance', :type => :uint32, :unit => 'm'
646
- FitParser::File::Definitions.add_field 33, 2, 'calories', :type => :uint32, :unit => 'kcal'
647
- FitParser::File::Definitions.add_field 33, 3, 'sport', :type => :sport
648
- FitParser::File::Definitions.add_field 33, 4, 'elapsed_time', :type => :uint32, :unit => 's'
649
- FitParser::File::Definitions.add_field 33, 5, 'sessions', :type => :uint16
650
- FitParser::File::Definitions.add_field 33, 6, 'active_time', :type => :uint32, :unit => 's'
642
+ FitParser::File::Definitions.add_field 33, 254, 'message_index', type: :message_index
643
+ FitParser::File::Definitions.add_field 33, 253, 'timestamp', type: :date_time, unit: 's'
644
+ FitParser::File::Definitions.add_field 33, 0, 'timer_time', type: :uint32, unit: 's'
645
+ FitParser::File::Definitions.add_field 33, 1, 'distance', type: :uint32, unit: 'm'
646
+ FitParser::File::Definitions.add_field 33, 2, 'calories', type: :uint32, unit: 'kcal'
647
+ FitParser::File::Definitions.add_field 33, 3, 'sport', type: :sport
648
+ FitParser::File::Definitions.add_field 33, 4, 'elapsed_time', type: :uint32, unit: 's'
649
+ FitParser::File::Definitions.add_field 33, 5, 'sessions', type: :uint16
650
+ FitParser::File::Definitions.add_field 33, 6, 'active_time', type: :uint32, unit: 's'
651
651
 
652
652
  FitParser::File::Definitions.add_name 30, 'weight_scale'
653
- FitParser::File::Definitions.add_field 30, 253, 'timestamp', :type => :date_time, :scale => 1, :unit => 's'
654
- FitParser::File::Definitions.add_field 30, 0, 'weight', :type => :weight, :scale => 100, :unit => 'kg'
655
- FitParser::File::Definitions.add_field 30, 1, 'percent_fat', :type => :uint16, :scale => 100, :unit => '%'
656
- FitParser::File::Definitions.add_field 30, 2, 'percent_hydration', :type => :uint16, :scale => 100, :unit => '%'
657
- FitParser::File::Definitions.add_field 30, 3, 'visceral_fat_mass', :type => :uint16, :scale => 100, :unit => 'kg'
658
- FitParser::File::Definitions.add_field 30, 4, 'bone_mass', :type => :uint16, :scale => 100, :unit => 'kg'
659
- FitParser::File::Definitions.add_field 30, 5, 'muscle_mass', :type => :uint16, :scale => 100, :unit => 'kg'
660
- FitParser::File::Definitions.add_field 30, 7, 'basal_met', :type => :uint16, :scale => 4, :unit => 'kcal/day'
661
- FitParser::File::Definitions.add_field 30, 8, 'physique_rating', :type => :uint8, :scale => 1
662
- FitParser::File::Definitions.add_field 30, 9, 'active_met', :type => :uint16, :scale => 4, :unit => 'kcal/day'
663
- FitParser::File::Definitions.add_field 30, 10, 'metabolic_age', :type => :uint8, :scale => 1, :unit => 'years'
664
- FitParser::File::Definitions.add_field 30, 11, 'visceral_fat_rating', :type => :uint8, :scale => 1
665
- FitParser::File::Definitions.add_field 30, 12, 'user_profile_index', :type => :message_index
653
+ FitParser::File::Definitions.add_field 30, 253, 'timestamp', type: :date_time, scale: 1, unit: 's'
654
+ FitParser::File::Definitions.add_field 30, 0, 'weight', type: :weight, scale: 100, unit: 'kg'
655
+ FitParser::File::Definitions.add_field 30, 1, 'percent_fat', type: :uint16, scale: 100, unit: '%'
656
+ FitParser::File::Definitions.add_field 30, 2, 'percent_hydration', type: :uint16, scale: 100, unit: '%'
657
+ FitParser::File::Definitions.add_field 30, 3, 'visceral_fat_mass', type: :uint16, scale: 100, unit: 'kg'
658
+ FitParser::File::Definitions.add_field 30, 4, 'bone_mass', type: :uint16, scale: 100, unit: 'kg'
659
+ FitParser::File::Definitions.add_field 30, 5, 'muscle_mass', type: :uint16, scale: 100, unit: 'kg'
660
+ FitParser::File::Definitions.add_field 30, 7, 'basal_met', type: :uint16, scale: 4, unit: 'kcal/day'
661
+ FitParser::File::Definitions.add_field 30, 8, 'physique_rating', type: :uint8, scale: 1
662
+ FitParser::File::Definitions.add_field 30, 9, 'active_met', type: :uint16, scale: 4, unit: 'kcal/day'
663
+ FitParser::File::Definitions.add_field 30, 10, 'metabolic_age', type: :uint8, scale: 1, unit: 'years'
664
+ FitParser::File::Definitions.add_field 30, 11, 'visceral_fat_rating', type: :uint8, scale: 1
665
+ FitParser::File::Definitions.add_field 30, 12, 'user_profile_index', type: :message_index
666
666
 
667
667
  FitParser::File::Definitions.add_name 51, 'blood_pressure'
668
- FitParser::File::Definitions.add_field 51, 253, 'timestamp', :type => :date_time, :scale => 1, :unit => 's'
669
- FitParser::File::Definitions.add_field 51, 0, 'systolic_pressure', :type => :uint16, :scale => 1, :unit => 'mmHg'
670
- FitParser::File::Definitions.add_field 51, 1, 'diastolic_pressure', :type => :uint16, :scale => 1, :unit => 'mmHg'
671
- FitParser::File::Definitions.add_field 51, 2, 'mean_arterial_pressure', :type => :uint16, :scale => 1, :unit => 'mmHg'
672
- FitParser::File::Definitions.add_field 51, 3, 'map_3_sample_mean', :type => :uint16, :scale => 1, :unit => 'mmHg'
673
- FitParser::File::Definitions.add_field 51, 4, 'map_morning_values', :type => :uint16, :scale => 1, :unit => 'mmHg'
674
- FitParser::File::Definitions.add_field 51, 5, 'map_evening_values', :type => :uint16, :scale => 1, :unit => 'mmHg'
675
- FitParser::File::Definitions.add_field 51, 6, 'heart_rate', :type => :uint8, :scale => 1, :unit => 'bpm'
676
- FitParser::File::Definitions.add_field 51, 7, 'heart_rate_type', :type => :hr_type
677
- FitParser::File::Definitions.add_field 51, 8, 'status', :type => :bp_status
678
- FitParser::File::Definitions.add_field 51, 9, 'user_profile_index', :type => :message_index
668
+ FitParser::File::Definitions.add_field 51, 253, 'timestamp', type: :date_time, scale: 1, unit: 's'
669
+ FitParser::File::Definitions.add_field 51, 0, 'systolic_pressure', type: :uint16, scale: 1, unit: 'mmHg'
670
+ FitParser::File::Definitions.add_field 51, 1, 'diastolic_pressure', type: :uint16, scale: 1, unit: 'mmHg'
671
+ FitParser::File::Definitions.add_field 51, 2, 'mean_arterial_pressure', type: :uint16, scale: 1, unit: 'mmHg'
672
+ FitParser::File::Definitions.add_field 51, 3, 'map_3_sample_mean', type: :uint16, scale: 1, unit: 'mmHg'
673
+ FitParser::File::Definitions.add_field 51, 4, 'map_morning_values', type: :uint16, scale: 1, unit: 'mmHg'
674
+ FitParser::File::Definitions.add_field 51, 5, 'map_evening_values', type: :uint16, scale: 1, unit: 'mmHg'
675
+ FitParser::File::Definitions.add_field 51, 6, 'heart_rate', type: :uint8, scale: 1, unit: 'bpm'
676
+ FitParser::File::Definitions.add_field 51, 7, 'heart_rate_type', type: :hr_type
677
+ FitParser::File::Definitions.add_field 51, 8, 'status', type: :bp_status
678
+ FitParser::File::Definitions.add_field 51, 9, 'user_profile_index', type: :message_index
679
679
 
680
680
  FitParser::File::Definitions.add_name 103, 'monitoring_info'
681
- FitParser::File::Definitions.add_field 103, 253, 'timestamp', :type => :date_time
682
- FitParser::File::Definitions.add_field 103, 0, 'local_timestamp', :type => :local_date_time
683
- FitParser::File::Definitions.add_field 103, 1, 'activity_type', :type => :activity_type
684
- FitParser::File::Definitions.add_field 103, 3, 'cycles_to_distance', :type => :uint16, :scale => 5000, :unit => 'm/cycle'
685
- FitParser::File::Definitions.add_field 103, 4, 'cycles_to_calories', :type => :uint16, :scale => 5000, :unit => 'kcal/cycle'
686
- FitParser::File::Definitions.add_field 103, 5, 'resting_metabolic_rate', :type => :uint16, :unit => 'kcal / day'
681
+ FitParser::File::Definitions.add_field 103, 253, 'timestamp', type: :date_time
682
+ FitParser::File::Definitions.add_field 103, 0, 'local_timestamp', type: :local_date_time
683
+ FitParser::File::Definitions.add_field 103, 1, 'activity_type', type: :activity_type
684
+ FitParser::File::Definitions.add_field 103, 3, 'cycles_to_distance', type: :uint16, scale: 5000, unit: 'm/cycle'
685
+ FitParser::File::Definitions.add_field 103, 4, 'cycles_to_calories', type: :uint16, scale: 5000, unit: 'kcal/cycle'
686
+ FitParser::File::Definitions.add_field 103, 5, 'resting_metabolic_rate', type: :uint16, unit: 'kcal / day'
687
687
 
688
688
  FitParser::File::Definitions.add_name 55, 'monitoring'
689
- FitParser::File::Definitions.add_field 55, 253, 'timestamp', :type => :date_time, :unit => 's'
690
- FitParser::File::Definitions.add_field 55, 0, 'device_index', :type => :device_index
691
- FitParser::File::Definitions.add_field 55, 1, 'calories', :type => :uint16, :unit => 'kcal'
692
- FitParser::File::Definitions.add_field 55, 2, 'distance', :type => :uint32, :scale => 100, :unit => 'm'
693
- FitParser::File::Definitions.add_field 55, 3, 'cycles', :type => :uint32, :scale => 2, :unit => 'cycles'
694
- FitParser::File::Definitions.add_field 55, 3, 'steps', :type => :uint32, :scale => 1, :unit => 'steps', :ref_field_name => 'activity_type', :ref_field_values => [:walking, :running]
695
- FitParser::File::Definitions.add_field 55, 3, 'strokes', :type => :uint32, :scale => 2, :unit => 'strokes', :ref_field_name => 'activity_type', :ref_field_values => [:cycling, :swimming]
696
- FitParser::File::Definitions.add_field 55, 4, 'active_time', :type => :uint32, :scale => 1000, :unit => 's'
697
- FitParser::File::Definitions.add_field 55, 5, 'activity_type', :type => :activity_type
698
- FitParser::File::Definitions.add_field 55, 6, 'activity_subtype', :type => :activity_subtype
699
- FitParser::File::Definitions.add_field 55, 7, 'activity_level', :type => :activity_level
700
- FitParser::File::Definitions.add_field 55, 8, 'distance_16', :type => :uint16, :unit => '100 * m'
701
- FitParser::File::Definitions.add_field 55, 9, 'cycles_16', :type => :uint16, :unit => '(steps)'
702
- FitParser::File::Definitions.add_field 55, 10, 'active_time_16', :type => :uint16, :unit => 's'
703
- FitParser::File::Definitions.add_field 55, 11, 'local_timestamp', :type => :local_date_time
704
- FitParser::File::Definitions.add_field 55, 12, 'temperature', :type => :sint16, :scale => 100, :unit => 'C'
705
- FitParser::File::Definitions.add_field 55, 14, 'temperature_min', :type => :sint16, :scale => 100, :unit => 'C'
706
- FitParser::File::Definitions.add_field 55, 15, 'temperature_max', :type => :sint16, :scale => 100, :unit => 'C'
707
- FitParser::File::Definitions.add_field 55, 16, 'activity_time', :type => :uint16, :unit => 'minutes'
708
- FitParser::File::Definitions.add_field 55, 19, 'active_calories', :type => :uint16, :unit => 'kcal'
709
- FitParser::File::Definitions.add_field 55, 24, 'current_activity_type_intensity', :type => :byte
710
- FitParser::File::Definitions.add_field 55, 25, 'timestamp_min_8', :type => :uint8, :unit => 'min'
711
- FitParser::File::Definitions.add_field 55, 26, 'timestamp_16', :type => :uint16, :unit => 's'
712
- FitParser::File::Definitions.add_field 55, 27, 'heart_rate', :type => :uint8, :unit => 'bpm'
713
- FitParser::File::Definitions.add_field 55, 28, 'intensity', :type => :uint8, :scale => 10
714
- FitParser::File::Definitions.add_field 55, 29, 'duration_min', :type => :uint16, :unit => 'min'
715
- FitParser::File::Definitions.add_field 55, 30, 'duration', :type => :uint32, :unit => 's'
716
-
717
- FitParser::File::Definitions.add_name 145, 'memo_glob'
718
- FitParser::File::Definitions.add_field 145, 250, 'part_index', :type => :uint32
719
- FitParser::File::Definitions.add_field 145, 0, 'memo', :type => :byte
720
- FitParser::File::Definitions.add_field 145, 1, 'message_number', :type => :uint16
721
- FitParser::File::Definitions.add_field 145, 2, 'message_index', :type => :message_index
689
+ FitParser::File::Definitions.add_field 55, 253, 'timestamp', type: :date_time, unit: 's'
690
+ FitParser::File::Definitions.add_field 55, 0, 'device_index', type: :device_index
691
+ FitParser::File::Definitions.add_field 55, 1, 'calories', type: :uint16, unit: 'kcal'
692
+ FitParser::File::Definitions.add_field 55, 2, 'distance', type: :uint32, scale: 100, unit: 'm'
693
+ FitParser::File::Definitions.add_field 55, 3, 'cycles', type: :uint32, scale: 2, unit: 'cycles'
694
+ FitParser::File::Definitions.add_field 55, 3, 'steps', type: :uint32, scale: 1, unit: 'steps', ref_field_name: 'activity_type', ref_field_values: [:walking, :running]
695
+ FitParser::File::Definitions.add_field 55, 3, 'strokes', type: :uint32, scale: 2, unit: 'strokes', ref_field_name: 'activity_type', ref_field_values: [:cycling, :swimming]
696
+ FitParser::File::Definitions.add_field 55, 4, 'active_time', type: :uint32, scale: 1000, unit: 's'
697
+ FitParser::File::Definitions.add_field 55, 5, 'activity_type', type: :activity_type
698
+ FitParser::File::Definitions.add_field 55, 6, 'activity_subtype', type: :activity_subtype
699
+ FitParser::File::Definitions.add_field 55, 7, 'activity_level', type: :activity_level
700
+ FitParser::File::Definitions.add_field 55, 8, 'distance_16', type: :uint16, unit: '100 * m'
701
+ FitParser::File::Definitions.add_field 55, 9, 'cycles_16', type: :uint16, unit: '(steps)'
702
+ FitParser::File::Definitions.add_field 55, 10, 'active_time_16', type: :uint16, unit: 's'
703
+ FitParser::File::Definitions.add_field 55, 11, 'local_timestamp', type: :local_date_time
704
+ FitParser::File::Definitions.add_field 55, 12, 'temperature', type: :sint16, scale: 100, unit: 'C'
705
+ FitParser::File::Definitions.add_field 55, 14, 'temperature_min', type: :sint16, scale: 100, unit: 'C'
706
+ FitParser::File::Definitions.add_field 55, 15, 'temperature_max', type: :sint16, scale: 100, unit: 'C'
707
+ FitParser::File::Definitions.add_field 55, 16, 'activity_time', type: :uint16, unit: 'minutes'
708
+ FitParser::File::Definitions.add_field 55, 19, 'active_calories', type: :uint16, unit: 'kcal'
709
+ FitParser::File::Definitions.add_field 55, 24, 'current_activity_type_intensity', type: :byte
710
+ FitParser::File::Definitions.add_field 55, 25, 'timestamp_min_8', type: :uint8, unit: 'min'
711
+ FitParser::File::Definitions.add_field 55, 26, 'timestamp_16', type: :uint16, unit: 's'
712
+ FitParser::File::Definitions.add_field 55, 27, 'heart_rate', type: :uint8, unit: 'bpm'
713
+ FitParser::File::Definitions.add_field 55, 28, 'intensity', type: :uint8, scale: 10
714
+ FitParser::File::Definitions.add_field 55, 29, 'duration_min', type: :uint16, unit: 'min'
715
+ FitParser::File::Definitions.add_field(55, 30, 'duration', type: :uint32, unit: 's')
716
+
717
+ FitParser::File::Definitions.add_name(145, 'memo_glob')
718
+ FitParser::File::Definitions.add_field(145, 250, 'part_index', type: :uint32)
719
+ FitParser::File::Definitions.add_field(145, 0, 'memo', type: :byte)
720
+ FitParser::File::Definitions.add_field(145, 1, 'message_number', type: :uint16)
721
+ FitParser::File::Definitions.add_field(145, 2, 'message_index', type: :message_index)