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