fit-file-parser 1.9.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.
package/dist/fit.js ADDED
@@ -0,0 +1,4265 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getMessageName = getMessageName;
7
+ exports.getFieldObject = getFieldObject;
8
+ // some unit conversion constants
9
+ var metersInOneKilometer = 1000;
10
+ var secondsInOneHour = 3600;
11
+ // according to https://en.wikipedia.org/wiki/Mile
12
+ var metersInOneMile = 1609.344;
13
+
14
+ var FIT = exports.FIT = {
15
+ scConst: 180 / Math.pow(2, 31),
16
+ options: {
17
+ speedUnits: {
18
+ // native speed unit: meters per second [m/s]
19
+ 'm/s': {
20
+ multiplier: 1,
21
+ offset: 0
22
+ },
23
+ // miles per hour [mph]
24
+ mph: {
25
+ multiplier: secondsInOneHour / metersInOneMile,
26
+ offset: 0
27
+ },
28
+ // kilometers per hour [km/h]
29
+ 'km/h': {
30
+ multiplier: secondsInOneHour / metersInOneKilometer,
31
+ offset: 0
32
+ }
33
+ },
34
+ lengthUnits: {
35
+ // native length unit: meters [m]
36
+ m: {
37
+ multiplier: 1,
38
+ offset: 0
39
+ },
40
+ // (international) mile [mi]
41
+ mi: {
42
+ multiplier: 1 / metersInOneMile,
43
+ offset: 0
44
+ },
45
+ // kilometer [km]
46
+ km: {
47
+ multiplier: 1 / metersInOneKilometer,
48
+ offset: 0
49
+ }
50
+ },
51
+ temperatureUnits: {
52
+ // native temperature unit: degree Celsius [°C]
53
+ '°C': {
54
+ multiplier: 1,
55
+ offset: 0
56
+ },
57
+ // kelvin [K]
58
+ kelvin: {
59
+ multiplier: 1,
60
+ offset: -273.15
61
+ },
62
+ // degree fahrenheit [°F]
63
+ fahrenheit: {
64
+ multiplier: 9 / 5,
65
+ offset: 32
66
+ }
67
+ }
68
+ },
69
+ messages: {
70
+ 0: {
71
+ name: 'file_id',
72
+ 0: { field: 'type', type: 'file', scale: null, offset: '', units: '' },
73
+ 1: { field: 'manufacturer', type: 'manufacturer', scale: null, offset: '', units: '' },
74
+ 2: { field: 'product', type: 'uint16', scale: null, offset: '', units: '' },
75
+ 3: { field: 'serial_number', type: 'uint32z', scale: null, offset: '', units: '' },
76
+ 4: { field: 'time_created', type: 'date_time', scale: null, offset: '', units: '' },
77
+ 5: { field: 'number', type: 'uint16', scale: null, offset: '', units: '' },
78
+ 8: { field: 'product_name', type: 'string', scale: null, offset: '', units: '' }
79
+ },
80
+ 1: {
81
+ name: 'capabilities',
82
+ 0: { field: 'languages', type: 'uint8z', scale: null, offset: '', units: '' },
83
+ 1: { field: 'sports', type: 'sport_bits_0', scale: null, offset: '', units: '' },
84
+ 21: { field: 'workouts_supported', type: 'workout_capabilities', scale: null, offset: '', units: '' },
85
+ 23: { field: 'connectivity_supported', type: 'connectivity_capabilities', scale: null, offset: '', units: '' }
86
+ },
87
+ 2: {
88
+ name: 'device_settings',
89
+ 0: { field: 'active_time_zone', type: 'uint8', scale: null, offset: '', units: '' },
90
+ 1: { field: 'utc_offset', type: 'uint32', scale: null, offset: '', units: '' },
91
+ 2: { field: 'time_offset', type: 'uint32', scale: null, offset: '', units: 's' },
92
+ 5: { field: 'time_zone_offset', type: 'sint8', scale: 4, offset: '', units: 'hr' },
93
+ 55: { field: 'display_orientation', type: 'display_orientation', scale: null, offset: '', units: '' },
94
+ 56: { field: 'mounting_side', type: 'side', scale: null, offset: '', units: '' },
95
+ 94: { field: 'number_of_screens', type: 'uint8', scale: null, offset: '', units: '' },
96
+ 95: { field: 'smart_notification_display_orientation', type: 'display_orientation', scale: null, offset: '', units: '' }
97
+ },
98
+ 3: {
99
+ name: 'user_profile',
100
+ 254: { field: 'message_index', type: 'message_index', scale: null, offset: 0, units: '' },
101
+ 0: { field: 'friendly_name', type: 'string', scale: null, offset: 0, units: '' },
102
+ 1: { field: 'gender', type: 'gender', scale: null, offset: 0, units: '' },
103
+ 2: { field: 'age', type: 'uint8', scale: null, offset: 0, units: 'years' },
104
+ 3: { field: 'height', type: 'uint8', scale: 100, offset: 0, units: 'm' },
105
+ 4: { field: 'weight', type: 'uint16', scale: 10, offset: 0, units: 'kg' },
106
+ 5: { field: 'language', type: 'language', scale: null, offset: 0, units: '' },
107
+ 6: { field: 'elev_setting', type: 'display_measure', scale: null, offset: 0, units: '' },
108
+ 7: { field: 'weight_setting', type: 'display_measure', scale: null, offset: 0, units: '' },
109
+ 8: { field: 'resting_heart_rate', type: 'uint8', scale: null, offset: 0, units: 'bpm' },
110
+ 9: { field: 'default_max_running_heart_rate', type: 'uint8', scale: null, offset: 0, units: 'bpm' },
111
+ 10: { field: 'default_max_biking_heart_rate', type: 'uint8', scale: null, offset: 0, units: 'bpm' },
112
+ 11: { field: 'default_max_heart_rate', type: 'uint8', scale: null, offset: 0, units: 'bpm' },
113
+ 12: { field: 'hr_setting', type: 'display_heart', scale: null, offset: 0, units: '' },
114
+ 13: { field: 'speed_setting', type: 'display_measure', scale: null, offset: 0, units: '' },
115
+ 14: { field: 'dist_setting', type: 'display_measure', scale: null, offset: 0, units: '' },
116
+ 16: { field: 'power_setting', type: 'display_power', scale: null, offset: 0, units: '' },
117
+ 17: { field: 'activity_class', type: 'activity_class', scale: null, offset: 0, units: '' },
118
+ 18: { field: 'position_setting', type: 'display_position', scale: null, offset: 0, units: '' },
119
+ 21: { field: 'temperature_setting', type: 'display_measure', scale: null, offset: 0, units: '' },
120
+ 22: { field: 'local_id', type: 'user_local_id', scale: null, offset: 0, units: '' },
121
+ 23: { field: 'global_id', type: 'byte', scale: null, offset: 0, units: '' },
122
+ 30: { field: 'height_setting', type: 'display_measure', scale: null, offset: 0, units: '' }
123
+ },
124
+ 4: {
125
+ name: 'hrm_profile',
126
+ 254: { field: 'message_index', type: 'message_index', scale: null, offset: '', units: '' },
127
+ 0: { field: 'enabled', type: 'bool', scale: null, offset: '', units: '' },
128
+ 1: { field: 'hrm_ant_id', type: 'uint16z', scale: null, offset: '', units: '' },
129
+ 2: { field: 'log_hrv', type: 'bool', scale: null, offset: '', units: '' },
130
+ 3: { field: 'hrm_ant_id_trans_type', type: 'uint8z', scale: null, offset: '', units: '' }
131
+ },
132
+ 5: {
133
+ name: 'sdm_profile',
134
+ 254: { field: 'message_index', type: 'message_index', scale: null, offset: '', units: '' },
135
+ 0: { field: 'enabled', type: 'bool', scale: null, offset: '', units: '' },
136
+ 1: { field: 'sdm_ant_id', type: 'uint16z', scale: null, offset: '', units: '' },
137
+ 2: { field: 'sdm_cal_factor', type: 'uint16', scale: 10, offset: '', units: '%' },
138
+ 3: { field: 'odometer', type: 'uint32', scale: 100, offset: '', units: 'm' },
139
+ 4: { field: 'speed_source', type: 'bool', scale: null, offset: '', units: '' },
140
+ 5: { field: 'sdm_ant_id_trans_type', type: 'uint8z', scale: null, offset: '', units: '' },
141
+ 7: { field: 'odometer_rollover', type: 'uint8', scale: null, offset: '', units: '' }
142
+ },
143
+ 6: {
144
+ name: 'bike_profile',
145
+ 254: { field: 'message_index', type: 'message_index', scale: null, offset: 0, units: '' },
146
+ 0: { field: 'name', type: 'string', scale: null, offset: 0, units: '' },
147
+ 1: { field: 'sport', type: 'sport', scale: null, offset: 0, units: '' },
148
+ 2: { field: 'sub_sport', type: 'sub_sport', scale: null, offset: 0, units: '' },
149
+ 3: { field: 'odometer', type: 'uint32', scale: 100, offset: 0, units: 'm' },
150
+ 4: { field: 'bike_spd_ant_id', type: 'uint16z', scale: null, offset: 0, units: '' },
151
+ 5: { field: 'bike_cad_ant_id', type: 'uint16z', scale: null, offset: 0, units: '' },
152
+ 6: { field: 'bike_spdcad_ant_id', type: 'uint16z', scale: null, offset: 0, units: '' },
153
+ 7: { field: 'bike_power_ant_id', type: 'uint16z', scale: null, offset: 0, units: '' },
154
+ 8: { field: 'custom_wheelsize', type: 'uint16', scale: 1000, offset: 0, units: 'm' },
155
+ 9: { field: 'auto_wheelsize', type: 'uint16', scale: 1000, offset: 0, units: 'm' },
156
+ 10: { field: 'bike_weight', type: 'uint16', scale: 10, offset: 0, units: 'kg' },
157
+ 11: { field: 'power_cal_factor', type: 'uint16', scale: 10, offset: 0, units: '%' },
158
+ 12: { field: 'auto_wheel_cal', type: 'bool', scale: null, offset: 0, units: '' },
159
+ 13: { field: 'auto_power_zero', type: 'bool', scale: null, offset: 0, units: '' },
160
+ 14: { field: 'id', type: 'uint8', scale: null, offset: 0, units: '' },
161
+ 15: { field: 'spd_enabled', type: 'bool', scale: null, offset: 0, units: '' },
162
+ 16: { field: 'cad_enabled', type: 'bool', scale: null, offset: 0, units: '' },
163
+ 17: { field: 'spdcad_enabled', type: 'bool', scale: null, offset: 0, units: '' },
164
+ 18: { field: 'power_enabled', type: 'bool', scale: null, offset: 0, units: '' },
165
+ 19: { field: 'crank_length', type: 'uint8', scale: 2, offset: -110, units: 'mm' },
166
+ 20: { field: 'enabled', type: 'bool', scale: null, offset: 0, units: '' },
167
+ 21: { field: 'bike_spd_ant_id_trans_type', type: 'uint8z', scale: null, offset: 0, units: '' },
168
+ 22: { field: 'bike_cad_ant_id_trans_type', type: 'uint8z', scale: null, offset: 0, units: '' },
169
+ 23: { field: 'bike_spdcad_ant_id_trans_type', type: 'uint8z', scale: null, offset: 0, units: '' },
170
+ 24: { field: 'bike_power_ant_id_trans_type', type: 'uint8z', scale: null, offset: 0, units: '' },
171
+ 37: { field: 'odometer_rollover', type: 'uint8', scale: null, offset: 0, units: '' },
172
+ 38: { field: 'front_gear_num', type: 'uint8z', scale: null, offset: 0, units: '' },
173
+ 39: { field: 'front_gear', type: 'uint8z', scale: null, offset: 0, units: '' },
174
+ 40: { field: 'rear_gear_num', type: 'uint8z', scale: null, offset: 0, units: '' },
175
+ 41: { field: 'rear_gear', type: 'uint8z', scale: null, offset: 0, units: '' },
176
+ 44: { field: 'shimano_di2_enabled', type: 'bool', scale: null, offset: 0, units: '' }
177
+ },
178
+ 7: {
179
+ name: 'zones_target',
180
+ 1: { field: 'max_heart_rate', type: 'uint8', scale: null, offset: '', units: '' },
181
+ 2: { field: 'threshold_heart_rate', type: 'uint8', scale: null, offset: '', units: '' },
182
+ 3: { field: 'functional_threshold_power', type: 'uint16', scale: null, offset: '', units: '' },
183
+ 5: { field: 'hr_calc_type', type: 'hr_zone_calc', scale: null, offset: '', units: '' },
184
+ 7: { field: 'pwr_calc_type', type: 'pwr_zone_calc', scale: null, offset: '', units: '' }
185
+ },
186
+ 8: {
187
+ name: 'hr_zone',
188
+ 254: { field: 'message_index', type: 'message_index', scale: null, offset: 0, units: '' },
189
+ 1: { field: 'high_bpm', type: 'uint8', scale: null, offset: 0, units: 'bpm' },
190
+ 2: { field: 'name', type: 'string', scale: null, offset: 0, units: '' }
191
+ },
192
+ 9: {
193
+ name: 'power_zone',
194
+ 254: { field: 'message_index', type: 'message_index', scale: null, offset: 0, units: '' },
195
+ 1: { field: 'high_value', type: 'uint16', scale: null, offset: 0, units: 'watts' },
196
+ 2: { field: 'name', type: 'string', scale: null, offset: 0, units: '' }
197
+ },
198
+ 10: {
199
+ name: 'met_zone',
200
+ 254: { field: 'message_index', type: 'message_index', scale: null, offset: 0, units: '' },
201
+ 1: { field: 'high_bpm', type: 'uint8', scale: null, offset: 0, units: '' },
202
+ 2: { field: 'calories', type: 'uint16', scale: 10, offset: 0, units: 'kcal / min' },
203
+ 3: { field: 'fat_calories', type: 'uint8', scale: 10, offset: 0, units: 'kcal / min' }
204
+ },
205
+ 12: {
206
+ name: 'sport',
207
+ 0: { field: 'sport', type: 'sport', scale: null, offset: '', units: '' },
208
+ 1: { field: 'sub_sport', type: 'sub_sport', scale: null, offset: '', units: '' },
209
+ 3: { field: 'name', type: 'string', scale: null, offset: '', units: '' }
210
+ },
211
+ 15: {
212
+ name: 'goal',
213
+ 254: { field: 'message_index', type: 'message_index', scale: null, offset: '', units: '' },
214
+ 0: { field: 'sport', type: 'sport', scale: null, offset: '', units: '' },
215
+ 1: { field: 'sub_sport', type: 'sub_sport', scale: null, offset: '', units: '' },
216
+ 2: { field: 'start_date', type: 'date_time', scale: null, offset: '', units: '' },
217
+ 3: { field: 'end_date', type: 'date_time', scale: null, offset: '', units: '' },
218
+ 4: { field: 'type', type: 'goal', scale: null, offset: '', units: '' },
219
+ 5: { field: 'value', type: 'uint32', scale: null, offset: '', units: '' },
220
+ 6: { field: 'repeat', type: 'bool', scale: null, offset: '', units: '' },
221
+ 7: { field: 'target_value', type: 'uint32', scale: null, offset: '', units: '' },
222
+ 8: { field: 'recurrence', type: 'goal_recurrence', scale: null, offset: '', units: '' },
223
+ 9: { field: 'recurrence_value', type: 'uint16', scale: null, offset: '', units: '' },
224
+ 10: { field: 'enabled', type: 'bool', scale: null, offset: '', units: '' }
225
+ },
226
+ 18: {
227
+ name: 'session',
228
+ 254: { field: 'message_index', type: 'message_index', scale: null, offset: 0, units: '' },
229
+ 253: { field: 'timestamp', type: 'date_time', scale: null, offset: 0, units: 's' },
230
+ 0: { field: 'event', type: 'event', scale: null, offset: 0, units: '' },
231
+ 1: { field: 'event_type', type: 'event_type', scale: null, offset: 0, units: '' },
232
+ 2: { field: 'start_time', type: 'date_time', scale: null, offset: 0, units: '' },
233
+ 3: { field: 'start_position_lat', type: 'sint32', scale: null, offset: 0, units: 'semicircles' },
234
+ 4: { field: 'start_position_long', type: 'sint32', scale: null, offset: 0, units: 'semicircles' },
235
+ 5: { field: 'sport', type: 'sport', scale: null, offset: 0, units: '' },
236
+ 6: { field: 'sub_sport', type: 'sub_sport', scale: null, offset: 0, units: '' },
237
+ 7: { field: 'total_elapsed_time', type: 'uint32', scale: 1000, offset: 0, units: 's' },
238
+ 8: { field: 'total_timer_time', type: 'uint32', scale: 1000, offset: 0, units: 's' },
239
+ 9: { field: 'total_distance', type: 'uint32', scale: 100, offset: 0, units: 'm' },
240
+ 10: { field: 'total_cycles', type: 'uint32', scale: null, offset: 0, units: 'cycles' },
241
+ 11: { field: 'total_calories', type: 'uint16', scale: null, offset: 0, units: 'kcal' },
242
+ 13: { field: 'total_fat_calories', type: 'uint16', scale: null, offset: 0, units: 'kcal' },
243
+ 14: { field: 'avg_speed', type: 'uint16', scale: 1000, offset: 0, units: 'm/s' },
244
+ 15: { field: 'max_speed', type: 'uint16', scale: 1000, offset: 0, units: 'm/s' },
245
+ 16: { field: 'avg_heart_rate', type: 'uint8', scale: null, offset: 0, units: 'bpm' },
246
+ 17: { field: 'max_heart_rate', type: 'uint8', scale: null, offset: 0, units: 'bpm' },
247
+ 18: { field: 'avg_cadence', type: 'uint8', scale: null, offset: 0, units: 'rpm' },
248
+ 19: { field: 'max_cadence', type: 'uint8', scale: null, offset: 0, units: 'rpm' },
249
+ 20: { field: 'avg_power', type: 'uint16', scale: null, offset: 0, units: 'watts' },
250
+ 21: { field: 'max_power', type: 'uint16', scale: null, offset: 0, units: 'watts' },
251
+ 22: { field: 'total_ascent', type: 'uint16', scale: null, offset: 0, units: 'm' },
252
+ 23: { field: 'total_descent', type: 'uint16', scale: null, offset: 0, units: 'm' },
253
+ 24: { field: 'total_training_effect', type: 'uint8', scale: 10, offset: 0, units: '' },
254
+ 25: { field: 'first_lap_index', type: 'uint16', scale: null, offset: 0, units: '' },
255
+ 26: { field: 'num_laps', type: 'uint16', scale: null, offset: 0, units: '' },
256
+ 27: { field: 'event_group', type: 'uint8', scale: null, offset: 0, units: '' },
257
+ 28: { field: 'trigger', type: 'session_trigger', scale: null, offset: 0, units: '' },
258
+ 29: { field: 'nec_lat', type: 'sint32', scale: null, offset: 0, units: 'semicircles' },
259
+ 30: { field: 'nec_long', type: 'sint32', scale: null, offset: 0, units: 'semicircles' },
260
+ 31: { field: 'swc_lat', type: 'sint32', scale: null, offset: 0, units: 'semicircles' },
261
+ 32: { field: 'swc_long', type: 'sint32', scale: null, offset: 0, units: 'semicircles' },
262
+ 34: { field: 'normalized_power', type: 'uint16', scale: null, offset: 0, units: 'watts' },
263
+ 35: { field: 'training_stress_score', type: 'uint16', scale: 10, offset: 0, units: 'tss' },
264
+ 36: { field: 'intensity_factor', type: 'uint16', scale: 1000, offset: 0, units: 'if' },
265
+ 37: { field: 'left_right_balance', type: 'left_right_balance_100', scale: 100, offset: 0, units: '%' },
266
+ 41: { field: 'avg_stroke_count', type: 'uint32', scale: 10, offset: 0, units: 'strokes/lap' },
267
+ 42: { field: 'avg_stroke_distance', type: 'uint16', scale: 100, offset: 0, units: 'm' },
268
+ 43: { field: 'swim_stroke', type: 'swim_stroke', scale: null, offset: 0, units: 'swim_stroke' },
269
+ 44: { field: 'pool_length', type: 'uint16', scale: 100, offset: 0, units: 'm' },
270
+ 45: { field: 'threshold_power', type: 'uint16', scale: null, offset: 0, units: 'watts' },
271
+ 46: { field: 'pool_length_unit', type: 'display_measure', scale: null, offset: 0, units: '' },
272
+ 47: { field: 'num_active_lengths', type: 'uint16', scale: null, offset: 0, units: 'lengths' },
273
+ 48: { field: 'total_work', type: 'uint32', scale: null, offset: 0, units: 'J' },
274
+ 49: { field: 'avg_altitude', type: 'uint16', scale: 5, offset: -500, units: 'm' },
275
+ 50: { field: 'max_altitude', type: 'uint16', scale: 5, offset: -500, units: 'm' },
276
+ 51: { field: 'gps_accuracy', type: 'uint8', scale: null, offset: 0, units: 'm' },
277
+ 52: { field: 'avg_grade', type: 'sint16', scale: 100, offset: 0, units: '%' },
278
+ 53: { field: 'avg_pos_grade', type: 'sint16', scale: 100, offset: 0, units: '%' },
279
+ 54: { field: 'avg_neg_grade', type: 'sint16', scale: 100, offset: 0, units: '%' },
280
+ 55: { field: 'max_pos_grade', type: 'sint16', scale: 100, offset: 0, units: '%' },
281
+ 56: { field: 'max_neg_grade', type: 'sint16', scale: 100, offset: 0, units: '%' },
282
+ 57: { field: 'avg_temperature', type: 'sint8', scale: null, offset: 0, units: 'C' },
283
+ 58: { field: 'max_temperature', type: 'sint8', scale: null, offset: 0, units: 'C' },
284
+ 59: { field: 'total_moving_time', type: 'uint32', scale: 1000, offset: 0, units: 's' },
285
+ 60: { field: 'avg_pos_vertical_speed', type: 'uint16', scale: 1000, offset: 0, units: 'm/s' },
286
+ 61: { field: 'avg_neg_vertical_speed', type: 'uint16', scale: 1000, offset: 0, units: 'm/s' },
287
+ 62: { field: 'max_pos_vertical_speed', type: 'uint16', scale: 1000, offset: 0, units: 'm/s' },
288
+ 63: { field: 'max_neg_vertical_speed', type: 'uint16', scale: 1000, offset: 0, units: 'm/s' },
289
+ 64: { field: 'min_heart_rate', type: 'uint8', scale: null, offset: 0, units: 'bpm' },
290
+ 65: { field: 'time_in_hr_zone', type: 'uint32_array', scale: 1000, offset: 0, units: 's' },
291
+ 66: { field: 'time_in_speed_zone', type: 'uint32_array', scale: 1000, offset: 0, units: 's' },
292
+ 67: { field: 'time_in_cadence_zone', type: 'uint32_array', scale: 1000, offset: 0, units: 's' },
293
+ 68: { field: 'time_in_power_zone', type: 'uint32_array', scale: 1000, offset: 0, units: 's' },
294
+ 69: { field: 'avg_lap_time', type: 'uint32', scale: 1000, offset: 0, units: 's' },
295
+ 70: { field: 'best_lap_index', type: 'uint16', scale: null, offset: 0, units: '' },
296
+ 71: { field: 'min_altitude', type: 'uint16', scale: 5, offset: -500, units: 'm' },
297
+ 82: { field: 'player_score', type: 'uint16', scale: null, offset: 0, units: '' },
298
+ 83: { field: 'opponent_score', type: 'uint16', scale: null, offset: 0, units: '' },
299
+ 84: { field: 'opponent_name', type: 'string', scale: null, offset: 0, units: '' },
300
+ 85: { field: 'stroke_count', type: 'uint16', scale: null, offset: 0, units: 'counts' },
301
+ 86: { field: 'zone_count', type: 'uint16', scale: null, offset: 0, units: 'counts' },
302
+ 87: { field: 'max_ball_speed', type: 'uint16', scale: 100, offset: 0, units: 'm/s' },
303
+ 88: { field: 'avg_ball_speed', type: 'uint16', scale: 100, offset: 0, units: 'm/s' },
304
+ 89: { field: 'avg_vertical_oscillation', type: 'uint16', scale: 10, offset: 0, units: 'mm' },
305
+ 90: { field: 'avg_stance_time_percent', type: 'uint16', scale: 100, offset: 0, units: 'percent' },
306
+ 91: { field: 'avg_stance_time', type: 'uint16', scale: 10, offset: 0, units: 'ms' },
307
+ 92: { field: 'avg_fractional_cadence', type: 'uint8', scale: 128, offset: 0, units: 'rpm' },
308
+ 93: { field: 'max_fractional_cadence', type: 'uint8', scale: 128, offset: 0, units: 'rpm' },
309
+ 94: { field: 'total_fractional_cycles', type: 'uint8', scale: 128, offset: 0, units: 'cycles' },
310
+ 95: { field: 'avg_total_hemoglobin_conc', type: 'uint16', scale: 100, offset: 0, units: 'g/dL' },
311
+ 96: { field: 'min_total_hemoglobin_conc', type: 'uint16', scale: 100, offset: 0, units: 'g/dL' },
312
+ 97: { field: 'max_total_hemoglobin_conc', type: 'uint16', scale: 100, offset: 0, units: 'g/dL' },
313
+ 98: { field: 'avg_saturated_hemoglobin_percent', type: 'uint16', scale: 10, offset: 0, units: '%' },
314
+ 99: { field: 'min_saturated_hemoglobin_percent', type: 'uint16', scale: 10, offset: 0, units: '%' },
315
+ 100: { field: 'max_saturated_hemoglobin_percent', type: 'uint16', scale: 10, offset: 0, units: '%' },
316
+ 101: { field: 'avg_left_torque_effectiveness', type: 'uint8', scale: 2, offset: 0, units: 'percent' },
317
+ 102: { field: 'avg_right_torque_effectiveness', type: 'uint8', scale: 2, offset: 0, units: 'percent' },
318
+ 103: { field: 'avg_left_pedal_smoothness', type: 'uint8', scale: 2, offset: 0, units: 'percent' },
319
+ 104: { field: 'avg_right_pedal_smoothness', type: 'uint8', scale: 2, offset: 0, units: 'percent' },
320
+ 105: { field: 'avg_combined_pedal_smoothness', type: 'uint8', scale: 2, offset: 0, units: 'percent' },
321
+ 111: { field: 'sport_index', type: 'uint8', scale: null, offset: 0, units: '' },
322
+ 112: { field: 'time_standing', type: 'uint32', scale: 1000, offset: 0, units: 's' },
323
+ 113: { field: 'stand_count', type: 'uint16', scale: null, offset: 0, units: '' },
324
+ 114: { field: 'avg_left_pco', type: 'sint8', scale: null, offset: 0, units: 'mm' },
325
+ 115: { field: 'avg_right_pco', type: 'sint8', scale: null, offset: 0, units: 'mm' },
326
+ 116: { field: 'avg_left_power_phase', type: 'uint8', scale: '0,7111111', offset: 0, units: 'degrees' },
327
+ 117: { field: 'avg_left_power_phase_peak', type: 'uint8', scale: '0,7111111', offset: 0, units: 'degrees' },
328
+ 118: { field: 'avg_right_power_phase', type: 'uint8', scale: '0,7111111', offset: 0, units: 'degrees' },
329
+ 119: { field: 'avg_right_power_phase_peak', type: 'uint8', scale: '0,7111111', offset: 0, units: 'degrees' },
330
+ 120: { field: 'avg_power_position', type: 'uint16', scale: null, offset: 0, units: 'watts' },
331
+ 121: { field: 'max_power_position', type: 'uint16', scale: null, offset: 0, units: 'watts' },
332
+ 122: { field: 'avg_cadence_position', type: 'uint8', scale: null, offset: 0, units: 'rpm' },
333
+ 123: { field: 'max_cadence_position', type: 'uint8', scale: null, offset: 0, units: 'rpm' },
334
+ 124: { field: 'enhanced_avg_speed', type: 'uint32', scale: 1000, offset: 0, units: 'm/s' },
335
+ 125: { field: 'enhanced_max_speed', type: 'uint32', scale: 1000, offset: 0, units: 'm/s' },
336
+ 126: { field: 'enhanced_avg_altitude', type: 'uint32', scale: 5, offset: -500, units: 'm' },
337
+ 127: { field: 'enhanced_min_altitude', type: 'uint32', scale: 5, offset: -500, units: 'm' },
338
+ 128: { field: 'enhanced_max_altitude', type: 'uint32', scale: 5, offset: -500, units: 'm' },
339
+ 129: { field: 'avg_lev_motor_power', type: 'uint16', scale: null, offset: 0, units: 'watts' },
340
+ 130: { field: 'max_lev_motor_power', type: 'uint16', scale: null, offset: 0, units: 'watts' },
341
+ 131: { field: 'lev_battery_consumption', type: 'uint8', scale: 2, offset: 0, units: 'percent' },
342
+ 132: { field: 'avg_vertical_ratio', type: 'uint16', scale: 100, offset: 0, units: 'percent' },
343
+ 133: { field: 'avg_stance_time_balance', type: 'uint16', scale: 100, offset: 0, units: 'percent' },
344
+ 134: { field: 'avg_step_length', type: 'uint16', scale: 10, offset: 0, units: 'mm' },
345
+ 137: { field: 'total_anaerobic_effect', type: 'uint8', scale: 10, offset: 0, units: '' },
346
+ 139: { field: 'avg_vam', type: 'uint16', scale: 1000, offset: 0, units: 'm/s' }
347
+ },
348
+ 19: {
349
+ name: 'lap',
350
+ 254: { field: 'message_index', type: 'message_index', scale: null, offset: 0, units: '' },
351
+ 253: { field: 'timestamp', type: 'date_time', scale: null, offset: 0, units: 's' },
352
+ 0: { field: 'event', type: 'event', scale: null, offset: 0, units: '' },
353
+ 1: { field: 'event_type', type: 'event_type', scale: null, offset: 0, units: '' },
354
+ 2: { field: 'start_time', type: 'date_time', scale: null, offset: 0, units: '' },
355
+ 3: { field: 'start_position_lat', type: 'sint32', scale: null, offset: 0, units: 'semicircles' },
356
+ 4: { field: 'start_position_long', type: 'sint32', scale: null, offset: 0, units: 'semicircles' },
357
+ 5: { field: 'end_position_lat', type: 'sint32', scale: null, offset: 0, units: 'semicircles' },
358
+ 6: { field: 'end_position_long', type: 'sint32', scale: null, offset: 0, units: 'semicircles' },
359
+ 7: { field: 'total_elapsed_time', type: 'uint32', scale: 1000, offset: 0, units: 's' },
360
+ 8: { field: 'total_timer_time', type: 'uint32', scale: 1000, offset: 0, units: 's' },
361
+ 9: { field: 'total_distance', type: 'uint32', scale: 100, offset: 0, units: 'm' },
362
+ 10: { field: 'total_cycles', type: 'uint32', scale: null, offset: 0, units: 'cycles' },
363
+ 11: { field: 'total_calories', type: 'uint16', scale: null, offset: 0, units: 'kcal' },
364
+ 12: { field: 'total_fat_calories', type: 'uint16', scale: null, offset: 0, units: 'kcal' },
365
+ 13: { field: 'avg_speed', type: 'uint16', scale: 1000, offset: 0, units: 'm/s' },
366
+ 14: { field: 'max_speed', type: 'uint16', scale: 1000, offset: 0, units: 'm/s' },
367
+ 15: { field: 'avg_heart_rate', type: 'uint8', scale: null, offset: 0, units: 'bpm' },
368
+ 16: { field: 'max_heart_rate', type: 'uint8', scale: null, offset: 0, units: 'bpm' },
369
+ 17: { field: 'avg_cadence', type: 'uint8', scale: null, offset: 0, units: 'rpm' },
370
+ 18: { field: 'max_cadence', type: 'uint8', scale: null, offset: 0, units: 'rpm' },
371
+ 19: { field: 'avg_power', type: 'uint16', scale: null, offset: 0, units: 'watts' },
372
+ 20: { field: 'max_power', type: 'uint16', scale: null, offset: 0, units: 'watts' },
373
+ 21: { field: 'total_ascent', type: 'uint16', scale: null, offset: 0, units: 'm' },
374
+ 22: { field: 'total_descent', type: 'uint16', scale: null, offset: 0, units: 'm' },
375
+ 23: { field: 'intensity', type: 'intensity', scale: null, offset: 0, units: '' },
376
+ 24: { field: 'lap_trigger', type: 'lap_trigger', scale: null, offset: 0, units: '' },
377
+ 25: { field: 'sport', type: 'sport', scale: null, offset: 0, units: '' },
378
+ 26: { field: 'event_group', type: 'uint8', scale: null, offset: 0, units: '' },
379
+ 32: { field: 'num_lengths', type: 'uint16', scale: null, offset: 0, units: 'lengths' },
380
+ 33: { field: 'normalized_power', type: 'uint16', scale: null, offset: 0, units: 'watts' },
381
+ 34: { field: 'left_right_balance', type: 'left_right_balance_100', scale: 100, offset: 0, units: '%' },
382
+ 35: { field: 'first_length_index', type: 'uint16', scale: null, offset: 0, units: '' },
383
+ 37: { field: 'avg_stroke_distance', type: 'uint16', scale: 100, offset: 0, units: 'm' },
384
+ 38: { field: 'swim_stroke', type: 'swim_stroke', scale: null, offset: 0, units: '' },
385
+ 39: { field: 'sub_sport', type: 'sub_sport', scale: null, offset: 0, units: '' },
386
+ 40: { field: 'num_active_lengths', type: 'uint16', scale: null, offset: 0, units: 'lengths' },
387
+ 41: { field: 'total_work', type: 'uint32', scale: null, offset: 0, units: 'J' },
388
+ 42: { field: 'avg_altitude', type: 'uint16', scale: 5, offset: -500, units: 'm' },
389
+ 43: { field: 'max_altitude', type: 'uint16', scale: 5, offset: -500, units: 'm' },
390
+ 44: { field: 'gps_accuracy', type: 'uint8', scale: null, offset: 0, units: 'm' },
391
+ 45: { field: 'avg_grade', type: 'sint16', scale: 100, offset: 0, units: '%' },
392
+ 46: { field: 'avg_pos_grade', type: 'sint16', scale: 100, offset: 0, units: '%' },
393
+ 47: { field: 'avg_neg_grade', type: 'sint16', scale: 100, offset: 0, units: '%' },
394
+ 48: { field: 'max_pos_grade', type: 'sint16', scale: 100, offset: 0, units: '%' },
395
+ 49: { field: 'max_neg_grade', type: 'sint16', scale: 100, offset: 0, units: '%' },
396
+ 50: { field: 'avg_temperature', type: 'sint8', scale: null, offset: 0, units: 'C' },
397
+ 51: { field: 'max_temperature', type: 'sint8', scale: null, offset: 0, units: 'C' },
398
+ 52: { field: 'total_moving_time', type: 'uint32', scale: 1000, offset: 0, units: 's' },
399
+ 53: { field: 'avg_pos_vertical_speed', type: 'uint16', scale: 1000, offset: 0, units: 'm/s' },
400
+ 54: { field: 'avg_neg_vertical_speed', type: 'uint16', scale: 1000, offset: 0, units: 'm/s' },
401
+ 55: { field: 'max_pos_vertical_speed', type: 'uint16', scale: 1000, offset: 0, units: 'm/s' },
402
+ 56: { field: 'max_neg_vertical_speed', type: 'uint16', scale: 1000, offset: 0, units: 'm/s' },
403
+ 57: { field: 'time_in_hr_zone', type: 'uint32_array', scale: 1000, offset: 0, units: 's' },
404
+ 58: { field: 'time_in_speed_zone', type: 'uint32_array', scale: 1000, offset: 0, units: 's' },
405
+ 59: { field: 'time_in_cadence_zone', type: 'uint32_array', scale: 1000, offset: 0, units: 's' },
406
+ 60: { field: 'time_in_power_zone', type: 'uint32_array', scale: 1000, offset: 0, units: 's' },
407
+ 61: { field: 'repetition_num', type: 'uint16', scale: null, offset: 0, units: '' },
408
+ 62: { field: 'min_altitude', type: 'uint16', scale: 5, offset: -500, units: 'm' },
409
+ 63: { field: 'min_heart_rate', type: 'uint8', scale: null, offset: 0, units: 'bpm' },
410
+ 71: { field: 'wkt_step_index', type: 'message_index', scale: null, offset: 0, units: '' },
411
+ 74: { field: 'opponent_score', type: 'uint16', scale: null, offset: 0, units: '' },
412
+ 75: { field: 'stroke_count', type: 'uint16', scale: null, offset: 0, units: 'counts' },
413
+ 76: { field: 'zone_count', type: 'uint16', scale: null, offset: 0, units: 'counts' },
414
+ 77: { field: 'avg_vertical_oscillation', type: 'uint16', scale: 10, offset: 0, units: 'mm' },
415
+ 78: { field: 'avg_stance_time_percent', type: 'uint16', scale: 100, offset: 0, units: 'percent' },
416
+ 79: { field: 'avg_stance_time', type: 'uint16', scale: 10, offset: 0, units: 'ms' },
417
+ 80: { field: 'avg_fractional_cadence', type: 'uint8', scale: 128, offset: 0, units: 'rpm' },
418
+ 81: { field: 'max_fractional_cadence', type: 'uint8', scale: 128, offset: 0, units: 'rpm' },
419
+ 82: { field: 'total_fractional_cycles', type: 'uint8', scale: 128, offset: 0, units: 'cycles' },
420
+ 83: { field: 'player_score', type: 'uint16', scale: null, offset: 0, units: '' },
421
+ 84: { field: 'avg_total_hemoglobin_conc', type: 'uint16', scale: 100, offset: 0, units: 'g/dL' },
422
+ 85: { field: 'min_total_hemoglobin_conc', type: 'uint16', scale: 100, offset: 0, units: 'g/dL' },
423
+ 86: { field: 'max_total_hemoglobin_conc', type: 'uint16', scale: 100, offset: 0, units: 'g/dL' },
424
+ 87: { field: 'avg_saturated_hemoglobin_percent', type: 'uint16', scale: 10, offset: 0, units: '%' },
425
+ 88: { field: 'min_saturated_hemoglobin_percent', type: 'uint16', scale: 10, offset: 0, units: '%' },
426
+ 89: { field: 'max_saturated_hemoglobin_percent', type: 'uint16', scale: 10, offset: 0, units: '%' },
427
+ 91: { field: 'avg_left_torque_effectiveness', type: 'uint8', scale: 2, offset: 0, units: 'percent' },
428
+ 92: { field: 'avg_right_torque_effectiveness', type: 'uint8', scale: 2, offset: 0, units: 'percent' },
429
+ 93: { field: 'avg_left_pedal_smoothness', type: 'uint8', scale: 2, offset: 0, units: 'percent' },
430
+ 94: { field: 'avg_right_pedal_smoothness', type: 'uint8', scale: 2, offset: 0, units: 'percent' },
431
+ 95: { field: 'avg_combined_pedal_smoothness', type: 'uint8', scale: 2, offset: 0, units: 'percent' },
432
+ 98: { field: 'time_standing', type: 'uint32', scale: 1000, offset: 0, units: 's' },
433
+ 99: { field: 'stand_count', type: 'uint16', scale: null, offset: 0, units: '' },
434
+ 100: { field: 'avg_left_pco', type: 'sint8', scale: null, offset: 0, units: 'mm' },
435
+ 101: { field: 'avg_right_pco', type: 'sint8', scale: null, offset: 0, units: 'mm' },
436
+ 102: { field: 'avg_left_power_phase', type: 'uint8', scale: '0,7111111', offset: 0, units: 'degrees' },
437
+ 103: { field: 'avg_left_power_phase_peak', type: 'uint8', scale: '0,7111111', offset: 0, units: 'degrees' },
438
+ 104: { field: 'avg_right_power_phase', type: 'uint8', scale: '0,7111111', offset: 0, units: 'degrees' },
439
+ 105: { field: 'avg_right_power_phase_peak', type: 'uint8', scale: '0,7111111', offset: 0, units: 'degrees' },
440
+ 106: { field: 'avg_power_position', type: 'uint16', scale: null, offset: 0, units: 'watts' },
441
+ 107: { field: 'max_power_position', type: 'uint16', scale: null, offset: 0, units: 'watts' },
442
+ 108: { field: 'avg_cadence_position', type: 'uint8', scale: null, offset: 0, units: 'rpm' },
443
+ 109: { field: 'max_cadence_position', type: 'uint8', scale: null, offset: 0, units: 'rpm' },
444
+ 110: { field: 'enhanced_avg_speed', type: 'uint32', scale: 1000, offset: 0, units: 'm/s' },
445
+ 111: { field: 'enhanced_max_speed', type: 'uint32', scale: 1000, offset: 0, units: 'm/s' },
446
+ 112: { field: 'enhanced_avg_altitude', type: 'uint32', scale: 5, offset: -500, units: 'm' },
447
+ 113: { field: 'enhanced_min_altitude', type: 'uint32', scale: 5, offset: -500, units: 'm' },
448
+ 114: { field: 'enhanced_max_altitude', type: 'uint32', scale: 5, offset: -500, units: 'm' },
449
+ 115: { field: 'avg_lev_motor_power', type: 'uint16', scale: null, offset: 0, units: 'watts' },
450
+ 116: { field: 'max_lev_motor_power', type: 'uint16', scale: null, offset: 0, units: 'watts' },
451
+ 117: { field: 'lev_battery_consumption', type: 'uint8', scale: 2, offset: 0, units: 'percent' },
452
+ 118: { field: 'avg_vertical_ratio', type: 'uint16', scale: 100, offset: 0, units: 'percent' },
453
+ 119: { field: 'avg_stance_time_balance', type: 'uint16', scale: 100, offset: 0, units: 'percent' },
454
+ 120: { field: 'avg_step_length', type: 'uint16', scale: 10, offset: 0, units: 'mm' },
455
+ 121: { field: 'avg_vam', type: 'uint16', scale: 1000, offset: 0, units: 'm/s' }
456
+ },
457
+ 20: {
458
+ name: 'record',
459
+ 253: { field: 'timestamp', type: 'date_time', scale: null, offset: 0, units: 's' },
460
+ 0: { field: 'position_lat', type: 'sint32', scale: null, offset: 0, units: 'semicircles' },
461
+ 1: { field: 'position_long', type: 'sint32', scale: null, offset: 0, units: 'semicircles' },
462
+ 2: { field: 'altitude', type: 'uint16', scale: 5, offset: -500, units: 'm' },
463
+ 3: { field: 'heart_rate', type: 'uint8', scale: null, offset: 0, units: 'bpm' },
464
+ 4: { field: 'cadence', type: 'uint8', scale: null, offset: 0, units: 'rpm' },
465
+ 5: { field: 'distance', type: 'uint32', scale: 100, offset: 0, units: 'm' },
466
+ 6: { field: 'speed', type: 'uint16', scale: 1000, offset: 0, units: 'm/s' },
467
+ 7: { field: 'power', type: 'uint16', scale: null, offset: 0, units: 'watts' },
468
+ 8: { field: 'compressed_speed_distance', type: 'byte', scale: '100,16', offset: 0, units: 'm/s,m' },
469
+ 9: { field: 'grade', type: 'sint16', scale: 100, offset: 0, units: '%' },
470
+ 10: { field: 'resistance', type: 'uint8', scale: null, offset: 0, units: '' },
471
+ 11: { field: 'time_from_course', type: 'sint32', scale: 1000, offset: 0, units: 's' },
472
+ 12: { field: 'cycle_length', type: 'uint8', scale: 100, offset: 0, units: 'm' },
473
+ 13: { field: 'temperature', type: 'sint8', scale: null, offset: 0, units: 'C' },
474
+ 17: { field: 'speed_1s', type: 'uint8', scale: 16, offset: 0, units: 'm/s' },
475
+ 18: { field: 'cycles', type: 'uint8', scale: null, offset: 0, units: 'cycles' },
476
+ 19: { field: 'total_cycles', type: 'uint32', scale: null, offset: 0, units: 'cycles' },
477
+ 28: { field: 'compressed_accumulated_power', type: 'uint16', scale: null, offset: 0, units: 'watts' },
478
+ 29: { field: 'accumulated_power', type: 'uint32', scale: null, offset: 0, units: 'watts' },
479
+ 30: { field: 'left_right_balance', type: 'left_right_balance', scale: null, offset: 0, units: '' },
480
+ 31: { field: 'gps_accuracy', type: 'uint8', scale: null, offset: 0, units: 'm' },
481
+ 32: { field: 'vertical_speed', type: 'sint16', scale: 1000, offset: 0, units: 'm/s' },
482
+ 33: { field: 'calories', type: 'uint16', scale: null, offset: 0, units: 'kcal' },
483
+ 39: { field: 'vertical_oscillation', type: 'uint16', scale: 10, offset: 0, units: 'mm' },
484
+ 40: { field: 'stance_time_percent', type: 'uint16', scale: 100, offset: 0, units: 'percent' },
485
+ 41: { field: 'stance_time', type: 'uint16', scale: 10, offset: 0, units: 'ms' },
486
+ 42: { field: 'activity_type', type: 'activity_type', scale: null, offset: 0, units: '' },
487
+ 43: { field: 'left_torque_effectiveness', type: 'uint8', scale: 2, offset: 0, units: 'percent' },
488
+ 44: { field: 'right_torque_effectiveness', type: 'uint8', scale: 2, offset: 0, units: 'percent' },
489
+ 45: { field: 'left_pedal_smoothness', type: 'uint8', scale: 2, offset: 0, units: 'percent' },
490
+ 46: { field: 'right_pedal_smoothness', type: 'uint8', scale: 2, offset: 0, units: 'percent' },
491
+ 47: { field: 'combined_pedal_smoothness', type: 'uint8', scale: 2, offset: 0, units: 'percent' },
492
+ 48: { field: 'time128', type: 'uint8', scale: 128, offset: 0, units: 's' },
493
+ 49: { field: 'stroke_type', type: 'stroke_type', scale: null, offset: 0, units: '' },
494
+ 50: { field: 'zone', type: 'uint8', scale: null, offset: 0, units: '' },
495
+ 51: { field: 'ball_speed', type: 'uint16', scale: 100, offset: 0, units: 'm/s' },
496
+ 52: { field: 'cadence256', type: 'uint16', scale: 256, offset: 0, units: 'rpm' },
497
+ 53: { field: 'fractional_cadence', type: 'uint8', scale: 128, offset: 0, units: 'rpm' },
498
+ 54: { field: 'total_hemoglobin_conc', type: 'uint16', scale: 100, offset: 0, units: 'g/dL' },
499
+ 55: { field: 'total_hemoglobin_conc_min', type: 'uint16', scale: 100, offset: 0, units: 'g/dL' },
500
+ 56: { field: 'total_hemoglobin_conc_max', type: 'uint16', scale: 100, offset: 0, units: 'g/dL' },
501
+ 57: { field: 'saturated_hemoglobin_percent', type: 'uint16', scale: 10, offset: 0, units: '%' },
502
+ 58: { field: 'saturated_hemoglobin_percent_min', type: 'uint16', scale: 10, offset: 0, units: '%' },
503
+ 59: { field: 'saturated_hemoglobin_percent_max', type: 'uint16', scale: 10, offset: 0, units: '%' },
504
+ 62: { field: 'device_index', type: 'device_index', scale: null, offset: 0, units: '' },
505
+ 67: { field: 'left_pco', type: 'sint8', scale: null, offset: 0, units: 'mm' },
506
+ 68: { field: 'right_pco', type: 'sint8', scale: null, offset: 0, units: 'mm' },
507
+ 69: { field: 'left_power_phase', type: 'uint8', scale: '0,7111111', offset: 0, units: 'degrees' },
508
+ 70: { field: 'left_power_phase_peak', type: 'uint8', scale: '0,7111111', offset: 0, units: 'degrees' },
509
+ 71: { field: 'right_power_phase', type: 'uint8', scale: '0,7111111', offset: 0, units: 'degrees' },
510
+ 72: { field: 'right_power_phase_peak', type: 'uint8', scale: '0,7111111', offset: 0, units: 'degrees' },
511
+ 73: { field: 'enhanced_speed', type: 'uint32', scale: 1000, offset: 0, units: 'm/s' },
512
+ 78: { field: 'enhanced_altitude', type: 'uint32', scale: 5, offset: -500, units: 'm' },
513
+ 81: { field: 'battery_soc', type: 'uint8', scale: 2, offset: 0, units: 'percent' },
514
+ 82: { field: 'motor_power', type: 'uint16', scale: null, offset: 0, units: 'watts' },
515
+ 83: { field: 'vertical_ratio', type: 'uint16', scale: 100, offset: 0, units: 'percent' },
516
+ 84: { field: 'stance_time_balance', type: 'uint16', scale: 100, offset: 0, units: 'percent' },
517
+ 85: { field: 'step_length', type: 'uint16', scale: 10, offset: 0, units: 'mm' },
518
+ 91: { field: 'absolute_pressure', type: 'uint32', scale: null, offset: 0, units: 'Pa' },
519
+ 92: { field: 'depth', type: 'uint32', scale: null, offset: 0, units: 'm' },
520
+ 93: { field: 'next_stop_depth', type: 'uint32', scale: null, offset: 0, units: 'm' },
521
+ 94: { field: 'next_stop_time', type: 'uint32', scale: null, offset: 0, units: 's' },
522
+ 95: { field: 'time_to_surface', type: 'uint32', scale: null, offset: 0, units: 's' },
523
+ 96: { field: 'ndl_time', type: 'uint32', scale: null, offset: 0, units: 's' },
524
+ 97: { field: 'cns_load', type: 'uint8', scale: null, offset: 0, units: 'percent' },
525
+ 98: { field: 'n2_load', type: 'uint16', scale: null, offset: 0, units: 'percent' }
526
+ },
527
+ 21: {
528
+ name: 'event',
529
+ 253: { field: 'timestamp', type: 'date_time', scale: null, offset: '', units: 's' },
530
+ 0: { field: 'event', type: 'event', scale: null, offset: '', units: '' },
531
+ 1: { field: 'event_type', type: 'event_type', scale: null, offset: '', units: '' },
532
+ 2: { field: 'data16', type: 'uint16', scale: null, offset: '', units: '' },
533
+ 3: { field: 'data', type: 'uint32', scale: null, offset: '', units: '' },
534
+ 4: { field: 'event_group', type: 'uint8', scale: null, offset: '', units: '' },
535
+ 7: { field: 'score', type: 'uint16', scale: null, offset: '', units: '' },
536
+ 8: { field: 'opponent_score', type: 'uint16', scale: null, offset: '', units: '' },
537
+ 9: { field: 'front_gear_num', type: 'uint8z', scale: null, offset: '', units: '' },
538
+ 10: { field: 'front_gear', type: 'uint8z', scale: null, offset: '', units: '' },
539
+ 11: { field: 'rear_gear_num', type: 'uint8z', scale: null, offset: '', units: '' },
540
+ 12: { field: 'rear_gear', type: 'uint8z', scale: null, offset: '', units: '' },
541
+ 13: { field: 'device_index', type: 'device_index', scale: null, offset: '', units: '' }
542
+ },
543
+ 23: {
544
+ name: 'device_info',
545
+ 253: { field: 'timestamp', type: 'date_time', scale: null, offset: 0, units: 's' },
546
+ 0: { field: 'device_index', type: 'uint8', scale: null, offset: 0, units: '' },
547
+ 1: { field: 'device_type', type: 'antplus_device_type', scale: null, offset: 0, units: '' },
548
+ 2: { field: 'manufacturer', type: 'manufacturer', scale: null, offset: 0, units: '' },
549
+ 3: { field: 'serial_number', type: 'uint32z', scale: null, offset: 0, units: '' },
550
+ 4: { field: 'product', type: 'uint16', scale: null, offset: 0, units: '' },
551
+ 5: { field: 'software_version', type: 'uint16', scale: 100, offset: 0, units: '' },
552
+ 6: { field: 'hardware_version', type: 'uint8', scale: null, offset: 0, units: '' },
553
+ 7: { field: 'cum_operating_time', type: 'uint32', scale: null, offset: 0, units: 's' },
554
+ 10: { field: 'battery_voltage', type: 'uint16', scale: 256, offset: 0, units: 'V' },
555
+ 11: { field: 'battery_status', type: 'battery_status', scale: null, offset: 0, units: '' },
556
+ 18: { field: 'sensor_position', type: 'body_location', scale: null, offset: 0, units: '' },
557
+ 19: { field: 'descriptor', type: 'string', scale: null, offset: 0, units: '' },
558
+ 20: { field: 'ant_transmission_type', type: 'uint8z', scale: null, offset: 0, units: '' },
559
+ 21: { field: 'ant_device_number', type: 'uint16z', scale: null, offset: 0, units: '' },
560
+ 22: { field: 'ant_network', type: 'ant_network', scale: null, offset: 0, units: '' },
561
+ 25: { field: 'source_type', type: 'source_type', scale: null, offset: 0, units: '' },
562
+ 27: { field: 'product_name', type: 'string', scale: null, offset: 0, units: '' }
563
+ },
564
+ 26: {
565
+ name: 'workout',
566
+ 4: { field: 'sport', type: 'sport', scale: null, offset: '', units: '' },
567
+ 5: { field: 'capabilities', type: 'workout_capabilities', scale: null, offset: '', units: '' },
568
+ 6: { field: 'num_valid_steps', type: 'uint16', scale: null, offset: '', units: '' },
569
+ 8: { field: 'wkt_name', type: 'string', scale: null, offset: '', units: '' }
570
+ },
571
+ 27: {
572
+ name: 'workout_step',
573
+ 254: { field: 'message_index', type: 'message_index', scale: null, offset: 0, units: '' },
574
+ 0: { field: 'wkt_step_name', type: 'string', scale: null, offset: 0, units: '' },
575
+ 1: { field: 'duration_type', type: 'wkt_step_duration', scale: null, offset: 0, units: '' },
576
+ 2: { field: 'duration_value', type: 'uint32', scale: null, offset: 0, units: '' },
577
+ 3: { field: 'target_type', type: 'wkt_step_target', scale: null, offset: 0, units: '' },
578
+ 4: { field: 'target_value', type: 'uint32', scale: null, offset: 0, units: '' },
579
+ 5: { field: 'custom_target_value_low', type: 'uint32', scale: null, offset: 0, units: '' },
580
+ 6: { field: 'custom_target_value_high', type: 'uint32', scale: null, offset: 0, units: '' },
581
+ 7: { field: 'intensity', type: 'intensity', scale: null, offset: 0, units: '' }
582
+ },
583
+ 30: {
584
+ name: 'weight_scale',
585
+ 253: { field: 'timestamp', type: 'date_time', scale: null, offset: 0, units: 's' },
586
+ 0: { field: 'weight', type: 'weight', scale: 100, offset: 0, units: 'kg' },
587
+ 1: { field: 'percent_fat', type: 'uint16', scale: 100, offset: 0, units: '%' },
588
+ 2: { field: 'percent_hydration', type: 'uint16', scale: 100, offset: 0, units: '%' },
589
+ 3: { field: 'visceral_fat_mass', type: 'uint16', scale: 100, offset: 0, units: 'kg' },
590
+ 4: { field: 'bone_mass', type: 'uint16', scale: 100, offset: 0, units: 'kg' },
591
+ 5: { field: 'muscle_mass', type: 'uint16', scale: 100, offset: 0, units: 'kg' },
592
+ 7: { field: 'basal_met', type: 'uint16', scale: 4, offset: 0, units: 'kcal/day' },
593
+ 8: { field: 'physique_rating', type: 'uint8', scale: null, offset: 0, units: '' },
594
+ 9: { field: 'active_met', type: 'uint16', scale: 4, offset: 0, units: 'kcal/day' },
595
+ 10: { field: 'metabolic_age', type: 'uint8', scale: null, offset: 0, units: 'years' },
596
+ 11: { field: 'visceral_fat_rating', type: 'uint8', scale: null, offset: 0, units: '' },
597
+ 12: { field: 'user_profile_index', type: 'message_index', scale: null, offset: 0, units: '' }
598
+ },
599
+ 31: {
600
+ name: 'course',
601
+ 4: { field: 'sport', type: 'sport', scale: null, offset: '', units: '' },
602
+ 5: { field: 'name', type: 'string', scale: null, offset: '', units: '' },
603
+ 6: { field: 'capabilities', type: 'course_capabilities', scale: null, offset: '', units: '' }
604
+ },
605
+ 32: {
606
+ name: 'course_point',
607
+ 254: { field: 'message_index', type: 'message_index', scale: null, offset: 0, units: '' },
608
+ 1: { field: 'timestamp', type: 'date_time', scale: null, offset: 0, units: '' },
609
+ 2: { field: 'position_lat', type: 'sint32', scale: null, offset: 0, units: 'semicircles' },
610
+ 3: { field: 'position_long', type: 'sint32', scale: null, offset: 0, units: 'semicircles' },
611
+ 4: { field: 'distance', type: 'uint32', scale: 100, offset: 0, units: 'm' },
612
+ 5: { field: 'type', type: 'course_point', scale: null, offset: 0, units: '' },
613
+ 6: { field: 'name', type: 'string', scale: null, offset: 0, units: '' },
614
+ 8: { field: 'favorite', type: 'bool', scale: null, offset: 0, units: '' }
615
+ },
616
+ 33: {
617
+ name: 'totals',
618
+ 254: { field: 'message_index', type: 'message_index', scale: null, offset: 0, units: '' },
619
+ 253: { field: 'timestamp', type: 'date_time', scale: null, offset: 0, units: 's' },
620
+ 0: { field: 'timer_time', type: 'uint32', scale: null, offset: 0, units: 's' },
621
+ 1: { field: 'distance', type: 'uint32', scale: null, offset: 0, units: 'm' },
622
+ 2: { field: 'calories', type: 'uint32', scale: null, offset: 0, units: 'kcal' },
623
+ 3: { field: 'sport', type: 'sport', scale: null, offset: 0, units: '' },
624
+ 4: { field: 'elapsed_time', type: 'uint32', scale: null, offset: 0, units: 's' },
625
+ 5: { field: 'sessions', type: 'uint16', scale: null, offset: 0, units: '' },
626
+ 6: { field: 'active_time', type: 'uint32', scale: null, offset: 0, units: 's' },
627
+ 9: { field: 'sport_index', type: 'uint8', scale: null, offset: 0, units: '' }
628
+ },
629
+ 34: {
630
+ name: 'activity',
631
+ 253: { field: 'timestamp', type: 'date_time', scale: null, offset: 0, units: '' },
632
+ 0: { field: 'total_timer_time', type: 'uint32', scale: 1000, offset: 0, units: 's' },
633
+ 1: { field: 'num_sessions', type: 'uint16', scale: null, offset: 0, units: '' },
634
+ 2: { field: 'type', type: 'activity', scale: null, offset: 0, units: '' },
635
+ 3: { field: 'event', type: 'event', scale: null, offset: 0, units: '' },
636
+ 4: { field: 'event_type', type: 'event_type', scale: null, offset: 0, units: '' },
637
+ 5: { field: 'local_timestamp', type: 'local_date_time', scale: null, offset: 0, units: '' },
638
+ 6: { field: 'event_group', type: 'uint8', scale: null, offset: 0, units: '' }
639
+ },
640
+ 35: {
641
+ name: 'software',
642
+ 254: { field: 'message_index', type: 'message_index', scale: null, offset: '', units: '' },
643
+ 3: { field: 'version', type: 'uint16', scale: 100, offset: '', units: '' },
644
+ 5: { field: 'part_number', type: 'string', scale: null, offset: '', units: '' }
645
+ },
646
+ 37: {
647
+ name: 'file_capabilities',
648
+ 254: { field: 'message_index', type: 'message_index', scale: null, offset: 0, units: '' },
649
+ 0: { field: 'type', type: 'file', scale: null, offset: 0, units: '' },
650
+ 1: { field: 'flags', type: 'file_flags', scale: null, offset: 0, units: '' },
651
+ 2: { field: 'directory', type: 'string', scale: null, offset: 0, units: '' },
652
+ 3: { field: 'max_count', type: 'uint16', scale: null, offset: 0, units: '' },
653
+ 4: { field: 'max_size', type: 'uint32', scale: null, offset: 0, units: 'bytes' }
654
+ },
655
+ 38: {
656
+ name: 'mesg_capabilities',
657
+ 254: { field: 'message_index', type: 'message_index', scale: null, offset: '', units: '' },
658
+ 0: { field: 'file', type: 'file', scale: null, offset: '', units: '' },
659
+ 1: { field: 'mesg_num', type: 'mesg_num', scale: null, offset: '', units: '' },
660
+ 2: { field: 'count_type', type: 'mesg_count', scale: null, offset: '', units: '' },
661
+ 3: { field: 'count', type: 'uint16', scale: null, offset: '', units: '' }
662
+ },
663
+ 39: {
664
+ name: 'field_capabilities',
665
+ 254: { field: 'message_index', type: 'message_index', scale: null, offset: '', units: '' },
666
+ 0: { field: 'file', type: 'file', scale: null, offset: '', units: '' },
667
+ 1: { field: 'mesg_num', type: 'mesg_num', scale: null, offset: '', units: '' },
668
+ 2: { field: 'field_num', type: 'uint8', scale: null, offset: '', units: '' },
669
+ 3: { field: 'count', type: 'uint16', scale: null, offset: '', units: '' }
670
+ },
671
+ 49: {
672
+ name: 'file_creator',
673
+ 0: { field: 'software_version', type: 'uint16', scale: null, offset: '', units: '' },
674
+ 1: { field: 'hardware_version', type: 'uint8', scale: null, offset: '', units: '' }
675
+ },
676
+ 51: {
677
+ name: 'blood_pressure',
678
+ 253: { field: 'timestamp', type: 'date_time', scale: null, offset: 0, units: 's' },
679
+ 0: { field: 'systolic_pressure', type: 'uint16', scale: null, offset: 0, units: 'mmHg' },
680
+ 1: { field: 'diastolic_pressure', type: 'uint16', scale: null, offset: 0, units: 'mmHg' },
681
+ 2: { field: 'mean_arterial_pressure', type: 'uint16', scale: null, offset: 0, units: 'mmHg' },
682
+ 3: { field: 'map_3_sample_mean', type: 'uint16', scale: null, offset: 0, units: 'mmHg' },
683
+ 4: { field: 'map_morning_values', type: 'uint16', scale: null, offset: 0, units: 'mmHg' },
684
+ 5: { field: 'map_evening_values', type: 'uint16', scale: null, offset: 0, units: 'mmHg' },
685
+ 6: { field: 'heart_rate', type: 'uint8', scale: null, offset: 0, units: 'bpm' },
686
+ 7: { field: 'heart_rate_type', type: 'hr_type', scale: null, offset: 0, units: '' },
687
+ 8: { field: 'status', type: 'bp_status', scale: null, offset: 0, units: '' },
688
+ 9: { field: 'user_profile_index', type: 'message_index', scale: null, offset: 0, units: '' }
689
+ },
690
+ 55: {
691
+ name: 'monitoring',
692
+ 253: { field: 'timestamp', type: 'uint32', scale: null, offset: 0, units: '' },
693
+ 0: { field: 'device_index', type: 'device_index', scale: null, offset: 0, units: '' },
694
+ 1: { field: 'calories', type: 'uint16', scale: null, offset: 0, units: 'kcal' },
695
+ 2: { field: 'distance', type: 'float32', scale: null, offset: 0, units: 'm' },
696
+ 3: { field: 'cycles', type: 'float32', scale: null, offset: 0, units: 'cycles' },
697
+ 4: { field: 'active_time', type: 'float32', scale: null, offset: 0, units: 's' },
698
+ 5: { field: 'activity_type', type: 'activity_type', scale: null, offset: 0, units: '' },
699
+ 6: { field: 'activity_subtype', type: 'activity_subtype', scale: null, offset: 0, units: '' },
700
+ 7: { field: 'activity_level', type: 'activity_level', scale: null, offset: 0, units: 's' },
701
+ 8: { field: 'distance16', type: 'uint16', scale: null, offset: 0, units: 'm' },
702
+ 9: { field: 'cycles16', type: 'uint16', scale: null, offset: 0, units: 'cycles' },
703
+ 10: { field: 'active_time16', type: 'uint16', scale: null, offset: 0, units: '' },
704
+ 11: { field: 'local_timestamp', type: 'uint32', scale: null, offset: 0, units: '' },
705
+ 12: { field: 'temperature', type: 'float32', scale: null, offset: 0, units: 'C' },
706
+ 14: { field: 'temperature_min', type: 'float32', scale: null, offset: 0, units: 'C' },
707
+ 15: { field: 'temperature_max', type: 'float32', scale: null, offset: 0, units: 'C' },
708
+ 16: { field: 'activity_time', type: 'int32', scale: null, offset: 0, units: '' },
709
+ 19: { field: 'active_calories', type: 'uint16', scale: null, offset: 0, units: 'kcal' },
710
+ 24: { field: 'current_activity_type_intensity', type: 'uint8', scale: null, offset: 0, units: '' },
711
+ 25: { field: 'timestamp_min8', type: 'uint8', scale: null, offset: 0, units: '' },
712
+ 26: { field: 'timestamp16', type: 'uint16', scale: null, offset: 0, units: '' },
713
+ 27: { field: 'heart_rate', type: 'uint8', scale: null, offset: 0, units: 'bpm' },
714
+ 28: { field: 'intensity', type: 'uint8', scale: null, offset: 0, units: '' },
715
+ 29: { field: 'duration_min', type: 'uint16', scale: null, offset: 0, units: '' },
716
+ 30: { field: 'duration', type: 'uint32', scale: null, offset: 0, units: '' },
717
+ 31: { field: 'ascent', type: 'float32', scale: null, offset: 0, units: 'm' },
718
+ 32: { field: 'descent', type: 'float32', scale: null, offset: 0, units: 'm' },
719
+ 33: { field: 'moderate_activity_minutes', type: 'uint16', scale: null, offset: 0, units: '' },
720
+ 34: { field: 'vigorous_activity_inutes', type: 'uint16', scale: null, offset: 0, units: '' }
721
+ },
722
+ 78: {
723
+ name: 'hrv',
724
+ 0: { field: 'time', type: 'uint16_array', scale: 1000, offset: 0, units: 's' }
725
+ },
726
+ 101: {
727
+ name: 'length',
728
+ 254: { field: 'message_index', type: 'message_index', scale: null, offset: 0, units: '' },
729
+ 253: { field: 'timestamp', type: 'date_time', scale: null, offset: 0, units: 's' },
730
+ 0: { field: 'event', type: 'event', scale: null, offset: 0, units: '' },
731
+ 1: { field: 'event_type', type: 'event_type', scale: null, offset: 0, units: '' },
732
+ 2: { field: 'start_time', type: 'date_time', scale: null, offset: 0, units: '' },
733
+ 3: { field: 'total_elapsed_time', type: 'uint32', scale: 1000, offset: 0, units: 's' },
734
+ 4: { field: 'total_timer_time', type: 'uint32', scale: 1000, offset: 0, units: 's' },
735
+ 5: { field: 'total_strokes', type: 'uint16', scale: null, offset: 0, units: 'strokes' },
736
+ 6: { field: 'avg_speed', type: 'uint16', scale: 1000, offset: 0, units: 'm/s' },
737
+ 7: { field: 'swim_stroke', type: 'swim_stroke', scale: null, offset: 0, units: 'swim_stroke' },
738
+ 9: { field: 'avg_swimming_cadence', type: 'uint8', scale: null, offset: 0, units: 'strokes/min' },
739
+ 10: { field: 'event_group', type: 'uint8', scale: null, offset: 0, units: '' },
740
+ 11: { field: 'total_calories', type: 'uint16', scale: null, offset: 0, units: 'kcal' },
741
+ 12: { field: 'length_type', type: 'length_type', scale: null, offset: 0, units: 'length_type' },
742
+ 18: { field: 'player_score', type: 'uint16', scale: null, offset: 0, units: '' },
743
+ 19: { field: 'opponent_score', type: 'uint16', scale: null, offset: 0, units: '' },
744
+ 20: { field: 'stroke_count', type: 'uint16', scale: null, offset: 0, units: 'counts' },
745
+ 21: { field: 'zone_count', type: 'uint16', scale: null, offset: 0, units: 'counts' }
746
+ },
747
+ 103: {
748
+ name: 'monitoring_info',
749
+ 253: { field: 'timestamp', type: 'date_time', scale: null, offset: 0, units: '' },
750
+ 0: { field: 'local_timestamp', type: 'uint32', scale: null, offset: 0, units: '' },
751
+ 1: { field: 'activity_type', type: 'activity_type', scale: null, offset: 0, units: '' },
752
+ 3: { field: 'cycles_to_distance', type: 'float32', scale: null, offset: 0, units: 'cycles' },
753
+ 4: { field: 'cycles_to_calories', type: 'float32', scale: null, offset: 0, units: 'kcal' },
754
+ 5: { field: 'resting_metabolic_rate', type: 'uint16', scale: null, offset: 0, units: '' }
755
+ },
756
+ 108: {
757
+ name: 'o_hr_settings',
758
+ 253: { field: 'timestamp', type: 'date_time', scale: null, offset: 0, units: '' },
759
+ 0: { field: 'enabled', type: 'byte', scale: null, offset: 0, units: '' }
760
+ },
761
+ 206: {
762
+ name: 'field_description',
763
+ 0: { field: 'developer_data_index', type: 'uint8', scale: null, offset: 0, units: '' },
764
+ 1: { field: 'field_definition_number', type: 'uint8', scale: null, offset: 0, units: '' },
765
+ 2: { field: 'fit_base_type_id', type: 'uint8', scale: null, offset: 0, units: '' },
766
+ 3: { field: 'field_name', type: 'string', scale: null, offset: 0, units: '' },
767
+ //4: { field: 'array', type: 'uint8', scale: null, offset: 0, units: '' },
768
+ //5: { field: 'components', type: 'string', scale: null, offset: 0, units: '' },
769
+ 6: { field: 'scale', type: 'uint8', scale: null, offset: 0, units: '' },
770
+ 7: { field: 'offset', type: 'sint8', scale: null, offset: 0, units: '' },
771
+ 8: { field: 'units', type: 'string', scale: null, offset: 0, units: '' },
772
+ // 9: { field: 'bits', type: 'string', scale: null, offset: 0, units: '' },
773
+ // 10: { field: 'accumulate', type: 'string', scale: null, offset: 0, units: '' },
774
+ //13: { field: 'fit_base_unit_id', type: 'uint16', scale: null, offset: 0, units: '' },
775
+ // 14: { field: 'native_mesg_num', type: 'mesg_num', scale: null, offset: 0, units: '' },
776
+ 15: { field: 'native_field_num', type: 'uint8', scale: null, offset: 0, units: '' }
777
+ },
778
+ 227: {
779
+ name: 'stress_level',
780
+ 0: { field: 'stress_level_value', type: 'uint16', scale: null, offset: 0, units: '' },
781
+ 1: { field: 'stress_level_time', type: 'date_time', scale: null, offset: 0, units: 's' },
782
+ 2: { field: 'field_two', type: 'sint8', scale: null, offset: 0, units: '' },
783
+ 3: { field: 'body_battery', type: 'uint8', scale: null, offset: 0, units: '' },
784
+ 4: { field: 'field_four', type: 'uint8', scale: null, offset: 0, units: '' }
785
+ },
786
+ 207: {
787
+ name: 'developer_data_id',
788
+ 0: { field: 'developer_id', type: 'uint8', scale: null, offset: 0, units: '' },
789
+ 1: { field: 'application_id', type: 'byte_array', scale: null, offset: 0, units: '' },
790
+ 2: { field: 'manufacturer_id', type: 'manufacturer', scale: null, offset: 0, units: '' },
791
+ 3: { field: 'developer_data_index', type: 'uint8', scale: null, offset: 0, units: '' },
792
+ 4: { field: 'application_version', type: 'uint8', scale: null, offset: 0, units: '' }
793
+ },
794
+ 258: {
795
+ name: 'dive_settings',
796
+ 254: { field: 'message_index', type: 'message_index', scale: null, offset: '', units: '' },
797
+ 0: { field: 'name', type: 'string', scale: null, offset: 0, units: '' },
798
+ 1: { field: 'model', type: 'tissue_model_type', scale: null, offset: 0, units: '' },
799
+ 2: { field: 'gf_low', type: 'uint8', scale: null, offset: 0, units: 'percent' },
800
+ 3: { field: 'gf_high', type: 'uint8', scale: null, offset: 0, units: 'percent' },
801
+ 4: { field: 'water_type', type: 'water_type', scale: null, offset: 0, units: '' },
802
+ 5: { field: 'water_density', type: 'float32', scale: null, offset: 0, units: 'kg/m^3' },
803
+ 6: { field: 'po2_warn', type: 'uint8', scale: null, offset: 0, units: 'percent' },
804
+ 7: { field: 'po2_critical', type: 'uint8', scale: null, offset: 0, units: 'percent' },
805
+ 8: { field: 'po2_deco', type: 'uint8', scale: null, offset: 0, units: 'percent' },
806
+ 9: { field: 'safety_stop_enabled', type: 'bool', scale: null, offset: 0, units: '' },
807
+ 10: { field: 'bottom_depth', type: 'float32', scale: null, offset: 0, units: '' },
808
+ 11: { field: 'bottom_time', type: 'uint32', scale: null, offset: 0, units: '' },
809
+ 12: { field: 'apnea_countdown_enabled', type: 'bool', scale: null, offset: 0, units: '' },
810
+ 13: { field: 'apnea_countdown_time', type: 'uint32', scale: null, offset: 0, units: '' },
811
+ 14: { field: 'backlight_mode', type: 'dive_backlight_mode', scale: null, offset: 0, units: '' },
812
+ 15: { field: 'backlight_brightness', type: 'uint8', scale: null, offset: 0, units: '' },
813
+ 16: { field: 'backlight_timeout', type: 'backlight_timeout', scale: null, offset: 0, units: '' },
814
+ 17: { field: 'repeat_dive_time', type: 'uint16', scale: null, offset: 0, units: 's' },
815
+ 18: { field: 'safety_stop_time', type: 'uint16', scale: null, offset: 0, units: 's' },
816
+ 19: { field: 'heart_rate_source_type', type: 'source_type', scale: null, offset: 0, units: '' },
817
+ 20: { field: 'heart_rate_source', type: 'uint8', scale: null, offset: 0, units: '' }
818
+ },
819
+ 259: {
820
+ name: 'dive_gas',
821
+ 254: { field: 'message_index', type: 'message_index', scale: null, offset: '', units: '' },
822
+ 0: { field: 'helium_content', type: 'uint8', scale: null, offset: '', units: 'percent' },
823
+ 1: { field: 'oxygen_content', type: 'uint8', scale: null, offset: '', units: 'percent' },
824
+ 2: { field: 'status', type: 'dive_gas_status', scale: null, offset: '', units: '' }
825
+ },
826
+ 262: {
827
+ name: 'dive_alarm',
828
+ 254: { field: 'message_index', type: 'message_index', scale: null, offset: '', units: '' },
829
+ 0: { field: 'depth', type: 'uint32', scale: null, offset: '', units: 'm' },
830
+ 1: { field: 'time', type: 'sint32', scale: null, offset: '', units: 's' },
831
+ 2: { field: 'enabled', type: 'bool', scale: null, offset: '', units: '' },
832
+ 3: { field: 'alarm_type', type: 'dive_alarm_type', scale: null, offset: '', units: '' },
833
+ 4: { field: 'sound', type: 'tone', scale: null, offset: '', units: '' },
834
+ 5: { field: 'dive_types', type: 'sub_sport', scale: null, offset: '', units: '' }
835
+ },
836
+ 268: {
837
+ name: 'dive_summary',
838
+ 253: { field: 'timestamp', type: 'date_time', scale: null, offset: 0, units: 's' },
839
+ 0: { field: 'reference_mesg', type: 'mesg_num', scale: null, offset: 0, units: '' },
840
+ 1: { field: 'reference_index', type: 'message_index', scale: null, offset: 0, units: '' },
841
+ 2: { field: 'avg_depth', type: 'uint32', scale: null, offset: 0, units: 'm' },
842
+ 3: { field: 'max_depth', type: 'uint32', scale: null, offset: 0, units: 'm' },
843
+ 4: { field: 'surface_interval', type: 'uint32', scale: null, offset: 0, units: 's' },
844
+ 5: { field: 'start_cns', type: 'uint8', scale: null, offset: 0, units: 'percent' },
845
+ 6: { field: 'end_cns', type: 'uint8', scale: null, offset: 0, units: 'percent' },
846
+ 7: { field: 'start_n2', type: 'uint16', scale: null, offset: 0, units: 'percent' },
847
+ 8: { field: 'end_n2', type: 'uint16', scale: null, offset: 0, units: 'percent' },
848
+ 9: { field: 'o2_toxicity', type: 'uint16', scale: null, offset: 0, units: 'OTUs' },
849
+ 10: { field: 'dive_number', type: 'uint32', scale: null, offset: 0, units: '' },
850
+ 11: { field: 'bottom_time', type: 'uint32', scale: null, offset: 0, units: 's' }
851
+ }
852
+ },
853
+ types: {
854
+ file: {
855
+ 1: 'device',
856
+ 2: 'settings',
857
+ 3: 'sport',
858
+ 4: 'activity',
859
+ 5: 'workout',
860
+ 6: 'course',
861
+ 7: 'schedules',
862
+ 9: 'weight',
863
+ 10: 'totals',
864
+ 11: 'goals',
865
+ 14: 'blood_pressure',
866
+ 15: 'monitoring_a',
867
+ 20: 'activity_summary',
868
+ 28: 'monitoring_daily',
869
+ 32: 'monitoring_b',
870
+ 34: 'segment',
871
+ 35: 'segment_list',
872
+ 40: 'exd_configuration',
873
+ 247: 'mfg_range_min',
874
+ 254: 'mfg_range_max'
875
+ },
876
+ mesg_num: {
877
+ 0: 'file_id',
878
+ 1: 'capabilities',
879
+ 2: 'device_settings',
880
+ 3: 'user_profile',
881
+ 4: 'hrm_profile',
882
+ 5: 'sdm_profile',
883
+ 6: 'bike_profile',
884
+ 7: 'zones_target',
885
+ 8: 'hr_zone',
886
+ 9: 'power_zone',
887
+ 10: 'met_zone',
888
+ 12: 'sport',
889
+ 15: 'goal',
890
+ 18: 'session',
891
+ 19: 'lap',
892
+ 20: 'record',
893
+ 21: 'event',
894
+ 23: 'device_info',
895
+ 26: 'workout',
896
+ 27: 'workout_step',
897
+ 28: 'schedule',
898
+ 30: 'weight_scale',
899
+ 31: 'course',
900
+ 32: 'course_point',
901
+ 33: 'totals',
902
+ 34: 'activity',
903
+ 35: 'software',
904
+ 37: 'file_capabilities',
905
+ 38: 'mesg_capabilities',
906
+ 39: 'field_capabilities',
907
+ 49: 'file_creator',
908
+ 51: 'blood_pressure',
909
+ 53: 'speed_zone',
910
+ 55: 'monitoring',
911
+ 72: 'training_file',
912
+ 78: 'hrv',
913
+ 80: 'ant_rx',
914
+ 81: 'ant_tx',
915
+ 82: 'ant_channel_id',
916
+ 101: 'length',
917
+ 103: 'monitoring_info',
918
+ 105: 'pad',
919
+ 106: 'slave_device',
920
+ 127: 'connectivity',
921
+ 128: 'weather_conditions',
922
+ 129: 'weather_alert',
923
+ 131: 'cadence_zone',
924
+ 132: 'hr',
925
+ 142: 'segment_lap',
926
+ 145: 'memo_glob',
927
+ 148: 'segment_id',
928
+ 149: 'segment_leaderboard_entry',
929
+ 150: 'segment_point',
930
+ 151: 'segment_file',
931
+ 158: 'workout_session',
932
+ 159: 'watchface_settings',
933
+ 160: 'gps_metadata',
934
+ 161: 'camera_event',
935
+ 162: 'timestamp_correlation',
936
+ 164: 'gyroscope_data',
937
+ 165: 'accelerometer_data',
938
+ 167: 'three_d_sensor_calibration',
939
+ 169: 'video_frame',
940
+ 174: 'obdii_data',
941
+ 177: 'nmea_sentence',
942
+ 178: 'aviation_attitude',
943
+ 184: 'video',
944
+ 185: 'video_title',
945
+ 186: 'video_description',
946
+ 187: 'video_clip',
947
+ 200: 'exd_screen_configuration',
948
+ 201: 'exd_data_field_configuration',
949
+ 202: 'exd_data_concept_configuration',
950
+ 206: 'field_description',
951
+ 207: 'developer_data_id',
952
+ 208: 'magnetometer_data',
953
+ 209: 'barometer_data',
954
+ 210: 'one_d_sensor_calibration',
955
+ 225: 'set',
956
+ 227: 'stress_level',
957
+ 258: 'dive_settings',
958
+ 259: 'dive_gas',
959
+ 262: 'dive_alarm',
960
+ 264: 'exercise_title',
961
+ 268: 'dive_summary',
962
+ 285: 'jump',
963
+ 317: 'climb_pro',
964
+ 65280: 'mfg_range_min',
965
+ 65534: 'mfg_range_max'
966
+ },
967
+ checksum: {
968
+ 0: 'clear',
969
+ 1: 'ok'
970
+ },
971
+ file_flags: {
972
+ 0: 0,
973
+ 2: 'read',
974
+ 4: 'write',
975
+ 8: 'erase'
976
+ },
977
+ mesg_count: {
978
+ 0: 'num_per_file',
979
+ 1: 'max_per_file',
980
+ 2: 'max_per_file_type'
981
+ },
982
+ date_time: {
983
+ 0: 0,
984
+ 268435456: 'min'
985
+ },
986
+ local_date_time: {
987
+ 0: 0,
988
+ 268435456: 'min'
989
+ },
990
+ message_index: {
991
+ 0: 0,
992
+ 4095: 'mask',
993
+ 28672: 'reserved',
994
+ 32768: 'selected'
995
+ },
996
+ gender: {
997
+ 0: 'female',
998
+ 1: 'male'
999
+ },
1000
+ language: {
1001
+ 0: 'english',
1002
+ 1: 'french',
1003
+ 2: 'italian',
1004
+ 3: 'german',
1005
+ 4: 'spanish',
1006
+ 5: 'croatian',
1007
+ 6: 'czech',
1008
+ 7: 'danish',
1009
+ 8: 'dutch',
1010
+ 9: 'finnish',
1011
+ 10: 'greek',
1012
+ 11: 'hungarian',
1013
+ 12: 'norwegian',
1014
+ 13: 'polish',
1015
+ 14: 'portuguese',
1016
+ 15: 'slovakian',
1017
+ 16: 'slovenian',
1018
+ 17: 'swedish',
1019
+ 18: 'russian',
1020
+ 19: 'turkish',
1021
+ 20: 'latvian',
1022
+ 21: 'ukrainian',
1023
+ 22: 'arabic',
1024
+ 23: 'farsi',
1025
+ 24: 'bulgarian',
1026
+ 25: 'romanian',
1027
+ 26: 'chinese',
1028
+ 27: 'japanese',
1029
+ 28: 'korean',
1030
+ 29: 'taiwanese',
1031
+ 30: 'thai',
1032
+ 31: 'hebrew',
1033
+ 32: 'brazilian_portuguese',
1034
+ 33: 'indonesian',
1035
+ 34: 'malaysian',
1036
+ 35: 'vietnamese',
1037
+ 36: 'burmese',
1038
+ 37: 'mongolian',
1039
+ 254: 'custom'
1040
+ },
1041
+ language_bits_0: {
1042
+ 0: 0,
1043
+ 1: 'english',
1044
+ 2: 'french',
1045
+ 4: 'italian',
1046
+ 8: 'german',
1047
+ 16: 'spanish',
1048
+ 32: 'croatian',
1049
+ 64: 'czech',
1050
+ 128: 'danish'
1051
+ },
1052
+ language_bits_1: {
1053
+ 0: 0,
1054
+ 1: 'dutch',
1055
+ 2: 'finnish',
1056
+ 4: 'greek',
1057
+ 8: 'hungarian',
1058
+ 16: 'norwegian',
1059
+ 32: 'polish',
1060
+ 64: 'portuguese',
1061
+ 128: 'slovakian'
1062
+ },
1063
+ language_bits_2: {
1064
+ 0: 0,
1065
+ 1: 'slovenian',
1066
+ 2: 'swedish',
1067
+ 4: 'russian',
1068
+ 8: 'turkish',
1069
+ 16: 'latvian',
1070
+ 32: 'ukrainian',
1071
+ 64: 'arabic',
1072
+ 128: 'farsi'
1073
+ },
1074
+ language_bits_3: {
1075
+ 0: 0,
1076
+ 1: 'bulgarian',
1077
+ 2: 'romanian',
1078
+ 4: 'chinese',
1079
+ 8: 'japanese',
1080
+ 16: 'korean',
1081
+ 32: 'taiwanese',
1082
+ 64: 'thai',
1083
+ 128: 'hebrew'
1084
+ },
1085
+ language_bits_4: {
1086
+ 0: 0,
1087
+ 1: 'brazilian_portuguese',
1088
+ 2: 'indonesian',
1089
+ 4: 'malaysian',
1090
+ 8: 'vietnamese',
1091
+ 16: 'burmese',
1092
+ 32: 'mongolian'
1093
+ },
1094
+ time_zone: {
1095
+ 0: 'almaty',
1096
+ 1: 'bangkok',
1097
+ 2: 'bombay',
1098
+ 3: 'brasilia',
1099
+ 4: 'cairo',
1100
+ 5: 'cape_verde_is',
1101
+ 6: 'darwin',
1102
+ 7: 'eniwetok',
1103
+ 8: 'fiji',
1104
+ 9: 'hong_kong',
1105
+ 10: 'islamabad',
1106
+ 11: 'kabul',
1107
+ 12: 'magadan',
1108
+ 13: 'mid_atlantic',
1109
+ 14: 'moscow',
1110
+ 15: 'muscat',
1111
+ 16: 'newfoundland',
1112
+ 17: 'samoa',
1113
+ 18: 'sydney',
1114
+ 19: 'tehran',
1115
+ 20: 'tokyo',
1116
+ 21: 'us_alaska',
1117
+ 22: 'us_atlantic',
1118
+ 23: 'us_central',
1119
+ 24: 'us_eastern',
1120
+ 25: 'us_hawaii',
1121
+ 26: 'us_mountain',
1122
+ 27: 'us_pacific',
1123
+ 28: 'other',
1124
+ 29: 'auckland',
1125
+ 30: 'kathmandu',
1126
+ 31: 'europe_western_wet',
1127
+ 32: 'europe_central_cet',
1128
+ 33: 'europe_eastern_eet',
1129
+ 34: 'jakarta',
1130
+ 35: 'perth',
1131
+ 36: 'adelaide',
1132
+ 37: 'brisbane',
1133
+ 38: 'tasmania',
1134
+ 39: 'iceland',
1135
+ 40: 'amsterdam',
1136
+ 41: 'athens',
1137
+ 42: 'barcelona',
1138
+ 43: 'berlin',
1139
+ 44: 'brussels',
1140
+ 45: 'budapest',
1141
+ 46: 'copenhagen',
1142
+ 47: 'dublin',
1143
+ 48: 'helsinki',
1144
+ 49: 'lisbon',
1145
+ 50: 'london',
1146
+ 51: 'madrid',
1147
+ 52: 'munich',
1148
+ 53: 'oslo',
1149
+ 54: 'paris',
1150
+ 55: 'prague',
1151
+ 56: 'reykjavik',
1152
+ 57: 'rome',
1153
+ 58: 'stockholm',
1154
+ 59: 'vienna',
1155
+ 60: 'warsaw',
1156
+ 61: 'zurich',
1157
+ 62: 'quebec',
1158
+ 63: 'ontario',
1159
+ 64: 'manitoba',
1160
+ 65: 'saskatchewan',
1161
+ 66: 'alberta',
1162
+ 67: 'british_columbia',
1163
+ 68: 'boise',
1164
+ 69: 'boston',
1165
+ 70: 'chicago',
1166
+ 71: 'dallas',
1167
+ 72: 'denver',
1168
+ 73: 'kansas_city',
1169
+ 74: 'las_vegas',
1170
+ 75: 'los_angeles',
1171
+ 76: 'miami',
1172
+ 77: 'minneapolis',
1173
+ 78: 'new_york',
1174
+ 79: 'new_orleans',
1175
+ 80: 'phoenix',
1176
+ 81: 'santa_fe',
1177
+ 82: 'seattle',
1178
+ 83: 'washington_dc',
1179
+ 84: 'us_arizona',
1180
+ 85: 'chita',
1181
+ 86: 'ekaterinburg',
1182
+ 87: 'irkutsk',
1183
+ 88: 'kaliningrad',
1184
+ 89: 'krasnoyarsk',
1185
+ 90: 'novosibirsk',
1186
+ 91: 'petropavlovsk_kamchatskiy',
1187
+ 92: 'samara',
1188
+ 93: 'vladivostok',
1189
+ 94: 'mexico_central',
1190
+ 95: 'mexico_mountain',
1191
+ 96: 'mexico_pacific',
1192
+ 97: 'cape_town',
1193
+ 98: 'winkhoek',
1194
+ 99: 'lagos',
1195
+ 100: 'riyahd',
1196
+ 101: 'venezuela',
1197
+ 102: 'australia_lh',
1198
+ 103: 'santiago',
1199
+ 253: 'manual',
1200
+ 254: 'automatic'
1201
+ },
1202
+ display_measure: {
1203
+ 0: 'metric',
1204
+ 1: 'statute',
1205
+ 2: 'nautical'
1206
+ },
1207
+ display_heart: {
1208
+ 0: 'bpm',
1209
+ 1: 'max',
1210
+ 2: 'reserve'
1211
+ },
1212
+ display_power: {
1213
+ 0: 'watts',
1214
+ 1: 'percent_ftp'
1215
+ },
1216
+ display_position: {
1217
+ 0: 'degree',
1218
+ 1: 'degree_minute',
1219
+ 2: 'degree_minute_second',
1220
+ 3: 'austrian_grid',
1221
+ 4: 'british_grid',
1222
+ 5: 'dutch_grid',
1223
+ 6: 'hungarian_grid',
1224
+ 7: 'finnish_grid',
1225
+ 8: 'german_grid',
1226
+ 9: 'icelandic_grid',
1227
+ 10: 'indonesian_equatorial',
1228
+ 11: 'indonesian_irian',
1229
+ 12: 'indonesian_southern',
1230
+ 13: 'india_zone_0',
1231
+ 14: 'india_zone_IA',
1232
+ 15: 'india_zone_IB',
1233
+ 16: 'india_zone_IIA',
1234
+ 17: 'india_zone_IIB',
1235
+ 18: 'india_zone_IIIA',
1236
+ 19: 'india_zone_IIIB',
1237
+ 20: 'india_zone_IVA',
1238
+ 21: 'india_zone_IVB',
1239
+ 22: 'irish_transverse',
1240
+ 23: 'irish_grid',
1241
+ 24: 'loran',
1242
+ 25: 'maidenhead_grid',
1243
+ 26: 'mgrs_grid',
1244
+ 27: 'new_zealand_grid',
1245
+ 28: 'new_zealand_transverse',
1246
+ 29: 'qatar_grid',
1247
+ 30: 'modified_swedish_grid',
1248
+ 31: 'swedish_grid',
1249
+ 32: 'south_african_grid',
1250
+ 33: 'swiss_grid',
1251
+ 34: 'taiwan_grid',
1252
+ 35: 'united_states_grid',
1253
+ 36: 'utm_ups_grid',
1254
+ 37: 'west_malayan',
1255
+ 38: 'borneo_rso',
1256
+ 39: 'estonian_grid',
1257
+ 40: 'latvian_grid',
1258
+ 41: 'swedish_ref_99_grid'
1259
+ },
1260
+ 'switch': {
1261
+ 0: 'off',
1262
+ 1: 'on',
1263
+ 2: 'auto'
1264
+ },
1265
+ sport: {
1266
+ 0: 'generic',
1267
+ 1: 'running',
1268
+ 2: 'cycling',
1269
+ 3: 'transition',
1270
+ 4: 'fitness_equipment',
1271
+ 5: 'swimming',
1272
+ 6: 'basketball',
1273
+ 7: 'soccer',
1274
+ 8: 'tennis',
1275
+ 9: 'american_football',
1276
+ 10: 'training',
1277
+ 11: 'walking',
1278
+ 12: 'cross_country_skiing',
1279
+ 13: 'alpine_skiing',
1280
+ 14: 'snowboarding',
1281
+ 15: 'rowing',
1282
+ 16: 'mountaineering',
1283
+ 17: 'hiking',
1284
+ 18: 'multisport',
1285
+ 19: 'paddling',
1286
+ 20: 'flying',
1287
+ 21: 'e_biking',
1288
+ 22: 'motorcycling',
1289
+ 23: 'boating',
1290
+ 24: 'driving',
1291
+ 25: 'golf',
1292
+ 26: 'hang_gliding',
1293
+ 27: 'horseback_riding',
1294
+ 28: 'hunting',
1295
+ 29: 'fishing',
1296
+ 30: 'inline_skating',
1297
+ 31: 'rock_climbing',
1298
+ 32: 'sailing',
1299
+ 33: 'ice_skating',
1300
+ 34: 'sky_diving',
1301
+ 35: 'snowshoeing',
1302
+ 36: 'snowmobiling',
1303
+ 37: 'stand_up_paddleboarding',
1304
+ 38: 'surfing',
1305
+ 39: 'wakeboarding',
1306
+ 40: 'water_skiing',
1307
+ 41: 'kayaking',
1308
+ 42: 'rafting',
1309
+ 43: 'windsurfing',
1310
+ 44: 'kitesurfing',
1311
+ 45: 'tactical',
1312
+ 46: 'jumpmaster',
1313
+ 47: 'boxing',
1314
+ 48: 'floor_climbing',
1315
+ 53: 'diving',
1316
+ 254: 'all'
1317
+ },
1318
+ sport_bits_0: {
1319
+ 0: 0,
1320
+ 1: 'generic',
1321
+ 2: 'running',
1322
+ 4: 'cycling',
1323
+ 8: 'transition',
1324
+ 16: 'fitness_equipment',
1325
+ 32: 'swimming',
1326
+ 64: 'basketball',
1327
+ 128: 'soccer'
1328
+ },
1329
+ sport_bits_1: {
1330
+ 0: 0,
1331
+ 1: 'tennis',
1332
+ 2: 'american_football',
1333
+ 4: 'training',
1334
+ 8: 'walking',
1335
+ 16: 'cross_country_skiing',
1336
+ 32: 'alpine_skiing',
1337
+ 64: 'snowboarding',
1338
+ 128: 'rowing'
1339
+ },
1340
+ sport_bits_2: {
1341
+ 0: 0,
1342
+ 1: 'mountaineering',
1343
+ 2: 'hiking',
1344
+ 4: 'multisport',
1345
+ 8: 'paddling',
1346
+ 16: 'flying',
1347
+ 32: 'e_biking',
1348
+ 64: 'motorcycling',
1349
+ 128: 'boating'
1350
+ },
1351
+ sport_bits_3: {
1352
+ 0: 0,
1353
+ 1: 'driving',
1354
+ 2: 'golf',
1355
+ 4: 'hang_gliding',
1356
+ 8: 'horseback_riding',
1357
+ 16: 'hunting',
1358
+ 32: 'fishing',
1359
+ 64: 'inline_skating',
1360
+ 128: 'rock_climbing'
1361
+ },
1362
+ sport_bits_4: {
1363
+ 0: 0,
1364
+ 1: 'sailing',
1365
+ 2: 'ice_skating',
1366
+ 4: 'sky_diving',
1367
+ 8: 'snowshoeing',
1368
+ 16: 'snowmobiling',
1369
+ 32: 'stand_up_paddleboarding',
1370
+ 64: 'surfing',
1371
+ 128: 'wakeboarding'
1372
+ },
1373
+ sport_bits_5: {
1374
+ 0: 0,
1375
+ 1: 'water_skiing',
1376
+ 2: 'kayaking',
1377
+ 4: 'rafting',
1378
+ 8: 'windsurfing',
1379
+ 16: 'kitesurfing',
1380
+ 32: 'tactical',
1381
+ 64: 'jumpmaster',
1382
+ 128: 'boxing'
1383
+ },
1384
+ sport_bits_6: {
1385
+ 0: 0,
1386
+ 1: 'floor_climbing'
1387
+ },
1388
+ sub_sport: {
1389
+ 0: 'generic',
1390
+ 1: 'treadmill',
1391
+ 2: 'street',
1392
+ 3: 'trail',
1393
+ 4: 'track',
1394
+ 5: 'spin',
1395
+ 6: 'indoor_cycling',
1396
+ 7: 'road',
1397
+ 8: 'mountain',
1398
+ 9: 'downhill',
1399
+ 10: 'recumbent',
1400
+ 11: 'cyclocross',
1401
+ 12: 'hand_cycling',
1402
+ 13: 'track_cycling',
1403
+ 14: 'indoor_rowing',
1404
+ 15: 'elliptical',
1405
+ 16: 'stair_climbing',
1406
+ 17: 'lap_swimming',
1407
+ 18: 'open_water',
1408
+ 19: 'flexibility_training',
1409
+ 20: 'strength_training',
1410
+ 21: 'warm_up',
1411
+ 22: 'match',
1412
+ 23: 'exercise',
1413
+ 24: 'challenge',
1414
+ 25: 'indoor_skiing',
1415
+ 26: 'cardio_training',
1416
+ 27: 'indoor_walking',
1417
+ 28: 'e_bike_fitness',
1418
+ 29: 'bmx',
1419
+ 30: 'casual_walking',
1420
+ 31: 'speed_walking',
1421
+ 32: 'bike_to_run_transition',
1422
+ 33: 'run_to_bike_transition',
1423
+ 34: 'swim_to_bike_transition',
1424
+ 35: 'atv',
1425
+ 36: 'motocross',
1426
+ 37: 'backcountry',
1427
+ 38: 'resort',
1428
+ 39: 'rc_drone',
1429
+ 40: 'wingsuit',
1430
+ 41: 'whitewater',
1431
+ 42: 'skate_skiing',
1432
+ 43: 'yoga',
1433
+ 44: 'pilates',
1434
+ 45: 'indoor_running',
1435
+ 46: 'gravel_cycling',
1436
+ 47: 'e_bike_mountain',
1437
+ 48: 'commuting',
1438
+ 49: 'mixed_surface',
1439
+ 50: 'navigate',
1440
+ 51: 'track_me',
1441
+ 52: 'map',
1442
+ 53: 'single_gas_diving',
1443
+ 54: 'multi_gas_diving',
1444
+ 55: 'gauge_diving',
1445
+ 56: 'apnea_diving',
1446
+ 57: 'apnea_hunting',
1447
+ 58: 'virtual_activity',
1448
+ 59: 'obstacle',
1449
+ 254: 'all'
1450
+ },
1451
+ sport_event: {
1452
+ 0: 'uncategorized',
1453
+ 1: 'geocaching',
1454
+ 2: 'fitness',
1455
+ 3: 'recreation',
1456
+ 4: 'race',
1457
+ 5: 'special_event',
1458
+ 6: 'training',
1459
+ 7: 'transportation',
1460
+ 8: 'touring'
1461
+ },
1462
+ activity: {
1463
+ 0: 'manual',
1464
+ 1: 'auto_multi_sport'
1465
+ },
1466
+ intensity: {
1467
+ 0: 'active',
1468
+ 1: 'rest',
1469
+ 2: 'warmup',
1470
+ 3: 'cooldown'
1471
+ },
1472
+ session_trigger: {
1473
+ 0: 'activity_end',
1474
+ 1: 'manual',
1475
+ 2: 'auto_multi_sport',
1476
+ 3: 'fitness_equipment'
1477
+ },
1478
+ autolap_trigger: {
1479
+ 0: 'time',
1480
+ 1: 'distance',
1481
+ 2: 'position_start',
1482
+ 3: 'position_lap',
1483
+ 4: 'position_waypoint',
1484
+ 5: 'position_marked',
1485
+ 6: 'off'
1486
+ },
1487
+ lap_trigger: {
1488
+ 0: 'manual',
1489
+ 1: 'time',
1490
+ 2: 'distance',
1491
+ 3: 'position_start',
1492
+ 4: 'position_lap',
1493
+ 5: 'position_waypoint',
1494
+ 6: 'position_marked',
1495
+ 7: 'session_end',
1496
+ 8: 'fitness_equipment'
1497
+ },
1498
+ time_mode: {
1499
+ 0: 'hour12',
1500
+ 1: 'hour24',
1501
+ 2: 'military',
1502
+ 3: 'hour_12_with_seconds',
1503
+ 4: 'hour_24_with_seconds',
1504
+ 5: 'utc'
1505
+ },
1506
+ backlight_mode: {
1507
+ 0: 'off',
1508
+ 1: 'manual',
1509
+ 2: 'key_and_messages',
1510
+ 3: 'auto_brightness',
1511
+ 4: 'smart_notifications',
1512
+ 5: 'key_and_messages_night',
1513
+ 6: 'key_and_messages_and_smart_notifications'
1514
+ },
1515
+ date_mode: {
1516
+ 0: 'day_month',
1517
+ 1: 'month_day'
1518
+ },
1519
+ backlight_timeout: {
1520
+ 0: 'infinite'
1521
+ },
1522
+ event: {
1523
+ 0: 'timer',
1524
+ 3: 'workout',
1525
+ 4: 'workout_step',
1526
+ 5: 'power_down',
1527
+ 6: 'power_up',
1528
+ 7: 'off_course',
1529
+ 8: 'session',
1530
+ 9: 'lap',
1531
+ 10: 'course_point',
1532
+ 11: 'battery',
1533
+ 12: 'virtual_partner_pace',
1534
+ 13: 'hr_high_alert',
1535
+ 14: 'hr_low_alert',
1536
+ 15: 'speed_high_alert',
1537
+ 16: 'speed_low_alert',
1538
+ 17: 'cad_high_alert',
1539
+ 18: 'cad_low_alert',
1540
+ 19: 'power_high_alert',
1541
+ 20: 'power_low_alert',
1542
+ 21: 'recovery_hr',
1543
+ 22: 'battery_low',
1544
+ 23: 'time_duration_alert',
1545
+ 24: 'distance_duration_alert',
1546
+ 25: 'calorie_duration_alert',
1547
+ 26: 'activity',
1548
+ 27: 'fitness_equipment',
1549
+ 28: 'length',
1550
+ 32: 'user_marker',
1551
+ 33: 'sport_point',
1552
+ 36: 'calibration',
1553
+ 42: 'front_gear_change',
1554
+ 43: 'rear_gear_change',
1555
+ 44: 'rider_position_change',
1556
+ 45: 'elev_high_alert',
1557
+ 46: 'elev_low_alert',
1558
+ 47: 'comm_timeout'
1559
+ },
1560
+ event_type: {
1561
+ 0: 'start',
1562
+ 1: 'stop',
1563
+ 2: 'consecutive_depreciated',
1564
+ 3: 'marker',
1565
+ 4: 'stop_all',
1566
+ 5: 'begin_depreciated',
1567
+ 6: 'end_depreciated',
1568
+ 7: 'end_all_depreciated',
1569
+ 8: 'stop_disable',
1570
+ 9: 'stop_disable_all'
1571
+ },
1572
+ timer_trigger: {
1573
+ 0: 'manual',
1574
+ 1: 'auto',
1575
+ 2: 'fitness_equipment'
1576
+ },
1577
+ fitness_equipment_state: {
1578
+ 0: 'ready',
1579
+ 1: 'in_use',
1580
+ 2: 'paused',
1581
+ 3: 'unknown'
1582
+ },
1583
+ tone: {
1584
+ 0: 'off',
1585
+ 1: 'tone',
1586
+ 2: 'vibrate',
1587
+ 3: 'tone_and_vibrate'
1588
+ },
1589
+ autoscroll: {
1590
+ 0: 'none',
1591
+ 1: 'slow',
1592
+ 2: 'medium',
1593
+ 3: 'fast'
1594
+ },
1595
+ activity_class: {
1596
+ 0: 0,
1597
+ 100: 'level_max',
1598
+ 127: 'level',
1599
+ 128: 'athlete'
1600
+ },
1601
+ hr_zone_calc: {
1602
+ 0: 'custom',
1603
+ 1: 'percent_max_hr',
1604
+ 2: 'percent_hrr'
1605
+ },
1606
+ pwr_zone_calc: {
1607
+ 0: 'custom',
1608
+ 1: 'percent_ftp'
1609
+ },
1610
+ wkt_step_duration: {
1611
+ 0: 'time',
1612
+ 1: 'distance',
1613
+ 2: 'hr_less_than',
1614
+ 3: 'hr_greater_than',
1615
+ 4: 'calories',
1616
+ 5: 'open',
1617
+ 6: 'repeat_until_steps_cmplt',
1618
+ 7: 'repeat_until_time',
1619
+ 8: 'repeat_until_distance',
1620
+ 9: 'repeat_until_calories',
1621
+ 10: 'repeat_until_hr_less_than',
1622
+ 11: 'repeat_until_hr_greater_than',
1623
+ 12: 'repeat_until_power_less_than',
1624
+ 13: 'repeat_until_power_greater_than',
1625
+ 14: 'power_less_than',
1626
+ 15: 'power_greater_than',
1627
+ 16: 'training_peaks_tss',
1628
+ 17: 'repeat_until_power_last_lap_less_than',
1629
+ 18: 'repeat_until_max_power_last_lap_less_than',
1630
+ 19: 'power_3s_less_than',
1631
+ 20: 'power_10s_less_than',
1632
+ 21: 'power_30s_less_than',
1633
+ 22: 'power_3s_greater_than',
1634
+ 23: 'power_10s_greater_than',
1635
+ 24: 'power_30s_greater_than',
1636
+ 25: 'power_lap_less_than',
1637
+ 26: 'power_lap_greater_than',
1638
+ 27: 'repeat_until_training_peaks_tss',
1639
+ 28: 'repetition_time',
1640
+ 29: 'reps'
1641
+ },
1642
+ wkt_step_target: {
1643
+ 0: 'speed',
1644
+ 1: 'heart_rate',
1645
+ 2: 'open',
1646
+ 3: 'cadence',
1647
+ 4: 'power',
1648
+ 5: 'grade',
1649
+ 6: 'resistance',
1650
+ 7: 'power_3s',
1651
+ 8: 'power_10s',
1652
+ 9: 'power_30s',
1653
+ 10: 'power_lap',
1654
+ 11: 'swim_stroke',
1655
+ 12: 'speed_lap',
1656
+ 13: 'heart_rate_lap'
1657
+ },
1658
+ goal: {
1659
+ 0: 'time',
1660
+ 1: 'distance',
1661
+ 2: 'calories',
1662
+ 3: 'frequency',
1663
+ 4: 'steps',
1664
+ 5: 'ascent',
1665
+ 6: 'active_minutes'
1666
+ },
1667
+ goal_recurrence: {
1668
+ 0: 'off',
1669
+ 1: 'daily',
1670
+ 2: 'weekly',
1671
+ 3: 'monthly',
1672
+ 4: 'yearly',
1673
+ 5: 'custom'
1674
+ },
1675
+ goal_source: {
1676
+ 0: 'auto',
1677
+ 1: 'community',
1678
+ 2: 'user'
1679
+ },
1680
+ schedule: {
1681
+ 0: 'workout',
1682
+ 1: 'course'
1683
+ },
1684
+ course_point: {
1685
+ 0: 'generic',
1686
+ 1: 'summit',
1687
+ 2: 'valley',
1688
+ 3: 'water',
1689
+ 4: 'food',
1690
+ 5: 'danger',
1691
+ 6: 'left',
1692
+ 7: 'right',
1693
+ 8: 'straight',
1694
+ 9: 'first_aid',
1695
+ 10: 'fourth_category',
1696
+ 11: 'third_category',
1697
+ 12: 'second_category',
1698
+ 13: 'first_category',
1699
+ 14: 'hors_category',
1700
+ 15: 'sprint',
1701
+ 16: 'left_fork',
1702
+ 17: 'right_fork',
1703
+ 18: 'middle_fork',
1704
+ 19: 'slight_left',
1705
+ 20: 'sharp_left',
1706
+ 21: 'slight_right',
1707
+ 22: 'sharp_right',
1708
+ 23: 'u_turn',
1709
+ 24: 'segment_start',
1710
+ 25: 'segment_end'
1711
+ },
1712
+ manufacturer: {
1713
+ 0: 0,
1714
+ 1: 'garmin',
1715
+ 2: 'garmin_fr405_antfs',
1716
+ 3: 'zephyr',
1717
+ 4: 'dayton',
1718
+ 5: 'idt',
1719
+ 6: 'srm',
1720
+ 7: 'quarq',
1721
+ 8: 'ibike',
1722
+ 9: 'saris',
1723
+ 10: 'spark_hk',
1724
+ 11: 'tanita',
1725
+ 12: 'echowell',
1726
+ 13: 'dynastream_oem',
1727
+ 14: 'nautilus',
1728
+ 15: 'dynastream',
1729
+ 16: 'timex',
1730
+ 17: 'metrigear',
1731
+ 18: 'xelic',
1732
+ 19: 'beurer',
1733
+ 20: 'cardiosport',
1734
+ 21: 'a_and_d',
1735
+ 22: 'hmm',
1736
+ 23: 'suunto',
1737
+ 24: 'thita_elektronik',
1738
+ 25: 'gpulse',
1739
+ 26: 'clean_mobile',
1740
+ 27: 'pedal_brain',
1741
+ 28: 'peaksware',
1742
+ 29: 'saxonar',
1743
+ 30: 'lemond_fitness',
1744
+ 31: 'dexcom',
1745
+ 32: 'wahoo_fitness',
1746
+ 33: 'octane_fitness',
1747
+ 34: 'archinoetics',
1748
+ 35: 'the_hurt_box',
1749
+ 36: 'citizen_systems',
1750
+ 37: 'magellan',
1751
+ 38: 'osynce',
1752
+ 39: 'holux',
1753
+ 40: 'concept2',
1754
+ 42: 'one_giant_leap',
1755
+ 43: 'ace_sensor',
1756
+ 44: 'brim_brothers',
1757
+ 45: 'xplova',
1758
+ 46: 'perception_digital',
1759
+ 47: 'bf1systems',
1760
+ 48: 'pioneer',
1761
+ 49: 'spantec',
1762
+ 50: 'metalogics',
1763
+ 51: '4iiiis',
1764
+ 52: 'seiko_epson',
1765
+ 53: 'seiko_epson_oem',
1766
+ 54: 'ifor_powell',
1767
+ 55: 'maxwell_guider',
1768
+ 56: 'star_trac',
1769
+ 57: 'breakaway',
1770
+ 58: 'alatech_technology_ltd',
1771
+ 59: 'mio_technology_europe',
1772
+ 60: 'rotor',
1773
+ 61: 'geonaute',
1774
+ 62: 'id_bike',
1775
+ 63: 'specialized',
1776
+ 64: 'wtek',
1777
+ 65: 'physical_enterprises',
1778
+ 66: 'north_pole_engineering',
1779
+ 67: 'bkool',
1780
+ 68: 'cateye',
1781
+ 69: 'stages_cycling',
1782
+ 70: 'sigmasport',
1783
+ 71: 'tomtom',
1784
+ 72: 'peripedal',
1785
+ 73: 'wattbike',
1786
+ 76: 'moxy',
1787
+ 77: 'ciclosport',
1788
+ 78: 'powerbahn',
1789
+ 79: 'acorn_projects_aps',
1790
+ 80: 'lifebeam',
1791
+ 81: 'bontrager',
1792
+ 82: 'wellgo',
1793
+ 83: 'scosche',
1794
+ 84: 'magura',
1795
+ 85: 'woodway',
1796
+ 86: 'elite',
1797
+ 87: 'nielsen_kellerman',
1798
+ 88: 'dk_city',
1799
+ 89: 'tacx',
1800
+ 90: 'direction_technology',
1801
+ 91: 'magtonic',
1802
+ 92: '1partcarbon',
1803
+ 93: 'inside_ride_technologies',
1804
+ 94: 'sound_of_motion',
1805
+ 95: 'stryd',
1806
+ 96: 'icg',
1807
+ 97: 'mipulse',
1808
+ 98: 'bsx_athletics',
1809
+ 99: 'look',
1810
+ 100: 'campagnolo_srl',
1811
+ 101: 'body_bike_smart',
1812
+ 102: 'praxisworks',
1813
+ 103: 'limits_technology',
1814
+ 104: 'topaction_technology',
1815
+ 105: 'cosinuss',
1816
+ 106: 'fitcare',
1817
+ 107: 'magene',
1818
+ 108: 'giant_manufacturing_co',
1819
+ 109: 'tigrasport',
1820
+ 110: 'salutron',
1821
+ 111: 'technogym',
1822
+ 112: 'bryton_sensors',
1823
+ 113: 'latitude_limited',
1824
+ 114: 'soaring_technology',
1825
+ 115: 'igpsport',
1826
+ 116: 'thinkrider',
1827
+ 117: 'gopher_sport',
1828
+ 118: 'waterrower',
1829
+ 119: 'orangetheory',
1830
+ 120: 'inpeak',
1831
+ 121: 'kinetic',
1832
+ 122: 'johnson_health_tech',
1833
+ 123: 'polar_electro',
1834
+ 124: 'seesense',
1835
+ 125: 'nci_technology',
1836
+ 255: 'development',
1837
+ 257: 'healthandlife',
1838
+ 258: 'lezyne',
1839
+ 259: 'scribe_labs',
1840
+ 260: 'zwift',
1841
+ 261: 'watteam',
1842
+ 262: 'recon',
1843
+ 263: 'favero_electronics',
1844
+ 264: 'dynovelo',
1845
+ 265: 'strava',
1846
+ 266: 'precor',
1847
+ 267: 'bryton',
1848
+ 268: 'sram',
1849
+ 269: 'navman',
1850
+ 270: 'cobi',
1851
+ 271: 'spivi',
1852
+ 272: 'mio_magellan',
1853
+ 273: 'evesports',
1854
+ 274: 'sensitivus_gauge',
1855
+ 275: 'podoon',
1856
+ 276: 'life_time_fitness',
1857
+ 277: 'falco_e_motors',
1858
+ 278: 'minoura',
1859
+ 279: 'cycliq',
1860
+ 280: 'luxottica',
1861
+ 281: 'trainer_road',
1862
+ 282: 'the_sufferfest',
1863
+ 283: 'fullspeedahead',
1864
+ 284: 'virtualtraining',
1865
+ 285: 'feedbacksports',
1866
+ 286: 'omata',
1867
+ 287: 'vdo',
1868
+ 288: 'magneticdays',
1869
+ 289: 'hammerhead',
1870
+ 290: 'kinetic_by_kurt',
1871
+ 291: 'shapelog',
1872
+ 292: 'dabuziduo',
1873
+ 293: 'jetblack',
1874
+ 294: 'coros',
1875
+ 295: 'virtugo',
1876
+ 296: 'velosense',
1877
+ 5759: 'actigraphcorp'
1878
+ },
1879
+ garmin_product: {
1880
+ 0: 'hrm_bike',
1881
+ 1: 'hrm1',
1882
+ 2: 'axh01',
1883
+ 3: 'axb01',
1884
+ 4: 'axb02',
1885
+ 5: 'hrm2ss',
1886
+ 6: 'dsi_alf02',
1887
+ 7: 'hrm3ss',
1888
+ 8: 'hrm_run_single_byte_product_id',
1889
+ 9: 'bsm',
1890
+ 10: 'bcm',
1891
+ 11: 'axs01',
1892
+ 12: 'hrm_tri_single_byte_product_id',
1893
+ 14: 'fr225_single_byte_product_id',
1894
+ 473: 'fr301_china',
1895
+ 474: 'fr301_japan',
1896
+ 475: 'fr301_korea',
1897
+ 494: 'fr301_taiwan',
1898
+ 717: 'fr405',
1899
+ 782: 'fr50',
1900
+ 987: 'fr405_japan',
1901
+ 988: 'fr60',
1902
+ 1011: 'dsi_alf01',
1903
+ 1018: 'fr310xt',
1904
+ 1036: 'edge500',
1905
+ 1124: 'fr110',
1906
+ 1169: 'edge800',
1907
+ 1199: 'edge500_taiwan',
1908
+ 1213: 'edge500_japan',
1909
+ 1253: 'chirp',
1910
+ 1274: 'fr110_japan',
1911
+ 1325: 'edge200',
1912
+ 1328: 'fr910xt',
1913
+ 1333: 'edge800_taiwan',
1914
+ 1334: 'edge800_japan',
1915
+ 1341: 'alf04',
1916
+ 1345: 'fr610',
1917
+ 1360: 'fr210_japan',
1918
+ 1380: 'vector_ss',
1919
+ 1381: 'vector_cp',
1920
+ 1386: 'edge800_china',
1921
+ 1387: 'edge500_china',
1922
+ 1410: 'fr610_japan',
1923
+ 1422: 'edge500_korea',
1924
+ 1436: 'fr70',
1925
+ 1446: 'fr310xt_4t',
1926
+ 1461: 'amx',
1927
+ 1482: 'fr10',
1928
+ 1497: 'edge800_korea',
1929
+ 1499: 'swim',
1930
+ 1537: 'fr910xt_china',
1931
+ 1551: 'fenix',
1932
+ 1555: 'edge200_taiwan',
1933
+ 1561: 'edge510',
1934
+ 1567: 'edge810',
1935
+ 1570: 'tempe',
1936
+ 1600: 'fr910xt_japan',
1937
+ 1623: 'fr620',
1938
+ 1632: 'fr220',
1939
+ 1664: 'fr910xt_korea',
1940
+ 1688: 'fr10_japan',
1941
+ 1721: 'edge810_japan',
1942
+ 1735: 'virb_elite',
1943
+ 1736: 'edge_touring',
1944
+ 1742: 'edge510_japan',
1945
+ 1743: 'hrm_tri',
1946
+ 1752: 'hrm_run',
1947
+ 1765: 'fr920xt',
1948
+ 1821: 'edge510_asia',
1949
+ 1822: 'edge810_china',
1950
+ 1823: 'edge810_taiwan',
1951
+ 1836: 'edge1000',
1952
+ 1837: 'vivo_fit',
1953
+ 1853: 'virb_remote',
1954
+ 1885: 'vivo_ki',
1955
+ 1903: 'fr15',
1956
+ 1907: 'vivo_active',
1957
+ 1918: 'edge510_korea',
1958
+ 1928: 'fr620_japan',
1959
+ 1929: 'fr620_china',
1960
+ 1930: 'fr220_japan',
1961
+ 1931: 'fr220_china',
1962
+ 1936: 'approach_s6',
1963
+ 1956: 'vivo_smart',
1964
+ 1967: 'fenix2',
1965
+ 1988: 'epix',
1966
+ 2050: 'fenix3',
1967
+ 2052: 'edge1000_taiwan',
1968
+ 2053: 'edge1000_japan',
1969
+ 2061: 'fr15_japan',
1970
+ 2067: 'edge520',
1971
+ 2070: 'edge1000_china',
1972
+ 2072: 'fr620_russia',
1973
+ 2073: 'fr220_russia',
1974
+ 2079: 'vector_s',
1975
+ 2100: 'edge1000_korea',
1976
+ 2130: 'fr920xt_taiwan',
1977
+ 2131: 'fr920xt_china',
1978
+ 2132: 'fr920xt_japan',
1979
+ 2134: 'virbx',
1980
+ 2135: 'vivo_smart_apac',
1981
+ 2140: 'etrex_touch',
1982
+ 2147: 'edge25',
1983
+ 2148: 'fr25',
1984
+ 2150: 'vivo_fit2',
1985
+ 2153: 'fr225',
1986
+ 2156: 'fr630',
1987
+ 2157: 'fr230',
1988
+ 2158: 'fr735xt',
1989
+ 2160: 'vivo_active_apac',
1990
+ 2161: 'vector_2',
1991
+ 2162: 'vector_2s',
1992
+ 2172: 'virbxe',
1993
+ 2173: 'fr620_taiwan',
1994
+ 2174: 'fr220_taiwan',
1995
+ 2175: 'truswing',
1996
+ 2188: 'fenix3_china',
1997
+ 2189: 'fenix3_twn',
1998
+ 2192: 'varia_headlight',
1999
+ 2193: 'varia_taillight_old',
2000
+ 2204: 'edge_explore_1000',
2001
+ 2219: 'fr225_asia',
2002
+ 2225: 'varia_radar_taillight',
2003
+ 2226: 'varia_radar_display',
2004
+ 2238: 'edge20',
2005
+ 2262: 'd2_bravo',
2006
+ 2266: 'approach_s20',
2007
+ 2276: 'varia_remote',
2008
+ 2327: 'hrm4_run',
2009
+ 2337: 'vivo_active_hr',
2010
+ 2348: 'vivo_smart_hr',
2011
+ 2368: 'vivo_move',
2012
+ 2398: 'varia_vision',
2013
+ 2406: 'vivo_fit3',
2014
+ 2413: 'fenix3_hr',
2015
+ 2417: 'virb_ultra_30',
2016
+ 2429: 'index_smart_scale',
2017
+ 2431: 'fr235',
2018
+ 2432: 'fenix3_chronos',
2019
+ 2441: 'oregon7xx',
2020
+ 2444: 'rino7xx',
2021
+ 2496: 'nautix',
2022
+ 2530: 'edge_820',
2023
+ 2531: 'edge_explore_820',
2024
+ 2544: 'fenix5s',
2025
+ 2547: 'd2_bravo_titanium',
2026
+ 2567: 'varia_ut800',
2027
+ 2593: 'running_dynamics_pod',
2028
+ 2604: 'fenix5x',
2029
+ 2606: 'vivo_fit_jr',
2030
+ 2691: 'fr935',
2031
+ 2697: 'fenix5',
2032
+ 2859: 'descent',
2033
+ 10007: 'sdm4',
2034
+ 10014: 'edge_remote',
2035
+ 20119: 'training_center',
2036
+ 65531: 'connectiq_simulator',
2037
+ 65532: 'android_antplus_plugin',
2038
+ 65534: 'connect'
2039
+ },
2040
+ antplus_device_type: {
2041
+ 0: 0,
2042
+ 1: 'antfs',
2043
+ 11: 'bike_power',
2044
+ 12: 'environment_sensor_legacy',
2045
+ 15: 'multi_sport_speed_distance',
2046
+ 16: 'control',
2047
+ 17: 'fitness_equipment',
2048
+ 18: 'blood_pressure',
2049
+ 19: 'geocache_node',
2050
+ 20: 'light_electric_vehicle',
2051
+ 25: 'env_sensor',
2052
+ 26: 'racquet',
2053
+ 27: 'control_hub',
2054
+ 31: 'muscle_oxygen',
2055
+ 35: 'bike_light_main',
2056
+ 36: 'bike_light_shared',
2057
+ 38: 'exd',
2058
+ 40: 'bike_radar',
2059
+ 119: 'weight_scale',
2060
+ 120: 'heart_rate',
2061
+ 121: 'bike_speed_cadence',
2062
+ 122: 'bike_cadence',
2063
+ 123: 'bike_speed',
2064
+ 124: 'stride_speed_distance'
2065
+ },
2066
+ ant_network: {
2067
+ 0: 'public',
2068
+ 1: 'antplus',
2069
+ 2: 'antfs',
2070
+ 3: 'private'
2071
+ },
2072
+ workout_capabilities: {
2073
+ 0: 0,
2074
+ 1: 'interval',
2075
+ 2: 'custom',
2076
+ 4: 'fitness_equipment',
2077
+ 8: 'firstbeat',
2078
+ 16: 'new_leaf',
2079
+ 32: 'tcx',
2080
+ 128: 'speed',
2081
+ 256: 'heart_rate',
2082
+ 512: 'distance',
2083
+ 1024: 'cadence',
2084
+ 2048: 'power',
2085
+ 4096: 'grade',
2086
+ 8192: 'resistance',
2087
+ 16384: 'protected'
2088
+ },
2089
+ battery_status: {
2090
+ 0: 0,
2091
+ 1: 'new',
2092
+ 2: 'good',
2093
+ 3: 'ok',
2094
+ 4: 'low',
2095
+ 5: 'critical',
2096
+ 6: 'charging',
2097
+ 7: 'unknown'
2098
+ },
2099
+ hr_type: {
2100
+ 0: 'normal',
2101
+ 1: 'irregular'
2102
+ },
2103
+ course_capabilities: {
2104
+ 0: 0,
2105
+ 1: 'processed',
2106
+ 2: 'valid',
2107
+ 4: 'time',
2108
+ 8: 'distance',
2109
+ 16: 'position',
2110
+ 32: 'heart_rate',
2111
+ 64: 'power',
2112
+ 128: 'cadence',
2113
+ 256: 'training',
2114
+ 512: 'navigation',
2115
+ 1024: 'bikeway'
2116
+ },
2117
+ weight: {
2118
+ 0: 0,
2119
+ 65534: 'calculating'
2120
+ },
2121
+ workout_hr: {
2122
+ 0: 0,
2123
+ 100: 'bpm_offset'
2124
+ },
2125
+ workout_power: {
2126
+ 0: 0,
2127
+ 1000: 'watts_offset'
2128
+ },
2129
+ bp_status: {
2130
+ 0: 'no_error',
2131
+ 1: 'error_incomplete_data',
2132
+ 2: 'error_no_measurement',
2133
+ 3: 'error_data_out_of_range',
2134
+ 4: 'error_irregular_heart_rate'
2135
+ },
2136
+ user_local_id: {
2137
+ 0: 'local_min',
2138
+ 15: 'local_max',
2139
+ 16: 'stationary_min',
2140
+ 255: 'stationary_max',
2141
+ 256: 'portable_min',
2142
+ 65534: 'portable_max'
2143
+ },
2144
+ swim_stroke: {
2145
+ 0: 'freestyle',
2146
+ 1: 'backstroke',
2147
+ 2: 'breaststroke',
2148
+ 3: 'butterfly',
2149
+ 4: 'drill',
2150
+ 5: 'mixed',
2151
+ 6: 'im'
2152
+ },
2153
+ activity_type: {
2154
+ 0: 'generic',
2155
+ 1: 'running',
2156
+ 2: 'cycling',
2157
+ 3: 'transition',
2158
+ 4: 'fitness_equipment',
2159
+ 5: 'swimming',
2160
+ 6: 'walking',
2161
+ 8: 'sedentary',
2162
+ 254: 'all'
2163
+ },
2164
+ activity_subtype: {
2165
+ 0: 'generic',
2166
+ 1: 'treadmill',
2167
+ 2: 'street',
2168
+ 3: 'trail',
2169
+ 4: 'track',
2170
+ 5: 'spin',
2171
+ 6: 'indoor_cycling',
2172
+ 7: 'road',
2173
+ 8: 'mountain',
2174
+ 9: 'downhill',
2175
+ 10: 'recumbent',
2176
+ 11: 'cyclocross',
2177
+ 12: 'hand_cycling',
2178
+ 13: 'track_cycling',
2179
+ 14: 'indoor_rowing',
2180
+ 15: 'elliptical',
2181
+ 16: 'stair_climbing',
2182
+ 17: 'lap_swimming',
2183
+ 18: 'open_water',
2184
+ 254: 'all'
2185
+ },
2186
+ activity_level: {
2187
+ 0: 'low',
2188
+ 1: 'medium',
2189
+ 2: 'high'
2190
+ },
2191
+ side: {
2192
+ 0: 'right',
2193
+ 1: 'left'
2194
+ },
2195
+ left_right_balance: {
2196
+ 0: 0,
2197
+ 127: 'mask',
2198
+ 128: 'right'
2199
+ },
2200
+ left_right_balance_100: {
2201
+ 0: 0,
2202
+ 16383: 'mask',
2203
+ 32768: 'right'
2204
+ },
2205
+ length_type: {
2206
+ 0: 'idle',
2207
+ 1: 'active'
2208
+ },
2209
+ day_of_week: {
2210
+ 0: 'sunday',
2211
+ 1: 'monday',
2212
+ 2: 'tuesday',
2213
+ 3: 'wednesday',
2214
+ 4: 'thursday',
2215
+ 5: 'friday',
2216
+ 6: 'saturday'
2217
+ },
2218
+ connectivity_capabilities: {
2219
+ 0: 0,
2220
+ 1: 'bluetooth',
2221
+ 2: 'bluetooth_le',
2222
+ 4: 'ant',
2223
+ 8: 'activity_upload',
2224
+ 16: 'course_download',
2225
+ 32: 'workout_download',
2226
+ 64: 'live_track',
2227
+ 128: 'weather_conditions',
2228
+ 256: 'weather_alerts',
2229
+ 512: 'gps_ephemeris_download',
2230
+ 1024: 'explicit_archive',
2231
+ 2048: 'setup_incomplete',
2232
+ 4096: 'continue_sync_after_software_update',
2233
+ 8192: 'connect_iq_app_download',
2234
+ 16384: 'golf_course_download',
2235
+ 32768: 'device_initiates_sync',
2236
+ 65536: 'connect_iq_watch_app_download',
2237
+ 131072: 'connect_iq_widget_download',
2238
+ 262144: 'connect_iq_watch_face_download',
2239
+ 524288: 'connect_iq_data_field_download',
2240
+ 1048576: 'connect_iq_app_managment',
2241
+ 2097152: 'swing_sensor',
2242
+ 4194304: 'swing_sensor_remote',
2243
+ 8388608: 'incident_detection',
2244
+ 16777216: 'audio_prompts',
2245
+ 33554432: 'wifi_verification',
2246
+ 67108864: 'true_up',
2247
+ 134217728: 'find_my_watch',
2248
+ 268435456: 'remote_manual_sync',
2249
+ 536870912: 'live_track_auto_start',
2250
+ 1073741824: 'live_track_messaging',
2251
+ 2147483648: 'instant_input'
2252
+ },
2253
+ weather_report: {
2254
+ 0: 'current',
2255
+ 1: 'hourly_forecast',
2256
+ 2: 'daily_forecast'
2257
+ },
2258
+ weather_status: {
2259
+ 0: 'clear',
2260
+ 1: 'partly_cloudy',
2261
+ 2: 'mostly_cloudy',
2262
+ 3: 'rain',
2263
+ 4: 'snow',
2264
+ 5: 'windy',
2265
+ 6: 'thunderstorms',
2266
+ 7: 'wintry_mix',
2267
+ 8: 'fog',
2268
+ 11: 'hazy',
2269
+ 12: 'hail',
2270
+ 13: 'scattered_showers',
2271
+ 14: 'scattered_thunderstorms',
2272
+ 15: 'unknown_precipitation',
2273
+ 16: 'light_rain',
2274
+ 17: 'heavy_rain',
2275
+ 18: 'light_snow',
2276
+ 19: 'heavy_snow',
2277
+ 20: 'light_rain_snow',
2278
+ 21: 'heavy_rain_snow',
2279
+ 22: 'cloudy'
2280
+ },
2281
+ weather_severity: {
2282
+ 0: 'unknown',
2283
+ 1: 'warning',
2284
+ 2: 'watch',
2285
+ 3: 'advisory',
2286
+ 4: 'statement'
2287
+ },
2288
+ weather_severe_type: {
2289
+ 0: 'unspecified',
2290
+ 1: 'tornado',
2291
+ 2: 'tsunami',
2292
+ 3: 'hurricane',
2293
+ 4: 'extreme_wind',
2294
+ 5: 'typhoon',
2295
+ 6: 'inland_hurricane',
2296
+ 7: 'hurricane_force_wind',
2297
+ 8: 'waterspout',
2298
+ 9: 'severe_thunderstorm',
2299
+ 10: 'wreckhouse_winds',
2300
+ 11: 'les_suetes_wind',
2301
+ 12: 'avalanche',
2302
+ 13: 'flash_flood',
2303
+ 14: 'tropical_storm',
2304
+ 15: 'inland_tropical_storm',
2305
+ 16: 'blizzard',
2306
+ 17: 'ice_storm',
2307
+ 18: 'freezing_rain',
2308
+ 19: 'debris_flow',
2309
+ 20: 'flash_freeze',
2310
+ 21: 'dust_storm',
2311
+ 22: 'high_wind',
2312
+ 23: 'winter_storm',
2313
+ 24: 'heavy_freezing_spray',
2314
+ 25: 'extreme_cold',
2315
+ 26: 'wind_chill',
2316
+ 27: 'cold_wave',
2317
+ 28: 'heavy_snow_alert',
2318
+ 29: 'lake_effect_blowing_snow',
2319
+ 30: 'snow_squall',
2320
+ 31: 'lake_effect_snow',
2321
+ 32: 'winter_weather',
2322
+ 33: 'sleet',
2323
+ 34: 'snowfall',
2324
+ 35: 'snow_and_blowing_snow',
2325
+ 36: 'blowing_snow',
2326
+ 37: 'snow_alert',
2327
+ 38: 'arctic_outflow',
2328
+ 39: 'freezing_drizzle',
2329
+ 40: 'storm',
2330
+ 41: 'storm_surge',
2331
+ 42: 'rainfall',
2332
+ 43: 'areal_flood',
2333
+ 44: 'coastal_flood',
2334
+ 45: 'lakeshore_flood',
2335
+ 46: 'excessive_heat',
2336
+ 47: 'heat',
2337
+ 48: 'weather',
2338
+ 49: 'high_heat_and_humidity',
2339
+ 50: 'humidex_and_health',
2340
+ 51: 'humidex',
2341
+ 52: 'gale',
2342
+ 53: 'freezing_spray',
2343
+ 54: 'special_marine',
2344
+ 55: 'squall',
2345
+ 56: 'strong_wind',
2346
+ 57: 'lake_wind',
2347
+ 58: 'marine_weather',
2348
+ 59: 'wind',
2349
+ 60: 'small_craft_hazardous_seas',
2350
+ 61: 'hazardous_seas',
2351
+ 62: 'small_craft',
2352
+ 63: 'small_craft_winds',
2353
+ 64: 'small_craft_rough_bar',
2354
+ 65: 'high_water_level',
2355
+ 66: 'ashfall',
2356
+ 67: 'freezing_fog',
2357
+ 68: 'dense_fog',
2358
+ 69: 'dense_smoke',
2359
+ 70: 'blowing_dust',
2360
+ 71: 'hard_freeze',
2361
+ 72: 'freeze',
2362
+ 73: 'frost',
2363
+ 74: 'fire_weather',
2364
+ 75: 'flood',
2365
+ 76: 'rip_tide',
2366
+ 77: 'high_surf',
2367
+ 78: 'smog',
2368
+ 79: 'air_quality',
2369
+ 80: 'brisk_wind',
2370
+ 81: 'air_stagnation',
2371
+ 82: 'low_water',
2372
+ 83: 'hydrological',
2373
+ 84: 'special_weather'
2374
+ },
2375
+ stroke_type: {
2376
+ 0: 'no_event',
2377
+ 1: 'other',
2378
+ 2: 'serve',
2379
+ 3: 'forehand',
2380
+ 4: 'backhand',
2381
+ 5: 'smash'
2382
+ },
2383
+ body_location: {
2384
+ 0: 'left_leg',
2385
+ 1: 'left_calf',
2386
+ 2: 'left_shin',
2387
+ 3: 'left_hamstring',
2388
+ 4: 'left_quad',
2389
+ 5: 'left_glute',
2390
+ 6: 'right_leg',
2391
+ 7: 'right_calf',
2392
+ 8: 'right_shin',
2393
+ 9: 'right_hamstring',
2394
+ 10: 'right_quad',
2395
+ 11: 'right_glute',
2396
+ 12: 'torso_back',
2397
+ 13: 'left_lower_back',
2398
+ 14: 'left_upper_back',
2399
+ 15: 'right_lower_back',
2400
+ 16: 'right_upper_back',
2401
+ 17: 'torso_front',
2402
+ 18: 'left_abdomen',
2403
+ 19: 'left_chest',
2404
+ 20: 'right_abdomen',
2405
+ 21: 'right_chest',
2406
+ 22: 'left_arm',
2407
+ 23: 'left_shoulder',
2408
+ 24: 'left_bicep',
2409
+ 25: 'left_tricep',
2410
+ 26: 'left_brachioradialis',
2411
+ 27: 'left_forearm_extensors',
2412
+ 28: 'right_arm',
2413
+ 29: 'right_shoulder',
2414
+ 30: 'right_bicep',
2415
+ 31: 'right_tricep',
2416
+ 32: 'right_brachioradialis',
2417
+ 33: 'right_forearm_extensors',
2418
+ 34: 'neck',
2419
+ 35: 'throat',
2420
+ 36: 'waist_mid_back',
2421
+ 37: 'waist_front',
2422
+ 38: 'waist_left',
2423
+ 39: 'waist_right'
2424
+ },
2425
+ segment_lap_status: {
2426
+ 0: 'end',
2427
+ 1: 'fail'
2428
+ },
2429
+ segment_leaderboard_type: {
2430
+ 0: 'overall',
2431
+ 1: 'personal_best',
2432
+ 2: 'connections',
2433
+ 3: 'group',
2434
+ 4: 'challenger',
2435
+ 5: 'kom',
2436
+ 6: 'qom',
2437
+ 7: 'pr',
2438
+ 8: 'goal',
2439
+ 9: 'rival',
2440
+ 10: 'club_leader'
2441
+ },
2442
+ segment_delete_status: {
2443
+ 0: 'do_not_delete',
2444
+ 1: 'delete_one',
2445
+ 2: 'delete_all'
2446
+ },
2447
+ segment_selection_type: {
2448
+ 0: 'starred',
2449
+ 1: 'suggested'
2450
+ },
2451
+ source_type: {
2452
+ 0: 'ant',
2453
+ 1: 'antplus',
2454
+ 2: 'bluetooth',
2455
+ 3: 'bluetooth_low_energy',
2456
+ 4: 'wifi',
2457
+ 5: 'local'
2458
+ },
2459
+ display_orientation: {
2460
+ 0: 'auto',
2461
+ 1: 'portrait',
2462
+ 2: 'landscape',
2463
+ 3: 'portrait_flipped',
2464
+ 4: 'landscape_flipped'
2465
+ },
2466
+ workout_equipment: {
2467
+ 0: 'none',
2468
+ 1: 'swim_fins',
2469
+ 2: 'swim_kickboard',
2470
+ 3: 'swim_paddles',
2471
+ 4: 'swim_pull_buoy',
2472
+ 5: 'swim_snorkel'
2473
+ },
2474
+ watchface_mode: {
2475
+ 0: 'digital',
2476
+ 1: 'analog',
2477
+ 2: 'connect_iq',
2478
+ 3: 'disabled'
2479
+ },
2480
+ digital_watchface_layout: {
2481
+ 0: 'traditional',
2482
+ 1: 'modern',
2483
+ 2: 'bold'
2484
+ },
2485
+ analog_watchface_layout: {
2486
+ 0: 'minimal',
2487
+ 1: 'traditional',
2488
+ 2: 'modern'
2489
+ },
2490
+ rider_position_type: {
2491
+ 0: 'seated',
2492
+ 1: 'standing',
2493
+ 2: 'transition_to_seated',
2494
+ 3: 'transition_to_standing'
2495
+ },
2496
+ power_phase_type: {
2497
+ 0: 'power_phase_start_angle',
2498
+ 1: 'power_phase_end_angle',
2499
+ 2: 'power_phase_arc_length',
2500
+ 3: 'power_phase_center'
2501
+ },
2502
+ camera_event_type: {
2503
+ 0: 'video_start',
2504
+ 1: 'video_split',
2505
+ 2: 'video_end',
2506
+ 3: 'photo_taken',
2507
+ 4: 'video_second_stream_start',
2508
+ 5: 'video_second_stream_split',
2509
+ 6: 'video_second_stream_end',
2510
+ 7: 'video_split_start',
2511
+ 8: 'video_second_stream_split_start',
2512
+ 11: 'video_pause',
2513
+ 12: 'video_second_stream_pause',
2514
+ 13: 'video_resume',
2515
+ 14: 'video_second_stream_resume'
2516
+ },
2517
+ sensor_type: {
2518
+ 0: 'accelerometer',
2519
+ 1: 'gyroscope',
2520
+ 2: 'compass',
2521
+ 3: 'barometer'
2522
+ },
2523
+ bike_light_network_config_type: {
2524
+ 0: 'auto',
2525
+ 4: 'individual',
2526
+ 5: 'high_visibility',
2527
+ 6: 'trail'
2528
+ },
2529
+ comm_timeout_type: {
2530
+ 0: 'wildcard_pairing_timeout',
2531
+ 1: 'pairing_timeout',
2532
+ 2: 'connection_lost',
2533
+ 3: 'connection_timeout'
2534
+ },
2535
+ camera_orientation_type: {
2536
+ 0: 'camera_orientation_0',
2537
+ 1: 'camera_orientation_90',
2538
+ 2: 'camera_orientation_180',
2539
+ 3: 'camera_orientation_270'
2540
+ },
2541
+ attitude_stage: {
2542
+ 0: 'failed',
2543
+ 1: 'aligning',
2544
+ 2: 'degraded',
2545
+ 3: 'valid'
2546
+ },
2547
+ attitude_validity: {
2548
+ 0: 0,
2549
+ 1: 'track_angle_heading_valid',
2550
+ 2: 'pitch_valid',
2551
+ 4: 'roll_valid',
2552
+ 8: 'lateral_body_accel_valid',
2553
+ 16: 'normal_body_accel_valid',
2554
+ 32: 'turn_rate_valid',
2555
+ 64: 'hw_fail',
2556
+ 128: 'mag_invalid',
2557
+ 256: 'no_gps',
2558
+ 512: 'gps_invalid',
2559
+ 1024: 'solution_coasting',
2560
+ 2048: 'true_track_angle',
2561
+ 4096: 'magnetic_heading'
2562
+ },
2563
+ auto_sync_frequency: {
2564
+ 0: 'never',
2565
+ 1: 'occasionally',
2566
+ 2: 'frequent',
2567
+ 3: 'once_a_day',
2568
+ 4: 'remote'
2569
+ },
2570
+ exd_layout: {
2571
+ 0: 'full_screen',
2572
+ 1: 'half_vertical',
2573
+ 2: 'half_horizontal',
2574
+ 3: 'half_vertical_right_split',
2575
+ 4: 'half_horizontal_bottom_split',
2576
+ 5: 'full_quarter_split',
2577
+ 6: 'half_vertical_left_split',
2578
+ 7: 'half_horizontal_top_split'
2579
+ },
2580
+ exd_display_type: {
2581
+ 0: 'numerical',
2582
+ 1: 'simple',
2583
+ 2: 'graph',
2584
+ 3: 'bar',
2585
+ 4: 'circle_graph',
2586
+ 5: 'virtual_partner',
2587
+ 6: 'balance',
2588
+ 7: 'string_list',
2589
+ 8: 'string',
2590
+ 9: 'simple_dynamic_icon',
2591
+ 10: 'gauge'
2592
+ },
2593
+ exd_data_units: {
2594
+ 0: 'no_units',
2595
+ 1: 'laps',
2596
+ 2: 'miles_per_hour',
2597
+ 3: 'kilometers_per_hour',
2598
+ 4: 'feet_per_hour',
2599
+ 5: 'meters_per_hour',
2600
+ 6: 'degrees_celsius',
2601
+ 7: 'degrees_farenheit',
2602
+ 8: 'zone',
2603
+ 9: 'gear',
2604
+ 10: 'rpm',
2605
+ 11: 'bpm',
2606
+ 12: 'degrees',
2607
+ 13: 'millimeters',
2608
+ 14: 'meters',
2609
+ 15: 'kilometers',
2610
+ 16: 'feet',
2611
+ 17: 'yards',
2612
+ 18: 'kilofeet',
2613
+ 19: 'miles',
2614
+ 20: 'time',
2615
+ 21: 'enum_turn_type',
2616
+ 22: 'percent',
2617
+ 23: 'watts',
2618
+ 24: 'watts_per_kilogram',
2619
+ 25: 'enum_battery_status',
2620
+ 26: 'enum_bike_light_beam_angle_mode',
2621
+ 27: 'enum_bike_light_battery_status',
2622
+ 28: 'enum_bike_light_network_config_type',
2623
+ 29: 'lights',
2624
+ 30: 'seconds',
2625
+ 31: 'minutes',
2626
+ 32: 'hours',
2627
+ 33: 'calories',
2628
+ 34: 'kilojoules',
2629
+ 35: 'milliseconds',
2630
+ 36: 'second_per_mile',
2631
+ 37: 'second_per_kilometer',
2632
+ 38: 'centimeter',
2633
+ 39: 'enum_course_point',
2634
+ 40: 'bradians',
2635
+ 41: 'enum_sport',
2636
+ 42: 'inches_hg',
2637
+ 43: 'mm_hg',
2638
+ 44: 'mbars',
2639
+ 45: 'hecto_pascals',
2640
+ 46: 'feet_per_min',
2641
+ 47: 'meters_per_min',
2642
+ 48: 'meters_per_sec',
2643
+ 49: 'eight_cardinal'
2644
+ },
2645
+ exd_qualifiers: {
2646
+ 0: 'no_qualifier',
2647
+ 1: 'instantaneous',
2648
+ 2: 'average',
2649
+ 3: 'lap',
2650
+ 4: 'maximum',
2651
+ 5: 'maximum_average',
2652
+ 6: 'maximum_lap',
2653
+ 7: 'last_lap',
2654
+ 8: 'average_lap',
2655
+ 9: 'to_destination',
2656
+ 10: 'to_go',
2657
+ 11: 'to_next',
2658
+ 12: 'next_course_point',
2659
+ 13: 'total',
2660
+ 14: 'three_second_average',
2661
+ 15: 'ten_second_average',
2662
+ 16: 'thirty_second_average',
2663
+ 17: 'percent_maximum',
2664
+ 18: 'percent_maximum_average',
2665
+ 19: 'lap_percent_maximum',
2666
+ 20: 'elapsed',
2667
+ 21: 'sunrise',
2668
+ 22: 'sunset',
2669
+ 23: 'compared_to_virtual_partner',
2670
+ 24: 'maximum_24h',
2671
+ 25: 'minimum_24h',
2672
+ 26: 'minimum',
2673
+ 27: 'first',
2674
+ 28: 'second',
2675
+ 29: 'third',
2676
+ 30: 'shifter',
2677
+ 31: 'last_sport',
2678
+ 32: 'moving',
2679
+ 33: 'stopped',
2680
+ 34: 'estimated_total',
2681
+ 242: 'zone_9',
2682
+ 243: 'zone_8',
2683
+ 244: 'zone_7',
2684
+ 245: 'zone_6',
2685
+ 246: 'zone_5',
2686
+ 247: 'zone_4',
2687
+ 248: 'zone_3',
2688
+ 249: 'zone_2',
2689
+ 250: 'zone_1'
2690
+ },
2691
+ exd_descriptors: {
2692
+ 0: 'bike_light_battery_status',
2693
+ 1: 'beam_angle_status',
2694
+ 2: 'batery_level',
2695
+ 3: 'light_network_mode',
2696
+ 4: 'number_lights_connected',
2697
+ 5: 'cadence',
2698
+ 6: 'distance',
2699
+ 7: 'estimated_time_of_arrival',
2700
+ 8: 'heading',
2701
+ 9: 'time',
2702
+ 10: 'battery_level',
2703
+ 11: 'trainer_resistance',
2704
+ 12: 'trainer_target_power',
2705
+ 13: 'time_seated',
2706
+ 14: 'time_standing',
2707
+ 15: 'elevation',
2708
+ 16: 'grade',
2709
+ 17: 'ascent',
2710
+ 18: 'descent',
2711
+ 19: 'vertical_speed',
2712
+ 20: 'di2_battery_level',
2713
+ 21: 'front_gear',
2714
+ 22: 'rear_gear',
2715
+ 23: 'gear_ratio',
2716
+ 24: 'heart_rate',
2717
+ 25: 'heart_rate_zone',
2718
+ 26: 'time_in_heart_rate_zone',
2719
+ 27: 'heart_rate_reserve',
2720
+ 28: 'calories',
2721
+ 29: 'gps_accuracy',
2722
+ 30: 'gps_signal_strength',
2723
+ 31: 'temperature',
2724
+ 32: 'time_of_day',
2725
+ 33: 'balance',
2726
+ 34: 'pedal_smoothness',
2727
+ 35: 'power',
2728
+ 36: 'functional_threshold_power',
2729
+ 37: 'intensity_factor',
2730
+ 38: 'work',
2731
+ 39: 'power_ratio',
2732
+ 40: 'normalized_power',
2733
+ 41: 'training_stress_Score',
2734
+ 42: 'time_on_zone',
2735
+ 43: 'speed',
2736
+ 44: 'laps',
2737
+ 45: 'reps',
2738
+ 46: 'workout_step',
2739
+ 47: 'course_distance',
2740
+ 48: 'navigation_distance',
2741
+ 49: 'course_estimated_time_of_arrival',
2742
+ 50: 'navigation_estimated_time_of_arrival',
2743
+ 51: 'course_time',
2744
+ 52: 'navigation_time',
2745
+ 53: 'course_heading',
2746
+ 54: 'navigation_heading',
2747
+ 55: 'power_zone',
2748
+ 56: 'torque_effectiveness',
2749
+ 57: 'timer_time',
2750
+ 58: 'power_weight_ratio',
2751
+ 59: 'left_platform_center_offset',
2752
+ 60: 'right_platform_center_offset',
2753
+ 61: 'left_power_phase_start_angle',
2754
+ 62: 'right_power_phase_start_angle',
2755
+ 63: 'left_power_phase_finish_angle',
2756
+ 64: 'right_power_phase_finish_angle',
2757
+ 65: 'gears',
2758
+ 66: 'pace',
2759
+ 67: 'training_effect',
2760
+ 68: 'vertical_oscillation',
2761
+ 69: 'vertical_ratio',
2762
+ 70: 'ground_contact_time',
2763
+ 71: 'left_ground_contact_time_balance',
2764
+ 72: 'right_ground_contact_time_balance',
2765
+ 73: 'stride_length',
2766
+ 74: 'running_cadence',
2767
+ 75: 'performance_condition',
2768
+ 76: 'course_type',
2769
+ 77: 'time_in_power_zone',
2770
+ 78: 'navigation_turn',
2771
+ 79: 'course_location',
2772
+ 80: 'navigation_location',
2773
+ 81: 'compass',
2774
+ 82: 'gear_combo',
2775
+ 83: 'muscle_oxygen',
2776
+ 84: 'icon',
2777
+ 85: 'compass_heading',
2778
+ 86: 'gps_heading',
2779
+ 87: 'gps_elevation',
2780
+ 88: 'anaerobic_training_effect',
2781
+ 89: 'course',
2782
+ 90: 'off_course',
2783
+ 91: 'glide_ratio',
2784
+ 92: 'vertical_distance',
2785
+ 93: 'vmg',
2786
+ 94: 'ambient_pressure',
2787
+ 95: 'pressure',
2788
+ 96: 'vam'
2789
+ },
2790
+ auto_activity_detect: {
2791
+ 0: 'none',
2792
+ 1: 'running',
2793
+ 2: 'cycling',
2794
+ 4: 'swimming',
2795
+ 8: 'walking',
2796
+ 16: 'elliptical',
2797
+ 32: 'sedentary'
2798
+ },
2799
+ supported_exd_screen_layouts: {
2800
+ 0: 0,
2801
+ 1: 'full_screen',
2802
+ 2: 'half_vertical',
2803
+ 4: 'half_horizontal',
2804
+ 8: 'half_vertical_right_split',
2805
+ 16: 'half_horizontal_bottom_split',
2806
+ 32: 'full_quarter_split',
2807
+ 64: 'half_vertical_left_split',
2808
+ 128: 'half_horizontal_top_split'
2809
+ },
2810
+ fit_base_type: {
2811
+ 0: 'enum',
2812
+ 1: 'sint8',
2813
+ 2: 'uint8',
2814
+ 7: 'string',
2815
+ 10: 'uint8z',
2816
+ 13: 'byte',
2817
+ 131: 'sint16',
2818
+ 132: 'uint16',
2819
+ 133: 'sint32',
2820
+ 134: 'uint32',
2821
+ 136: 'float32',
2822
+ 137: 'float64',
2823
+ 139: 'uint16z',
2824
+ 140: 'uint32z',
2825
+ 142: 'sint64',
2826
+ 143: 'uint64',
2827
+ 144: 'uint64z'
2828
+ },
2829
+ turn_type: {
2830
+ 0: 'arriving_idx',
2831
+ 1: 'arriving_left_idx',
2832
+ 2: 'arriving_right_idx',
2833
+ 3: 'arriving_via_idx',
2834
+ 4: 'arriving_via_left_idx',
2835
+ 5: 'arriving_via_right_idx',
2836
+ 6: 'bear_keep_left_idx',
2837
+ 7: 'bear_keep_right_idx',
2838
+ 8: 'continue_idx',
2839
+ 9: 'exit_left_idx',
2840
+ 10: 'exit_right_idx',
2841
+ 11: 'ferry_idx',
2842
+ 12: 'roundabout_45_idx',
2843
+ 13: 'roundabout_90_idx',
2844
+ 14: 'roundabout_135_idx',
2845
+ 15: 'roundabout_180_idx',
2846
+ 16: 'roundabout_225_idx',
2847
+ 17: 'roundabout_270_idx',
2848
+ 18: 'roundabout_315_idx',
2849
+ 19: 'roundabout_360_idx',
2850
+ 20: 'roundabout_neg_45_idx',
2851
+ 21: 'roundabout_neg_90_idx',
2852
+ 22: 'roundabout_neg_135_idx',
2853
+ 23: 'roundabout_neg_180_idx',
2854
+ 24: 'roundabout_neg_225_idx',
2855
+ 25: 'roundabout_neg_270_idx',
2856
+ 26: 'roundabout_neg_315_idx',
2857
+ 27: 'roundabout_neg_360_idx',
2858
+ 28: 'roundabout_generic_idx',
2859
+ 29: 'roundabout_neg_generic_idx',
2860
+ 30: 'sharp_turn_left_idx',
2861
+ 31: 'sharp_turn_right_idx',
2862
+ 32: 'turn_left_idx',
2863
+ 33: 'turn_right_idx',
2864
+ 34: 'uturn_left_idx',
2865
+ 35: 'uturn_right_idx',
2866
+ 36: 'icon_inv_idx',
2867
+ 37: 'icon_idx_cnt'
2868
+ },
2869
+ bike_light_beam_angle_mode: {
2870
+ 0: 'manual',
2871
+ 1: 'auto'
2872
+ },
2873
+ fit_base_unit: {
2874
+ 0: 'other',
2875
+ 1: 'kilogram',
2876
+ 2: 'pound'
2877
+ },
2878
+ set_type: {
2879
+ 0: 'rest',
2880
+ 1: 'active'
2881
+ },
2882
+ exercise_category: {
2883
+ 0: 'bench_press',
2884
+ 1: 'calf_raise',
2885
+ 2: 'cardio',
2886
+ 3: 'carry',
2887
+ 4: 'chop',
2888
+ 5: 'core',
2889
+ 6: 'crunch',
2890
+ 7: 'curl',
2891
+ 8: 'deadlift',
2892
+ 9: 'flye',
2893
+ 10: 'hip_raise',
2894
+ 11: 'hip_stability',
2895
+ 12: 'hip_swing',
2896
+ 13: 'hyperextension',
2897
+ 14: 'lateral_raise',
2898
+ 15: 'leg_curl',
2899
+ 16: 'leg_raise',
2900
+ 17: 'lunge',
2901
+ 18: 'olympic_lift',
2902
+ 19: 'plank',
2903
+ 20: 'plyo',
2904
+ 21: 'pull_up',
2905
+ 22: 'push_up',
2906
+ 23: 'row',
2907
+ 24: 'shoulder_press',
2908
+ 25: 'shoulder_stability',
2909
+ 26: 'shrug',
2910
+ 27: 'sit_up',
2911
+ 28: 'squat',
2912
+ 29: 'total_body',
2913
+ 30: 'triceps_extension',
2914
+ 31: 'warm_up',
2915
+ 32: 'run',
2916
+ 65534: 'unknown'
2917
+ },
2918
+ bench_press_exercise_name: {
2919
+ 0: 'alternating_dumbbell_chest_press_on_swiss_ball',
2920
+ 1: 'barbell_bench_press',
2921
+ 2: 'barbell_board_bench_press',
2922
+ 3: 'barbell_floor_press',
2923
+ 4: 'close_grip_barbell_bench_press',
2924
+ 5: 'decline_dumbbell_bench_press',
2925
+ 6: 'dumbbell_bench_press',
2926
+ 7: 'dumbbell_floor_press',
2927
+ 8: 'incline_barbell_bench_press',
2928
+ 9: 'incline_dumbbell_bench_press',
2929
+ 10: 'incline_smith_machine_bench_press',
2930
+ 11: 'isometric_barbell_bench_press',
2931
+ 12: 'kettlebell_chest_press',
2932
+ 13: 'neutral_grip_dumbbell_bench_press',
2933
+ 14: 'neutral_grip_dumbbell_incline_bench_press',
2934
+ 15: 'one_arm_floor_press',
2935
+ 16: 'weighted_one_arm_floor_press',
2936
+ 17: 'partial_lockout',
2937
+ 18: 'reverse_grip_barbell_bench_press',
2938
+ 19: 'reverse_grip_incline_bench_press',
2939
+ 20: 'single_arm_cable_chest_press',
2940
+ 21: 'single_arm_dumbbell_bench_press',
2941
+ 22: 'smith_machine_bench_press',
2942
+ 23: 'swiss_ball_dumbbell_chest_press',
2943
+ 24: 'triple_stop_barbell_bench_press',
2944
+ 25: 'wide_grip_barbell_bench_press',
2945
+ 26: 'alternating_dumbbell_chest_press'
2946
+ },
2947
+ calf_raise_exercise_name: {
2948
+ 0: '3_way_calf_raise',
2949
+ 1: '3_way_weighted_calf_raise',
2950
+ 2: '3_way_single_leg_calf_raise',
2951
+ 3: '3_way_weighted_single_leg_calf_raise',
2952
+ 4: 'donkey_calf_raise',
2953
+ 5: 'weighted_donkey_calf_raise',
2954
+ 6: 'seated_calf_raise',
2955
+ 7: 'weighted_seated_calf_raise',
2956
+ 8: 'seated_dumbbell_toe_raise',
2957
+ 9: 'single_leg_bent_knee_calf_raise',
2958
+ 10: 'weighted_single_leg_bent_knee_calf_raise',
2959
+ 11: 'single_leg_decline_push_up',
2960
+ 12: 'single_leg_donkey_calf_raise',
2961
+ 13: 'weighted_single_leg_donkey_calf_raise',
2962
+ 14: 'single_leg_hip_raise_with_knee_hold',
2963
+ 15: 'single_leg_standing_calf_raise',
2964
+ 16: 'single_leg_standing_dumbbell_calf_raise',
2965
+ 17: 'standing_barbell_calf_raise',
2966
+ 18: 'standing_calf_raise',
2967
+ 19: 'weighted_standing_calf_raise',
2968
+ 20: 'standing_dumbbell_calf_raise'
2969
+ },
2970
+ cardio_exercise_name: {
2971
+ 0: 'bob_and_weave_circle',
2972
+ 1: 'weighted_bob_and_weave_circle',
2973
+ 2: 'cardio_core_crawl',
2974
+ 3: 'weighted_cardio_core_crawl',
2975
+ 4: 'double_under',
2976
+ 5: 'weighted_double_under',
2977
+ 6: 'jump_rope',
2978
+ 7: 'weighted_jump_rope',
2979
+ 8: 'jump_rope_crossover',
2980
+ 9: 'weighted_jump_rope_crossover',
2981
+ 10: 'jump_rope_jog',
2982
+ 11: 'weighted_jump_rope_jog',
2983
+ 12: 'jumping_jacks',
2984
+ 13: 'weighted_jumping_jacks',
2985
+ 14: 'ski_moguls',
2986
+ 15: 'weighted_ski_moguls',
2987
+ 16: 'split_jacks',
2988
+ 17: 'weighted_split_jacks',
2989
+ 18: 'squat_jacks',
2990
+ 19: 'weighted_squat_jacks',
2991
+ 20: 'triple_under',
2992
+ 21: 'weighted_triple_under'
2993
+ },
2994
+ carry_exercise_name: {
2995
+ 0: 'bar_holds',
2996
+ 1: 'farmers_walk',
2997
+ 2: 'farmers_walk_on_toes',
2998
+ 3: 'hex_dumbbell_hold',
2999
+ 4: 'overhead_carry'
3000
+ },
3001
+ chop_exercise_name: {
3002
+ 0: 'cable_pull_through',
3003
+ 1: 'cable_rotational_lift',
3004
+ 2: 'cable_woodchop',
3005
+ 3: 'cross_chop_to_knee',
3006
+ 4: 'weighted_cross_chop_to_knee',
3007
+ 5: 'dumbbell_chop',
3008
+ 6: 'half_kneeling_rotation',
3009
+ 7: 'weighted_half_kneeling_rotation',
3010
+ 8: 'half_kneeling_rotational_chop',
3011
+ 9: 'half_kneeling_rotational_reverse_chop',
3012
+ 10: 'half_kneeling_stability_chop',
3013
+ 11: 'half_kneeling_stability_reverse_chop',
3014
+ 12: 'kneeling_rotational_chop',
3015
+ 13: 'kneeling_rotational_reverse_chop',
3016
+ 14: 'kneeling_stability_chop',
3017
+ 15: 'kneeling_woodchopper',
3018
+ 16: 'medicine_ball_wood_chops',
3019
+ 17: 'power_squat_chops',
3020
+ 18: 'weighted_power_squat_chops',
3021
+ 19: 'standing_rotational_chop',
3022
+ 20: 'standing_split_rotational_chop',
3023
+ 21: 'standing_split_rotational_reverse_chop',
3024
+ 22: 'standing_stability_reverse_chop'
3025
+ },
3026
+ core_exercise_name: {
3027
+ 0: 'abs_jabs',
3028
+ 1: 'weighted_abs_jabs',
3029
+ 2: 'alternating_plate_reach',
3030
+ 3: 'barbell_rollout',
3031
+ 4: 'weighted_barbell_rollout',
3032
+ 5: 'body_bar_oblique_twist',
3033
+ 6: 'cable_core_press',
3034
+ 7: 'cable_side_bend',
3035
+ 8: 'side_bend',
3036
+ 9: 'weighted_side_bend',
3037
+ 10: 'crescent_circle',
3038
+ 11: 'weighted_crescent_circle',
3039
+ 12: 'cycling_russian_twist',
3040
+ 13: 'weighted_cycling_russian_twist',
3041
+ 14: 'elevated_feet_russian_twist',
3042
+ 15: 'weighted_elevated_feet_russian_twist',
3043
+ 16: 'half_turkish_get_up',
3044
+ 17: 'kettlebell_windmill',
3045
+ 18: 'kneeling_ab_wheel',
3046
+ 19: 'weighted_kneeling_ab_wheel',
3047
+ 20: 'modified_front_lever',
3048
+ 21: 'open_knee_tucks',
3049
+ 22: 'weighted_open_knee_tucks',
3050
+ 23: 'side_abs_leg_lift',
3051
+ 24: 'weighted_side_abs_leg_lift',
3052
+ 25: 'swiss_ball_jackknife',
3053
+ 26: 'weighted_swiss_ball_jackknife',
3054
+ 27: 'swiss_ball_pike',
3055
+ 28: 'weighted_swiss_ball_pike',
3056
+ 29: 'swiss_ball_rollout',
3057
+ 30: 'weighted_swiss_ball_rollout',
3058
+ 31: 'triangle_hip_press',
3059
+ 32: 'weighted_triangle_hip_press',
3060
+ 33: 'trx_suspended_jackknife',
3061
+ 34: 'weighted_trx_suspended_jackknife',
3062
+ 35: 'u_boat',
3063
+ 36: 'weighted_u_boat',
3064
+ 37: 'windmill_switches',
3065
+ 38: 'weighted_windmill_switches',
3066
+ 39: 'alternating_slide_out',
3067
+ 40: 'weighted_alternating_slide_out',
3068
+ 41: 'ghd_back_extensions',
3069
+ 42: 'weighted_ghd_back_extensions',
3070
+ 43: 'overhead_walk',
3071
+ 44: 'inchworm',
3072
+ 45: 'weighted_modified_front_lever',
3073
+ 46: 'russian_twist',
3074
+ 47: 'abdominal_leg_rotations',
3075
+ 48: 'arm_and_leg_extension_on_knees',
3076
+ 49: 'bicycle',
3077
+ 50: 'bicep_curl_with_leg_extension',
3078
+ 51: 'cat_cow',
3079
+ 52: 'corkscrew',
3080
+ 53: 'criss_cross',
3081
+ 54: 'criss_cross_with_ball',
3082
+ 55: 'double_leg_stretch',
3083
+ 56: 'knee_folds',
3084
+ 57: 'lower_lift',
3085
+ 58: 'neck_pull',
3086
+ 59: 'pelvic_clocks',
3087
+ 60: 'roll_over',
3088
+ 61: 'roll_up',
3089
+ 62: 'rolling',
3090
+ 63: 'rowing_1',
3091
+ 64: 'rowing_2',
3092
+ 65: 'scissors',
3093
+ 66: 'single_leg_circles',
3094
+ 67: 'single_leg_stretch',
3095
+ 68: 'snake_twist_1_and_2',
3096
+ 69: 'swan',
3097
+ 70: 'swimming',
3098
+ 71: 'teaser',
3099
+ 72: 'the_hundred'
3100
+ },
3101
+ crunch_exercise_name: {
3102
+ 0: 'bicycle_crunch',
3103
+ 1: 'cable_crunch',
3104
+ 2: 'circular_arm_crunch',
3105
+ 3: 'crossed_arms_crunch',
3106
+ 4: 'weighted_crossed_arms_crunch',
3107
+ 5: 'cross_leg_reverse_crunch',
3108
+ 6: 'weighted_cross_leg_reverse_crunch',
3109
+ 7: 'crunch_chop',
3110
+ 8: 'weighted_crunch_chop',
3111
+ 9: 'double_crunch',
3112
+ 10: 'weighted_double_crunch',
3113
+ 11: 'elbow_to_knee_crunch',
3114
+ 12: 'weighted_elbow_to_knee_crunch',
3115
+ 13: 'flutter_kicks',
3116
+ 14: 'weighted_flutter_kicks',
3117
+ 15: 'foam_roller_reverse_crunch_on_bench',
3118
+ 16: 'weighted_foam_roller_reverse_crunch_on_bench',
3119
+ 17: 'foam_roller_reverse_crunch_with_dumbbell',
3120
+ 18: 'foam_roller_reverse_crunch_with_medicine_ball',
3121
+ 19: 'frog_press',
3122
+ 20: 'hanging_knee_raise_oblique_crunch',
3123
+ 21: 'weighted_hanging_knee_raise_oblique_crunch',
3124
+ 22: 'hip_crossover',
3125
+ 23: 'weighted_hip_crossover',
3126
+ 24: 'hollow_rock',
3127
+ 25: 'weighted_hollow_rock',
3128
+ 26: 'incline_reverse_crunch',
3129
+ 27: 'weighted_incline_reverse_crunch',
3130
+ 28: 'kneeling_cable_crunch',
3131
+ 29: 'kneeling_cross_crunch',
3132
+ 30: 'weighted_kneeling_cross_crunch',
3133
+ 31: 'kneeling_oblique_cable_crunch',
3134
+ 32: 'knees_to_elbow',
3135
+ 33: 'leg_extensions',
3136
+ 34: 'weighted_leg_extensions',
3137
+ 35: 'leg_levers',
3138
+ 36: 'mcgill_curl_up',
3139
+ 37: 'weighted_mcgill_curl_up',
3140
+ 38: 'modified_pilates_roll_up_with_ball',
3141
+ 39: 'weighted_modified_pilates_roll_up_with_ball',
3142
+ 40: 'pilates_crunch',
3143
+ 41: 'weighted_pilates_crunch',
3144
+ 42: 'pilates_roll_up_with_ball',
3145
+ 43: 'weighted_pilates_roll_up_with_ball',
3146
+ 44: 'raised_legs_crunch',
3147
+ 45: 'weighted_raised_legs_crunch',
3148
+ 46: 'reverse_crunch',
3149
+ 47: 'weighted_reverse_crunch',
3150
+ 48: 'reverse_crunch_on_a_bench',
3151
+ 49: 'weighted_reverse_crunch_on_a_bench',
3152
+ 50: 'reverse_curl_and_lift',
3153
+ 51: 'weighted_reverse_curl_and_lift',
3154
+ 52: 'rotational_lift',
3155
+ 53: 'weighted_rotational_lift',
3156
+ 54: 'seated_alternating_reverse_crunch',
3157
+ 55: 'weighted_seated_alternating_reverse_crunch',
3158
+ 56: 'seated_leg_u',
3159
+ 57: 'weighted_seated_leg_u',
3160
+ 58: 'side_to_side_crunch_and_weave',
3161
+ 59: 'weighted_side_to_side_crunch_and_weave',
3162
+ 60: 'single_leg_reverse_crunch',
3163
+ 61: 'weighted_single_leg_reverse_crunch',
3164
+ 62: 'skater_crunch_cross',
3165
+ 63: 'weighted_skater_crunch_cross',
3166
+ 64: 'standing_cable_crunch',
3167
+ 65: 'standing_side_crunch',
3168
+ 66: 'step_climb',
3169
+ 67: 'weighted_step_climb',
3170
+ 68: 'swiss_ball_crunch',
3171
+ 69: 'swiss_ball_reverse_crunch',
3172
+ 70: 'weighted_swiss_ball_reverse_crunch',
3173
+ 71: 'swiss_ball_russian_twist',
3174
+ 72: 'weighted_swiss_ball_russian_twist',
3175
+ 73: 'swiss_ball_side_crunch',
3176
+ 74: 'weighted_swiss_ball_side_crunch',
3177
+ 75: 'thoracic_crunches_on_foam_roller',
3178
+ 76: 'weighted_thoracic_crunches_on_foam_roller',
3179
+ 77: 'triceps_crunch',
3180
+ 78: 'weighted_bicycle_crunch',
3181
+ 79: 'weighted_crunch',
3182
+ 80: 'weighted_swiss_ball_crunch',
3183
+ 81: 'toes_to_bar',
3184
+ 82: 'weighted_toes_to_bar',
3185
+ 83: 'crunch',
3186
+ 84: 'straight_leg_crunch_with_ball'
3187
+ },
3188
+ curl_exercise_name: {
3189
+ 0: 'alternating_dumbbell_biceps_curl',
3190
+ 1: 'alternating_dumbbell_biceps_curl_on_swiss_ball',
3191
+ 2: 'alternating_incline_dumbbell_biceps_curl',
3192
+ 3: 'barbell_biceps_curl',
3193
+ 4: 'barbell_reverse_wrist_curl',
3194
+ 5: 'barbell_wrist_curl',
3195
+ 6: 'behind_the_back_barbell_reverse_wrist_curl',
3196
+ 7: 'behind_the_back_one_arm_cable_curl',
3197
+ 8: 'cable_biceps_curl',
3198
+ 9: 'cable_hammer_curl',
3199
+ 10: 'cheating_barbell_biceps_curl',
3200
+ 11: 'close_grip_ez_bar_biceps_curl',
3201
+ 12: 'cross_body_dumbbell_hammer_curl',
3202
+ 13: 'dead_hang_biceps_curl',
3203
+ 14: 'decline_hammer_curl',
3204
+ 15: 'dumbbell_biceps_curl_with_static_hold',
3205
+ 16: 'dumbbell_hammer_curl',
3206
+ 17: 'dumbbell_reverse_wrist_curl',
3207
+ 18: 'dumbbell_wrist_curl',
3208
+ 19: 'ez_bar_preacher_curl',
3209
+ 20: 'forward_bend_biceps_curl',
3210
+ 21: 'hammer_curl_to_press',
3211
+ 22: 'incline_dumbbell_biceps_curl',
3212
+ 23: 'incline_offset_thumb_dumbbell_curl',
3213
+ 24: 'kettlebell_biceps_curl',
3214
+ 25: 'lying_concentration_cable_curl',
3215
+ 26: 'one_arm_preacher_curl',
3216
+ 27: 'plate_pinch_curl',
3217
+ 28: 'preacher_curl_with_cable',
3218
+ 29: 'reverse_ez_bar_curl',
3219
+ 30: 'reverse_grip_wrist_curl',
3220
+ 31: 'reverse_grip_barbell_biceps_curl',
3221
+ 32: 'seated_alternating_dumbbell_biceps_curl',
3222
+ 33: 'seated_dumbbell_biceps_curl',
3223
+ 34: 'seated_reverse_dumbbell_curl',
3224
+ 35: 'split_stance_offset_pinky_dumbbell_curl',
3225
+ 36: 'standing_alternating_dumbbell_curls',
3226
+ 37: 'standing_dumbbell_biceps_curl',
3227
+ 38: 'standing_ez_bar_biceps_curl',
3228
+ 39: 'static_curl',
3229
+ 40: 'swiss_ball_dumbbell_overhead_triceps_extension',
3230
+ 41: 'swiss_ball_ez_bar_preacher_curl',
3231
+ 42: 'twisting_standing_dumbbell_biceps_curl',
3232
+ 43: 'wide_grip_ez_bar_biceps_curl'
3233
+ },
3234
+
3235
+ deadlift_exercise_name: {
3236
+ 0: 'barbell_deadlift',
3237
+ 1: 'barbell_straight_leg_deadlift',
3238
+ 2: 'dumbbell_deadlift',
3239
+ 3: 'dumbbell_single_leg_deadlift_to_row',
3240
+ 4: 'dumbbell_straight_leg_deadlift',
3241
+ 5: 'kettlebell_floor_to_shelf',
3242
+ 6: 'one_arm_one_leg_deadlift',
3243
+ 7: 'rack_pull',
3244
+ 8: 'rotational_dumbbell_straight_leg_deadlift',
3245
+ 9: 'single_arm_deadlift',
3246
+ 10: 'single_leg_barbell_deadlift',
3247
+ 11: 'single_leg_barbell_straight_leg_deadlift',
3248
+ 12: 'single_leg_deadlift_with_barbell',
3249
+ 13: 'single_leg_rdl_circuit',
3250
+ 14: 'single_leg_romanian_deadlift_with_dumbbell',
3251
+ 15: 'sumo_deadlift',
3252
+ 16: 'sumo_deadlift_high_pull',
3253
+ 17: 'trap_bar_deadlift',
3254
+ 18: 'wide_grip_barbell_deadlift'
3255
+ },
3256
+ flye_exercise_name: {
3257
+ 0: 'cable_crossover',
3258
+ 1: 'decline_dumbbell_flye',
3259
+ 2: 'dumbbell_flye',
3260
+ 3: 'incline_dumbbell_flye',
3261
+ 4: 'kettlebell_flye',
3262
+ 5: 'kneeling_rear_flye',
3263
+ 6: 'single_arm_standing_cable_reverse_flye',
3264
+ 7: 'swiss_ball_dumbbell_flye',
3265
+ 8: 'arm_rotations',
3266
+ 9: 'hug_a_tree'
3267
+ },
3268
+ hip_raise_exercise_name: {
3269
+ 0: 'barbell_hip_thrust_on_floor',
3270
+ 1: 'barbell_hip_thrust_with_bench',
3271
+ 2: 'bent_knee_swiss_ball_reverse_hip_raise',
3272
+ 3: 'weighted_bent_knee_swiss_ball_reverse_hip_raise',
3273
+ 4: 'bridge_with_leg_extension',
3274
+ 5: 'weighted_bridge_with_leg_extension',
3275
+ 6: 'clam_bridge',
3276
+ 7: 'front_kick_tabletop',
3277
+ 8: 'weighted_front_kick_tabletop',
3278
+ 9: 'hip_extension_and_cross',
3279
+ 10: 'weighted_hip_extension_and_cross',
3280
+ 11: 'hip_raise',
3281
+ 12: 'weighted_hip_raise',
3282
+ 13: 'hip_raise_with_feet_on_swiss_ball',
3283
+ 14: 'weighted_hip_raise_with_feet_on_swiss_ball',
3284
+ 15: 'hip_raise_with_head_on_bosu_ball',
3285
+ 16: 'weighted_hip_raise_with_head_on_bosu_ball',
3286
+ 17: 'hip_raise_with_head_on_swiss_ball',
3287
+ 18: 'weighted_hip_raise_with_head_on_swiss_ball',
3288
+ 19: 'hip_raise_with_knee_squeeze',
3289
+ 20: 'weighted_hip_raise_with_knee_squeeze',
3290
+ 21: 'incline_rear_leg_extension',
3291
+ 22: 'weighted_incline_rear_leg_extension',
3292
+ 23: 'kettlebell_swing',
3293
+ 24: 'marching_hip_raise',
3294
+ 25: 'weighted_marching_hip_raise',
3295
+ 26: 'marching_hip_raise_with_feet_on_a_swiss_ball',
3296
+ 27: 'weighted_marching_hip_raise_with_feet_on_a_swiss_ball',
3297
+ 28: 'reverse_hip_raise',
3298
+ 29: 'weighted_reverse_hip_raise',
3299
+ 30: 'single_leg_hip_raise',
3300
+ 31: 'weighted_single_leg_hip_raise',
3301
+ 32: 'single_leg_hip_raise_with_foot_on_bench',
3302
+ 33: 'weighted_single_leg_hip_raise_with_foot_on_bench',
3303
+ 34: 'single_leg_hip_raise_with_foot_on_bosu_ball',
3304
+ 35: 'weighted_single_leg_hip_raise_with_foot_on_bosu_ball',
3305
+ 36: 'single_leg_hip_raise_with_foot_on_foam_roller',
3306
+ 37: 'weighted_single_leg_hip_raise_with_foot_on_foam_roller',
3307
+ 38: 'single_leg_hip_raise_with_foot_on_medicine_ball',
3308
+ 39: 'weighted_single_leg_hip_raise_with_foot_on_medicine_ball',
3309
+ 40: 'single_leg_hip_raise_with_head_on_bosu_ball',
3310
+ 41: 'weighted_single_leg_hip_raise_with_head_on_bosu_ball',
3311
+ 42: 'weighted_clam_bridge',
3312
+ 43: 'single_leg_swiss_ball_hip_raise_and_leg_curl',
3313
+ 44: 'clams',
3314
+ 45: 'inner_thigh_circles',
3315
+ 46: 'inner_thigh_side_lift',
3316
+ 47: 'leg_circles',
3317
+ 48: 'leg_lift',
3318
+ 49: 'leg_lift_in_external_rotation'
3319
+ },
3320
+ hip_stability_exercise_name: {
3321
+ 0: 'band_side_lying_leg_raise',
3322
+ 1: 'dead_bug',
3323
+ 2: 'weighted_dead_bug',
3324
+ 3: 'external_hip_raise',
3325
+ 4: 'weighted_external_hip_raise',
3326
+ 5: 'fire_hydrant_kicks',
3327
+ 6: 'weighted_fire_hydrant_kicks',
3328
+ 7: 'hip_circles',
3329
+ 8: 'weighted_hip_circles',
3330
+ 9: 'inner_thigh_lift',
3331
+ 10: 'weighted_inner_thigh_lift',
3332
+ 11: 'lateral_walks_with_band_at_ankles',
3333
+ 12: 'pretzel_side_kick',
3334
+ 13: 'weighted_pretzel_side_kick',
3335
+ 14: 'prone_hip_internal_rotation',
3336
+ 15: 'weighted_prone_hip_internal_rotation',
3337
+ 16: 'quadruped',
3338
+ 17: 'quadruped_hip_extension',
3339
+ 18: 'weighted_quadruped_hip_extension',
3340
+ 19: 'quadruped_with_leg_lift',
3341
+ 20: 'weighted_quadruped_with_leg_lift',
3342
+ 21: 'side_lying_leg_raise',
3343
+ 22: 'weighted_side_lying_leg_raise',
3344
+ 23: 'sliding_hip_adduction',
3345
+ 24: 'weighted_sliding_hip_adduction',
3346
+ 25: 'standing_adduction',
3347
+ 26: 'weighted_standing_adduction',
3348
+ 27: 'standing_cable_hip_abduction',
3349
+ 28: 'standing_hip_abduction',
3350
+ 29: 'weighted_standing_hip_abduction',
3351
+ 30: 'standing_rear_leg_raise',
3352
+ 31: 'weighted_standing_rear_leg_raise',
3353
+ 32: 'supine_hip_internal_rotation',
3354
+ 33: 'weighted_supine_hip_internal_rotation'
3355
+ },
3356
+ hip_swing_excercise_name: {
3357
+ 0: 'single_arm_kettlebell_swing',
3358
+ 1: 'single_arm_dumbbell_swing',
3359
+ 2: 'step_out_swing'
3360
+ },
3361
+ hyperextension_exercise_name: {
3362
+ 0: 'back_extension_with_opposite_arm_and_leg_reach',
3363
+ 1: 'weighted_back_extension_with_opposite_arm_and_leg_reach',
3364
+ 2: 'base_rotations',
3365
+ 3: 'weighted_base_rotations',
3366
+ 4: 'bent_knee_reverse_hyperextension',
3367
+ 5: 'weighted_bent_knee_reverse_hyperextension',
3368
+ 6: 'hollow_hold_and_roll',
3369
+ 7: 'weighted_hollow_hold_and_roll',
3370
+ 8: 'kicks',
3371
+ 9: 'weighted_kicks',
3372
+ 10: 'knee_raises',
3373
+ 11: 'weighted_knee_raises',
3374
+ 12: 'kneeling_superman',
3375
+ 13: 'weighted_kneeling_superman',
3376
+ 14: 'lat_pull_down_with_row',
3377
+ 15: 'medicine_ball_deadlift_to_reach',
3378
+ 16: 'one_arm_one_leg_row',
3379
+ 17: 'one_arm_row_with_band',
3380
+ 18: 'overhead_lunge_with_medicine_ball',
3381
+ 19: 'plank_knee_tucks',
3382
+ 20: 'weighted_plank_knee_tucks',
3383
+ 21: 'side_step',
3384
+ 22: 'weighted_side_step',
3385
+ 23: 'single_leg_back_extension',
3386
+ 24: 'weighted_single_leg_back_extension',
3387
+ 25: 'spine_extension',
3388
+ 26: 'weighted_spine_extension',
3389
+ 27: 'static_back_extension',
3390
+ 28: 'weighted_static_back_extension',
3391
+ 29: 'superman_from_floor',
3392
+ 30: 'weighted_superman_from_floor',
3393
+ 31: 'swiss_ball_back_extension',
3394
+ 32: 'weighted_swiss_ball_back_extension',
3395
+ 33: 'swiss_ball_hyperextension',
3396
+ 34: 'weighted_swiss_ball_hyperextension',
3397
+ 35: 'swiss_ball_opposite_arm_and_leg_lift',
3398
+ 36: 'weighted_swiss_ball_opposite_arm_and_leg_lift',
3399
+ 37: 'superman_on_swiss_ball',
3400
+ 38: 'cobra',
3401
+ 39: 'supine_floor_barre'
3402
+ },
3403
+ lateral_raise_exercise_name: {
3404
+ 0: '45_degree_cable_external_rotation',
3405
+ 1: 'alternating_lateral_raise_with_static_hold',
3406
+ 2: 'bar_muscle_up',
3407
+ 3: 'bent_over_lateral_raise',
3408
+ 4: 'cable_diagonal_raise',
3409
+ 5: 'cable_front_raise',
3410
+ 6: 'calorie_row',
3411
+ 7: 'combo_shoulder_raise',
3412
+ 8: 'dumbbell_diagonal_raise',
3413
+ 9: 'dumbbell_v_raise',
3414
+ 10: 'front_raise',
3415
+ 11: 'leaning_dumbbell_lateral_raise',
3416
+ 12: 'lying_dumbbell_raise',
3417
+ 13: 'muscle_up',
3418
+ 14: 'one_arm_cable_lateral_raise',
3419
+ 15: 'overhand_grip_rear_lateral_raise',
3420
+ 16: 'plate_raises',
3421
+ 17: 'ring_dip',
3422
+ 18: 'weighted_ring_dip',
3423
+ 19: 'ring_muscle_up',
3424
+ 20: 'weighted_ring_muscle_up',
3425
+ 21: 'rope_climb',
3426
+ 22: 'weighted_rope_climb',
3427
+ 23: 'scaption',
3428
+ 24: 'seated_lateral_raise',
3429
+ 25: 'seated_rear_lateral_raise',
3430
+ 26: 'side_lying_lateral_raise',
3431
+ 27: 'standing_lift',
3432
+ 28: 'suspended_row',
3433
+ 29: 'underhand_grip_rear_lateral_raise',
3434
+ 30: 'wall_slide',
3435
+ 31: 'weighted_wall_slide',
3436
+ 32: 'arm_circles',
3437
+ 33: 'shaving_the_head'
3438
+ },
3439
+ leg_curl_exercise_name: {
3440
+ 0: 'leg_curl',
3441
+ 1: 'weighted_leg_curl',
3442
+ 2: 'good_morning',
3443
+ 3: 'seated_barbell_good_morning',
3444
+ 4: 'single_leg_barbell_good_morning',
3445
+ 5: 'single_leg_sliding_leg_curl',
3446
+ 6: 'sliding_leg_curl',
3447
+ 7: 'split_barbell_good_morning',
3448
+ 8: 'split_stance_extension',
3449
+ 9: 'staggered_stance_good_morning',
3450
+ 10: 'swiss_ball_hip_raise_and_leg_curl',
3451
+ 11: 'zercher_good_morning'
3452
+ },
3453
+ leg_raise_exercise_name: {
3454
+ 0: 'hanging_knee_raise',
3455
+ 1: 'hanging_leg_raise',
3456
+ 2: 'weighted_hanging_leg_raise',
3457
+ 3: 'hanging_single_leg_raise',
3458
+ 4: 'weighted_hanging_single_leg_raise',
3459
+ 5: 'kettlebell_leg_raises',
3460
+ 6: 'leg_lowering_drill',
3461
+ 7: 'weighted_leg_lowering_drill',
3462
+ 8: 'lying_straight_leg_raise',
3463
+ 9: 'weighted_lying_straight_leg_raise',
3464
+ 10: 'medicine_ball_leg_drops',
3465
+ 11: 'quadruped_leg_raise',
3466
+ 12: 'weighted_quadruped_leg_raise',
3467
+ 13: 'reverse_leg_raise',
3468
+ 14: 'weighted_reverse_leg_raise',
3469
+ 15: 'reverse_leg_raise_on_swiss_ball',
3470
+ 16: 'weighted_reverse_leg_raise_on_swiss_ball',
3471
+ 17: 'single_leg_lowering_drill',
3472
+ 18: 'weighted_single_leg_lowering_drill',
3473
+ 19: 'weighted_hanging_knee_raise',
3474
+ 20: 'lateral_stepover',
3475
+ 21: 'weighted_lateral_stepover'
3476
+ },
3477
+ lunge_exercise_name: {
3478
+ 0: 'overhead_lunge',
3479
+ 1: 'lunge_matrix',
3480
+ 2: 'weighted_lunge_matrix',
3481
+ 3: 'alternating_barbell_forward_lunge',
3482
+ 4: 'alternating_dumbbell_lunge_with_reach',
3483
+ 5: 'back_foot_elevated_dumbbell_split_squat',
3484
+ 6: 'barbell_box_lunge',
3485
+ 7: 'barbell_bulgarian_split_squat',
3486
+ 8: 'barbell_crossover_lunge',
3487
+ 9: 'barbell_front_split_squat',
3488
+ 10: 'barbell_lunge',
3489
+ 11: 'barbell_reverse_lunge',
3490
+ 12: 'barbell_side_lunge',
3491
+ 13: 'barbell_split_squat',
3492
+ 14: 'core_control_rear_lunge',
3493
+ 15: 'diagonal_lunge',
3494
+ 16: 'drop_lunge',
3495
+ 17: 'dumbbell_box_lunge',
3496
+ 18: 'dumbbell_bulgarian_split_squat',
3497
+ 19: 'dumbbell_crossover_lunge',
3498
+ 20: 'dumbbell_diagonal_lunge',
3499
+ 21: 'dumbbell_lunge',
3500
+ 22: 'dumbbell_lunge_and_rotation',
3501
+ 23: 'dumbbell_overhead_bulgarian_split_squat',
3502
+ 24: 'dumbbell_reverse_lunge_to_high_knee_and_press',
3503
+ 25: 'dumbbell_side_lunge',
3504
+ 26: 'elevated_front_foot_barbell_split_squat',
3505
+ 27: 'front_foot_elevated_dumbbell_split_squat',
3506
+ 28: 'gunslinger_lunge',
3507
+ 29: 'lawnmower_lunge',
3508
+ 30: 'low_lunge_with_isometric_adduction',
3509
+ 31: 'low_side_to_side_lunge',
3510
+ 32: 'lunge',
3511
+ 33: 'weighted_lunge',
3512
+ 34: 'lunge_with_arm_reach',
3513
+ 35: 'lunge_with_diagonal_reach',
3514
+ 36: 'lunge_with_side_bend',
3515
+ 37: 'offset_dumbbell_lunge',
3516
+ 38: 'offset_dumbbell_reverse_lunge',
3517
+ 39: 'overhead_bulgarian_split_squat',
3518
+ 40: 'overhead_dumbbell_reverse_lunge',
3519
+ 41: 'overhead_dumbbell_split_squat',
3520
+ 42: 'overhead_lunge_with_rotation',
3521
+ 43: 'reverse_barbell_box_lunge',
3522
+ 44: 'reverse_box_lunge',
3523
+ 45: 'reverse_dumbbell_box_lunge',
3524
+ 46: 'reverse_dumbbell_crossover_lunge',
3525
+ 47: 'reverse_dumbbell_diagonal_lunge',
3526
+ 48: 'reverse_lunge_with_reach_back',
3527
+ 49: 'weighted_reverse_lunge_with_reach_back',
3528
+ 50: 'reverse_lunge_with_twist_and_overhead_reach',
3529
+ 51: 'weighted_reverse_lunge_with_twist_and_overhead_reach',
3530
+ 52: 'reverse_sliding_box_lunge',
3531
+ 53: 'weighted_reverse_sliding_box_lunge',
3532
+ 54: 'reverse_sliding_lunge',
3533
+ 55: 'weighted_reverse_sliding_lunge',
3534
+ 56: 'runners_lunge_to_balance',
3535
+ 57: 'weighted_runners_lunge_to_balance',
3536
+ 58: 'shifting_side_lunge',
3537
+ 59: 'side_and_crossover_lunge',
3538
+ 60: 'weighted_side_and_crossover_lunge',
3539
+ 61: 'side_lunge',
3540
+ 62: 'weighted_side_lunge',
3541
+ 63: 'side_lunge_and_press',
3542
+ 64: 'side_lunge_jump_off',
3543
+ 65: 'side_lunge_sweep',
3544
+ 66: 'weighted_side_lunge_sweep',
3545
+ 67: 'side_lunge_to_crossover_tap',
3546
+ 68: 'weighted_side_lunge_to_crossover_tap',
3547
+ 69: 'side_to_side_lunge_chops',
3548
+ 70: 'weighted_side_to_side_lunge_chops',
3549
+ 71: 'siff_jump_lunge',
3550
+ 72: 'weighted_siff_jump_lunge',
3551
+ 73: 'single_arm_reverse_lunge_and_press',
3552
+ 74: 'sliding_lateral_lunge',
3553
+ 75: 'weighted_sliding_lateral_lunge',
3554
+ 76: 'walking_barbell_lunge',
3555
+ 77: 'walking_dumbbell_lunge',
3556
+ 78: 'walking_lunge',
3557
+ 79: 'weighted_walking_lunge',
3558
+ 80: 'wide_grip_overhead_barbell_split_squat'
3559
+ },
3560
+ olympic_lift_exercise_name: {
3561
+ 0: 'barbell_hang_power_clean',
3562
+ 1: 'barbell_hang_squat_clean',
3563
+ 2: 'barbell_power_clean',
3564
+ 3: 'barbell_power_snatch',
3565
+ 4: 'barbell_squat_clean',
3566
+ 5: 'clean_and_jerk',
3567
+ 6: 'barbell_hang_power_snatch',
3568
+ 7: 'barbell_hang_pull',
3569
+ 8: 'barbell_high_pull',
3570
+ 9: 'barbell_snatch',
3571
+ 10: 'barbell_split_jerk',
3572
+ 11: 'clean',
3573
+ 12: 'dumbbell_clean',
3574
+ 13: 'dumbbell_hang_pull',
3575
+ 14: 'one_hand_dumbbell_split_snatch',
3576
+ 15: 'push_jerk',
3577
+ 16: 'single_arm_dumbbell_snatch',
3578
+ 17: 'single_arm_hang_snatch',
3579
+ 18: 'single_arm_kettlebell_snatch',
3580
+ 19: 'split_jerk',
3581
+ 20: 'squat_clean_and_jerk'
3582
+ },
3583
+ plank_exercise_name: {
3584
+ 0: '45_degree_plank',
3585
+ 1: 'weighted_45_degree_plank',
3586
+ 2: '90_degree_static_hold',
3587
+ 3: 'weighted_90_degree_static_hold',
3588
+ 4: 'bear_crawl',
3589
+ 5: 'weighted_bear_crawl',
3590
+ 6: 'cross_body_mountain_climber',
3591
+ 7: 'weighted_cross_body_mountain_climber',
3592
+ 8: 'elbow_plank_pike_jacks',
3593
+ 9: 'weighted_elbow_plank_pike_jacks',
3594
+ 10: 'elevated_feet_plank',
3595
+ 11: 'weighted_elevated_feet_plank',
3596
+ 12: 'elevator_abs',
3597
+ 13: 'weighted_elevator_abs',
3598
+ 14: 'extended_plank',
3599
+ 15: 'weighted_extended_plank',
3600
+ 16: 'full_plank_passe_twist',
3601
+ 17: 'weighted_full_plank_passe_twist',
3602
+ 18: 'inching_elbow_plank',
3603
+ 19: 'weighted_inching_elbow_plank',
3604
+ 20: 'inchworm_to_side_plank',
3605
+ 21: 'weighted_inchworm_to_side_plank',
3606
+ 22: 'kneeling_plank',
3607
+ 23: 'weighted_kneeling_plank',
3608
+ 24: 'kneeling_side_plank_with_leg_lift',
3609
+ 25: 'weighted_kneeling_side_plank_with_leg_lift',
3610
+ 26: 'lateral_roll',
3611
+ 27: 'weighted_lateral_roll',
3612
+ 28: 'lying_reverse_plank',
3613
+ 29: 'weighted_lying_reverse_plank',
3614
+ 30: 'medicine_ball_mountain_climber',
3615
+ 31: 'weighted_medicine_ball_mountain_climber',
3616
+ 32: 'modified_mountain_climber_and_extension',
3617
+ 33: 'weighted_modified_mountain_climber_and_extension',
3618
+ 34: 'mountain_climber',
3619
+ 35: 'weighted_mountain_climber',
3620
+ 36: 'mountain_climber_on_sliding_discs',
3621
+ 37: 'weighted_mountain_climber_on_sliding_discs',
3622
+ 38: 'mountain_climber_with_feet_on_bosu_ball',
3623
+ 39: 'weighted_mountain_climber_with_feet_on_bosu_ball',
3624
+ 40: 'mountain_climber_with_hands_on_bench',
3625
+ 41: 'mountain_climber_with_hands_on_swiss_ball',
3626
+ 42: 'weighted_mountain_climber_with_hands_on_swiss_ball',
3627
+ 43: 'plank',
3628
+ 44: 'plank_jacks_with_feet_on_sliding_discs',
3629
+ 45: 'weighted_plank_jacks_with_feet_on_sliding_discs',
3630
+ 46: 'plank_knee_twist',
3631
+ 47: 'weighted_plank_knee_twist',
3632
+ 48: 'plank_pike_jumps',
3633
+ 49: 'weighted_plank_pike_jumps',
3634
+ 50: 'plank_pikes',
3635
+ 51: 'weighted_plank_pikes',
3636
+ 52: 'plank_to_stand_up',
3637
+ 53: 'weighted_plank_to_stand_up',
3638
+ 54: 'plank_with_arm_raise',
3639
+ 55: 'weighted_plank_with_arm_raise',
3640
+ 56: 'plank_with_knee_to_elbow',
3641
+ 57: 'weighted_plank_with_knee_to_elbow',
3642
+ 58: 'plank_with_oblique_crunch',
3643
+ 59: 'weighted_plank_with_oblique_crunch',
3644
+ 60: 'plyometric_side_plank',
3645
+ 61: 'weighted_plyometric_side_plank',
3646
+ 62: 'rolling_side_plank',
3647
+ 63: 'weighted_rolling_side_plank',
3648
+ 64: 'side_kick_plank',
3649
+ 65: 'weighted_side_kick_plank',
3650
+ 66: 'side_plank',
3651
+ 67: 'weighted_side_plank',
3652
+ 68: 'side_plank_and_row',
3653
+ 69: 'weighted_side_plank_and_row',
3654
+ 70: 'side_plank_lift',
3655
+ 71: 'weighted_side_plank_lift',
3656
+ 72: 'side_plank_with_elbow_on_bosu_ball',
3657
+ 73: 'weighted_side_plank_with_elbow_on_bosu_ball',
3658
+ 74: 'side_plank_with_feet_on_bench',
3659
+ 75: 'weighted_side_plank_with_feet_on_bench',
3660
+ 76: 'side_plank_with_knee_circle',
3661
+ 77: 'weighted_side_plank_with_knee_circle',
3662
+ 78: 'side_plank_with_knee_tuck',
3663
+ 79: 'weighted_side_plank_with_knee_tuck',
3664
+ 80: 'side_plank_with_leg_lift',
3665
+ 81: 'weighted_side_plank_with_leg_lift',
3666
+ 82: 'side_plank_with_reach_under',
3667
+ 83: 'weighted_side_plank_with_reach_under',
3668
+ 84: 'single_leg_elevated_feet_plank',
3669
+ 85: 'weighted_single_leg_elevated_feet_plank',
3670
+ 86: 'single_leg_flex_and_extend',
3671
+ 87: 'weighted_single_leg_flex_and_extend',
3672
+ 88: 'single_leg_side_plank',
3673
+ 89: 'weighted_single_leg_side_plank',
3674
+ 90: 'spiderman_plank',
3675
+ 91: 'weighted_spiderman_plank',
3676
+ 92: 'straight_arm_plank',
3677
+ 93: 'weighted_straight_arm_plank',
3678
+ 94: 'straight_arm_plank_with_shoulder_touch',
3679
+ 95: 'weighted_straight_arm_plank_with_shoulder_touch',
3680
+ 96: 'swiss_ball_plank',
3681
+ 97: 'weighted_swiss_ball_plank',
3682
+ 98: 'swiss_ball_plank_leg_lift',
3683
+ 99: 'weighted_swiss_ball_plank_leg_lift',
3684
+ 100: 'swiss_ball_plank_leg_lift_and_hold',
3685
+ 101: 'swiss_ball_plank_with_feet_on_bench',
3686
+ 102: 'weighted_swiss_ball_plank_with_feet_on_bench',
3687
+ 103: 'swiss_ball_prone_jackknife',
3688
+ 104: 'weighted_swiss_ball_prone_jackknife',
3689
+ 105: 'swiss_ball_side_plank',
3690
+ 106: 'weighted_swiss_ball_side_plank',
3691
+ 107: 'three_way_plank',
3692
+ 108: 'weighted_three_way_plank',
3693
+ 109: 'towel_plank_and_knee_in',
3694
+ 110: 'weighted_towel_plank_and_knee_in',
3695
+ 111: 't_stabilization',
3696
+ 112: 'weighted_t_stabilization',
3697
+ 113: 'turkish_get_up_to_side_plank',
3698
+ 114: 'weighted_turkish_get_up_to_side_plank',
3699
+ 115: 'two_point_plank',
3700
+ 116: 'weighted_two_point_plank',
3701
+ 117: 'weighted_plank',
3702
+ 118: 'wide_stance_plank_with_diagonal_arm_lift',
3703
+ 119: 'weighted_wide_stance_plank_with_diagonal_arm_lift',
3704
+ 120: 'wide_stance_plank_with_diagonal_leg_lift',
3705
+ 121: 'weighted_wide_stance_plank_with_diagonal_leg_lift',
3706
+ 122: 'wide_stance_plank_with_leg_lift',
3707
+ 123: 'weighted_wide_stance_plank_with_leg_lift',
3708
+ 124: 'wide_stance_plank_with_opposite_arm_and_leg_lift',
3709
+ 125: 'weighted_mountain_climber_with_hands_on_bench',
3710
+ 126: 'weighted_swiss_ball_plank_leg_lift_and_hold',
3711
+ 127: 'weighted_wide_stance_plank_with_opposite_arm_and_leg_lift',
3712
+ 128: 'plank_with_feet_on_swiss_ball',
3713
+ 129: 'side_plank_to_plank_with_reach_under',
3714
+ 130: 'bridge_with_glute_lower_lift',
3715
+ 131: 'bridge_one_leg_bridge',
3716
+ 132: 'plank_with_arm_variations',
3717
+ 133: 'plank_with_leg_lift',
3718
+ 134: 'reverse_plank_with_leg_pull'
3719
+ },
3720
+ plyo_exercise_name: {
3721
+ 0: 'alternating_jump_lunge',
3722
+ 1: 'weighted_alternating_jump_lunge',
3723
+ 2: 'barbell_jump_squat',
3724
+ 3: 'body_weight_jump_squat',
3725
+ 4: 'weighted_jump_squat',
3726
+ 5: 'cross_knee_strike',
3727
+ 6: 'weighted_cross_knee_strike',
3728
+ 7: 'depth_jump',
3729
+ 8: 'weighted_depth_jump',
3730
+ 9: 'dumbbell_jump_squat',
3731
+ 10: 'dumbbell_split_jump',
3732
+ 11: 'front_knee_strike',
3733
+ 12: 'weighted_front_knee_strike',
3734
+ 13: 'high_box_jump',
3735
+ 14: 'weighted_high_box_jump',
3736
+ 15: 'isometric_explosive_body_weight_jump_squat',
3737
+ 16: 'weighted_isometric_explosive_jump_squat',
3738
+ 17: 'lateral_leap_and_hop',
3739
+ 18: 'weighted_lateral_leap_and_hop',
3740
+ 19: 'lateral_plyo_squats',
3741
+ 20: 'weighted_lateral_plyo_squats',
3742
+ 21: 'lateral_slide',
3743
+ 22: 'weighted_lateral_slide',
3744
+ 23: 'medicine_ball_overhead_throws',
3745
+ 24: 'medicine_ball_side_throw',
3746
+ 25: 'medicine_ball_slam',
3747
+ 26: 'side_to_side_medicine_ball_throws',
3748
+ 27: 'side_to_side_shuffle_jump',
3749
+ 28: 'weighted_side_to_side_shuffle_jump',
3750
+ 29: 'squat_jump_onto_box',
3751
+ 30: 'weighted_squat_jump_onto_box',
3752
+ 31: 'squat_jumps_in_and_out',
3753
+ 32: 'weighted_squat_jumps_in_and_out'
3754
+ },
3755
+ pull_up_exercise_name: {
3756
+ 0: 'banded_pull_ups',
3757
+ 1: '30_degree_lat_pulldown',
3758
+ 2: 'band_assisted_chin_up',
3759
+ 3: 'close_grip_chin_up',
3760
+ 4: 'weighted_close_grip_chin_up',
3761
+ 5: 'close_grip_lat_pulldown',
3762
+ 6: 'crossover_chin_up',
3763
+ 7: 'weighted_crossover_chin_up',
3764
+ 8: 'ez_bar_pullover',
3765
+ 9: 'hanging_hurdle',
3766
+ 10: 'weighted_hanging_hurdle',
3767
+ 11: 'kneeling_lat_pulldown',
3768
+ 12: 'kneeling_underhand_grip_lat_pulldown',
3769
+ 13: 'lat_pulldown',
3770
+ 14: 'mixed_grip_chin_up',
3771
+ 15: 'weighted_mixed_grip_chin_up',
3772
+ 16: 'mixed_grip_pull_up',
3773
+ 17: 'weighted_mixed_grip_pull_up',
3774
+ 18: 'reverse_grip_pulldown',
3775
+ 19: 'standing_cable_pullover',
3776
+ 20: 'straight_arm_pulldown',
3777
+ 21: 'swiss_ball_ez_bar_pullover',
3778
+ 22: 'towel_pull_up',
3779
+ 23: 'weighted_towel_pull_up',
3780
+ 24: 'weighted_pull_up',
3781
+ 25: 'wide_grip_lat_pulldown',
3782
+ 26: 'wide_grip_pull_up',
3783
+ 27: 'weighted_wide_grip_pull_up',
3784
+ 28: 'burpee_pull_up',
3785
+ 29: 'weighted_burpee_pull_up',
3786
+ 30: 'jumping_pull_ups',
3787
+ 31: 'weighted_jumping_pull_ups',
3788
+ 32: 'kipping_pull_up',
3789
+ 33: 'weighted_kipping_pull_up',
3790
+ 34: 'l_pull_up',
3791
+ 35: 'weighted_l_pull_up',
3792
+ 36: 'suspended_chin_up',
3793
+ 37: 'weighted_suspended_chin_up',
3794
+ 38: 'pull_up'
3795
+ },
3796
+ push_up_exercise_name: {
3797
+ 0: 'chest_press_with_band',
3798
+ 1: 'alternating_staggered_push_up',
3799
+ 2: 'weighted_alternating_staggered_push_up',
3800
+ 3: 'alternating_hands_medicine_ball_push_up',
3801
+ 4: 'weighted_alternating_hands_medicine_ball_push_up',
3802
+ 5: 'bosu_ball_push_up',
3803
+ 6: 'weighted_bosu_ball_push_up',
3804
+ 7: 'clapping_push_up',
3805
+ 8: 'weighted_clapping_push_up',
3806
+ 9: 'close_grip_medicine_ball_push_up',
3807
+ 10: 'weighted_close_grip_medicine_ball_push_up',
3808
+ 11: 'close_hands_push_up',
3809
+ 12: 'weighted_close_hands_push_up',
3810
+ 13: 'decline_push_up',
3811
+ 14: 'weighted_decline_push_up',
3812
+ 15: 'diamond_push_up',
3813
+ 16: 'weighted_diamond_push_up',
3814
+ 17: 'explosive_crossover_push_up',
3815
+ 18: 'weighted_explosive_crossover_push_up',
3816
+ 19: 'explosive_push_up',
3817
+ 20: 'weighted_explosive_push_up',
3818
+ 21: 'feet_elevated_side_to_side_push_up',
3819
+ 22: 'weighted_feet_elevated_side_to_side_push_up',
3820
+ 23: 'hand_release_push_up',
3821
+ 24: 'weighted_hand_release_push_up',
3822
+ 25: 'handstand_push_up',
3823
+ 26: 'weighted_handstand_push_up',
3824
+ 27: 'incline_push_up',
3825
+ 28: 'weighted_incline_push_up',
3826
+ 29: 'isometric_explosive_push_up',
3827
+ 30: 'weighted_isometric_explosive_push_up',
3828
+ 31: 'judo_push_up',
3829
+ 32: 'weighted_judo_push_up',
3830
+ 33: 'kneeling_push_up',
3831
+ 34: 'weighted_kneeling_push_up',
3832
+ 35: 'medicine_ball_chest_pass',
3833
+ 36: 'medicine_ball_push_up',
3834
+ 37: 'weighted_medicine_ball_push_up',
3835
+ 38: 'one_arm_push_up',
3836
+ 39: 'weighted_one_arm_push_up',
3837
+ 40: 'weighted_push_up',
3838
+ 41: 'push_up_and_row',
3839
+ 42: 'weighted_push_up_and_row',
3840
+ 43: 'push_up_plus',
3841
+ 44: 'weighted_push_up_plus',
3842
+ 45: 'push_up_with_feet_on_swiss_ball',
3843
+ 46: 'weighted_push_up_with_feet_on_swiss_ball',
3844
+ 47: 'push_up_with_one_hand_on_medicine_ball',
3845
+ 48: 'weighted_push_up_with_one_hand_on_medicine_ball',
3846
+ 49: 'shoulder_push_up',
3847
+ 50: 'weighted_shoulder_push_up',
3848
+ 51: 'single_arm_medicine_ball_push_up',
3849
+ 52: 'weighted_single_arm_medicine_ball_push_up',
3850
+ 53: 'spiderman_push_up',
3851
+ 54: 'weighted_spiderman_push_up',
3852
+ 55: 'stacked_feet_push_up',
3853
+ 56: 'weighted_stacked_feet_push_up',
3854
+ 57: 'staggered_hands_push_up',
3855
+ 58: 'weighted_staggered_hands_push_up',
3856
+ 59: 'suspended_push_up',
3857
+ 60: 'weighted_suspended_push_up',
3858
+ 61: 'swiss_ball_push_up',
3859
+ 62: 'weighted_swiss_ball_push_up',
3860
+ 63: 'swiss_ball_push_up_plus',
3861
+ 64: 'weighted_swiss_ball_push_up_plus',
3862
+ 65: 't_push_up',
3863
+ 66: 'weighted_t_push_up',
3864
+ 67: 'triple_stop_push_up',
3865
+ 68: 'weighted_triple_stop_push_up',
3866
+ 69: 'wide_hands_push_up',
3867
+ 70: 'weighted_wide_hands_push_up',
3868
+ 71: 'parallette_handstand_push_up',
3869
+ 72: 'weighted_parallette_handstand_push_up',
3870
+ 73: 'ring_handstand_push_up',
3871
+ 74: 'weighted_ring_handstand_push_up',
3872
+ 75: 'ring_push_up',
3873
+ 76: 'weighted_ring_push_up',
3874
+ 77: 'push_up',
3875
+ 78: 'pilates_pushup'
3876
+ },
3877
+ row_exercise_name: {
3878
+ 0: 'barbell_straight_leg_deadlift_to_row',
3879
+ 1: 'cable_row_standing',
3880
+ 2: 'dumbbell_row',
3881
+ 3: 'elevated_feet_inverted_row',
3882
+ 4: 'weighted_elevated_feet_inverted_row',
3883
+ 5: 'face_pull',
3884
+ 6: 'face_pull_with_external_rotation',
3885
+ 7: 'inverted_row_with_feet_on_swiss_ball',
3886
+ 8: 'weighted_inverted_row_with_feet_on_swiss_ball',
3887
+ 9: 'kettlebell_row',
3888
+ 10: 'modified_inverted_row',
3889
+ 11: 'weighted_modified_inverted_row',
3890
+ 12: 'neutral_grip_alternating_dumbbell_row',
3891
+ 13: 'one_arm_bent_over_row',
3892
+ 14: 'one_legged_dumbbell_row',
3893
+ 15: 'renegade_row',
3894
+ 16: 'reverse_grip_barbell_row',
3895
+ 17: 'rope_handle_cable_row',
3896
+ 18: 'seated_cable_row',
3897
+ 19: 'seated_dumbbell_row',
3898
+ 20: 'single_arm_cable_row',
3899
+ 21: 'single_arm_cable_row_and_rotation',
3900
+ 22: 'single_arm_inverted_row',
3901
+ 23: 'weighted_single_arm_inverted_row',
3902
+ 24: 'single_arm_neutral_grip_dumbbell_row',
3903
+ 25: 'single_arm_neutral_grip_dumbbell_row_and_rotation',
3904
+ 26: 'suspended_inverted_row',
3905
+ 27: 'weighted_suspended_inverted_row',
3906
+ 28: 't_bar_row',
3907
+ 29: 'towel_grip_inverted_row',
3908
+ 30: 'weighted_towel_grip_inverted_row',
3909
+ 31: 'underhand_grip_cable_row',
3910
+ 32: 'v_grip_cable_row',
3911
+ 33: 'wide_grip_seated_cable_row'
3912
+ },
3913
+ shoulder_press_exercise_name: {
3914
+ 0: 'alternating_dumbbell_shoulder_press',
3915
+ 1: 'arnold_press',
3916
+ 2: 'barbell_front_squat_to_push_press',
3917
+ 3: 'barbell_push_press',
3918
+ 4: 'barbell_shoulder_press',
3919
+ 5: 'dead_curl_press',
3920
+ 6: 'dumbbell_alternating_shoulder_press_and_twist',
3921
+ 7: 'dumbbell_hammer_curl_to_lunge_to_press',
3922
+ 8: 'dumbbell_push_press',
3923
+ 9: 'floor_inverted_shoulder_press',
3924
+ 10: 'weighted_floor_inverted_shoulder_press',
3925
+ 11: 'inverted_shoulder_press',
3926
+ 12: 'weighted_inverted_shoulder_press',
3927
+ 13: 'one_arm_push_press',
3928
+ 14: 'overhead_barbell_press',
3929
+ 15: 'overhead_dumbbell_press',
3930
+ 16: 'seated_barbell_shoulder_press',
3931
+ 17: 'seated_dumbbell_shoulder_press',
3932
+ 18: 'single_arm_dumbbell_shoulder_press',
3933
+ 19: 'single_arm_step_up_and_press',
3934
+ 20: 'smith_machine_overhead_press',
3935
+ 21: 'split_stance_hammer_curl_to_press',
3936
+ 22: 'swiss_ball_dumbbell_shoulder_press',
3937
+ 23: 'weight_plate_front_raise'
3938
+ },
3939
+ shoulder_stability_exercise_name: {
3940
+ 0: '90_degree_cable_external_rotation',
3941
+ 1: 'band_external_rotation',
3942
+ 2: 'band_internal_rotation',
3943
+ 3: 'bent_arm_lateral_raise_and_external_rotation',
3944
+ 4: 'cable_external_rotation',
3945
+ 5: 'dumbbell_face_pull_with_external_rotation',
3946
+ 6: 'floor_i_raise',
3947
+ 7: 'weighted_floor_i_raise',
3948
+ 8: 'floor_t_raise',
3949
+ 9: 'weighted_floor_t_raise',
3950
+ 10: 'floor_y_raise',
3951
+ 11: 'weighted_floor_y_raise',
3952
+ 12: 'incline_i_raise',
3953
+ 13: 'weighted_incline_i_raise',
3954
+ 14: 'incline_l_raise',
3955
+ 15: 'weighted_incline_l_raise',
3956
+ 16: 'incline_t_raise',
3957
+ 17: 'weighted_incline_t_raise',
3958
+ 18: 'incline_w_raise',
3959
+ 19: 'weighted_incline_w_raise',
3960
+ 20: 'incline_y_raise',
3961
+ 21: 'weighted_incline_y_raise',
3962
+ 22: 'lying_external_rotation',
3963
+ 23: 'seated_dumbbell_external_rotation',
3964
+ 24: 'standing_l_raise',
3965
+ 25: 'swiss_ball_i_raise',
3966
+ 26: 'weighted_swiss_ball_i_raise',
3967
+ 27: 'swiss_ball_t_raise',
3968
+ 28: 'weighted_swiss_ball_t_raise',
3969
+ 29: 'swiss_ball_w_raise',
3970
+ 30: 'weighted_swiss_ball_w_raise',
3971
+ 31: 'swiss_ball_y_raise',
3972
+ 32: 'weighted_swiss_ball_y_raise'
3973
+ },
3974
+ shrug_exercise_name: {
3975
+ 0: 'barbell_jump_shrug',
3976
+ 1: 'barbell_shrug',
3977
+ 2: 'barbell_upright_row',
3978
+ 3: 'behind_the_back_smith_machine_shrug',
3979
+ 4: 'dumbbell_jump_shrug',
3980
+ 5: 'dumbbell_shrug',
3981
+ 6: 'dumbbell_upright_row',
3982
+ 7: 'incline_dumbbell_shrug',
3983
+ 8: 'overhead_barbell_shrug',
3984
+ 9: 'overhead_dumbbell_shrug',
3985
+ 10: 'scaption_and_shrug',
3986
+ 11: 'scapular_retraction',
3987
+ 12: 'serratus_chair_shrug',
3988
+ 13: 'weighted_serratus_chair_shrug',
3989
+ 14: 'serratus_shrug',
3990
+ 15: 'weighted_serratus_shrug',
3991
+ 16: 'wide_grip_jump_shrug'
3992
+ },
3993
+ sit_up_exercise_name: {
3994
+ 0: 'alternating_sit_up',
3995
+ 1: 'weighted_alternating_sit_up',
3996
+ 2: 'bent_knee_v_up',
3997
+ 3: 'weighted_bent_knee_v_up',
3998
+ 4: 'butterfly_sit_up',
3999
+ 5: 'weighted_butterfly_situp',
4000
+ 6: 'cross_punch_roll_up',
4001
+ 7: 'weighted_cross_punch_roll_up',
4002
+ 8: 'crossed_arms_sit_up',
4003
+ 9: 'weighted_crossed_arms_sit_up',
4004
+ 10: 'get_up_sit_up',
4005
+ 11: 'weighted_get_up_sit_up',
4006
+ 12: 'hovering_sit_up',
4007
+ 13: 'weighted_hovering_sit_up',
4008
+ 14: 'kettlebell_sit_up',
4009
+ 15: 'medicine_ball_alternating_v_up',
4010
+ 16: 'medicine_ball_sit_up',
4011
+ 17: 'medicine_ball_v_up',
4012
+ 18: 'modified_sit_up',
4013
+ 19: 'negative_sit_up',
4014
+ 20: 'one_arm_full_sit_up',
4015
+ 21: 'reclining_circle',
4016
+ 22: 'weighted_reclining_circle',
4017
+ 23: 'reverse_curl_up',
4018
+ 24: 'weighted_reverse_curl_up',
4019
+ 25: 'single_leg_swiss_ball_jackknife',
4020
+ 26: 'weighted_single_leg_swiss_ball_jackknife',
4021
+ 27: 'the_teaser',
4022
+ 28: 'the_teaser_weighted',
4023
+ 29: 'three_part_roll_down',
4024
+ 30: 'weighted_three_part_roll_down',
4025
+ 31: 'v_up',
4026
+ 32: 'weighted_v_up',
4027
+ 33: 'weighted_russian_twist_on_swiss_ball',
4028
+ 34: 'weighted_sit_up',
4029
+ 35: 'x_abs',
4030
+ 36: 'weighted_x_abs',
4031
+ 37: 'sit_up'
4032
+ },
4033
+ squat_exercise_name: {
4034
+ 0: 'leg_press',
4035
+ 1: 'back_squat_with_body_bar',
4036
+ 2: 'back_squats',
4037
+ 3: 'weighted_back_squats',
4038
+ 4: 'balancing_squat',
4039
+ 5: 'weighted_balancing_squat',
4040
+ 6: 'barbell_back_squat',
4041
+ 7: 'barbell_box_squat',
4042
+ 8: 'barbell_front_squat',
4043
+ 9: 'barbell_hack_squat',
4044
+ 10: 'barbell_hang_squat_snatch',
4045
+ 11: 'barbell_lateral_step_up',
4046
+ 12: 'barbell_quarter_squat',
4047
+ 13: 'barbell_siff_squat',
4048
+ 14: 'barbell_squat_snatch',
4049
+ 15: 'barbell_squat_with_heels_raised',
4050
+ 16: 'barbell_stepover',
4051
+ 17: 'barbell_step_up',
4052
+ 18: 'bench_squat_with_rotational_chop',
4053
+ 19: 'weighted_bench_squat_with_rotational_chop',
4054
+ 20: 'body_weight_wall_squat',
4055
+ 21: 'weighted_wall_squat',
4056
+ 22: 'box_step_squat',
4057
+ 23: 'weighted_box_step_squat',
4058
+ 24: 'braced_squat',
4059
+ 25: 'crossed_arm_barbell_front_squat',
4060
+ 26: 'crossover_dumbbell_step_up',
4061
+ 27: 'dumbbell_front_squat',
4062
+ 28: 'dumbbell_split_squat',
4063
+ 29: 'dumbbell_squat',
4064
+ 30: 'dumbbell_squat_clean',
4065
+ 31: 'dumbbell_stepover',
4066
+ 32: 'dumbbell_step_up',
4067
+ 33: 'elevated_single_leg_squat',
4068
+ 34: 'weighted_elevated_single_leg_squat',
4069
+ 35: 'figure_four_squats',
4070
+ 36: 'weighted_figure_four_squats',
4071
+ 37: 'goblet_squat',
4072
+ 38: 'kettlebell_squat',
4073
+ 39: 'kettlebell_swing_overhead',
4074
+ 40: 'kettlebell_swing_with_flip_to_squat',
4075
+ 41: 'lateral_dumbbell_step_up',
4076
+ 42: 'one_legged_squat',
4077
+ 43: 'overhead_dumbbell_squat',
4078
+ 44: 'overhead_squat',
4079
+ 45: 'partial_single_leg_squat',
4080
+ 46: 'weighted_partial_single_leg_squat',
4081
+ 47: 'pistol_squat',
4082
+ 48: 'weighted_pistol_squat',
4083
+ 49: 'plie_slides',
4084
+ 50: 'weighted_plie_slides',
4085
+ 51: 'plie_squat',
4086
+ 52: 'weighted_plie_squat',
4087
+ 53: 'prisoner_squat',
4088
+ 54: 'weighted_prisoner_squat',
4089
+ 55: 'single_leg_bench_get_up',
4090
+ 56: 'weighted_single_leg_bench_get_up',
4091
+ 57: 'single_leg_bench_squat',
4092
+ 58: 'weighted_single_leg_bench_squat',
4093
+ 59: 'single_leg_squat_on_swiss_ball',
4094
+ 60: 'weighted_single_leg_squat_on_swiss_ball',
4095
+ 61: 'squat',
4096
+ 62: 'weighted_squat',
4097
+ 63: 'squats_with_band',
4098
+ 64: 'staggered_squat',
4099
+ 65: 'weighted_staggered_squat',
4100
+ 66: 'step_up',
4101
+ 67: 'weighted_step_up',
4102
+ 68: 'suitcase_squats',
4103
+ 69: 'sumo_squat',
4104
+ 70: 'sumo_squat_slide_in',
4105
+ 71: 'weighted_sumo_squat_slide_in',
4106
+ 72: 'sumo_squat_to_high_pull',
4107
+ 73: 'sumo_squat_to_stand',
4108
+ 74: 'weighted_sumo_squat_to_stand',
4109
+ 75: 'sumo_squat_with_rotation',
4110
+ 76: 'weighted_sumo_squat_with_rotation',
4111
+ 77: 'swiss_ball_body_weight_wall_squat',
4112
+ 78: 'weighted_swiss_ball_wall_squat',
4113
+ 79: 'thrusters',
4114
+ 80: 'uneven_squat',
4115
+ 81: 'weighted_uneven_squat',
4116
+ 82: 'waist_slimming_squat',
4117
+ 83: 'wall_ball',
4118
+ 84: 'wide_stance_barbell_squat',
4119
+ 85: 'wide_stance_goblet_squat',
4120
+ 86: 'zercher_squat',
4121
+ 87: 'kbs_overhead',
4122
+ 88: 'squat_and_side_kick',
4123
+ 89: 'squat_jumps_in_n_out',
4124
+ 90: 'pilates_plie_squats_parallel_turned_out_flat_and_heels',
4125
+ 91: 'releve_straight_leg_and_knee_bent_with_one_leg_variation'
4126
+ },
4127
+ total_body_exercise_name: {
4128
+ 0: 'burpee',
4129
+ 1: 'weighted_burpee',
4130
+ 2: 'burpee_box_jump',
4131
+ 3: 'weighted_burpee_box_jump',
4132
+ 4: 'high_pull_burpee',
4133
+ 5: 'man_makers',
4134
+ 6: 'one_arm_burpee',
4135
+ 7: 'squat_thrusts',
4136
+ 8: 'weighted_squat_thrusts',
4137
+ 9: 'squat_plank_push_up',
4138
+ 10: 'weighted_squat_plank_push_up',
4139
+ 11: 'standing_t_rotation_balance',
4140
+ 12: 'weighted_standing_t_rotation_balance'
4141
+ },
4142
+ triceps_extension_exercise_name: {
4143
+ 0: 'bench_dip',
4144
+ 1: 'weighted_bench_dip',
4145
+ 2: 'body_weight_dip',
4146
+ 3: 'cable_kickback',
4147
+ 4: 'cable_lying_triceps_extension',
4148
+ 5: 'cable_overhead_triceps_extension',
4149
+ 6: 'dumbbell_kickback',
4150
+ 7: 'dumbbell_lying_triceps_extension',
4151
+ 8: 'ez_bar_overhead_triceps_extension',
4152
+ 9: 'incline_dip',
4153
+ 10: 'weighted_incline_dip',
4154
+ 11: 'incline_ez_bar_lying_triceps_extension',
4155
+ 12: 'lying_dumbbell_pullover_to_extension',
4156
+ 13: 'lying_ez_bar_triceps_extension',
4157
+ 14: 'lying_triceps_extension_to_close_grip_bench_press',
4158
+ 15: 'overhead_dumbbell_triceps_extension',
4159
+ 16: 'reclining_triceps_press',
4160
+ 17: 'reverse_grip_pressdown',
4161
+ 18: 'reverse_grip_triceps_pressdown',
4162
+ 19: 'rope_pressdown',
4163
+ 20: 'seated_barbell_overhead_triceps_extension',
4164
+ 21: 'seated_dumbbell_overhead_triceps_extension',
4165
+ 22: 'seated_ez_bar_overhead_triceps_extension',
4166
+ 23: 'seated_single_arm_overhead_dumbbell_extension',
4167
+ 24: 'single_arm_dumbbell_overhead_triceps_extension',
4168
+ 25: 'single_dumbbell_seated_overhead_triceps_extension',
4169
+ 26: 'single_leg_bench_dip_and_kick',
4170
+ 27: 'weighted_single_leg_bench_dip_and_kick',
4171
+ 28: 'single_leg_dip',
4172
+ 29: 'weighted_single_leg_dip',
4173
+ 30: 'static_lying_triceps_extension',
4174
+ 31: 'suspended_dip',
4175
+ 32: 'weighted_suspended_dip',
4176
+ 33: 'swiss_ball_dumbbell_lying_triceps_extension',
4177
+ 34: 'swiss_ball_ez_bar_lying_triceps_extension',
4178
+ 35: 'swiss_ball_ez_bar_overhead_triceps_extension',
4179
+ 36: 'tabletop_dip',
4180
+ 37: 'weighted_tabletop_dip',
4181
+ 38: 'triceps_extension_on_floor',
4182
+ 39: 'triceps_pressdown',
4183
+ 40: 'weighted_dip'
4184
+ },
4185
+ warm_up_exercise_name: {
4186
+ 0: 'quadruped_rocking',
4187
+ 1: 'neck_tilts',
4188
+ 2: 'ankle_circles',
4189
+ 3: 'ankle_dorsiflexion_with_band',
4190
+ 4: 'ankle_internal_rotation',
4191
+ 5: 'arm_circles',
4192
+ 6: 'bent_over_reach_to_sky',
4193
+ 7: 'cat_camel',
4194
+ 8: 'elbow_to_foot_lunge',
4195
+ 9: 'forward_and_backward_leg_swings',
4196
+ 10: 'groiners',
4197
+ 11: 'inverted_hamstring_stretch',
4198
+ 12: 'lateral_duck_under',
4199
+ 13: 'neck_rotations',
4200
+ 14: 'opposite_arm_and_leg_balance',
4201
+ 15: 'reach_roll_and_lift',
4202
+ 16: 'scorpion',
4203
+ 17: 'shoulder_circles',
4204
+ 18: 'side_to_side_leg_swings',
4205
+ 19: 'sleeper_stretch',
4206
+ 20: 'slide_out',
4207
+ 21: 'swiss_ball_hip_crossover',
4208
+ 22: 'swiss_ball_reach_roll_and_lift',
4209
+ 23: 'swiss_ball_windshield_wipers',
4210
+ 24: 'thoracic_rotation',
4211
+ 25: 'walking_high_kicks',
4212
+ 26: 'walking_high_knees',
4213
+ 27: 'walking_knee_hugs',
4214
+ 28: 'walking_leg_cradles',
4215
+ 29: 'walkout',
4216
+ 30: 'walkout_from_push_up_position'
4217
+ },
4218
+ run_exercise_name: {
4219
+ 0: 'run',
4220
+ 1: 'walk',
4221
+ 2: 'jog',
4222
+ 3: 'sprint'
4223
+ },
4224
+ water_type: {
4225
+ 0: 'fresh',
4226
+ 1: 'salt',
4227
+ 2: 'en13319',
4228
+ 3: 'custom'
4229
+ },
4230
+ tissue_model_type: {
4231
+ 0: 'zhl_16c'
4232
+ },
4233
+ dive_gas_status: {
4234
+ 0: 'disabled',
4235
+ 1: 'enabled',
4236
+ 2: 'backup_only'
4237
+ },
4238
+ dive_alarm_type: {
4239
+ 0: 'depth',
4240
+ 1: 'time'
4241
+ },
4242
+ dive_backlight_mode: {
4243
+ 0: 'at_depth',
4244
+ 1: 'always_on'
4245
+ },
4246
+ favero_product: {
4247
+ 10: 'assioma_uno',
4248
+ 12: 'assioma_duo'
4249
+ }
4250
+ }
4251
+ };
4252
+
4253
+ function getMessageName(messageNum) {
4254
+ var message = FIT.messages[messageNum];
4255
+ return message ? message.name : '';
4256
+ }
4257
+
4258
+ function getFieldObject(fieldNum, messageNum) {
4259
+ var message = FIT.messages[messageNum];
4260
+ if (!message) {
4261
+ return '';
4262
+ }
4263
+ var fieldObj = message[fieldNum];
4264
+ return fieldObj ? fieldObj : {};
4265
+ }