fit_parser 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -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)