rubyfit 0.0.5 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/ext/rubyfit/fit.c +82 -22
- data/ext/rubyfit/fit.h +75 -31
- data/ext/rubyfit/fit_config.h +3 -3
- data/ext/rubyfit/fit_convert.c +122 -18
- data/ext/rubyfit/fit_convert.h +49 -5
- data/ext/rubyfit/fit_crc.c +5 -5
- data/ext/rubyfit/fit_crc.h +5 -5
- data/ext/rubyfit/fit_example.c +501 -14
- data/ext/rubyfit/fit_example.h +3030 -485
- data/ext/rubyfit/fit_include.h +19 -0
- data/ext/rubyfit/fit_ram.c +3 -3
- data/ext/rubyfit/fit_ram.h +3 -3
- data/lib/rubyfit/version.rb +1 -1
- metadata +4 -3
data/ext/rubyfit/fit_example.h
CHANGED
@@ -7,11 +7,11 @@
|
|
7
7
|
// warranties of merchantability, non-infringement, or fitness for a particular
|
8
8
|
// purpose, are specifically disclaimed.
|
9
9
|
//
|
10
|
-
// Copyright
|
10
|
+
// Copyright 2016 Dynastream Innovations Inc.
|
11
11
|
////////////////////////////////////////////////////////////////////////////////
|
12
12
|
// ****WARNING**** This file is auto-generated! Do NOT edit this file.
|
13
|
-
// Profile Version =
|
14
|
-
// Tag =
|
13
|
+
// Profile Version = 20.16Release
|
14
|
+
// Tag = production/akw/20.16.00-0-gce20b51
|
15
15
|
// Product = EXAMPLE
|
16
16
|
// Alignment = 4 bytes, padding disabled.
|
17
17
|
////////////////////////////////////////////////////////////////////////////////
|
@@ -55,7 +55,12 @@ typedef FIT_ENUM FIT_FILE;
|
|
55
55
|
#define FIT_FILE_ACTIVITY_SUMMARY ((FIT_FILE)20) // Read/erase, multiple files. Directory=Activities
|
56
56
|
#define FIT_FILE_MONITORING_DAILY ((FIT_FILE)28)
|
57
57
|
#define FIT_FILE_MONITORING_B ((FIT_FILE)32) // Read only. Directory=Monitoring. File number=identifier
|
58
|
-
#define
|
58
|
+
#define FIT_FILE_SEGMENT ((FIT_FILE)34) // Read/write/erase. Multiple Files. Directory=Segments
|
59
|
+
#define FIT_FILE_SEGMENT_LIST ((FIT_FILE)35) // Read/write/erase. Single File. Directory=Segments
|
60
|
+
#define FIT_FILE_EXD_CONFIGURATION ((FIT_FILE)40) // Read/write/erase. Single File. Directory=Settings
|
61
|
+
#define FIT_FILE_MFG_RANGE_MIN ((FIT_FILE)0xF7) // 0xF7 - 0xFE reserved for manufacturer specific file types
|
62
|
+
#define FIT_FILE_MFG_RANGE_MAX ((FIT_FILE)0xFE) // 0xF7 - 0xFE reserved for manufacturer specific file types
|
63
|
+
#define FIT_FILE_COUNT 20
|
59
64
|
|
60
65
|
typedef FIT_UINT16 FIT_MESG_NUM;
|
61
66
|
#define FIT_MESG_NUM_INVALID FIT_UINT16_INVALID
|
@@ -93,16 +98,51 @@ typedef FIT_UINT16 FIT_MESG_NUM;
|
|
93
98
|
#define FIT_MESG_NUM_BLOOD_PRESSURE ((FIT_MESG_NUM)51)
|
94
99
|
#define FIT_MESG_NUM_SPEED_ZONE ((FIT_MESG_NUM)53)
|
95
100
|
#define FIT_MESG_NUM_MONITORING ((FIT_MESG_NUM)55)
|
101
|
+
#define FIT_MESG_NUM_TRAINING_FILE ((FIT_MESG_NUM)72)
|
96
102
|
#define FIT_MESG_NUM_HRV ((FIT_MESG_NUM)78)
|
103
|
+
#define FIT_MESG_NUM_ANT_RX ((FIT_MESG_NUM)80)
|
104
|
+
#define FIT_MESG_NUM_ANT_TX ((FIT_MESG_NUM)81)
|
105
|
+
#define FIT_MESG_NUM_ANT_CHANNEL_ID ((FIT_MESG_NUM)82)
|
97
106
|
#define FIT_MESG_NUM_LENGTH ((FIT_MESG_NUM)101)
|
98
107
|
#define FIT_MESG_NUM_MONITORING_INFO ((FIT_MESG_NUM)103)
|
99
108
|
#define FIT_MESG_NUM_PAD ((FIT_MESG_NUM)105)
|
100
109
|
#define FIT_MESG_NUM_SLAVE_DEVICE ((FIT_MESG_NUM)106)
|
110
|
+
#define FIT_MESG_NUM_CONNECTIVITY ((FIT_MESG_NUM)127)
|
111
|
+
#define FIT_MESG_NUM_WEATHER_CONDITIONS ((FIT_MESG_NUM)128)
|
112
|
+
#define FIT_MESG_NUM_WEATHER_ALERT ((FIT_MESG_NUM)129)
|
101
113
|
#define FIT_MESG_NUM_CADENCE_ZONE ((FIT_MESG_NUM)131)
|
114
|
+
#define FIT_MESG_NUM_HR ((FIT_MESG_NUM)132)
|
115
|
+
#define FIT_MESG_NUM_SEGMENT_LAP ((FIT_MESG_NUM)142)
|
102
116
|
#define FIT_MESG_NUM_MEMO_GLOB ((FIT_MESG_NUM)145)
|
117
|
+
#define FIT_MESG_NUM_SEGMENT_ID ((FIT_MESG_NUM)148)
|
118
|
+
#define FIT_MESG_NUM_SEGMENT_LEADERBOARD_ENTRY ((FIT_MESG_NUM)149)
|
119
|
+
#define FIT_MESG_NUM_SEGMENT_POINT ((FIT_MESG_NUM)150)
|
120
|
+
#define FIT_MESG_NUM_SEGMENT_FILE ((FIT_MESG_NUM)151)
|
121
|
+
#define FIT_MESG_NUM_WATCHFACE_SETTINGS ((FIT_MESG_NUM)159)
|
122
|
+
#define FIT_MESG_NUM_GPS_METADATA ((FIT_MESG_NUM)160)
|
123
|
+
#define FIT_MESG_NUM_CAMERA_EVENT ((FIT_MESG_NUM)161)
|
124
|
+
#define FIT_MESG_NUM_TIMESTAMP_CORRELATION ((FIT_MESG_NUM)162)
|
125
|
+
#define FIT_MESG_NUM_GYROSCOPE_DATA ((FIT_MESG_NUM)164)
|
126
|
+
#define FIT_MESG_NUM_ACCELEROMETER_DATA ((FIT_MESG_NUM)165)
|
127
|
+
#define FIT_MESG_NUM_THREE_D_SENSOR_CALIBRATION ((FIT_MESG_NUM)167)
|
128
|
+
#define FIT_MESG_NUM_VIDEO_FRAME ((FIT_MESG_NUM)169)
|
129
|
+
#define FIT_MESG_NUM_OBDII_DATA ((FIT_MESG_NUM)174)
|
130
|
+
#define FIT_MESG_NUM_NMEA_SENTENCE ((FIT_MESG_NUM)177)
|
131
|
+
#define FIT_MESG_NUM_AVIATION_ATTITUDE ((FIT_MESG_NUM)178)
|
132
|
+
#define FIT_MESG_NUM_VIDEO ((FIT_MESG_NUM)184)
|
133
|
+
#define FIT_MESG_NUM_VIDEO_TITLE ((FIT_MESG_NUM)185)
|
134
|
+
#define FIT_MESG_NUM_VIDEO_DESCRIPTION ((FIT_MESG_NUM)186)
|
135
|
+
#define FIT_MESG_NUM_VIDEO_CLIP ((FIT_MESG_NUM)187)
|
136
|
+
#define FIT_MESG_NUM_OHR_SETTINGS ((FIT_MESG_NUM)188)
|
137
|
+
#define FIT_MESG_NUM_EXD_SCREEN_CONFIGURATION ((FIT_MESG_NUM)200)
|
138
|
+
#define FIT_MESG_NUM_EXD_DATA_FIELD_CONFIGURATION ((FIT_MESG_NUM)201)
|
139
|
+
#define FIT_MESG_NUM_EXD_DATA_CONCEPT_CONFIGURATION ((FIT_MESG_NUM)202)
|
140
|
+
#define FIT_MESG_NUM_FIELD_DESCRIPTION ((FIT_MESG_NUM)206)
|
141
|
+
#define FIT_MESG_NUM_DEVELOPER_DATA_ID ((FIT_MESG_NUM)207)
|
142
|
+
#define FIT_MESG_NUM_MAGNETOMETER_DATA ((FIT_MESG_NUM)208)
|
103
143
|
#define FIT_MESG_NUM_MFG_RANGE_MIN ((FIT_MESG_NUM)0xFF00) // 0xFF00 - 0xFFFE reserved for manufacturer specific messages
|
104
144
|
#define FIT_MESG_NUM_MFG_RANGE_MAX ((FIT_MESG_NUM)0xFFFE) // 0xFF00 - 0xFFFE reserved for manufacturer specific messages
|
105
|
-
#define FIT_MESG_NUM_COUNT
|
145
|
+
#define FIT_MESG_NUM_COUNT 78
|
106
146
|
|
107
147
|
typedef FIT_UINT8 FIT_CHECKSUM;
|
108
148
|
#define FIT_CHECKSUM_INVALID FIT_UINT8_INVALID
|
@@ -180,8 +220,180 @@ typedef FIT_ENUM FIT_LANGUAGE;
|
|
180
220
|
#define FIT_LANGUAGE_FARSI ((FIT_LANGUAGE)23)
|
181
221
|
#define FIT_LANGUAGE_BULGARIAN ((FIT_LANGUAGE)24)
|
182
222
|
#define FIT_LANGUAGE_ROMANIAN ((FIT_LANGUAGE)25)
|
223
|
+
#define FIT_LANGUAGE_CHINESE ((FIT_LANGUAGE)26)
|
224
|
+
#define FIT_LANGUAGE_JAPANESE ((FIT_LANGUAGE)27)
|
225
|
+
#define FIT_LANGUAGE_KOREAN ((FIT_LANGUAGE)28)
|
226
|
+
#define FIT_LANGUAGE_TAIWANESE ((FIT_LANGUAGE)29)
|
227
|
+
#define FIT_LANGUAGE_THAI ((FIT_LANGUAGE)30)
|
228
|
+
#define FIT_LANGUAGE_HEBREW ((FIT_LANGUAGE)31)
|
229
|
+
#define FIT_LANGUAGE_BRAZILIAN_PORTUGUESE ((FIT_LANGUAGE)32)
|
230
|
+
#define FIT_LANGUAGE_INDONESIAN ((FIT_LANGUAGE)33)
|
183
231
|
#define FIT_LANGUAGE_CUSTOM ((FIT_LANGUAGE)254)
|
184
|
-
#define FIT_LANGUAGE_COUNT
|
232
|
+
#define FIT_LANGUAGE_COUNT 35
|
233
|
+
|
234
|
+
typedef FIT_UINT8Z FIT_LANGUAGE_BITS_0; // Bit field corresponding to language enum type (1 << language).
|
235
|
+
#define FIT_LANGUAGE_BITS_0_INVALID FIT_UINT8Z_INVALID
|
236
|
+
#define FIT_LANGUAGE_BITS_0_ENGLISH ((FIT_LANGUAGE_BITS_0)0x01)
|
237
|
+
#define FIT_LANGUAGE_BITS_0_FRENCH ((FIT_LANGUAGE_BITS_0)0x02)
|
238
|
+
#define FIT_LANGUAGE_BITS_0_ITALIAN ((FIT_LANGUAGE_BITS_0)0x04)
|
239
|
+
#define FIT_LANGUAGE_BITS_0_GERMAN ((FIT_LANGUAGE_BITS_0)0x08)
|
240
|
+
#define FIT_LANGUAGE_BITS_0_SPANISH ((FIT_LANGUAGE_BITS_0)0x10)
|
241
|
+
#define FIT_LANGUAGE_BITS_0_CROATIAN ((FIT_LANGUAGE_BITS_0)0x20)
|
242
|
+
#define FIT_LANGUAGE_BITS_0_CZECH ((FIT_LANGUAGE_BITS_0)0x40)
|
243
|
+
#define FIT_LANGUAGE_BITS_0_DANISH ((FIT_LANGUAGE_BITS_0)0x80)
|
244
|
+
#define FIT_LANGUAGE_BITS_0_COUNT 8
|
245
|
+
|
246
|
+
typedef FIT_UINT8Z FIT_LANGUAGE_BITS_1;
|
247
|
+
#define FIT_LANGUAGE_BITS_1_INVALID FIT_UINT8Z_INVALID
|
248
|
+
#define FIT_LANGUAGE_BITS_1_DUTCH ((FIT_LANGUAGE_BITS_1)0x01)
|
249
|
+
#define FIT_LANGUAGE_BITS_1_FINNISH ((FIT_LANGUAGE_BITS_1)0x02)
|
250
|
+
#define FIT_LANGUAGE_BITS_1_GREEK ((FIT_LANGUAGE_BITS_1)0x04)
|
251
|
+
#define FIT_LANGUAGE_BITS_1_HUNGARIAN ((FIT_LANGUAGE_BITS_1)0x08)
|
252
|
+
#define FIT_LANGUAGE_BITS_1_NORWEGIAN ((FIT_LANGUAGE_BITS_1)0x10)
|
253
|
+
#define FIT_LANGUAGE_BITS_1_POLISH ((FIT_LANGUAGE_BITS_1)0x20)
|
254
|
+
#define FIT_LANGUAGE_BITS_1_PORTUGUESE ((FIT_LANGUAGE_BITS_1)0x40)
|
255
|
+
#define FIT_LANGUAGE_BITS_1_SLOVAKIAN ((FIT_LANGUAGE_BITS_1)0x80)
|
256
|
+
#define FIT_LANGUAGE_BITS_1_COUNT 8
|
257
|
+
|
258
|
+
typedef FIT_UINT8Z FIT_LANGUAGE_BITS_2;
|
259
|
+
#define FIT_LANGUAGE_BITS_2_INVALID FIT_UINT8Z_INVALID
|
260
|
+
#define FIT_LANGUAGE_BITS_2_SLOVENIAN ((FIT_LANGUAGE_BITS_2)0x01)
|
261
|
+
#define FIT_LANGUAGE_BITS_2_SWEDISH ((FIT_LANGUAGE_BITS_2)0x02)
|
262
|
+
#define FIT_LANGUAGE_BITS_2_RUSSIAN ((FIT_LANGUAGE_BITS_2)0x04)
|
263
|
+
#define FIT_LANGUAGE_BITS_2_TURKISH ((FIT_LANGUAGE_BITS_2)0x08)
|
264
|
+
#define FIT_LANGUAGE_BITS_2_LATVIAN ((FIT_LANGUAGE_BITS_2)0x10)
|
265
|
+
#define FIT_LANGUAGE_BITS_2_UKRAINIAN ((FIT_LANGUAGE_BITS_2)0x20)
|
266
|
+
#define FIT_LANGUAGE_BITS_2_ARABIC ((FIT_LANGUAGE_BITS_2)0x40)
|
267
|
+
#define FIT_LANGUAGE_BITS_2_FARSI ((FIT_LANGUAGE_BITS_2)0x80)
|
268
|
+
#define FIT_LANGUAGE_BITS_2_COUNT 8
|
269
|
+
|
270
|
+
typedef FIT_UINT8Z FIT_LANGUAGE_BITS_3;
|
271
|
+
#define FIT_LANGUAGE_BITS_3_INVALID FIT_UINT8Z_INVALID
|
272
|
+
#define FIT_LANGUAGE_BITS_3_BULGARIAN ((FIT_LANGUAGE_BITS_3)0x01)
|
273
|
+
#define FIT_LANGUAGE_BITS_3_ROMANIAN ((FIT_LANGUAGE_BITS_3)0x02)
|
274
|
+
#define FIT_LANGUAGE_BITS_3_CHINESE ((FIT_LANGUAGE_BITS_3)0x04)
|
275
|
+
#define FIT_LANGUAGE_BITS_3_JAPANESE ((FIT_LANGUAGE_BITS_3)0x08)
|
276
|
+
#define FIT_LANGUAGE_BITS_3_KOREAN ((FIT_LANGUAGE_BITS_3)0x10)
|
277
|
+
#define FIT_LANGUAGE_BITS_3_TAIWANESE ((FIT_LANGUAGE_BITS_3)0x20)
|
278
|
+
#define FIT_LANGUAGE_BITS_3_THAI ((FIT_LANGUAGE_BITS_3)0x40)
|
279
|
+
#define FIT_LANGUAGE_BITS_3_HEBREW ((FIT_LANGUAGE_BITS_3)0x80)
|
280
|
+
#define FIT_LANGUAGE_BITS_3_COUNT 8
|
281
|
+
|
282
|
+
typedef FIT_UINT8Z FIT_LANGUAGE_BITS_4;
|
283
|
+
#define FIT_LANGUAGE_BITS_4_INVALID FIT_UINT8Z_INVALID
|
284
|
+
#define FIT_LANGUAGE_BITS_4_BRAZILIAN_PORTUGUESE ((FIT_LANGUAGE_BITS_4)0x01)
|
285
|
+
#define FIT_LANGUAGE_BITS_4_INDONESIAN ((FIT_LANGUAGE_BITS_4)0x02)
|
286
|
+
#define FIT_LANGUAGE_BITS_4_COUNT 2
|
287
|
+
|
288
|
+
typedef FIT_ENUM FIT_TIME_ZONE;
|
289
|
+
#define FIT_TIME_ZONE_INVALID FIT_ENUM_INVALID
|
290
|
+
#define FIT_TIME_ZONE_ALMATY ((FIT_TIME_ZONE)0)
|
291
|
+
#define FIT_TIME_ZONE_BANGKOK ((FIT_TIME_ZONE)1)
|
292
|
+
#define FIT_TIME_ZONE_BOMBAY ((FIT_TIME_ZONE)2)
|
293
|
+
#define FIT_TIME_ZONE_BRASILIA ((FIT_TIME_ZONE)3)
|
294
|
+
#define FIT_TIME_ZONE_CAIRO ((FIT_TIME_ZONE)4)
|
295
|
+
#define FIT_TIME_ZONE_CAPE_VERDE_IS ((FIT_TIME_ZONE)5)
|
296
|
+
#define FIT_TIME_ZONE_DARWIN ((FIT_TIME_ZONE)6)
|
297
|
+
#define FIT_TIME_ZONE_ENIWETOK ((FIT_TIME_ZONE)7)
|
298
|
+
#define FIT_TIME_ZONE_FIJI ((FIT_TIME_ZONE)8)
|
299
|
+
#define FIT_TIME_ZONE_HONG_KONG ((FIT_TIME_ZONE)9)
|
300
|
+
#define FIT_TIME_ZONE_ISLAMABAD ((FIT_TIME_ZONE)10)
|
301
|
+
#define FIT_TIME_ZONE_KABUL ((FIT_TIME_ZONE)11)
|
302
|
+
#define FIT_TIME_ZONE_MAGADAN ((FIT_TIME_ZONE)12)
|
303
|
+
#define FIT_TIME_ZONE_MID_ATLANTIC ((FIT_TIME_ZONE)13)
|
304
|
+
#define FIT_TIME_ZONE_MOSCOW ((FIT_TIME_ZONE)14)
|
305
|
+
#define FIT_TIME_ZONE_MUSCAT ((FIT_TIME_ZONE)15)
|
306
|
+
#define FIT_TIME_ZONE_NEWFOUNDLAND ((FIT_TIME_ZONE)16)
|
307
|
+
#define FIT_TIME_ZONE_SAMOA ((FIT_TIME_ZONE)17)
|
308
|
+
#define FIT_TIME_ZONE_SYDNEY ((FIT_TIME_ZONE)18)
|
309
|
+
#define FIT_TIME_ZONE_TEHRAN ((FIT_TIME_ZONE)19)
|
310
|
+
#define FIT_TIME_ZONE_TOKYO ((FIT_TIME_ZONE)20)
|
311
|
+
#define FIT_TIME_ZONE_US_ALASKA ((FIT_TIME_ZONE)21)
|
312
|
+
#define FIT_TIME_ZONE_US_ATLANTIC ((FIT_TIME_ZONE)22)
|
313
|
+
#define FIT_TIME_ZONE_US_CENTRAL ((FIT_TIME_ZONE)23)
|
314
|
+
#define FIT_TIME_ZONE_US_EASTERN ((FIT_TIME_ZONE)24)
|
315
|
+
#define FIT_TIME_ZONE_US_HAWAII ((FIT_TIME_ZONE)25)
|
316
|
+
#define FIT_TIME_ZONE_US_MOUNTAIN ((FIT_TIME_ZONE)26)
|
317
|
+
#define FIT_TIME_ZONE_US_PACIFIC ((FIT_TIME_ZONE)27)
|
318
|
+
#define FIT_TIME_ZONE_OTHER ((FIT_TIME_ZONE)28)
|
319
|
+
#define FIT_TIME_ZONE_AUCKLAND ((FIT_TIME_ZONE)29)
|
320
|
+
#define FIT_TIME_ZONE_KATHMANDU ((FIT_TIME_ZONE)30)
|
321
|
+
#define FIT_TIME_ZONE_EUROPE_WESTERN_WET ((FIT_TIME_ZONE)31)
|
322
|
+
#define FIT_TIME_ZONE_EUROPE_CENTRAL_CET ((FIT_TIME_ZONE)32)
|
323
|
+
#define FIT_TIME_ZONE_EUROPE_EASTERN_EET ((FIT_TIME_ZONE)33)
|
324
|
+
#define FIT_TIME_ZONE_JAKARTA ((FIT_TIME_ZONE)34)
|
325
|
+
#define FIT_TIME_ZONE_PERTH ((FIT_TIME_ZONE)35)
|
326
|
+
#define FIT_TIME_ZONE_ADELAIDE ((FIT_TIME_ZONE)36)
|
327
|
+
#define FIT_TIME_ZONE_BRISBANE ((FIT_TIME_ZONE)37)
|
328
|
+
#define FIT_TIME_ZONE_TASMANIA ((FIT_TIME_ZONE)38)
|
329
|
+
#define FIT_TIME_ZONE_ICELAND ((FIT_TIME_ZONE)39)
|
330
|
+
#define FIT_TIME_ZONE_AMSTERDAM ((FIT_TIME_ZONE)40)
|
331
|
+
#define FIT_TIME_ZONE_ATHENS ((FIT_TIME_ZONE)41)
|
332
|
+
#define FIT_TIME_ZONE_BARCELONA ((FIT_TIME_ZONE)42)
|
333
|
+
#define FIT_TIME_ZONE_BERLIN ((FIT_TIME_ZONE)43)
|
334
|
+
#define FIT_TIME_ZONE_BRUSSELS ((FIT_TIME_ZONE)44)
|
335
|
+
#define FIT_TIME_ZONE_BUDAPEST ((FIT_TIME_ZONE)45)
|
336
|
+
#define FIT_TIME_ZONE_COPENHAGEN ((FIT_TIME_ZONE)46)
|
337
|
+
#define FIT_TIME_ZONE_DUBLIN ((FIT_TIME_ZONE)47)
|
338
|
+
#define FIT_TIME_ZONE_HELSINKI ((FIT_TIME_ZONE)48)
|
339
|
+
#define FIT_TIME_ZONE_LISBON ((FIT_TIME_ZONE)49)
|
340
|
+
#define FIT_TIME_ZONE_LONDON ((FIT_TIME_ZONE)50)
|
341
|
+
#define FIT_TIME_ZONE_MADRID ((FIT_TIME_ZONE)51)
|
342
|
+
#define FIT_TIME_ZONE_MUNICH ((FIT_TIME_ZONE)52)
|
343
|
+
#define FIT_TIME_ZONE_OSLO ((FIT_TIME_ZONE)53)
|
344
|
+
#define FIT_TIME_ZONE_PARIS ((FIT_TIME_ZONE)54)
|
345
|
+
#define FIT_TIME_ZONE_PRAGUE ((FIT_TIME_ZONE)55)
|
346
|
+
#define FIT_TIME_ZONE_REYKJAVIK ((FIT_TIME_ZONE)56)
|
347
|
+
#define FIT_TIME_ZONE_ROME ((FIT_TIME_ZONE)57)
|
348
|
+
#define FIT_TIME_ZONE_STOCKHOLM ((FIT_TIME_ZONE)58)
|
349
|
+
#define FIT_TIME_ZONE_VIENNA ((FIT_TIME_ZONE)59)
|
350
|
+
#define FIT_TIME_ZONE_WARSAW ((FIT_TIME_ZONE)60)
|
351
|
+
#define FIT_TIME_ZONE_ZURICH ((FIT_TIME_ZONE)61)
|
352
|
+
#define FIT_TIME_ZONE_QUEBEC ((FIT_TIME_ZONE)62)
|
353
|
+
#define FIT_TIME_ZONE_ONTARIO ((FIT_TIME_ZONE)63)
|
354
|
+
#define FIT_TIME_ZONE_MANITOBA ((FIT_TIME_ZONE)64)
|
355
|
+
#define FIT_TIME_ZONE_SASKATCHEWAN ((FIT_TIME_ZONE)65)
|
356
|
+
#define FIT_TIME_ZONE_ALBERTA ((FIT_TIME_ZONE)66)
|
357
|
+
#define FIT_TIME_ZONE_BRITISH_COLUMBIA ((FIT_TIME_ZONE)67)
|
358
|
+
#define FIT_TIME_ZONE_BOISE ((FIT_TIME_ZONE)68)
|
359
|
+
#define FIT_TIME_ZONE_BOSTON ((FIT_TIME_ZONE)69)
|
360
|
+
#define FIT_TIME_ZONE_CHICAGO ((FIT_TIME_ZONE)70)
|
361
|
+
#define FIT_TIME_ZONE_DALLAS ((FIT_TIME_ZONE)71)
|
362
|
+
#define FIT_TIME_ZONE_DENVER ((FIT_TIME_ZONE)72)
|
363
|
+
#define FIT_TIME_ZONE_KANSAS_CITY ((FIT_TIME_ZONE)73)
|
364
|
+
#define FIT_TIME_ZONE_LAS_VEGAS ((FIT_TIME_ZONE)74)
|
365
|
+
#define FIT_TIME_ZONE_LOS_ANGELES ((FIT_TIME_ZONE)75)
|
366
|
+
#define FIT_TIME_ZONE_MIAMI ((FIT_TIME_ZONE)76)
|
367
|
+
#define FIT_TIME_ZONE_MINNEAPOLIS ((FIT_TIME_ZONE)77)
|
368
|
+
#define FIT_TIME_ZONE_NEW_YORK ((FIT_TIME_ZONE)78)
|
369
|
+
#define FIT_TIME_ZONE_NEW_ORLEANS ((FIT_TIME_ZONE)79)
|
370
|
+
#define FIT_TIME_ZONE_PHOENIX ((FIT_TIME_ZONE)80)
|
371
|
+
#define FIT_TIME_ZONE_SANTA_FE ((FIT_TIME_ZONE)81)
|
372
|
+
#define FIT_TIME_ZONE_SEATTLE ((FIT_TIME_ZONE)82)
|
373
|
+
#define FIT_TIME_ZONE_WASHINGTON_DC ((FIT_TIME_ZONE)83)
|
374
|
+
#define FIT_TIME_ZONE_US_ARIZONA ((FIT_TIME_ZONE)84)
|
375
|
+
#define FIT_TIME_ZONE_CHITA ((FIT_TIME_ZONE)85)
|
376
|
+
#define FIT_TIME_ZONE_EKATERINBURG ((FIT_TIME_ZONE)86)
|
377
|
+
#define FIT_TIME_ZONE_IRKUTSK ((FIT_TIME_ZONE)87)
|
378
|
+
#define FIT_TIME_ZONE_KALININGRAD ((FIT_TIME_ZONE)88)
|
379
|
+
#define FIT_TIME_ZONE_KRASNOYARSK ((FIT_TIME_ZONE)89)
|
380
|
+
#define FIT_TIME_ZONE_NOVOSIBIRSK ((FIT_TIME_ZONE)90)
|
381
|
+
#define FIT_TIME_ZONE_PETROPAVLOVSK_KAMCHATSKIY ((FIT_TIME_ZONE)91)
|
382
|
+
#define FIT_TIME_ZONE_SAMARA ((FIT_TIME_ZONE)92)
|
383
|
+
#define FIT_TIME_ZONE_VLADIVOSTOK ((FIT_TIME_ZONE)93)
|
384
|
+
#define FIT_TIME_ZONE_MEXICO_CENTRAL ((FIT_TIME_ZONE)94)
|
385
|
+
#define FIT_TIME_ZONE_MEXICO_MOUNTAIN ((FIT_TIME_ZONE)95)
|
386
|
+
#define FIT_TIME_ZONE_MEXICO_PACIFIC ((FIT_TIME_ZONE)96)
|
387
|
+
#define FIT_TIME_ZONE_CAPE_TOWN ((FIT_TIME_ZONE)97)
|
388
|
+
#define FIT_TIME_ZONE_WINKHOEK ((FIT_TIME_ZONE)98)
|
389
|
+
#define FIT_TIME_ZONE_LAGOS ((FIT_TIME_ZONE)99)
|
390
|
+
#define FIT_TIME_ZONE_RIYAHD ((FIT_TIME_ZONE)100)
|
391
|
+
#define FIT_TIME_ZONE_VENEZUELA ((FIT_TIME_ZONE)101)
|
392
|
+
#define FIT_TIME_ZONE_AUSTRALIA_LH ((FIT_TIME_ZONE)102)
|
393
|
+
#define FIT_TIME_ZONE_SANTIAGO ((FIT_TIME_ZONE)103)
|
394
|
+
#define FIT_TIME_ZONE_MANUAL ((FIT_TIME_ZONE)253)
|
395
|
+
#define FIT_TIME_ZONE_AUTOMATIC ((FIT_TIME_ZONE)254)
|
396
|
+
#define FIT_TIME_ZONE_COUNT 106
|
185
397
|
|
186
398
|
typedef FIT_ENUM FIT_DISPLAY_MEASURE;
|
187
399
|
#define FIT_DISPLAY_MEASURE_INVALID FIT_ENUM_INVALID
|
@@ -248,6 +460,13 @@ typedef FIT_ENUM FIT_DISPLAY_POSITION;
|
|
248
460
|
#define FIT_DISPLAY_POSITION_SWEDISH_REF_99_GRID ((FIT_DISPLAY_POSITION)41) // Reference Grid 99 TM (Swedish)
|
249
461
|
#define FIT_DISPLAY_POSITION_COUNT 42
|
250
462
|
|
463
|
+
typedef FIT_ENUM FIT_SWITCH;
|
464
|
+
#define FIT_SWITCH_INVALID FIT_ENUM_INVALID
|
465
|
+
#define FIT_SWITCH_OFF ((FIT_SWITCH)0)
|
466
|
+
#define FIT_SWITCH_ON ((FIT_SWITCH)1)
|
467
|
+
#define FIT_SWITCH_AUTO ((FIT_SWITCH)2)
|
468
|
+
#define FIT_SWITCH_COUNT 3
|
469
|
+
|
251
470
|
typedef FIT_ENUM FIT_SPORT;
|
252
471
|
#define FIT_SPORT_INVALID FIT_ENUM_INVALID
|
253
472
|
#define FIT_SPORT_GENERIC ((FIT_SPORT)0)
|
@@ -270,8 +489,37 @@ typedef FIT_ENUM FIT_SPORT;
|
|
270
489
|
#define FIT_SPORT_HIKING ((FIT_SPORT)17)
|
271
490
|
#define FIT_SPORT_MULTISPORT ((FIT_SPORT)18)
|
272
491
|
#define FIT_SPORT_PADDLING ((FIT_SPORT)19)
|
492
|
+
#define FIT_SPORT_FLYING ((FIT_SPORT)20)
|
493
|
+
#define FIT_SPORT_E_BIKING ((FIT_SPORT)21)
|
494
|
+
#define FIT_SPORT_MOTORCYCLING ((FIT_SPORT)22)
|
495
|
+
#define FIT_SPORT_BOATING ((FIT_SPORT)23)
|
496
|
+
#define FIT_SPORT_DRIVING ((FIT_SPORT)24)
|
497
|
+
#define FIT_SPORT_GOLF ((FIT_SPORT)25)
|
498
|
+
#define FIT_SPORT_HANG_GLIDING ((FIT_SPORT)26)
|
499
|
+
#define FIT_SPORT_HORSEBACK_RIDING ((FIT_SPORT)27)
|
500
|
+
#define FIT_SPORT_HUNTING ((FIT_SPORT)28)
|
501
|
+
#define FIT_SPORT_FISHING ((FIT_SPORT)29)
|
502
|
+
#define FIT_SPORT_INLINE_SKATING ((FIT_SPORT)30)
|
503
|
+
#define FIT_SPORT_ROCK_CLIMBING ((FIT_SPORT)31)
|
504
|
+
#define FIT_SPORT_SAILING ((FIT_SPORT)32)
|
505
|
+
#define FIT_SPORT_ICE_SKATING ((FIT_SPORT)33)
|
506
|
+
#define FIT_SPORT_SKY_DIVING ((FIT_SPORT)34)
|
507
|
+
#define FIT_SPORT_SNOWSHOEING ((FIT_SPORT)35)
|
508
|
+
#define FIT_SPORT_SNOWMOBILING ((FIT_SPORT)36)
|
509
|
+
#define FIT_SPORT_STAND_UP_PADDLEBOARDING ((FIT_SPORT)37)
|
510
|
+
#define FIT_SPORT_SURFING ((FIT_SPORT)38)
|
511
|
+
#define FIT_SPORT_WAKEBOARDING ((FIT_SPORT)39)
|
512
|
+
#define FIT_SPORT_WATER_SKIING ((FIT_SPORT)40)
|
513
|
+
#define FIT_SPORT_KAYAKING ((FIT_SPORT)41)
|
514
|
+
#define FIT_SPORT_RAFTING ((FIT_SPORT)42)
|
515
|
+
#define FIT_SPORT_WINDSURFING ((FIT_SPORT)43)
|
516
|
+
#define FIT_SPORT_KITESURFING ((FIT_SPORT)44)
|
517
|
+
#define FIT_SPORT_TACTICAL ((FIT_SPORT)45)
|
518
|
+
#define FIT_SPORT_JUMPMASTER ((FIT_SPORT)46)
|
519
|
+
#define FIT_SPORT_BOXING ((FIT_SPORT)47)
|
520
|
+
#define FIT_SPORT_FLOOR_CLIMBING ((FIT_SPORT)48)
|
273
521
|
#define FIT_SPORT_ALL ((FIT_SPORT)254) // All is for goals only to include all sports.
|
274
|
-
#define FIT_SPORT_COUNT
|
522
|
+
#define FIT_SPORT_COUNT 50
|
275
523
|
|
276
524
|
typedef FIT_UINT8Z FIT_SPORT_BITS_0; // Bit field corresponding to sport enum type (1 << sport).
|
277
525
|
#define FIT_SPORT_BITS_0_INVALID FIT_UINT8Z_INVALID
|
@@ -303,7 +551,52 @@ typedef FIT_UINT8Z FIT_SPORT_BITS_2; // Bit field corresponding to sport enum ty
|
|
303
551
|
#define FIT_SPORT_BITS_2_HIKING ((FIT_SPORT_BITS_2)0x02)
|
304
552
|
#define FIT_SPORT_BITS_2_MULTISPORT ((FIT_SPORT_BITS_2)0x04)
|
305
553
|
#define FIT_SPORT_BITS_2_PADDLING ((FIT_SPORT_BITS_2)0x08)
|
306
|
-
#define
|
554
|
+
#define FIT_SPORT_BITS_2_FLYING ((FIT_SPORT_BITS_2)0x10)
|
555
|
+
#define FIT_SPORT_BITS_2_E_BIKING ((FIT_SPORT_BITS_2)0x20)
|
556
|
+
#define FIT_SPORT_BITS_2_MOTORCYCLING ((FIT_SPORT_BITS_2)0x40)
|
557
|
+
#define FIT_SPORT_BITS_2_BOATING ((FIT_SPORT_BITS_2)0x80)
|
558
|
+
#define FIT_SPORT_BITS_2_COUNT 8
|
559
|
+
|
560
|
+
typedef FIT_UINT8Z FIT_SPORT_BITS_3; // Bit field corresponding to sport enum type (1 << (sport-24)).
|
561
|
+
#define FIT_SPORT_BITS_3_INVALID FIT_UINT8Z_INVALID
|
562
|
+
#define FIT_SPORT_BITS_3_DRIVING ((FIT_SPORT_BITS_3)0x01)
|
563
|
+
#define FIT_SPORT_BITS_3_GOLF ((FIT_SPORT_BITS_3)0x02)
|
564
|
+
#define FIT_SPORT_BITS_3_HANG_GLIDING ((FIT_SPORT_BITS_3)0x04)
|
565
|
+
#define FIT_SPORT_BITS_3_HORSEBACK_RIDING ((FIT_SPORT_BITS_3)0x08)
|
566
|
+
#define FIT_SPORT_BITS_3_HUNTING ((FIT_SPORT_BITS_3)0x10)
|
567
|
+
#define FIT_SPORT_BITS_3_FISHING ((FIT_SPORT_BITS_3)0x20)
|
568
|
+
#define FIT_SPORT_BITS_3_INLINE_SKATING ((FIT_SPORT_BITS_3)0x40)
|
569
|
+
#define FIT_SPORT_BITS_3_ROCK_CLIMBING ((FIT_SPORT_BITS_3)0x80)
|
570
|
+
#define FIT_SPORT_BITS_3_COUNT 8
|
571
|
+
|
572
|
+
typedef FIT_UINT8Z FIT_SPORT_BITS_4; // Bit field corresponding to sport enum type (1 << (sport-32)).
|
573
|
+
#define FIT_SPORT_BITS_4_INVALID FIT_UINT8Z_INVALID
|
574
|
+
#define FIT_SPORT_BITS_4_SAILING ((FIT_SPORT_BITS_4)0x01)
|
575
|
+
#define FIT_SPORT_BITS_4_ICE_SKATING ((FIT_SPORT_BITS_4)0x02)
|
576
|
+
#define FIT_SPORT_BITS_4_SKY_DIVING ((FIT_SPORT_BITS_4)0x04)
|
577
|
+
#define FIT_SPORT_BITS_4_SNOWSHOEING ((FIT_SPORT_BITS_4)0x08)
|
578
|
+
#define FIT_SPORT_BITS_4_SNOWMOBILING ((FIT_SPORT_BITS_4)0x10)
|
579
|
+
#define FIT_SPORT_BITS_4_STAND_UP_PADDLEBOARDING ((FIT_SPORT_BITS_4)0x20)
|
580
|
+
#define FIT_SPORT_BITS_4_SURFING ((FIT_SPORT_BITS_4)0x40)
|
581
|
+
#define FIT_SPORT_BITS_4_WAKEBOARDING ((FIT_SPORT_BITS_4)0x80)
|
582
|
+
#define FIT_SPORT_BITS_4_COUNT 8
|
583
|
+
|
584
|
+
typedef FIT_UINT8Z FIT_SPORT_BITS_5; // Bit field corresponding to sport enum type (1 << (sport-40)).
|
585
|
+
#define FIT_SPORT_BITS_5_INVALID FIT_UINT8Z_INVALID
|
586
|
+
#define FIT_SPORT_BITS_5_WATER_SKIING ((FIT_SPORT_BITS_5)0x01)
|
587
|
+
#define FIT_SPORT_BITS_5_KAYAKING ((FIT_SPORT_BITS_5)0x02)
|
588
|
+
#define FIT_SPORT_BITS_5_RAFTING ((FIT_SPORT_BITS_5)0x04)
|
589
|
+
#define FIT_SPORT_BITS_5_WINDSURFING ((FIT_SPORT_BITS_5)0x08)
|
590
|
+
#define FIT_SPORT_BITS_5_KITESURFING ((FIT_SPORT_BITS_5)0x10)
|
591
|
+
#define FIT_SPORT_BITS_5_TACTICAL ((FIT_SPORT_BITS_5)0x20)
|
592
|
+
#define FIT_SPORT_BITS_5_JUMPMASTER ((FIT_SPORT_BITS_5)0x40)
|
593
|
+
#define FIT_SPORT_BITS_5_BOXING ((FIT_SPORT_BITS_5)0x80)
|
594
|
+
#define FIT_SPORT_BITS_5_COUNT 8
|
595
|
+
|
596
|
+
typedef FIT_UINT8Z FIT_SPORT_BITS_6; // Bit field corresponding to sport enum type (1 << (sport-48)).
|
597
|
+
#define FIT_SPORT_BITS_6_INVALID FIT_UINT8Z_INVALID
|
598
|
+
#define FIT_SPORT_BITS_6_FLOOR_CLIMBING ((FIT_SPORT_BITS_6)0x01)
|
599
|
+
#define FIT_SPORT_BITS_6_COUNT 1
|
307
600
|
|
308
601
|
typedef FIT_ENUM FIT_SUB_SPORT;
|
309
602
|
#define FIT_SUB_SPORT_INVALID FIT_ENUM_INVALID
|
@@ -334,8 +627,46 @@ typedef FIT_ENUM FIT_SUB_SPORT;
|
|
334
627
|
#define FIT_SUB_SPORT_CHALLENGE ((FIT_SUB_SPORT)24) // Tennis
|
335
628
|
#define FIT_SUB_SPORT_INDOOR_SKIING ((FIT_SUB_SPORT)25) // Fitness Equipment
|
336
629
|
#define FIT_SUB_SPORT_CARDIO_TRAINING ((FIT_SUB_SPORT)26) // Training
|
630
|
+
#define FIT_SUB_SPORT_INDOOR_WALKING ((FIT_SUB_SPORT)27) // Walking/Fitness Equipment
|
631
|
+
#define FIT_SUB_SPORT_E_BIKE_FITNESS ((FIT_SUB_SPORT)28) // E-Biking
|
632
|
+
#define FIT_SUB_SPORT_BMX ((FIT_SUB_SPORT)29) // Cycling
|
633
|
+
#define FIT_SUB_SPORT_CASUAL_WALKING ((FIT_SUB_SPORT)30) // Walking
|
634
|
+
#define FIT_SUB_SPORT_SPEED_WALKING ((FIT_SUB_SPORT)31) // Walking
|
635
|
+
#define FIT_SUB_SPORT_BIKE_TO_RUN_TRANSITION ((FIT_SUB_SPORT)32) // Transition
|
636
|
+
#define FIT_SUB_SPORT_RUN_TO_BIKE_TRANSITION ((FIT_SUB_SPORT)33) // Transition
|
637
|
+
#define FIT_SUB_SPORT_SWIM_TO_BIKE_TRANSITION ((FIT_SUB_SPORT)34) // Transition
|
638
|
+
#define FIT_SUB_SPORT_ATV ((FIT_SUB_SPORT)35) // Motorcycling
|
639
|
+
#define FIT_SUB_SPORT_MOTOCROSS ((FIT_SUB_SPORT)36) // Motorcycling
|
640
|
+
#define FIT_SUB_SPORT_BACKCOUNTRY ((FIT_SUB_SPORT)37) // Alpine Skiing/Snowboarding
|
641
|
+
#define FIT_SUB_SPORT_RESORT ((FIT_SUB_SPORT)38) // Alpine Skiing/Snowboarding
|
642
|
+
#define FIT_SUB_SPORT_RC_DRONE ((FIT_SUB_SPORT)39) // Flying
|
643
|
+
#define FIT_SUB_SPORT_WINGSUIT ((FIT_SUB_SPORT)40) // Flying
|
644
|
+
#define FIT_SUB_SPORT_WHITEWATER ((FIT_SUB_SPORT)41) // Kayaking/Rafting
|
645
|
+
#define FIT_SUB_SPORT_SKATE_SKIING ((FIT_SUB_SPORT)42) // Cross Country Skiing
|
646
|
+
#define FIT_SUB_SPORT_YOGA ((FIT_SUB_SPORT)43) // Training
|
647
|
+
#define FIT_SUB_SPORT_PILATES ((FIT_SUB_SPORT)44) // Training
|
648
|
+
#define FIT_SUB_SPORT_INDOOR_RUNNING ((FIT_SUB_SPORT)45) // Run
|
649
|
+
#define FIT_SUB_SPORT_GRAVEL_CYCLING ((FIT_SUB_SPORT)46) // Cycling
|
650
|
+
#define FIT_SUB_SPORT_E_BIKE_MOUNTAIN ((FIT_SUB_SPORT)47) // Cycling
|
651
|
+
#define FIT_SUB_SPORT_COMMUTING ((FIT_SUB_SPORT)48) // Cycling
|
652
|
+
#define FIT_SUB_SPORT_MIXED_SURFACE ((FIT_SUB_SPORT)49) // Cycling
|
653
|
+
#define FIT_SUB_SPORT_NAVIGATE ((FIT_SUB_SPORT)50)
|
654
|
+
#define FIT_SUB_SPORT_TRACK_ME ((FIT_SUB_SPORT)51)
|
337
655
|
#define FIT_SUB_SPORT_ALL ((FIT_SUB_SPORT)254)
|
338
|
-
#define FIT_SUB_SPORT_COUNT
|
656
|
+
#define FIT_SUB_SPORT_COUNT 53
|
657
|
+
|
658
|
+
typedef FIT_ENUM FIT_SPORT_EVENT;
|
659
|
+
#define FIT_SPORT_EVENT_INVALID FIT_ENUM_INVALID
|
660
|
+
#define FIT_SPORT_EVENT_UNCATEGORIZED ((FIT_SPORT_EVENT)0)
|
661
|
+
#define FIT_SPORT_EVENT_GEOCACHING ((FIT_SPORT_EVENT)1)
|
662
|
+
#define FIT_SPORT_EVENT_FITNESS ((FIT_SPORT_EVENT)2)
|
663
|
+
#define FIT_SPORT_EVENT_RECREATION ((FIT_SPORT_EVENT)3)
|
664
|
+
#define FIT_SPORT_EVENT_RACE ((FIT_SPORT_EVENT)4)
|
665
|
+
#define FIT_SPORT_EVENT_SPECIAL_EVENT ((FIT_SPORT_EVENT)5)
|
666
|
+
#define FIT_SPORT_EVENT_TRAINING ((FIT_SPORT_EVENT)6)
|
667
|
+
#define FIT_SPORT_EVENT_TRANSPORTATION ((FIT_SPORT_EVENT)7)
|
668
|
+
#define FIT_SPORT_EVENT_TOURING ((FIT_SPORT_EVENT)8)
|
669
|
+
#define FIT_SPORT_EVENT_COUNT 9
|
339
670
|
|
340
671
|
typedef FIT_ENUM FIT_ACTIVITY;
|
341
672
|
#define FIT_ACTIVITY_INVALID FIT_ENUM_INVALID
|
@@ -383,6 +714,33 @@ typedef FIT_ENUM FIT_LAP_TRIGGER;
|
|
383
714
|
#define FIT_LAP_TRIGGER_FITNESS_EQUIPMENT ((FIT_LAP_TRIGGER)8)
|
384
715
|
#define FIT_LAP_TRIGGER_COUNT 9
|
385
716
|
|
717
|
+
typedef FIT_ENUM FIT_TIME_MODE;
|
718
|
+
#define FIT_TIME_MODE_INVALID FIT_ENUM_INVALID
|
719
|
+
#define FIT_TIME_MODE_HOUR12 ((FIT_TIME_MODE)0)
|
720
|
+
#define FIT_TIME_MODE_HOUR24 ((FIT_TIME_MODE)1) // Does not use a leading zero and has a colon
|
721
|
+
#define FIT_TIME_MODE_MILITARY ((FIT_TIME_MODE)2) // Uses a leading zero and does not have a colon
|
722
|
+
#define FIT_TIME_MODE_HOUR_12_WITH_SECONDS ((FIT_TIME_MODE)3)
|
723
|
+
#define FIT_TIME_MODE_HOUR_24_WITH_SECONDS ((FIT_TIME_MODE)4)
|
724
|
+
#define FIT_TIME_MODE_UTC ((FIT_TIME_MODE)5)
|
725
|
+
#define FIT_TIME_MODE_COUNT 6
|
726
|
+
|
727
|
+
typedef FIT_ENUM FIT_BACKLIGHT_MODE;
|
728
|
+
#define FIT_BACKLIGHT_MODE_INVALID FIT_ENUM_INVALID
|
729
|
+
#define FIT_BACKLIGHT_MODE_OFF ((FIT_BACKLIGHT_MODE)0)
|
730
|
+
#define FIT_BACKLIGHT_MODE_MANUAL ((FIT_BACKLIGHT_MODE)1)
|
731
|
+
#define FIT_BACKLIGHT_MODE_KEY_AND_MESSAGES ((FIT_BACKLIGHT_MODE)2)
|
732
|
+
#define FIT_BACKLIGHT_MODE_AUTO_BRIGHTNESS ((FIT_BACKLIGHT_MODE)3)
|
733
|
+
#define FIT_BACKLIGHT_MODE_SMART_NOTIFICATIONS ((FIT_BACKLIGHT_MODE)4)
|
734
|
+
#define FIT_BACKLIGHT_MODE_KEY_AND_MESSAGES_NIGHT ((FIT_BACKLIGHT_MODE)5)
|
735
|
+
#define FIT_BACKLIGHT_MODE_KEY_AND_MESSAGES_AND_SMART_NOTIFICATIONS ((FIT_BACKLIGHT_MODE)6)
|
736
|
+
#define FIT_BACKLIGHT_MODE_COUNT 7
|
737
|
+
|
738
|
+
typedef FIT_ENUM FIT_DATE_MODE;
|
739
|
+
#define FIT_DATE_MODE_INVALID FIT_ENUM_INVALID
|
740
|
+
#define FIT_DATE_MODE_DAY_MONTH ((FIT_DATE_MODE)0)
|
741
|
+
#define FIT_DATE_MODE_MONTH_DAY ((FIT_DATE_MODE)1)
|
742
|
+
#define FIT_DATE_MODE_COUNT 2
|
743
|
+
|
386
744
|
typedef FIT_ENUM FIT_EVENT;
|
387
745
|
#define FIT_EVENT_INVALID FIT_ENUM_INVALID
|
388
746
|
#define FIT_EVENT_TIMER ((FIT_EVENT)0) // Group 0. Start / stop_all
|
@@ -417,7 +775,11 @@ typedef FIT_ENUM FIT_EVENT;
|
|
417
775
|
#define FIT_EVENT_CALIBRATION ((FIT_EVENT)36) // start/stop/marker
|
418
776
|
#define FIT_EVENT_FRONT_GEAR_CHANGE ((FIT_EVENT)42) // marker
|
419
777
|
#define FIT_EVENT_REAR_GEAR_CHANGE ((FIT_EVENT)43) // marker
|
420
|
-
#define
|
778
|
+
#define FIT_EVENT_RIDER_POSITION_CHANGE ((FIT_EVENT)44) // marker
|
779
|
+
#define FIT_EVENT_ELEV_HIGH_ALERT ((FIT_EVENT)45) // Group 0. Start / stop when in alert condition.
|
780
|
+
#define FIT_EVENT_ELEV_LOW_ALERT ((FIT_EVENT)46) // Group 0. Start / stop when in alert condition.
|
781
|
+
#define FIT_EVENT_COMM_TIMEOUT ((FIT_EVENT)47) // marker
|
782
|
+
#define FIT_EVENT_COUNT 36
|
421
783
|
|
422
784
|
typedef FIT_ENUM FIT_EVENT_TYPE;
|
423
785
|
#define FIT_EVENT_TYPE_INVALID FIT_ENUM_INVALID
|
@@ -448,6 +810,14 @@ typedef FIT_ENUM FIT_FITNESS_EQUIPMENT_STATE; // fitness equipment event data
|
|
448
810
|
#define FIT_FITNESS_EQUIPMENT_STATE_UNKNOWN ((FIT_FITNESS_EQUIPMENT_STATE)3) // lost connection to fitness equipment
|
449
811
|
#define FIT_FITNESS_EQUIPMENT_STATE_COUNT 4
|
450
812
|
|
813
|
+
typedef FIT_ENUM FIT_AUTOSCROLL;
|
814
|
+
#define FIT_AUTOSCROLL_INVALID FIT_ENUM_INVALID
|
815
|
+
#define FIT_AUTOSCROLL_NONE ((FIT_AUTOSCROLL)0)
|
816
|
+
#define FIT_AUTOSCROLL_SLOW ((FIT_AUTOSCROLL)1)
|
817
|
+
#define FIT_AUTOSCROLL_MEDIUM ((FIT_AUTOSCROLL)2)
|
818
|
+
#define FIT_AUTOSCROLL_FAST ((FIT_AUTOSCROLL)3)
|
819
|
+
#define FIT_AUTOSCROLL_COUNT 4
|
820
|
+
|
451
821
|
typedef FIT_ENUM FIT_ACTIVITY_CLASS;
|
452
822
|
#define FIT_ACTIVITY_CLASS_INVALID FIT_ENUM_INVALID
|
453
823
|
#define FIT_ACTIVITY_CLASS_LEVEL ((FIT_ACTIVITY_CLASS)0x7F) // 0 to 100
|
@@ -486,7 +856,8 @@ typedef FIT_ENUM FIT_WKT_STEP_DURATION;
|
|
486
856
|
#define FIT_WKT_STEP_DURATION_REPEAT_UNTIL_POWER_GREATER_THAN ((FIT_WKT_STEP_DURATION)13)
|
487
857
|
#define FIT_WKT_STEP_DURATION_POWER_LESS_THAN ((FIT_WKT_STEP_DURATION)14)
|
488
858
|
#define FIT_WKT_STEP_DURATION_POWER_GREATER_THAN ((FIT_WKT_STEP_DURATION)15)
|
489
|
-
#define
|
859
|
+
#define FIT_WKT_STEP_DURATION_REPETITION_TIME ((FIT_WKT_STEP_DURATION)28)
|
860
|
+
#define FIT_WKT_STEP_DURATION_COUNT 17
|
490
861
|
|
491
862
|
typedef FIT_ENUM FIT_WKT_STEP_TARGET;
|
492
863
|
#define FIT_WKT_STEP_TARGET_INVALID FIT_ENUM_INVALID
|
@@ -506,7 +877,9 @@ typedef FIT_ENUM FIT_GOAL;
|
|
506
877
|
#define FIT_GOAL_CALORIES ((FIT_GOAL)2)
|
507
878
|
#define FIT_GOAL_FREQUENCY ((FIT_GOAL)3)
|
508
879
|
#define FIT_GOAL_STEPS ((FIT_GOAL)4)
|
509
|
-
#define
|
880
|
+
#define FIT_GOAL_ASCENT ((FIT_GOAL)5)
|
881
|
+
#define FIT_GOAL_ACTIVE_MINUTES ((FIT_GOAL)6)
|
882
|
+
#define FIT_GOAL_COUNT 7
|
510
883
|
|
511
884
|
typedef FIT_ENUM FIT_GOAL_RECURRENCE;
|
512
885
|
#define FIT_GOAL_RECURRENCE_INVALID FIT_ENUM_INVALID
|
@@ -518,6 +891,13 @@ typedef FIT_ENUM FIT_GOAL_RECURRENCE;
|
|
518
891
|
#define FIT_GOAL_RECURRENCE_CUSTOM ((FIT_GOAL_RECURRENCE)5)
|
519
892
|
#define FIT_GOAL_RECURRENCE_COUNT 6
|
520
893
|
|
894
|
+
typedef FIT_ENUM FIT_GOAL_SOURCE;
|
895
|
+
#define FIT_GOAL_SOURCE_INVALID FIT_ENUM_INVALID
|
896
|
+
#define FIT_GOAL_SOURCE_AUTO ((FIT_GOAL_SOURCE)0) // Device generated
|
897
|
+
#define FIT_GOAL_SOURCE_COMMUNITY ((FIT_GOAL_SOURCE)1) // Social network sourced goal
|
898
|
+
#define FIT_GOAL_SOURCE_USER ((FIT_GOAL_SOURCE)2) // Manually generated
|
899
|
+
#define FIT_GOAL_SOURCE_COUNT 3
|
900
|
+
|
521
901
|
typedef FIT_ENUM FIT_SCHEDULE;
|
522
902
|
#define FIT_SCHEDULE_INVALID FIT_ENUM_INVALID
|
523
903
|
#define FIT_SCHEDULE_WORKOUT ((FIT_SCHEDULE)0)
|
@@ -550,7 +930,9 @@ typedef FIT_ENUM FIT_COURSE_POINT;
|
|
550
930
|
#define FIT_COURSE_POINT_SLIGHT_RIGHT ((FIT_COURSE_POINT)21)
|
551
931
|
#define FIT_COURSE_POINT_SHARP_RIGHT ((FIT_COURSE_POINT)22)
|
552
932
|
#define FIT_COURSE_POINT_U_TURN ((FIT_COURSE_POINT)23)
|
553
|
-
#define
|
933
|
+
#define FIT_COURSE_POINT_SEGMENT_START ((FIT_COURSE_POINT)24)
|
934
|
+
#define FIT_COURSE_POINT_SEGMENT_END ((FIT_COURSE_POINT)25)
|
935
|
+
#define FIT_COURSE_POINT_COUNT 26
|
554
936
|
|
555
937
|
typedef FIT_UINT16 FIT_MANUFACTURER;
|
556
938
|
#define FIT_MANUFACTURER_INVALID FIT_UINT16_INVALID
|
@@ -637,9 +1019,47 @@ typedef FIT_UINT16 FIT_MANUFACTURER;
|
|
637
1019
|
#define FIT_MANUFACTURER_MAGURA ((FIT_MANUFACTURER)84)
|
638
1020
|
#define FIT_MANUFACTURER_WOODWAY ((FIT_MANUFACTURER)85)
|
639
1021
|
#define FIT_MANUFACTURER_ELITE ((FIT_MANUFACTURER)86)
|
1022
|
+
#define FIT_MANUFACTURER_NIELSEN_KELLERMAN ((FIT_MANUFACTURER)87)
|
1023
|
+
#define FIT_MANUFACTURER_DK_CITY ((FIT_MANUFACTURER)88)
|
1024
|
+
#define FIT_MANUFACTURER_TACX ((FIT_MANUFACTURER)89)
|
1025
|
+
#define FIT_MANUFACTURER_DIRECTION_TECHNOLOGY ((FIT_MANUFACTURER)90)
|
1026
|
+
#define FIT_MANUFACTURER_MAGTONIC ((FIT_MANUFACTURER)91)
|
1027
|
+
#define FIT_MANUFACTURER_1PARTCARBON ((FIT_MANUFACTURER)92)
|
1028
|
+
#define FIT_MANUFACTURER_INSIDE_RIDE_TECHNOLOGIES ((FIT_MANUFACTURER)93)
|
1029
|
+
#define FIT_MANUFACTURER_SOUND_OF_MOTION ((FIT_MANUFACTURER)94)
|
1030
|
+
#define FIT_MANUFACTURER_STRYD ((FIT_MANUFACTURER)95)
|
1031
|
+
#define FIT_MANUFACTURER_ICG ((FIT_MANUFACTURER)96) // Indoorcycling Group
|
1032
|
+
#define FIT_MANUFACTURER_MIPULSE ((FIT_MANUFACTURER)97)
|
1033
|
+
#define FIT_MANUFACTURER_BSX_ATHLETICS ((FIT_MANUFACTURER)98)
|
1034
|
+
#define FIT_MANUFACTURER_LOOK ((FIT_MANUFACTURER)99)
|
1035
|
+
#define FIT_MANUFACTURER_CAMPAGNOLO_SRL ((FIT_MANUFACTURER)100)
|
1036
|
+
#define FIT_MANUFACTURER_BODY_BIKE_SMART ((FIT_MANUFACTURER)101)
|
1037
|
+
#define FIT_MANUFACTURER_PRAXISWORKS ((FIT_MANUFACTURER)102)
|
1038
|
+
#define FIT_MANUFACTURER_LIMITS_TECHNOLOGY ((FIT_MANUFACTURER)103) // Limits Technology Ltd.
|
1039
|
+
#define FIT_MANUFACTURER_TOPACTION_TECHNOLOGY ((FIT_MANUFACTURER)104) // TopAction Technology Inc.
|
1040
|
+
#define FIT_MANUFACTURER_COSINUSS ((FIT_MANUFACTURER)105)
|
1041
|
+
#define FIT_MANUFACTURER_FITCARE ((FIT_MANUFACTURER)106)
|
640
1042
|
#define FIT_MANUFACTURER_DEVELOPMENT ((FIT_MANUFACTURER)255)
|
1043
|
+
#define FIT_MANUFACTURER_HEALTHANDLIFE ((FIT_MANUFACTURER)257)
|
1044
|
+
#define FIT_MANUFACTURER_LEZYNE ((FIT_MANUFACTURER)258)
|
1045
|
+
#define FIT_MANUFACTURER_SCRIBE_LABS ((FIT_MANUFACTURER)259)
|
1046
|
+
#define FIT_MANUFACTURER_ZWIFT ((FIT_MANUFACTURER)260)
|
1047
|
+
#define FIT_MANUFACTURER_WATTEAM ((FIT_MANUFACTURER)261)
|
1048
|
+
#define FIT_MANUFACTURER_RECON ((FIT_MANUFACTURER)262)
|
1049
|
+
#define FIT_MANUFACTURER_FAVERO_ELECTRONICS ((FIT_MANUFACTURER)263)
|
1050
|
+
#define FIT_MANUFACTURER_DYNOVELO ((FIT_MANUFACTURER)264)
|
1051
|
+
#define FIT_MANUFACTURER_STRAVA ((FIT_MANUFACTURER)265)
|
1052
|
+
#define FIT_MANUFACTURER_PRECOR ((FIT_MANUFACTURER)266) // Amer Sports
|
1053
|
+
#define FIT_MANUFACTURER_BRYTON ((FIT_MANUFACTURER)267)
|
1054
|
+
#define FIT_MANUFACTURER_SRAM ((FIT_MANUFACTURER)268)
|
1055
|
+
#define FIT_MANUFACTURER_NAVMAN ((FIT_MANUFACTURER)269) // MiTAC Global Corporation (Mio Technology)
|
1056
|
+
#define FIT_MANUFACTURER_COBI ((FIT_MANUFACTURER)270) // COBI GmbH
|
1057
|
+
#define FIT_MANUFACTURER_SPIVI ((FIT_MANUFACTURER)271)
|
1058
|
+
#define FIT_MANUFACTURER_MIO_MAGELLAN ((FIT_MANUFACTURER)272)
|
1059
|
+
#define FIT_MANUFACTURER_EVESPORTS ((FIT_MANUFACTURER)273)
|
1060
|
+
#define FIT_MANUFACTURER_SENSITIVUS_GAUGE ((FIT_MANUFACTURER)274)
|
641
1061
|
#define FIT_MANUFACTURER_ACTIGRAPHCORP ((FIT_MANUFACTURER)5759)
|
642
|
-
#define FIT_MANUFACTURER_COUNT
|
1062
|
+
#define FIT_MANUFACTURER_COUNT 123
|
643
1063
|
|
644
1064
|
typedef FIT_UINT16 FIT_GARMIN_PRODUCT;
|
645
1065
|
#define FIT_GARMIN_PRODUCT_INVALID FIT_UINT16_INVALID
|
@@ -653,6 +1073,9 @@ typedef FIT_UINT16 FIT_GARMIN_PRODUCT;
|
|
653
1073
|
#define FIT_GARMIN_PRODUCT_HRM_RUN_SINGLE_BYTE_PRODUCT_ID ((FIT_GARMIN_PRODUCT)8) // hrm_run model for HRM ANT+ messaging
|
654
1074
|
#define FIT_GARMIN_PRODUCT_BSM ((FIT_GARMIN_PRODUCT)9) // BSM model for ANT+ messaging
|
655
1075
|
#define FIT_GARMIN_PRODUCT_BCM ((FIT_GARMIN_PRODUCT)10) // BCM model for ANT+ messaging
|
1076
|
+
#define FIT_GARMIN_PRODUCT_AXS01 ((FIT_GARMIN_PRODUCT)11) // AXS01 HRM Bike Chipset model for ANT+ messaging
|
1077
|
+
#define FIT_GARMIN_PRODUCT_HRM_TRI_SINGLE_BYTE_PRODUCT_ID ((FIT_GARMIN_PRODUCT)12) // hrm_tri model for HRM ANT+ messaging
|
1078
|
+
#define FIT_GARMIN_PRODUCT_FR225_SINGLE_BYTE_PRODUCT_ID ((FIT_GARMIN_PRODUCT)14) // fr225 model for HRM ANT+ messaging
|
656
1079
|
#define FIT_GARMIN_PRODUCT_FR301_CHINA ((FIT_GARMIN_PRODUCT)473)
|
657
1080
|
#define FIT_GARMIN_PRODUCT_FR301_JAPAN ((FIT_GARMIN_PRODUCT)474)
|
658
1081
|
#define FIT_GARMIN_PRODUCT_FR301_KOREA ((FIT_GARMIN_PRODUCT)475)
|
@@ -704,7 +1127,9 @@ typedef FIT_UINT16 FIT_GARMIN_PRODUCT;
|
|
704
1127
|
#define FIT_GARMIN_PRODUCT_VIRB_ELITE ((FIT_GARMIN_PRODUCT)1735)
|
705
1128
|
#define FIT_GARMIN_PRODUCT_EDGE_TOURING ((FIT_GARMIN_PRODUCT)1736) // Also Edge Touring Plus
|
706
1129
|
#define FIT_GARMIN_PRODUCT_EDGE510_JAPAN ((FIT_GARMIN_PRODUCT)1742)
|
1130
|
+
#define FIT_GARMIN_PRODUCT_HRM_TRI ((FIT_GARMIN_PRODUCT)1743)
|
707
1131
|
#define FIT_GARMIN_PRODUCT_HRM_RUN ((FIT_GARMIN_PRODUCT)1752)
|
1132
|
+
#define FIT_GARMIN_PRODUCT_FR920XT ((FIT_GARMIN_PRODUCT)1765)
|
708
1133
|
#define FIT_GARMIN_PRODUCT_EDGE510_ASIA ((FIT_GARMIN_PRODUCT)1821)
|
709
1134
|
#define FIT_GARMIN_PRODUCT_EDGE810_CHINA ((FIT_GARMIN_PRODUCT)1822)
|
710
1135
|
#define FIT_GARMIN_PRODUCT_EDGE810_TAIWAN ((FIT_GARMIN_PRODUCT)1823)
|
@@ -712,17 +1137,80 @@ typedef FIT_UINT16 FIT_GARMIN_PRODUCT;
|
|
712
1137
|
#define FIT_GARMIN_PRODUCT_VIVO_FIT ((FIT_GARMIN_PRODUCT)1837)
|
713
1138
|
#define FIT_GARMIN_PRODUCT_VIRB_REMOTE ((FIT_GARMIN_PRODUCT)1853)
|
714
1139
|
#define FIT_GARMIN_PRODUCT_VIVO_KI ((FIT_GARMIN_PRODUCT)1885)
|
1140
|
+
#define FIT_GARMIN_PRODUCT_FR15 ((FIT_GARMIN_PRODUCT)1903)
|
1141
|
+
#define FIT_GARMIN_PRODUCT_VIVO_ACTIVE ((FIT_GARMIN_PRODUCT)1907)
|
715
1142
|
#define FIT_GARMIN_PRODUCT_EDGE510_KOREA ((FIT_GARMIN_PRODUCT)1918)
|
716
1143
|
#define FIT_GARMIN_PRODUCT_FR620_JAPAN ((FIT_GARMIN_PRODUCT)1928)
|
717
1144
|
#define FIT_GARMIN_PRODUCT_FR620_CHINA ((FIT_GARMIN_PRODUCT)1929)
|
718
1145
|
#define FIT_GARMIN_PRODUCT_FR220_JAPAN ((FIT_GARMIN_PRODUCT)1930)
|
719
1146
|
#define FIT_GARMIN_PRODUCT_FR220_CHINA ((FIT_GARMIN_PRODUCT)1931)
|
1147
|
+
#define FIT_GARMIN_PRODUCT_APPROACH_S6 ((FIT_GARMIN_PRODUCT)1936)
|
1148
|
+
#define FIT_GARMIN_PRODUCT_VIVO_SMART ((FIT_GARMIN_PRODUCT)1956)
|
1149
|
+
#define FIT_GARMIN_PRODUCT_FENIX2 ((FIT_GARMIN_PRODUCT)1967)
|
1150
|
+
#define FIT_GARMIN_PRODUCT_EPIX ((FIT_GARMIN_PRODUCT)1988)
|
1151
|
+
#define FIT_GARMIN_PRODUCT_FENIX3 ((FIT_GARMIN_PRODUCT)2050)
|
1152
|
+
#define FIT_GARMIN_PRODUCT_EDGE1000_TAIWAN ((FIT_GARMIN_PRODUCT)2052)
|
1153
|
+
#define FIT_GARMIN_PRODUCT_EDGE1000_JAPAN ((FIT_GARMIN_PRODUCT)2053)
|
1154
|
+
#define FIT_GARMIN_PRODUCT_FR15_JAPAN ((FIT_GARMIN_PRODUCT)2061)
|
1155
|
+
#define FIT_GARMIN_PRODUCT_EDGE520 ((FIT_GARMIN_PRODUCT)2067)
|
1156
|
+
#define FIT_GARMIN_PRODUCT_EDGE1000_CHINA ((FIT_GARMIN_PRODUCT)2070)
|
1157
|
+
#define FIT_GARMIN_PRODUCT_FR620_RUSSIA ((FIT_GARMIN_PRODUCT)2072)
|
1158
|
+
#define FIT_GARMIN_PRODUCT_FR220_RUSSIA ((FIT_GARMIN_PRODUCT)2073)
|
1159
|
+
#define FIT_GARMIN_PRODUCT_VECTOR_S ((FIT_GARMIN_PRODUCT)2079)
|
1160
|
+
#define FIT_GARMIN_PRODUCT_EDGE1000_KOREA ((FIT_GARMIN_PRODUCT)2100)
|
1161
|
+
#define FIT_GARMIN_PRODUCT_FR920XT_TAIWAN ((FIT_GARMIN_PRODUCT)2130)
|
1162
|
+
#define FIT_GARMIN_PRODUCT_FR920XT_CHINA ((FIT_GARMIN_PRODUCT)2131)
|
1163
|
+
#define FIT_GARMIN_PRODUCT_FR920XT_JAPAN ((FIT_GARMIN_PRODUCT)2132)
|
1164
|
+
#define FIT_GARMIN_PRODUCT_VIRBX ((FIT_GARMIN_PRODUCT)2134)
|
1165
|
+
#define FIT_GARMIN_PRODUCT_VIVO_SMART_APAC ((FIT_GARMIN_PRODUCT)2135)
|
1166
|
+
#define FIT_GARMIN_PRODUCT_ETREX_TOUCH ((FIT_GARMIN_PRODUCT)2140)
|
1167
|
+
#define FIT_GARMIN_PRODUCT_EDGE25 ((FIT_GARMIN_PRODUCT)2147)
|
1168
|
+
#define FIT_GARMIN_PRODUCT_FR25 ((FIT_GARMIN_PRODUCT)2148)
|
1169
|
+
#define FIT_GARMIN_PRODUCT_VIVO_FIT2 ((FIT_GARMIN_PRODUCT)2150)
|
1170
|
+
#define FIT_GARMIN_PRODUCT_FR225 ((FIT_GARMIN_PRODUCT)2153)
|
1171
|
+
#define FIT_GARMIN_PRODUCT_FR630 ((FIT_GARMIN_PRODUCT)2156)
|
1172
|
+
#define FIT_GARMIN_PRODUCT_FR230 ((FIT_GARMIN_PRODUCT)2157)
|
1173
|
+
#define FIT_GARMIN_PRODUCT_VIVO_ACTIVE_APAC ((FIT_GARMIN_PRODUCT)2160)
|
1174
|
+
#define FIT_GARMIN_PRODUCT_VECTOR_2 ((FIT_GARMIN_PRODUCT)2161)
|
1175
|
+
#define FIT_GARMIN_PRODUCT_VECTOR_2S ((FIT_GARMIN_PRODUCT)2162)
|
1176
|
+
#define FIT_GARMIN_PRODUCT_VIRBXE ((FIT_GARMIN_PRODUCT)2172)
|
1177
|
+
#define FIT_GARMIN_PRODUCT_FR620_TAIWAN ((FIT_GARMIN_PRODUCT)2173)
|
1178
|
+
#define FIT_GARMIN_PRODUCT_FR220_TAIWAN ((FIT_GARMIN_PRODUCT)2174)
|
1179
|
+
#define FIT_GARMIN_PRODUCT_TRUSWING ((FIT_GARMIN_PRODUCT)2175)
|
1180
|
+
#define FIT_GARMIN_PRODUCT_FENIX3_CHINA ((FIT_GARMIN_PRODUCT)2188)
|
1181
|
+
#define FIT_GARMIN_PRODUCT_FENIX3_TWN ((FIT_GARMIN_PRODUCT)2189)
|
1182
|
+
#define FIT_GARMIN_PRODUCT_VARIA_HEADLIGHT ((FIT_GARMIN_PRODUCT)2192)
|
1183
|
+
#define FIT_GARMIN_PRODUCT_VARIA_TAILLIGHT_OLD ((FIT_GARMIN_PRODUCT)2193)
|
1184
|
+
#define FIT_GARMIN_PRODUCT_EDGE_EXPLORE_1000 ((FIT_GARMIN_PRODUCT)2204)
|
1185
|
+
#define FIT_GARMIN_PRODUCT_FR225_ASIA ((FIT_GARMIN_PRODUCT)2219)
|
1186
|
+
#define FIT_GARMIN_PRODUCT_VARIA_RADAR_TAILLIGHT ((FIT_GARMIN_PRODUCT)2225)
|
1187
|
+
#define FIT_GARMIN_PRODUCT_VARIA_RADAR_DISPLAY ((FIT_GARMIN_PRODUCT)2226)
|
1188
|
+
#define FIT_GARMIN_PRODUCT_EDGE20 ((FIT_GARMIN_PRODUCT)2238)
|
1189
|
+
#define FIT_GARMIN_PRODUCT_D2_BRAVO ((FIT_GARMIN_PRODUCT)2262)
|
1190
|
+
#define FIT_GARMIN_PRODUCT_APPROACH_S20 ((FIT_GARMIN_PRODUCT)2266)
|
1191
|
+
#define FIT_GARMIN_PRODUCT_VARIA_REMOTE ((FIT_GARMIN_PRODUCT)2276)
|
1192
|
+
#define FIT_GARMIN_PRODUCT_HRM4_RUN ((FIT_GARMIN_PRODUCT)2327)
|
1193
|
+
#define FIT_GARMIN_PRODUCT_VIVO_ACTIVE_HR ((FIT_GARMIN_PRODUCT)2337)
|
1194
|
+
#define FIT_GARMIN_PRODUCT_VIVO_SMART_GPS_HR ((FIT_GARMIN_PRODUCT)2347)
|
1195
|
+
#define FIT_GARMIN_PRODUCT_VIVO_SMART_HR ((FIT_GARMIN_PRODUCT)2348)
|
1196
|
+
#define FIT_GARMIN_PRODUCT_VIVO_MOVE ((FIT_GARMIN_PRODUCT)2368)
|
1197
|
+
#define FIT_GARMIN_PRODUCT_VARIA_VISION ((FIT_GARMIN_PRODUCT)2398)
|
1198
|
+
#define FIT_GARMIN_PRODUCT_VIVO_FIT3 ((FIT_GARMIN_PRODUCT)2406)
|
1199
|
+
#define FIT_GARMIN_PRODUCT_FENIX3_HR ((FIT_GARMIN_PRODUCT)2413)
|
1200
|
+
#define FIT_GARMIN_PRODUCT_INDEX_SMART_SCALE ((FIT_GARMIN_PRODUCT)2429)
|
1201
|
+
#define FIT_GARMIN_PRODUCT_FR235 ((FIT_GARMIN_PRODUCT)2431)
|
1202
|
+
#define FIT_GARMIN_PRODUCT_OREGON7XX ((FIT_GARMIN_PRODUCT)2441)
|
1203
|
+
#define FIT_GARMIN_PRODUCT_RINO7XX ((FIT_GARMIN_PRODUCT)2444)
|
1204
|
+
#define FIT_GARMIN_PRODUCT_NAUTIX ((FIT_GARMIN_PRODUCT)2496)
|
1205
|
+
#define FIT_GARMIN_PRODUCT_EDGE_820 ((FIT_GARMIN_PRODUCT)2530)
|
1206
|
+
#define FIT_GARMIN_PRODUCT_EDGE_EXPLORE_820 ((FIT_GARMIN_PRODUCT)2531)
|
720
1207
|
#define FIT_GARMIN_PRODUCT_SDM4 ((FIT_GARMIN_PRODUCT)10007) // SDM4 footpod
|
721
1208
|
#define FIT_GARMIN_PRODUCT_EDGE_REMOTE ((FIT_GARMIN_PRODUCT)10014)
|
722
1209
|
#define FIT_GARMIN_PRODUCT_TRAINING_CENTER ((FIT_GARMIN_PRODUCT)20119)
|
1210
|
+
#define FIT_GARMIN_PRODUCT_CONNECTIQ_SIMULATOR ((FIT_GARMIN_PRODUCT)65531)
|
723
1211
|
#define FIT_GARMIN_PRODUCT_ANDROID_ANTPLUS_PLUGIN ((FIT_GARMIN_PRODUCT)65532)
|
724
1212
|
#define FIT_GARMIN_PRODUCT_CONNECT ((FIT_GARMIN_PRODUCT)65534) // Garmin Connect website
|
725
|
-
#define FIT_GARMIN_PRODUCT_COUNT
|
1213
|
+
#define FIT_GARMIN_PRODUCT_COUNT 147
|
726
1214
|
|
727
1215
|
typedef FIT_UINT8 FIT_ANTPLUS_DEVICE_TYPE;
|
728
1216
|
#define FIT_ANTPLUS_DEVICE_TYPE_INVALID FIT_UINT8_INVALID
|
@@ -737,13 +1225,19 @@ typedef FIT_UINT8 FIT_ANTPLUS_DEVICE_TYPE;
|
|
737
1225
|
#define FIT_ANTPLUS_DEVICE_TYPE_LIGHT_ELECTRIC_VEHICLE ((FIT_ANTPLUS_DEVICE_TYPE)20)
|
738
1226
|
#define FIT_ANTPLUS_DEVICE_TYPE_ENV_SENSOR ((FIT_ANTPLUS_DEVICE_TYPE)25)
|
739
1227
|
#define FIT_ANTPLUS_DEVICE_TYPE_RACQUET ((FIT_ANTPLUS_DEVICE_TYPE)26)
|
1228
|
+
#define FIT_ANTPLUS_DEVICE_TYPE_CONTROL_HUB ((FIT_ANTPLUS_DEVICE_TYPE)27)
|
1229
|
+
#define FIT_ANTPLUS_DEVICE_TYPE_MUSCLE_OXYGEN ((FIT_ANTPLUS_DEVICE_TYPE)31)
|
1230
|
+
#define FIT_ANTPLUS_DEVICE_TYPE_BIKE_LIGHT_MAIN ((FIT_ANTPLUS_DEVICE_TYPE)35)
|
1231
|
+
#define FIT_ANTPLUS_DEVICE_TYPE_BIKE_LIGHT_SHARED ((FIT_ANTPLUS_DEVICE_TYPE)36)
|
1232
|
+
#define FIT_ANTPLUS_DEVICE_TYPE_EXD ((FIT_ANTPLUS_DEVICE_TYPE)38)
|
1233
|
+
#define FIT_ANTPLUS_DEVICE_TYPE_BIKE_RADAR ((FIT_ANTPLUS_DEVICE_TYPE)40)
|
740
1234
|
#define FIT_ANTPLUS_DEVICE_TYPE_WEIGHT_SCALE ((FIT_ANTPLUS_DEVICE_TYPE)119)
|
741
1235
|
#define FIT_ANTPLUS_DEVICE_TYPE_HEART_RATE ((FIT_ANTPLUS_DEVICE_TYPE)120)
|
742
1236
|
#define FIT_ANTPLUS_DEVICE_TYPE_BIKE_SPEED_CADENCE ((FIT_ANTPLUS_DEVICE_TYPE)121)
|
743
1237
|
#define FIT_ANTPLUS_DEVICE_TYPE_BIKE_CADENCE ((FIT_ANTPLUS_DEVICE_TYPE)122)
|
744
1238
|
#define FIT_ANTPLUS_DEVICE_TYPE_BIKE_SPEED ((FIT_ANTPLUS_DEVICE_TYPE)123)
|
745
1239
|
#define FIT_ANTPLUS_DEVICE_TYPE_STRIDE_SPEED_DISTANCE ((FIT_ANTPLUS_DEVICE_TYPE)124)
|
746
|
-
#define FIT_ANTPLUS_DEVICE_TYPE_COUNT
|
1240
|
+
#define FIT_ANTPLUS_DEVICE_TYPE_COUNT 23
|
747
1241
|
|
748
1242
|
typedef FIT_ENUM FIT_ANT_NETWORK;
|
749
1243
|
#define FIT_ANT_NETWORK_INVALID FIT_ENUM_INVALID
|
@@ -778,7 +1272,9 @@ typedef FIT_UINT8 FIT_BATTERY_STATUS;
|
|
778
1272
|
#define FIT_BATTERY_STATUS_OK ((FIT_BATTERY_STATUS)3)
|
779
1273
|
#define FIT_BATTERY_STATUS_LOW ((FIT_BATTERY_STATUS)4)
|
780
1274
|
#define FIT_BATTERY_STATUS_CRITICAL ((FIT_BATTERY_STATUS)5)
|
781
|
-
#define
|
1275
|
+
#define FIT_BATTERY_STATUS_CHARGING ((FIT_BATTERY_STATUS)6)
|
1276
|
+
#define FIT_BATTERY_STATUS_UNKNOWN ((FIT_BATTERY_STATUS)7)
|
1277
|
+
#define FIT_BATTERY_STATUS_COUNT 7
|
782
1278
|
|
783
1279
|
typedef FIT_ENUM FIT_HR_TYPE;
|
784
1280
|
#define FIT_HR_TYPE_INVALID FIT_ENUM_INVALID
|
@@ -798,14 +1294,15 @@ typedef FIT_UINT32Z FIT_COURSE_CAPABILITIES;
|
|
798
1294
|
#define FIT_COURSE_CAPABILITIES_CADENCE ((FIT_COURSE_CAPABILITIES)0x00000080)
|
799
1295
|
#define FIT_COURSE_CAPABILITIES_TRAINING ((FIT_COURSE_CAPABILITIES)0x00000100)
|
800
1296
|
#define FIT_COURSE_CAPABILITIES_NAVIGATION ((FIT_COURSE_CAPABILITIES)0x00000200)
|
801
|
-
#define
|
1297
|
+
#define FIT_COURSE_CAPABILITIES_BIKEWAY ((FIT_COURSE_CAPABILITIES)0x00000400)
|
1298
|
+
#define FIT_COURSE_CAPABILITIES_COUNT 11
|
802
1299
|
|
803
1300
|
typedef FIT_UINT16 FIT_WEIGHT;
|
804
1301
|
#define FIT_WEIGHT_INVALID FIT_UINT16_INVALID
|
805
1302
|
#define FIT_WEIGHT_CALCULATING ((FIT_WEIGHT)0xFFFE)
|
806
1303
|
#define FIT_WEIGHT_COUNT 1
|
807
1304
|
|
808
|
-
typedef FIT_UINT32 FIT_WORKOUT_HR; // 0 - 100 indicates% of
|
1305
|
+
typedef FIT_UINT32 FIT_WORKOUT_HR; // 0 - 100 indicates% of max hr; >100 indicates bpm (255 max) plus 100
|
809
1306
|
#define FIT_WORKOUT_HR_INVALID FIT_UINT32_INVALID
|
810
1307
|
#define FIT_WORKOUT_HR_BPM_OFFSET ((FIT_WORKOUT_HR)100)
|
811
1308
|
#define FIT_WORKOUT_HR_COUNT 1
|
@@ -854,8 +1351,9 @@ typedef FIT_ENUM FIT_ACTIVITY_TYPE;
|
|
854
1351
|
#define FIT_ACTIVITY_TYPE_FITNESS_EQUIPMENT ((FIT_ACTIVITY_TYPE)4)
|
855
1352
|
#define FIT_ACTIVITY_TYPE_SWIMMING ((FIT_ACTIVITY_TYPE)5)
|
856
1353
|
#define FIT_ACTIVITY_TYPE_WALKING ((FIT_ACTIVITY_TYPE)6)
|
1354
|
+
#define FIT_ACTIVITY_TYPE_SEDENTARY ((FIT_ACTIVITY_TYPE)8)
|
857
1355
|
#define FIT_ACTIVITY_TYPE_ALL ((FIT_ACTIVITY_TYPE)254) // All is for goals only to include all sports.
|
858
|
-
#define FIT_ACTIVITY_TYPE_COUNT
|
1356
|
+
#define FIT_ACTIVITY_TYPE_COUNT 9
|
859
1357
|
|
860
1358
|
typedef FIT_ENUM FIT_ACTIVITY_SUBTYPE;
|
861
1359
|
#define FIT_ACTIVITY_SUBTYPE_INVALID FIT_ENUM_INVALID
|
@@ -888,6 +1386,12 @@ typedef FIT_ENUM FIT_ACTIVITY_LEVEL;
|
|
888
1386
|
#define FIT_ACTIVITY_LEVEL_HIGH ((FIT_ACTIVITY_LEVEL)2)
|
889
1387
|
#define FIT_ACTIVITY_LEVEL_COUNT 3
|
890
1388
|
|
1389
|
+
typedef FIT_ENUM FIT_SIDE;
|
1390
|
+
#define FIT_SIDE_INVALID FIT_ENUM_INVALID
|
1391
|
+
#define FIT_SIDE_RIGHT ((FIT_SIDE)0)
|
1392
|
+
#define FIT_SIDE_LEFT ((FIT_SIDE)1)
|
1393
|
+
#define FIT_SIDE_COUNT 2
|
1394
|
+
|
891
1395
|
typedef FIT_UINT8 FIT_LEFT_RIGHT_BALANCE;
|
892
1396
|
#define FIT_LEFT_RIGHT_BALANCE_INVALID FIT_UINT8_INVALID
|
893
1397
|
#define FIT_LEFT_RIGHT_BALANCE_MASK ((FIT_LEFT_RIGHT_BALANCE)0x7F) // % contribution
|
@@ -906,6 +1410,17 @@ typedef FIT_ENUM FIT_LENGTH_TYPE;
|
|
906
1410
|
#define FIT_LENGTH_TYPE_ACTIVE ((FIT_LENGTH_TYPE)1) // Length with strokes.
|
907
1411
|
#define FIT_LENGTH_TYPE_COUNT 2
|
908
1412
|
|
1413
|
+
typedef FIT_ENUM FIT_DAY_OF_WEEK;
|
1414
|
+
#define FIT_DAY_OF_WEEK_INVALID FIT_ENUM_INVALID
|
1415
|
+
#define FIT_DAY_OF_WEEK_SUNDAY ((FIT_DAY_OF_WEEK)0)
|
1416
|
+
#define FIT_DAY_OF_WEEK_MONDAY ((FIT_DAY_OF_WEEK)1)
|
1417
|
+
#define FIT_DAY_OF_WEEK_TUESDAY ((FIT_DAY_OF_WEEK)2)
|
1418
|
+
#define FIT_DAY_OF_WEEK_WEDNESDAY ((FIT_DAY_OF_WEEK)3)
|
1419
|
+
#define FIT_DAY_OF_WEEK_THURSDAY ((FIT_DAY_OF_WEEK)4)
|
1420
|
+
#define FIT_DAY_OF_WEEK_FRIDAY ((FIT_DAY_OF_WEEK)5)
|
1421
|
+
#define FIT_DAY_OF_WEEK_SATURDAY ((FIT_DAY_OF_WEEK)6)
|
1422
|
+
#define FIT_DAY_OF_WEEK_COUNT 7
|
1423
|
+
|
909
1424
|
typedef FIT_UINT32Z FIT_CONNECTIVITY_CAPABILITIES;
|
910
1425
|
#define FIT_CONNECTIVITY_CAPABILITIES_INVALID FIT_UINT32Z_INVALID
|
911
1426
|
#define FIT_CONNECTIVITY_CAPABILITIES_BLUETOOTH ((FIT_CONNECTIVITY_CAPABILITIES)0x00000001)
|
@@ -920,7 +1435,165 @@ typedef FIT_UINT32Z FIT_CONNECTIVITY_CAPABILITIES;
|
|
920
1435
|
#define FIT_CONNECTIVITY_CAPABILITIES_GPS_EPHEMERIS_DOWNLOAD ((FIT_CONNECTIVITY_CAPABILITIES)0x00000200)
|
921
1436
|
#define FIT_CONNECTIVITY_CAPABILITIES_EXPLICIT_ARCHIVE ((FIT_CONNECTIVITY_CAPABILITIES)0x00000400)
|
922
1437
|
#define FIT_CONNECTIVITY_CAPABILITIES_SETUP_INCOMPLETE ((FIT_CONNECTIVITY_CAPABILITIES)0x00000800)
|
923
|
-
#define
|
1438
|
+
#define FIT_CONNECTIVITY_CAPABILITIES_CONTINUE_SYNC_AFTER_SOFTWARE_UPDATE ((FIT_CONNECTIVITY_CAPABILITIES)0x00001000)
|
1439
|
+
#define FIT_CONNECTIVITY_CAPABILITIES_CONNECT_IQ_APP_DOWNLOAD ((FIT_CONNECTIVITY_CAPABILITIES)0x00002000)
|
1440
|
+
#define FIT_CONNECTIVITY_CAPABILITIES_GOLF_COURSE_DOWNLOAD ((FIT_CONNECTIVITY_CAPABILITIES)0x00004000)
|
1441
|
+
#define FIT_CONNECTIVITY_CAPABILITIES_DEVICE_INITIATES_SYNC ((FIT_CONNECTIVITY_CAPABILITIES)0x00008000) // Indicates device is in control of initiating all syncs
|
1442
|
+
#define FIT_CONNECTIVITY_CAPABILITIES_CONNECT_IQ_WATCH_APP_DOWNLOAD ((FIT_CONNECTIVITY_CAPABILITIES)0x00010000)
|
1443
|
+
#define FIT_CONNECTIVITY_CAPABILITIES_CONNECT_IQ_WIDGET_DOWNLOAD ((FIT_CONNECTIVITY_CAPABILITIES)0x00020000)
|
1444
|
+
#define FIT_CONNECTIVITY_CAPABILITIES_CONNECT_IQ_WATCH_FACE_DOWNLOAD ((FIT_CONNECTIVITY_CAPABILITIES)0x00040000)
|
1445
|
+
#define FIT_CONNECTIVITY_CAPABILITIES_CONNECT_IQ_DATA_FIELD_DOWNLOAD ((FIT_CONNECTIVITY_CAPABILITIES)0x00080000)
|
1446
|
+
#define FIT_CONNECTIVITY_CAPABILITIES_CONNECT_IQ_APP_MANAGMENT ((FIT_CONNECTIVITY_CAPABILITIES)0x00100000) // Device supports delete and reorder of apps via GCM
|
1447
|
+
#define FIT_CONNECTIVITY_CAPABILITIES_SWING_SENSOR ((FIT_CONNECTIVITY_CAPABILITIES)0x00200000)
|
1448
|
+
#define FIT_CONNECTIVITY_CAPABILITIES_SWING_SENSOR_REMOTE ((FIT_CONNECTIVITY_CAPABILITIES)0x00400000)
|
1449
|
+
#define FIT_CONNECTIVITY_CAPABILITIES_INCIDENT_DETECTION ((FIT_CONNECTIVITY_CAPABILITIES)0x00800000) // Device supports incident detection
|
1450
|
+
#define FIT_CONNECTIVITY_CAPABILITIES_AUDIO_PROMPTS ((FIT_CONNECTIVITY_CAPABILITIES)0x01000000)
|
1451
|
+
#define FIT_CONNECTIVITY_CAPABILITIES_WIFI_VERIFICATION ((FIT_CONNECTIVITY_CAPABILITIES)0x02000000) // Device supports reporting wifi verification via GCM
|
1452
|
+
#define FIT_CONNECTIVITY_CAPABILITIES_TRUE_UP ((FIT_CONNECTIVITY_CAPABILITIES)0x04000000) // Device supports True Up
|
1453
|
+
#define FIT_CONNECTIVITY_CAPABILITIES_FIND_MY_WATCH ((FIT_CONNECTIVITY_CAPABILITIES)0x08000000) // Device supports Find My Watch
|
1454
|
+
#define FIT_CONNECTIVITY_CAPABILITIES_REMOTE_MANUAL_SYNC ((FIT_CONNECTIVITY_CAPABILITIES)0x10000000)
|
1455
|
+
#define FIT_CONNECTIVITY_CAPABILITIES_LIVE_TRACK_AUTO_START ((FIT_CONNECTIVITY_CAPABILITIES)0x20000000) // Device supports LiveTrack auto start
|
1456
|
+
#define FIT_CONNECTIVITY_CAPABILITIES_LIVE_TRACK_MESSAGING ((FIT_CONNECTIVITY_CAPABILITIES)0x40000000) // Device supports LiveTrack Messaging
|
1457
|
+
#define FIT_CONNECTIVITY_CAPABILITIES_COUNT 31
|
1458
|
+
|
1459
|
+
typedef FIT_ENUM FIT_WEATHER_REPORT;
|
1460
|
+
#define FIT_WEATHER_REPORT_INVALID FIT_ENUM_INVALID
|
1461
|
+
#define FIT_WEATHER_REPORT_CURRENT ((FIT_WEATHER_REPORT)0)
|
1462
|
+
#define FIT_WEATHER_REPORT_FORECAST ((FIT_WEATHER_REPORT)1) // Deprecated use hourly_forecast instead
|
1463
|
+
#define FIT_WEATHER_REPORT_HOURLY_FORECAST ((FIT_WEATHER_REPORT)1)
|
1464
|
+
#define FIT_WEATHER_REPORT_DAILY_FORECAST ((FIT_WEATHER_REPORT)2)
|
1465
|
+
#define FIT_WEATHER_REPORT_COUNT 4
|
1466
|
+
|
1467
|
+
typedef FIT_ENUM FIT_WEATHER_STATUS;
|
1468
|
+
#define FIT_WEATHER_STATUS_INVALID FIT_ENUM_INVALID
|
1469
|
+
#define FIT_WEATHER_STATUS_CLEAR ((FIT_WEATHER_STATUS)0)
|
1470
|
+
#define FIT_WEATHER_STATUS_PARTLY_CLOUDY ((FIT_WEATHER_STATUS)1)
|
1471
|
+
#define FIT_WEATHER_STATUS_MOSTLY_CLOUDY ((FIT_WEATHER_STATUS)2)
|
1472
|
+
#define FIT_WEATHER_STATUS_RAIN ((FIT_WEATHER_STATUS)3)
|
1473
|
+
#define FIT_WEATHER_STATUS_SNOW ((FIT_WEATHER_STATUS)4)
|
1474
|
+
#define FIT_WEATHER_STATUS_WINDY ((FIT_WEATHER_STATUS)5)
|
1475
|
+
#define FIT_WEATHER_STATUS_THUNDERSTORMS ((FIT_WEATHER_STATUS)6)
|
1476
|
+
#define FIT_WEATHER_STATUS_WINTRY_MIX ((FIT_WEATHER_STATUS)7)
|
1477
|
+
#define FIT_WEATHER_STATUS_FOG ((FIT_WEATHER_STATUS)8)
|
1478
|
+
#define FIT_WEATHER_STATUS_HAZY ((FIT_WEATHER_STATUS)11)
|
1479
|
+
#define FIT_WEATHER_STATUS_HAIL ((FIT_WEATHER_STATUS)12)
|
1480
|
+
#define FIT_WEATHER_STATUS_SCATTERED_SHOWERS ((FIT_WEATHER_STATUS)13)
|
1481
|
+
#define FIT_WEATHER_STATUS_SCATTERED_THUNDERSTORMS ((FIT_WEATHER_STATUS)14)
|
1482
|
+
#define FIT_WEATHER_STATUS_UNKNOWN_PRECIPITATION ((FIT_WEATHER_STATUS)15)
|
1483
|
+
#define FIT_WEATHER_STATUS_LIGHT_RAIN ((FIT_WEATHER_STATUS)16)
|
1484
|
+
#define FIT_WEATHER_STATUS_HEAVY_RAIN ((FIT_WEATHER_STATUS)17)
|
1485
|
+
#define FIT_WEATHER_STATUS_LIGHT_SNOW ((FIT_WEATHER_STATUS)18)
|
1486
|
+
#define FIT_WEATHER_STATUS_HEAVY_SNOW ((FIT_WEATHER_STATUS)19)
|
1487
|
+
#define FIT_WEATHER_STATUS_LIGHT_RAIN_SNOW ((FIT_WEATHER_STATUS)20)
|
1488
|
+
#define FIT_WEATHER_STATUS_HEAVY_RAIN_SNOW ((FIT_WEATHER_STATUS)21)
|
1489
|
+
#define FIT_WEATHER_STATUS_CLOUDY ((FIT_WEATHER_STATUS)22)
|
1490
|
+
#define FIT_WEATHER_STATUS_COUNT 21
|
1491
|
+
|
1492
|
+
typedef FIT_ENUM FIT_WEATHER_SEVERITY;
|
1493
|
+
#define FIT_WEATHER_SEVERITY_INVALID FIT_ENUM_INVALID
|
1494
|
+
#define FIT_WEATHER_SEVERITY_UNKNOWN ((FIT_WEATHER_SEVERITY)0)
|
1495
|
+
#define FIT_WEATHER_SEVERITY_WARNING ((FIT_WEATHER_SEVERITY)1)
|
1496
|
+
#define FIT_WEATHER_SEVERITY_WATCH ((FIT_WEATHER_SEVERITY)2)
|
1497
|
+
#define FIT_WEATHER_SEVERITY_ADVISORY ((FIT_WEATHER_SEVERITY)3)
|
1498
|
+
#define FIT_WEATHER_SEVERITY_STATEMENT ((FIT_WEATHER_SEVERITY)4)
|
1499
|
+
#define FIT_WEATHER_SEVERITY_COUNT 5
|
1500
|
+
|
1501
|
+
typedef FIT_ENUM FIT_WEATHER_SEVERE_TYPE;
|
1502
|
+
#define FIT_WEATHER_SEVERE_TYPE_INVALID FIT_ENUM_INVALID
|
1503
|
+
#define FIT_WEATHER_SEVERE_TYPE_UNSPECIFIED ((FIT_WEATHER_SEVERE_TYPE)0)
|
1504
|
+
#define FIT_WEATHER_SEVERE_TYPE_TORNADO ((FIT_WEATHER_SEVERE_TYPE)1)
|
1505
|
+
#define FIT_WEATHER_SEVERE_TYPE_TSUNAMI ((FIT_WEATHER_SEVERE_TYPE)2)
|
1506
|
+
#define FIT_WEATHER_SEVERE_TYPE_HURRICANE ((FIT_WEATHER_SEVERE_TYPE)3)
|
1507
|
+
#define FIT_WEATHER_SEVERE_TYPE_EXTREME_WIND ((FIT_WEATHER_SEVERE_TYPE)4)
|
1508
|
+
#define FIT_WEATHER_SEVERE_TYPE_TYPHOON ((FIT_WEATHER_SEVERE_TYPE)5)
|
1509
|
+
#define FIT_WEATHER_SEVERE_TYPE_INLAND_HURRICANE ((FIT_WEATHER_SEVERE_TYPE)6)
|
1510
|
+
#define FIT_WEATHER_SEVERE_TYPE_HURRICANE_FORCE_WIND ((FIT_WEATHER_SEVERE_TYPE)7)
|
1511
|
+
#define FIT_WEATHER_SEVERE_TYPE_WATERSPOUT ((FIT_WEATHER_SEVERE_TYPE)8)
|
1512
|
+
#define FIT_WEATHER_SEVERE_TYPE_SEVERE_THUNDERSTORM ((FIT_WEATHER_SEVERE_TYPE)9)
|
1513
|
+
#define FIT_WEATHER_SEVERE_TYPE_WRECKHOUSE_WINDS ((FIT_WEATHER_SEVERE_TYPE)10)
|
1514
|
+
#define FIT_WEATHER_SEVERE_TYPE_LES_SUETES_WIND ((FIT_WEATHER_SEVERE_TYPE)11)
|
1515
|
+
#define FIT_WEATHER_SEVERE_TYPE_AVALANCHE ((FIT_WEATHER_SEVERE_TYPE)12)
|
1516
|
+
#define FIT_WEATHER_SEVERE_TYPE_FLASH_FLOOD ((FIT_WEATHER_SEVERE_TYPE)13)
|
1517
|
+
#define FIT_WEATHER_SEVERE_TYPE_TROPICAL_STORM ((FIT_WEATHER_SEVERE_TYPE)14)
|
1518
|
+
#define FIT_WEATHER_SEVERE_TYPE_INLAND_TROPICAL_STORM ((FIT_WEATHER_SEVERE_TYPE)15)
|
1519
|
+
#define FIT_WEATHER_SEVERE_TYPE_BLIZZARD ((FIT_WEATHER_SEVERE_TYPE)16)
|
1520
|
+
#define FIT_WEATHER_SEVERE_TYPE_ICE_STORM ((FIT_WEATHER_SEVERE_TYPE)17)
|
1521
|
+
#define FIT_WEATHER_SEVERE_TYPE_FREEZING_RAIN ((FIT_WEATHER_SEVERE_TYPE)18)
|
1522
|
+
#define FIT_WEATHER_SEVERE_TYPE_DEBRIS_FLOW ((FIT_WEATHER_SEVERE_TYPE)19)
|
1523
|
+
#define FIT_WEATHER_SEVERE_TYPE_FLASH_FREEZE ((FIT_WEATHER_SEVERE_TYPE)20)
|
1524
|
+
#define FIT_WEATHER_SEVERE_TYPE_DUST_STORM ((FIT_WEATHER_SEVERE_TYPE)21)
|
1525
|
+
#define FIT_WEATHER_SEVERE_TYPE_HIGH_WIND ((FIT_WEATHER_SEVERE_TYPE)22)
|
1526
|
+
#define FIT_WEATHER_SEVERE_TYPE_WINTER_STORM ((FIT_WEATHER_SEVERE_TYPE)23)
|
1527
|
+
#define FIT_WEATHER_SEVERE_TYPE_HEAVY_FREEZING_SPRAY ((FIT_WEATHER_SEVERE_TYPE)24)
|
1528
|
+
#define FIT_WEATHER_SEVERE_TYPE_EXTREME_COLD ((FIT_WEATHER_SEVERE_TYPE)25)
|
1529
|
+
#define FIT_WEATHER_SEVERE_TYPE_WIND_CHILL ((FIT_WEATHER_SEVERE_TYPE)26)
|
1530
|
+
#define FIT_WEATHER_SEVERE_TYPE_COLD_WAVE ((FIT_WEATHER_SEVERE_TYPE)27)
|
1531
|
+
#define FIT_WEATHER_SEVERE_TYPE_HEAVY_SNOW_ALERT ((FIT_WEATHER_SEVERE_TYPE)28)
|
1532
|
+
#define FIT_WEATHER_SEVERE_TYPE_LAKE_EFFECT_BLOWING_SNOW ((FIT_WEATHER_SEVERE_TYPE)29)
|
1533
|
+
#define FIT_WEATHER_SEVERE_TYPE_SNOW_SQUALL ((FIT_WEATHER_SEVERE_TYPE)30)
|
1534
|
+
#define FIT_WEATHER_SEVERE_TYPE_LAKE_EFFECT_SNOW ((FIT_WEATHER_SEVERE_TYPE)31)
|
1535
|
+
#define FIT_WEATHER_SEVERE_TYPE_WINTER_WEATHER ((FIT_WEATHER_SEVERE_TYPE)32)
|
1536
|
+
#define FIT_WEATHER_SEVERE_TYPE_SLEET ((FIT_WEATHER_SEVERE_TYPE)33)
|
1537
|
+
#define FIT_WEATHER_SEVERE_TYPE_SNOWFALL ((FIT_WEATHER_SEVERE_TYPE)34)
|
1538
|
+
#define FIT_WEATHER_SEVERE_TYPE_SNOW_AND_BLOWING_SNOW ((FIT_WEATHER_SEVERE_TYPE)35)
|
1539
|
+
#define FIT_WEATHER_SEVERE_TYPE_BLOWING_SNOW ((FIT_WEATHER_SEVERE_TYPE)36)
|
1540
|
+
#define FIT_WEATHER_SEVERE_TYPE_SNOW_ALERT ((FIT_WEATHER_SEVERE_TYPE)37)
|
1541
|
+
#define FIT_WEATHER_SEVERE_TYPE_ARCTIC_OUTFLOW ((FIT_WEATHER_SEVERE_TYPE)38)
|
1542
|
+
#define FIT_WEATHER_SEVERE_TYPE_FREEZING_DRIZZLE ((FIT_WEATHER_SEVERE_TYPE)39)
|
1543
|
+
#define FIT_WEATHER_SEVERE_TYPE_STORM ((FIT_WEATHER_SEVERE_TYPE)40)
|
1544
|
+
#define FIT_WEATHER_SEVERE_TYPE_STORM_SURGE ((FIT_WEATHER_SEVERE_TYPE)41)
|
1545
|
+
#define FIT_WEATHER_SEVERE_TYPE_RAINFALL ((FIT_WEATHER_SEVERE_TYPE)42)
|
1546
|
+
#define FIT_WEATHER_SEVERE_TYPE_AREAL_FLOOD ((FIT_WEATHER_SEVERE_TYPE)43)
|
1547
|
+
#define FIT_WEATHER_SEVERE_TYPE_COASTAL_FLOOD ((FIT_WEATHER_SEVERE_TYPE)44)
|
1548
|
+
#define FIT_WEATHER_SEVERE_TYPE_LAKESHORE_FLOOD ((FIT_WEATHER_SEVERE_TYPE)45)
|
1549
|
+
#define FIT_WEATHER_SEVERE_TYPE_EXCESSIVE_HEAT ((FIT_WEATHER_SEVERE_TYPE)46)
|
1550
|
+
#define FIT_WEATHER_SEVERE_TYPE_HEAT ((FIT_WEATHER_SEVERE_TYPE)47)
|
1551
|
+
#define FIT_WEATHER_SEVERE_TYPE_WEATHER ((FIT_WEATHER_SEVERE_TYPE)48)
|
1552
|
+
#define FIT_WEATHER_SEVERE_TYPE_HIGH_HEAT_AND_HUMIDITY ((FIT_WEATHER_SEVERE_TYPE)49)
|
1553
|
+
#define FIT_WEATHER_SEVERE_TYPE_HUMIDEX_AND_HEALTH ((FIT_WEATHER_SEVERE_TYPE)50)
|
1554
|
+
#define FIT_WEATHER_SEVERE_TYPE_HUMIDEX ((FIT_WEATHER_SEVERE_TYPE)51)
|
1555
|
+
#define FIT_WEATHER_SEVERE_TYPE_GALE ((FIT_WEATHER_SEVERE_TYPE)52)
|
1556
|
+
#define FIT_WEATHER_SEVERE_TYPE_FREEZING_SPRAY ((FIT_WEATHER_SEVERE_TYPE)53)
|
1557
|
+
#define FIT_WEATHER_SEVERE_TYPE_SPECIAL_MARINE ((FIT_WEATHER_SEVERE_TYPE)54)
|
1558
|
+
#define FIT_WEATHER_SEVERE_TYPE_SQUALL ((FIT_WEATHER_SEVERE_TYPE)55)
|
1559
|
+
#define FIT_WEATHER_SEVERE_TYPE_STRONG_WIND ((FIT_WEATHER_SEVERE_TYPE)56)
|
1560
|
+
#define FIT_WEATHER_SEVERE_TYPE_LAKE_WIND ((FIT_WEATHER_SEVERE_TYPE)57)
|
1561
|
+
#define FIT_WEATHER_SEVERE_TYPE_MARINE_WEATHER ((FIT_WEATHER_SEVERE_TYPE)58)
|
1562
|
+
#define FIT_WEATHER_SEVERE_TYPE_WIND ((FIT_WEATHER_SEVERE_TYPE)59)
|
1563
|
+
#define FIT_WEATHER_SEVERE_TYPE_SMALL_CRAFT_HAZARDOUS_SEAS ((FIT_WEATHER_SEVERE_TYPE)60)
|
1564
|
+
#define FIT_WEATHER_SEVERE_TYPE_HAZARDOUS_SEAS ((FIT_WEATHER_SEVERE_TYPE)61)
|
1565
|
+
#define FIT_WEATHER_SEVERE_TYPE_SMALL_CRAFT ((FIT_WEATHER_SEVERE_TYPE)62)
|
1566
|
+
#define FIT_WEATHER_SEVERE_TYPE_SMALL_CRAFT_WINDS ((FIT_WEATHER_SEVERE_TYPE)63)
|
1567
|
+
#define FIT_WEATHER_SEVERE_TYPE_SMALL_CRAFT_ROUGH_BAR ((FIT_WEATHER_SEVERE_TYPE)64)
|
1568
|
+
#define FIT_WEATHER_SEVERE_TYPE_HIGH_WATER_LEVEL ((FIT_WEATHER_SEVERE_TYPE)65)
|
1569
|
+
#define FIT_WEATHER_SEVERE_TYPE_ASHFALL ((FIT_WEATHER_SEVERE_TYPE)66)
|
1570
|
+
#define FIT_WEATHER_SEVERE_TYPE_FREEZING_FOG ((FIT_WEATHER_SEVERE_TYPE)67)
|
1571
|
+
#define FIT_WEATHER_SEVERE_TYPE_DENSE_FOG ((FIT_WEATHER_SEVERE_TYPE)68)
|
1572
|
+
#define FIT_WEATHER_SEVERE_TYPE_DENSE_SMOKE ((FIT_WEATHER_SEVERE_TYPE)69)
|
1573
|
+
#define FIT_WEATHER_SEVERE_TYPE_BLOWING_DUST ((FIT_WEATHER_SEVERE_TYPE)70)
|
1574
|
+
#define FIT_WEATHER_SEVERE_TYPE_HARD_FREEZE ((FIT_WEATHER_SEVERE_TYPE)71)
|
1575
|
+
#define FIT_WEATHER_SEVERE_TYPE_FREEZE ((FIT_WEATHER_SEVERE_TYPE)72)
|
1576
|
+
#define FIT_WEATHER_SEVERE_TYPE_FROST ((FIT_WEATHER_SEVERE_TYPE)73)
|
1577
|
+
#define FIT_WEATHER_SEVERE_TYPE_FIRE_WEATHER ((FIT_WEATHER_SEVERE_TYPE)74)
|
1578
|
+
#define FIT_WEATHER_SEVERE_TYPE_FLOOD ((FIT_WEATHER_SEVERE_TYPE)75)
|
1579
|
+
#define FIT_WEATHER_SEVERE_TYPE_RIP_TIDE ((FIT_WEATHER_SEVERE_TYPE)76)
|
1580
|
+
#define FIT_WEATHER_SEVERE_TYPE_HIGH_SURF ((FIT_WEATHER_SEVERE_TYPE)77)
|
1581
|
+
#define FIT_WEATHER_SEVERE_TYPE_SMOG ((FIT_WEATHER_SEVERE_TYPE)78)
|
1582
|
+
#define FIT_WEATHER_SEVERE_TYPE_AIR_QUALITY ((FIT_WEATHER_SEVERE_TYPE)79)
|
1583
|
+
#define FIT_WEATHER_SEVERE_TYPE_BRISK_WIND ((FIT_WEATHER_SEVERE_TYPE)80)
|
1584
|
+
#define FIT_WEATHER_SEVERE_TYPE_AIR_STAGNATION ((FIT_WEATHER_SEVERE_TYPE)81)
|
1585
|
+
#define FIT_WEATHER_SEVERE_TYPE_LOW_WATER ((FIT_WEATHER_SEVERE_TYPE)82)
|
1586
|
+
#define FIT_WEATHER_SEVERE_TYPE_HYDROLOGICAL ((FIT_WEATHER_SEVERE_TYPE)83)
|
1587
|
+
#define FIT_WEATHER_SEVERE_TYPE_SPECIAL_WEATHER ((FIT_WEATHER_SEVERE_TYPE)84)
|
1588
|
+
#define FIT_WEATHER_SEVERE_TYPE_COUNT 85
|
1589
|
+
|
1590
|
+
typedef FIT_UINT32 FIT_TIME_INTO_DAY; // number of seconds into the day since 00:00:00 UTC
|
1591
|
+
#define FIT_TIME_INTO_DAY_INVALID FIT_UINT32_INVALID
|
1592
|
+
#define FIT_TIME_INTO_DAY_COUNT 0
|
1593
|
+
|
1594
|
+
typedef FIT_UINT32 FIT_LOCALTIME_INTO_DAY; // number of seconds into the day since local 00:00:00
|
1595
|
+
#define FIT_LOCALTIME_INTO_DAY_INVALID FIT_UINT32_INVALID
|
1596
|
+
#define FIT_LOCALTIME_INTO_DAY_COUNT 0
|
924
1597
|
|
925
1598
|
typedef FIT_ENUM FIT_STROKE_TYPE;
|
926
1599
|
#define FIT_STROKE_TYPE_INVALID FIT_ENUM_INVALID
|
@@ -970,7 +1643,45 @@ typedef FIT_ENUM FIT_BODY_LOCATION;
|
|
970
1643
|
#define FIT_BODY_LOCATION_RIGHT_FOREARM_EXTENSORS ((FIT_BODY_LOCATION)33) // Right posterior forearm
|
971
1644
|
#define FIT_BODY_LOCATION_NECK ((FIT_BODY_LOCATION)34)
|
972
1645
|
#define FIT_BODY_LOCATION_THROAT ((FIT_BODY_LOCATION)35)
|
973
|
-
#define
|
1646
|
+
#define FIT_BODY_LOCATION_WAIST_MID_BACK ((FIT_BODY_LOCATION)36)
|
1647
|
+
#define FIT_BODY_LOCATION_WAIST_FRONT ((FIT_BODY_LOCATION)37)
|
1648
|
+
#define FIT_BODY_LOCATION_WAIST_LEFT ((FIT_BODY_LOCATION)38)
|
1649
|
+
#define FIT_BODY_LOCATION_WAIST_RIGHT ((FIT_BODY_LOCATION)39)
|
1650
|
+
#define FIT_BODY_LOCATION_COUNT 40
|
1651
|
+
|
1652
|
+
typedef FIT_ENUM FIT_SEGMENT_LAP_STATUS;
|
1653
|
+
#define FIT_SEGMENT_LAP_STATUS_INVALID FIT_ENUM_INVALID
|
1654
|
+
#define FIT_SEGMENT_LAP_STATUS_END ((FIT_SEGMENT_LAP_STATUS)0)
|
1655
|
+
#define FIT_SEGMENT_LAP_STATUS_FAIL ((FIT_SEGMENT_LAP_STATUS)1)
|
1656
|
+
#define FIT_SEGMENT_LAP_STATUS_COUNT 2
|
1657
|
+
|
1658
|
+
typedef FIT_ENUM FIT_SEGMENT_LEADERBOARD_TYPE;
|
1659
|
+
#define FIT_SEGMENT_LEADERBOARD_TYPE_INVALID FIT_ENUM_INVALID
|
1660
|
+
#define FIT_SEGMENT_LEADERBOARD_TYPE_OVERALL ((FIT_SEGMENT_LEADERBOARD_TYPE)0)
|
1661
|
+
#define FIT_SEGMENT_LEADERBOARD_TYPE_PERSONAL_BEST ((FIT_SEGMENT_LEADERBOARD_TYPE)1)
|
1662
|
+
#define FIT_SEGMENT_LEADERBOARD_TYPE_CONNECTIONS ((FIT_SEGMENT_LEADERBOARD_TYPE)2)
|
1663
|
+
#define FIT_SEGMENT_LEADERBOARD_TYPE_GROUP ((FIT_SEGMENT_LEADERBOARD_TYPE)3)
|
1664
|
+
#define FIT_SEGMENT_LEADERBOARD_TYPE_CHALLENGER ((FIT_SEGMENT_LEADERBOARD_TYPE)4)
|
1665
|
+
#define FIT_SEGMENT_LEADERBOARD_TYPE_KOM ((FIT_SEGMENT_LEADERBOARD_TYPE)5)
|
1666
|
+
#define FIT_SEGMENT_LEADERBOARD_TYPE_QOM ((FIT_SEGMENT_LEADERBOARD_TYPE)6)
|
1667
|
+
#define FIT_SEGMENT_LEADERBOARD_TYPE_PR ((FIT_SEGMENT_LEADERBOARD_TYPE)7)
|
1668
|
+
#define FIT_SEGMENT_LEADERBOARD_TYPE_GOAL ((FIT_SEGMENT_LEADERBOARD_TYPE)8)
|
1669
|
+
#define FIT_SEGMENT_LEADERBOARD_TYPE_RIVAL ((FIT_SEGMENT_LEADERBOARD_TYPE)9)
|
1670
|
+
#define FIT_SEGMENT_LEADERBOARD_TYPE_CLUB_LEADER ((FIT_SEGMENT_LEADERBOARD_TYPE)10)
|
1671
|
+
#define FIT_SEGMENT_LEADERBOARD_TYPE_COUNT 11
|
1672
|
+
|
1673
|
+
typedef FIT_ENUM FIT_SEGMENT_DELETE_STATUS;
|
1674
|
+
#define FIT_SEGMENT_DELETE_STATUS_INVALID FIT_ENUM_INVALID
|
1675
|
+
#define FIT_SEGMENT_DELETE_STATUS_DO_NOT_DELETE ((FIT_SEGMENT_DELETE_STATUS)0)
|
1676
|
+
#define FIT_SEGMENT_DELETE_STATUS_DELETE_ONE ((FIT_SEGMENT_DELETE_STATUS)1)
|
1677
|
+
#define FIT_SEGMENT_DELETE_STATUS_DELETE_ALL ((FIT_SEGMENT_DELETE_STATUS)2)
|
1678
|
+
#define FIT_SEGMENT_DELETE_STATUS_COUNT 3
|
1679
|
+
|
1680
|
+
typedef FIT_ENUM FIT_SEGMENT_SELECTION_TYPE;
|
1681
|
+
#define FIT_SEGMENT_SELECTION_TYPE_INVALID FIT_ENUM_INVALID
|
1682
|
+
#define FIT_SEGMENT_SELECTION_TYPE_STARRED ((FIT_SEGMENT_SELECTION_TYPE)0)
|
1683
|
+
#define FIT_SEGMENT_SELECTION_TYPE_SUGGESTED ((FIT_SEGMENT_SELECTION_TYPE)1)
|
1684
|
+
#define FIT_SEGMENT_SELECTION_TYPE_COUNT 2
|
974
1685
|
|
975
1686
|
typedef FIT_ENUM FIT_SOURCE_TYPE;
|
976
1687
|
#define FIT_SOURCE_TYPE_INVALID FIT_ENUM_INVALID
|
@@ -982,6 +1693,435 @@ typedef FIT_ENUM FIT_SOURCE_TYPE;
|
|
982
1693
|
#define FIT_SOURCE_TYPE_LOCAL ((FIT_SOURCE_TYPE)5) // Onboard device
|
983
1694
|
#define FIT_SOURCE_TYPE_COUNT 6
|
984
1695
|
|
1696
|
+
typedef FIT_ENUM FIT_DISPLAY_ORIENTATION;
|
1697
|
+
#define FIT_DISPLAY_ORIENTATION_INVALID FIT_ENUM_INVALID
|
1698
|
+
#define FIT_DISPLAY_ORIENTATION_AUTO ((FIT_DISPLAY_ORIENTATION)0) // automatic if the device supports it
|
1699
|
+
#define FIT_DISPLAY_ORIENTATION_PORTRAIT ((FIT_DISPLAY_ORIENTATION)1)
|
1700
|
+
#define FIT_DISPLAY_ORIENTATION_LANDSCAPE ((FIT_DISPLAY_ORIENTATION)2)
|
1701
|
+
#define FIT_DISPLAY_ORIENTATION_PORTRAIT_FLIPPED ((FIT_DISPLAY_ORIENTATION)3) // portrait mode but rotated 180 degrees
|
1702
|
+
#define FIT_DISPLAY_ORIENTATION_LANDSCAPE_FLIPPED ((FIT_DISPLAY_ORIENTATION)4) // landscape mode but rotated 180 degrees
|
1703
|
+
#define FIT_DISPLAY_ORIENTATION_COUNT 5
|
1704
|
+
|
1705
|
+
typedef FIT_ENUM FIT_WATCHFACE_MODE;
|
1706
|
+
#define FIT_WATCHFACE_MODE_INVALID FIT_ENUM_INVALID
|
1707
|
+
#define FIT_WATCHFACE_MODE_DIGITAL ((FIT_WATCHFACE_MODE)0)
|
1708
|
+
#define FIT_WATCHFACE_MODE_ANALOG ((FIT_WATCHFACE_MODE)1)
|
1709
|
+
#define FIT_WATCHFACE_MODE_CONNECT_IQ ((FIT_WATCHFACE_MODE)2)
|
1710
|
+
#define FIT_WATCHFACE_MODE_COUNT 3
|
1711
|
+
|
1712
|
+
typedef FIT_ENUM FIT_DIGITAL_WATCHFACE_LAYOUT;
|
1713
|
+
#define FIT_DIGITAL_WATCHFACE_LAYOUT_INVALID FIT_ENUM_INVALID
|
1714
|
+
#define FIT_DIGITAL_WATCHFACE_LAYOUT_TRADITIONAL ((FIT_DIGITAL_WATCHFACE_LAYOUT)0)
|
1715
|
+
#define FIT_DIGITAL_WATCHFACE_LAYOUT_MODERN ((FIT_DIGITAL_WATCHFACE_LAYOUT)1)
|
1716
|
+
#define FIT_DIGITAL_WATCHFACE_LAYOUT_BOLD ((FIT_DIGITAL_WATCHFACE_LAYOUT)2)
|
1717
|
+
#define FIT_DIGITAL_WATCHFACE_LAYOUT_COUNT 3
|
1718
|
+
|
1719
|
+
typedef FIT_ENUM FIT_ANALOG_WATCHFACE_LAYOUT;
|
1720
|
+
#define FIT_ANALOG_WATCHFACE_LAYOUT_INVALID FIT_ENUM_INVALID
|
1721
|
+
#define FIT_ANALOG_WATCHFACE_LAYOUT_MINIMAL ((FIT_ANALOG_WATCHFACE_LAYOUT)0)
|
1722
|
+
#define FIT_ANALOG_WATCHFACE_LAYOUT_TRADITIONAL ((FIT_ANALOG_WATCHFACE_LAYOUT)1)
|
1723
|
+
#define FIT_ANALOG_WATCHFACE_LAYOUT_MODERN ((FIT_ANALOG_WATCHFACE_LAYOUT)2)
|
1724
|
+
#define FIT_ANALOG_WATCHFACE_LAYOUT_COUNT 3
|
1725
|
+
|
1726
|
+
typedef FIT_ENUM FIT_RIDER_POSITION_TYPE;
|
1727
|
+
#define FIT_RIDER_POSITION_TYPE_INVALID FIT_ENUM_INVALID
|
1728
|
+
#define FIT_RIDER_POSITION_TYPE_SEATED ((FIT_RIDER_POSITION_TYPE)0)
|
1729
|
+
#define FIT_RIDER_POSITION_TYPE_STANDING ((FIT_RIDER_POSITION_TYPE)1)
|
1730
|
+
#define FIT_RIDER_POSITION_TYPE_COUNT 2
|
1731
|
+
|
1732
|
+
typedef FIT_ENUM FIT_POWER_PHASE_TYPE;
|
1733
|
+
#define FIT_POWER_PHASE_TYPE_INVALID FIT_ENUM_INVALID
|
1734
|
+
#define FIT_POWER_PHASE_TYPE_POWER_PHASE_START_ANGLE ((FIT_POWER_PHASE_TYPE)0)
|
1735
|
+
#define FIT_POWER_PHASE_TYPE_POWER_PHASE_END_ANGLE ((FIT_POWER_PHASE_TYPE)1)
|
1736
|
+
#define FIT_POWER_PHASE_TYPE_POWER_PHASE_ARC_LENGTH ((FIT_POWER_PHASE_TYPE)2)
|
1737
|
+
#define FIT_POWER_PHASE_TYPE_POWER_PHASE_CENTER ((FIT_POWER_PHASE_TYPE)3)
|
1738
|
+
#define FIT_POWER_PHASE_TYPE_COUNT 4
|
1739
|
+
|
1740
|
+
typedef FIT_ENUM FIT_CAMERA_EVENT_TYPE;
|
1741
|
+
#define FIT_CAMERA_EVENT_TYPE_INVALID FIT_ENUM_INVALID
|
1742
|
+
#define FIT_CAMERA_EVENT_TYPE_VIDEO_START ((FIT_CAMERA_EVENT_TYPE)0) // Start of video recording
|
1743
|
+
#define FIT_CAMERA_EVENT_TYPE_VIDEO_SPLIT ((FIT_CAMERA_EVENT_TYPE)1) // Mark of video file split (end of one file, beginning of the other)
|
1744
|
+
#define FIT_CAMERA_EVENT_TYPE_VIDEO_END ((FIT_CAMERA_EVENT_TYPE)2) // End of video recording
|
1745
|
+
#define FIT_CAMERA_EVENT_TYPE_PHOTO_TAKEN ((FIT_CAMERA_EVENT_TYPE)3) // Still photo taken
|
1746
|
+
#define FIT_CAMERA_EVENT_TYPE_VIDEO_SECOND_STREAM_START ((FIT_CAMERA_EVENT_TYPE)4)
|
1747
|
+
#define FIT_CAMERA_EVENT_TYPE_VIDEO_SECOND_STREAM_SPLIT ((FIT_CAMERA_EVENT_TYPE)5)
|
1748
|
+
#define FIT_CAMERA_EVENT_TYPE_VIDEO_SECOND_STREAM_END ((FIT_CAMERA_EVENT_TYPE)6)
|
1749
|
+
#define FIT_CAMERA_EVENT_TYPE_VIDEO_SPLIT_START ((FIT_CAMERA_EVENT_TYPE)7) // Mark of video file split start
|
1750
|
+
#define FIT_CAMERA_EVENT_TYPE_VIDEO_SECOND_STREAM_SPLIT_START ((FIT_CAMERA_EVENT_TYPE)8)
|
1751
|
+
#define FIT_CAMERA_EVENT_TYPE_VIDEO_PAUSE ((FIT_CAMERA_EVENT_TYPE)11) // Mark when a video recording has been paused
|
1752
|
+
#define FIT_CAMERA_EVENT_TYPE_VIDEO_SECOND_STREAM_PAUSE ((FIT_CAMERA_EVENT_TYPE)12)
|
1753
|
+
#define FIT_CAMERA_EVENT_TYPE_VIDEO_RESUME ((FIT_CAMERA_EVENT_TYPE)13) // Mark when a video recording has been resumed
|
1754
|
+
#define FIT_CAMERA_EVENT_TYPE_VIDEO_SECOND_STREAM_RESUME ((FIT_CAMERA_EVENT_TYPE)14)
|
1755
|
+
#define FIT_CAMERA_EVENT_TYPE_COUNT 13
|
1756
|
+
|
1757
|
+
typedef FIT_ENUM FIT_SENSOR_TYPE;
|
1758
|
+
#define FIT_SENSOR_TYPE_INVALID FIT_ENUM_INVALID
|
1759
|
+
#define FIT_SENSOR_TYPE_ACCELEROMETER ((FIT_SENSOR_TYPE)0)
|
1760
|
+
#define FIT_SENSOR_TYPE_GYROSCOPE ((FIT_SENSOR_TYPE)1)
|
1761
|
+
#define FIT_SENSOR_TYPE_COMPASS ((FIT_SENSOR_TYPE)2) // Magnetometer
|
1762
|
+
#define FIT_SENSOR_TYPE_COUNT 3
|
1763
|
+
|
1764
|
+
typedef FIT_ENUM FIT_BIKE_LIGHT_NETWORK_CONFIG_TYPE;
|
1765
|
+
#define FIT_BIKE_LIGHT_NETWORK_CONFIG_TYPE_INVALID FIT_ENUM_INVALID
|
1766
|
+
#define FIT_BIKE_LIGHT_NETWORK_CONFIG_TYPE_AUTO ((FIT_BIKE_LIGHT_NETWORK_CONFIG_TYPE)0)
|
1767
|
+
#define FIT_BIKE_LIGHT_NETWORK_CONFIG_TYPE_INDIVIDUAL ((FIT_BIKE_LIGHT_NETWORK_CONFIG_TYPE)4)
|
1768
|
+
#define FIT_BIKE_LIGHT_NETWORK_CONFIG_TYPE_HIGH_VISIBILITY ((FIT_BIKE_LIGHT_NETWORK_CONFIG_TYPE)5)
|
1769
|
+
#define FIT_BIKE_LIGHT_NETWORK_CONFIG_TYPE_TRAIL ((FIT_BIKE_LIGHT_NETWORK_CONFIG_TYPE)6)
|
1770
|
+
#define FIT_BIKE_LIGHT_NETWORK_CONFIG_TYPE_COUNT 4
|
1771
|
+
|
1772
|
+
typedef FIT_UINT16 FIT_COMM_TIMEOUT_TYPE;
|
1773
|
+
#define FIT_COMM_TIMEOUT_TYPE_INVALID FIT_UINT16_INVALID
|
1774
|
+
#define FIT_COMM_TIMEOUT_TYPE_WILDCARD_PAIRING_TIMEOUT ((FIT_COMM_TIMEOUT_TYPE)0) // Timeout pairing to any device
|
1775
|
+
#define FIT_COMM_TIMEOUT_TYPE_PAIRING_TIMEOUT ((FIT_COMM_TIMEOUT_TYPE)1) // Timeout pairing to previously paired device
|
1776
|
+
#define FIT_COMM_TIMEOUT_TYPE_CONNECTION_LOST ((FIT_COMM_TIMEOUT_TYPE)2) // Temporary loss of communications
|
1777
|
+
#define FIT_COMM_TIMEOUT_TYPE_CONNECTION_TIMEOUT ((FIT_COMM_TIMEOUT_TYPE)3) // Connection closed due to extended bad communications
|
1778
|
+
#define FIT_COMM_TIMEOUT_TYPE_COUNT 4
|
1779
|
+
|
1780
|
+
typedef FIT_ENUM FIT_CAMERA_ORIENTATION_TYPE;
|
1781
|
+
#define FIT_CAMERA_ORIENTATION_TYPE_INVALID FIT_ENUM_INVALID
|
1782
|
+
#define FIT_CAMERA_ORIENTATION_TYPE_CAMERA_ORIENTATION_0 ((FIT_CAMERA_ORIENTATION_TYPE)0)
|
1783
|
+
#define FIT_CAMERA_ORIENTATION_TYPE_CAMERA_ORIENTATION_90 ((FIT_CAMERA_ORIENTATION_TYPE)1)
|
1784
|
+
#define FIT_CAMERA_ORIENTATION_TYPE_CAMERA_ORIENTATION_180 ((FIT_CAMERA_ORIENTATION_TYPE)2)
|
1785
|
+
#define FIT_CAMERA_ORIENTATION_TYPE_CAMERA_ORIENTATION_270 ((FIT_CAMERA_ORIENTATION_TYPE)3)
|
1786
|
+
#define FIT_CAMERA_ORIENTATION_TYPE_COUNT 4
|
1787
|
+
|
1788
|
+
typedef FIT_ENUM FIT_ATTITUDE_STAGE;
|
1789
|
+
#define FIT_ATTITUDE_STAGE_INVALID FIT_ENUM_INVALID
|
1790
|
+
#define FIT_ATTITUDE_STAGE_FAILED ((FIT_ATTITUDE_STAGE)0)
|
1791
|
+
#define FIT_ATTITUDE_STAGE_ALIGNING ((FIT_ATTITUDE_STAGE)1)
|
1792
|
+
#define FIT_ATTITUDE_STAGE_DEGRADED ((FIT_ATTITUDE_STAGE)2)
|
1793
|
+
#define FIT_ATTITUDE_STAGE_VALID ((FIT_ATTITUDE_STAGE)3)
|
1794
|
+
#define FIT_ATTITUDE_STAGE_COUNT 4
|
1795
|
+
|
1796
|
+
typedef FIT_UINT16 FIT_ATTITUDE_VALIDITY;
|
1797
|
+
#define FIT_ATTITUDE_VALIDITY_INVALID FIT_UINT16_INVALID
|
1798
|
+
#define FIT_ATTITUDE_VALIDITY_TRACK_ANGLE_HEADING_VALID ((FIT_ATTITUDE_VALIDITY)0x0001)
|
1799
|
+
#define FIT_ATTITUDE_VALIDITY_PITCH_VALID ((FIT_ATTITUDE_VALIDITY)0x0002)
|
1800
|
+
#define FIT_ATTITUDE_VALIDITY_ROLL_VALID ((FIT_ATTITUDE_VALIDITY)0x0004)
|
1801
|
+
#define FIT_ATTITUDE_VALIDITY_LATERAL_BODY_ACCEL_VALID ((FIT_ATTITUDE_VALIDITY)0x0008)
|
1802
|
+
#define FIT_ATTITUDE_VALIDITY_NORMAL_BODY_ACCEL_VALID ((FIT_ATTITUDE_VALIDITY)0x0010)
|
1803
|
+
#define FIT_ATTITUDE_VALIDITY_TURN_RATE_VALID ((FIT_ATTITUDE_VALIDITY)0x0020)
|
1804
|
+
#define FIT_ATTITUDE_VALIDITY_HW_FAIL ((FIT_ATTITUDE_VALIDITY)0x0040)
|
1805
|
+
#define FIT_ATTITUDE_VALIDITY_MAG_INVALID ((FIT_ATTITUDE_VALIDITY)0x0080)
|
1806
|
+
#define FIT_ATTITUDE_VALIDITY_NO_GPS ((FIT_ATTITUDE_VALIDITY)0x0100)
|
1807
|
+
#define FIT_ATTITUDE_VALIDITY_GPS_INVALID ((FIT_ATTITUDE_VALIDITY)0x0200)
|
1808
|
+
#define FIT_ATTITUDE_VALIDITY_SOLUTION_COASTING ((FIT_ATTITUDE_VALIDITY)0x0400)
|
1809
|
+
#define FIT_ATTITUDE_VALIDITY_TRUE_TRACK_ANGLE ((FIT_ATTITUDE_VALIDITY)0x0800)
|
1810
|
+
#define FIT_ATTITUDE_VALIDITY_MAGNETIC_HEADING ((FIT_ATTITUDE_VALIDITY)0x1000)
|
1811
|
+
#define FIT_ATTITUDE_VALIDITY_COUNT 13
|
1812
|
+
|
1813
|
+
typedef FIT_ENUM FIT_AUTO_SYNC_FREQUENCY;
|
1814
|
+
#define FIT_AUTO_SYNC_FREQUENCY_INVALID FIT_ENUM_INVALID
|
1815
|
+
#define FIT_AUTO_SYNC_FREQUENCY_NEVER ((FIT_AUTO_SYNC_FREQUENCY)0)
|
1816
|
+
#define FIT_AUTO_SYNC_FREQUENCY_OCCASIONALLY ((FIT_AUTO_SYNC_FREQUENCY)1)
|
1817
|
+
#define FIT_AUTO_SYNC_FREQUENCY_FREQUENT ((FIT_AUTO_SYNC_FREQUENCY)2)
|
1818
|
+
#define FIT_AUTO_SYNC_FREQUENCY_ONCE_A_DAY ((FIT_AUTO_SYNC_FREQUENCY)3)
|
1819
|
+
#define FIT_AUTO_SYNC_FREQUENCY_COUNT 4
|
1820
|
+
|
1821
|
+
typedef FIT_ENUM FIT_EXD_LAYOUT;
|
1822
|
+
#define FIT_EXD_LAYOUT_INVALID FIT_ENUM_INVALID
|
1823
|
+
#define FIT_EXD_LAYOUT_FULL_SCREEN ((FIT_EXD_LAYOUT)0)
|
1824
|
+
#define FIT_EXD_LAYOUT_HALF_VERTICAL ((FIT_EXD_LAYOUT)1)
|
1825
|
+
#define FIT_EXD_LAYOUT_HALF_HORIZONTAL ((FIT_EXD_LAYOUT)2)
|
1826
|
+
#define FIT_EXD_LAYOUT_HALF_VERTICAL_RIGHT_SPLIT ((FIT_EXD_LAYOUT)3)
|
1827
|
+
#define FIT_EXD_LAYOUT_HALF_HORIZONTAL_BOTTOM_SPLIT ((FIT_EXD_LAYOUT)4)
|
1828
|
+
#define FIT_EXD_LAYOUT_FULL_QUARTER_SPLIT ((FIT_EXD_LAYOUT)5)
|
1829
|
+
#define FIT_EXD_LAYOUT_HALF_VERTICAL_LEFT_SPLIT ((FIT_EXD_LAYOUT)6)
|
1830
|
+
#define FIT_EXD_LAYOUT_HALF_HORIZONTAL_TOP_SPLIT ((FIT_EXD_LAYOUT)7)
|
1831
|
+
#define FIT_EXD_LAYOUT_COUNT 8
|
1832
|
+
|
1833
|
+
typedef FIT_ENUM FIT_EXD_DISPLAY_TYPE;
|
1834
|
+
#define FIT_EXD_DISPLAY_TYPE_INVALID FIT_ENUM_INVALID
|
1835
|
+
#define FIT_EXD_DISPLAY_TYPE_NUMERICAL ((FIT_EXD_DISPLAY_TYPE)0)
|
1836
|
+
#define FIT_EXD_DISPLAY_TYPE_SIMPLE ((FIT_EXD_DISPLAY_TYPE)1)
|
1837
|
+
#define FIT_EXD_DISPLAY_TYPE_GRAPH ((FIT_EXD_DISPLAY_TYPE)2)
|
1838
|
+
#define FIT_EXD_DISPLAY_TYPE_BAR ((FIT_EXD_DISPLAY_TYPE)3)
|
1839
|
+
#define FIT_EXD_DISPLAY_TYPE_CIRCLE_GRAPH ((FIT_EXD_DISPLAY_TYPE)4)
|
1840
|
+
#define FIT_EXD_DISPLAY_TYPE_VIRTUAL_PARTNER ((FIT_EXD_DISPLAY_TYPE)5)
|
1841
|
+
#define FIT_EXD_DISPLAY_TYPE_BALANCE ((FIT_EXD_DISPLAY_TYPE)6)
|
1842
|
+
#define FIT_EXD_DISPLAY_TYPE_STRING_LIST ((FIT_EXD_DISPLAY_TYPE)7)
|
1843
|
+
#define FIT_EXD_DISPLAY_TYPE_STRING ((FIT_EXD_DISPLAY_TYPE)8)
|
1844
|
+
#define FIT_EXD_DISPLAY_TYPE_SIMPLE_DYNAMIC_ICON ((FIT_EXD_DISPLAY_TYPE)9)
|
1845
|
+
#define FIT_EXD_DISPLAY_TYPE_GAUGE ((FIT_EXD_DISPLAY_TYPE)10)
|
1846
|
+
#define FIT_EXD_DISPLAY_TYPE_COUNT 11
|
1847
|
+
|
1848
|
+
typedef FIT_ENUM FIT_EXD_DATA_UNITS;
|
1849
|
+
#define FIT_EXD_DATA_UNITS_INVALID FIT_ENUM_INVALID
|
1850
|
+
#define FIT_EXD_DATA_UNITS_NO_UNITS ((FIT_EXD_DATA_UNITS)0)
|
1851
|
+
#define FIT_EXD_DATA_UNITS_LAPS ((FIT_EXD_DATA_UNITS)1)
|
1852
|
+
#define FIT_EXD_DATA_UNITS_MILES_PER_HOUR ((FIT_EXD_DATA_UNITS)2)
|
1853
|
+
#define FIT_EXD_DATA_UNITS_KILOMETERS_PER_HOUR ((FIT_EXD_DATA_UNITS)3)
|
1854
|
+
#define FIT_EXD_DATA_UNITS_FEET_PER_HOUR ((FIT_EXD_DATA_UNITS)4)
|
1855
|
+
#define FIT_EXD_DATA_UNITS_METERS_PER_HOUR ((FIT_EXD_DATA_UNITS)5)
|
1856
|
+
#define FIT_EXD_DATA_UNITS_DEGREES_CELSIUS ((FIT_EXD_DATA_UNITS)6)
|
1857
|
+
#define FIT_EXD_DATA_UNITS_DEGREES_FARENHEIT ((FIT_EXD_DATA_UNITS)7)
|
1858
|
+
#define FIT_EXD_DATA_UNITS_ZONE ((FIT_EXD_DATA_UNITS)8)
|
1859
|
+
#define FIT_EXD_DATA_UNITS_GEAR ((FIT_EXD_DATA_UNITS)9)
|
1860
|
+
#define FIT_EXD_DATA_UNITS_RPM ((FIT_EXD_DATA_UNITS)10)
|
1861
|
+
#define FIT_EXD_DATA_UNITS_BPM ((FIT_EXD_DATA_UNITS)11)
|
1862
|
+
#define FIT_EXD_DATA_UNITS_DEGREES ((FIT_EXD_DATA_UNITS)12)
|
1863
|
+
#define FIT_EXD_DATA_UNITS_MILLIMETERS ((FIT_EXD_DATA_UNITS)13)
|
1864
|
+
#define FIT_EXD_DATA_UNITS_METERS ((FIT_EXD_DATA_UNITS)14)
|
1865
|
+
#define FIT_EXD_DATA_UNITS_KILOMETERS ((FIT_EXD_DATA_UNITS)15)
|
1866
|
+
#define FIT_EXD_DATA_UNITS_FEET ((FIT_EXD_DATA_UNITS)16)
|
1867
|
+
#define FIT_EXD_DATA_UNITS_YARDS ((FIT_EXD_DATA_UNITS)17)
|
1868
|
+
#define FIT_EXD_DATA_UNITS_KILOFEET ((FIT_EXD_DATA_UNITS)18)
|
1869
|
+
#define FIT_EXD_DATA_UNITS_MILES ((FIT_EXD_DATA_UNITS)19)
|
1870
|
+
#define FIT_EXD_DATA_UNITS_TIME ((FIT_EXD_DATA_UNITS)20)
|
1871
|
+
#define FIT_EXD_DATA_UNITS_ENUM_TURN_TYPE ((FIT_EXD_DATA_UNITS)21)
|
1872
|
+
#define FIT_EXD_DATA_UNITS_PERCENT ((FIT_EXD_DATA_UNITS)22)
|
1873
|
+
#define FIT_EXD_DATA_UNITS_WATTS ((FIT_EXD_DATA_UNITS)23)
|
1874
|
+
#define FIT_EXD_DATA_UNITS_WATTS_PER_KILOGRAM ((FIT_EXD_DATA_UNITS)24)
|
1875
|
+
#define FIT_EXD_DATA_UNITS_ENUM_BATTERY_STATUS ((FIT_EXD_DATA_UNITS)25)
|
1876
|
+
#define FIT_EXD_DATA_UNITS_ENUM_BIKE_LIGHT_BEAM_ANGLE_MODE ((FIT_EXD_DATA_UNITS)26)
|
1877
|
+
#define FIT_EXD_DATA_UNITS_ENUM_BIKE_LIGHT_BATTERY_STATUS ((FIT_EXD_DATA_UNITS)27)
|
1878
|
+
#define FIT_EXD_DATA_UNITS_ENUM_BIKE_LIGHT_NETWORK_CONFIG_TYPE ((FIT_EXD_DATA_UNITS)28)
|
1879
|
+
#define FIT_EXD_DATA_UNITS_LIGHTS ((FIT_EXD_DATA_UNITS)29)
|
1880
|
+
#define FIT_EXD_DATA_UNITS_SECONDS ((FIT_EXD_DATA_UNITS)30)
|
1881
|
+
#define FIT_EXD_DATA_UNITS_MINUTES ((FIT_EXD_DATA_UNITS)31)
|
1882
|
+
#define FIT_EXD_DATA_UNITS_HOURS ((FIT_EXD_DATA_UNITS)32)
|
1883
|
+
#define FIT_EXD_DATA_UNITS_CALORIES ((FIT_EXD_DATA_UNITS)33)
|
1884
|
+
#define FIT_EXD_DATA_UNITS_KILOJOULES ((FIT_EXD_DATA_UNITS)34)
|
1885
|
+
#define FIT_EXD_DATA_UNITS_MILLISECONDS ((FIT_EXD_DATA_UNITS)35)
|
1886
|
+
#define FIT_EXD_DATA_UNITS_SECOND_PER_MILE ((FIT_EXD_DATA_UNITS)36)
|
1887
|
+
#define FIT_EXD_DATA_UNITS_SECOND_PER_KILOMETER ((FIT_EXD_DATA_UNITS)37)
|
1888
|
+
#define FIT_EXD_DATA_UNITS_CENTIMETER ((FIT_EXD_DATA_UNITS)38)
|
1889
|
+
#define FIT_EXD_DATA_UNITS_ENUM_COURSE_POINT ((FIT_EXD_DATA_UNITS)39)
|
1890
|
+
#define FIT_EXD_DATA_UNITS_BRADIANS ((FIT_EXD_DATA_UNITS)40)
|
1891
|
+
#define FIT_EXD_DATA_UNITS_ENUM_SPORT ((FIT_EXD_DATA_UNITS)41)
|
1892
|
+
#define FIT_EXD_DATA_UNITS_COUNT 42
|
1893
|
+
|
1894
|
+
typedef FIT_ENUM FIT_EXD_QUALIFIERS;
|
1895
|
+
#define FIT_EXD_QUALIFIERS_INVALID FIT_ENUM_INVALID
|
1896
|
+
#define FIT_EXD_QUALIFIERS_NO_QUALIFIER ((FIT_EXD_QUALIFIERS)0)
|
1897
|
+
#define FIT_EXD_QUALIFIERS_INSTANTANEOUS ((FIT_EXD_QUALIFIERS)1)
|
1898
|
+
#define FIT_EXD_QUALIFIERS_AVERAGE ((FIT_EXD_QUALIFIERS)2)
|
1899
|
+
#define FIT_EXD_QUALIFIERS_LAP ((FIT_EXD_QUALIFIERS)3)
|
1900
|
+
#define FIT_EXD_QUALIFIERS_MAXIMUM ((FIT_EXD_QUALIFIERS)4)
|
1901
|
+
#define FIT_EXD_QUALIFIERS_MAXIMUM_AVERAGE ((FIT_EXD_QUALIFIERS)5)
|
1902
|
+
#define FIT_EXD_QUALIFIERS_MAXIMUM_LAP ((FIT_EXD_QUALIFIERS)6)
|
1903
|
+
#define FIT_EXD_QUALIFIERS_LAST_LAP ((FIT_EXD_QUALIFIERS)7)
|
1904
|
+
#define FIT_EXD_QUALIFIERS_AVERAGE_LAP ((FIT_EXD_QUALIFIERS)8)
|
1905
|
+
#define FIT_EXD_QUALIFIERS_TO_DESTINATION ((FIT_EXD_QUALIFIERS)9)
|
1906
|
+
#define FIT_EXD_QUALIFIERS_TO_GO ((FIT_EXD_QUALIFIERS)10)
|
1907
|
+
#define FIT_EXD_QUALIFIERS_TO_NEXT ((FIT_EXD_QUALIFIERS)11)
|
1908
|
+
#define FIT_EXD_QUALIFIERS_NEXT_COURSE_POINT ((FIT_EXD_QUALIFIERS)12)
|
1909
|
+
#define FIT_EXD_QUALIFIERS_TOTAL ((FIT_EXD_QUALIFIERS)13)
|
1910
|
+
#define FIT_EXD_QUALIFIERS_THREE_SECOND_AVERAGE ((FIT_EXD_QUALIFIERS)14)
|
1911
|
+
#define FIT_EXD_QUALIFIERS_TEN_SECOND_AVERAGE ((FIT_EXD_QUALIFIERS)15)
|
1912
|
+
#define FIT_EXD_QUALIFIERS_THIRTY_SECOND_AVERAGE ((FIT_EXD_QUALIFIERS)16)
|
1913
|
+
#define FIT_EXD_QUALIFIERS_PERCENT_MAXIMUM ((FIT_EXD_QUALIFIERS)17)
|
1914
|
+
#define FIT_EXD_QUALIFIERS_PERCENT_MAXIMUM_AVERAGE ((FIT_EXD_QUALIFIERS)18)
|
1915
|
+
#define FIT_EXD_QUALIFIERS_LAP_PERCENT_MAXIMUM ((FIT_EXD_QUALIFIERS)19)
|
1916
|
+
#define FIT_EXD_QUALIFIERS_ELAPSED ((FIT_EXD_QUALIFIERS)20)
|
1917
|
+
#define FIT_EXD_QUALIFIERS_SUNRISE ((FIT_EXD_QUALIFIERS)21)
|
1918
|
+
#define FIT_EXD_QUALIFIERS_SUNSET ((FIT_EXD_QUALIFIERS)22)
|
1919
|
+
#define FIT_EXD_QUALIFIERS_COMPARED_TO_VIRTUAL_PARTNER ((FIT_EXD_QUALIFIERS)23)
|
1920
|
+
#define FIT_EXD_QUALIFIERS_MAXIMUM_24H ((FIT_EXD_QUALIFIERS)24)
|
1921
|
+
#define FIT_EXD_QUALIFIERS_MINIMUM_24H ((FIT_EXD_QUALIFIERS)25)
|
1922
|
+
#define FIT_EXD_QUALIFIERS_MINIMUM ((FIT_EXD_QUALIFIERS)26)
|
1923
|
+
#define FIT_EXD_QUALIFIERS_FIRST ((FIT_EXD_QUALIFIERS)27)
|
1924
|
+
#define FIT_EXD_QUALIFIERS_SECOND ((FIT_EXD_QUALIFIERS)28)
|
1925
|
+
#define FIT_EXD_QUALIFIERS_THIRD ((FIT_EXD_QUALIFIERS)29)
|
1926
|
+
#define FIT_EXD_QUALIFIERS_SHIFTER ((FIT_EXD_QUALIFIERS)30)
|
1927
|
+
#define FIT_EXD_QUALIFIERS_LAST_SPORT ((FIT_EXD_QUALIFIERS)31)
|
1928
|
+
#define FIT_EXD_QUALIFIERS_ZONE_9 ((FIT_EXD_QUALIFIERS)242)
|
1929
|
+
#define FIT_EXD_QUALIFIERS_ZONE_8 ((FIT_EXD_QUALIFIERS)243)
|
1930
|
+
#define FIT_EXD_QUALIFIERS_ZONE_7 ((FIT_EXD_QUALIFIERS)244)
|
1931
|
+
#define FIT_EXD_QUALIFIERS_ZONE_6 ((FIT_EXD_QUALIFIERS)245)
|
1932
|
+
#define FIT_EXD_QUALIFIERS_ZONE_5 ((FIT_EXD_QUALIFIERS)246)
|
1933
|
+
#define FIT_EXD_QUALIFIERS_ZONE_4 ((FIT_EXD_QUALIFIERS)247)
|
1934
|
+
#define FIT_EXD_QUALIFIERS_ZONE_3 ((FIT_EXD_QUALIFIERS)248)
|
1935
|
+
#define FIT_EXD_QUALIFIERS_ZONE_2 ((FIT_EXD_QUALIFIERS)249)
|
1936
|
+
#define FIT_EXD_QUALIFIERS_ZONE_1 ((FIT_EXD_QUALIFIERS)250)
|
1937
|
+
#define FIT_EXD_QUALIFIERS_COUNT 41
|
1938
|
+
|
1939
|
+
typedef FIT_ENUM FIT_EXD_DESCRIPTORS;
|
1940
|
+
#define FIT_EXD_DESCRIPTORS_INVALID FIT_ENUM_INVALID
|
1941
|
+
#define FIT_EXD_DESCRIPTORS_BIKE_LIGHT_BATTERY_STATUS ((FIT_EXD_DESCRIPTORS)0)
|
1942
|
+
#define FIT_EXD_DESCRIPTORS_BEAM_ANGLE_STATUS ((FIT_EXD_DESCRIPTORS)1)
|
1943
|
+
#define FIT_EXD_DESCRIPTORS_BATERY_LEVEL ((FIT_EXD_DESCRIPTORS)2)
|
1944
|
+
#define FIT_EXD_DESCRIPTORS_LIGHT_NETWORK_MODE ((FIT_EXD_DESCRIPTORS)3)
|
1945
|
+
#define FIT_EXD_DESCRIPTORS_NUMBER_LIGHTS_CONNECTED ((FIT_EXD_DESCRIPTORS)4)
|
1946
|
+
#define FIT_EXD_DESCRIPTORS_CADENCE ((FIT_EXD_DESCRIPTORS)5)
|
1947
|
+
#define FIT_EXD_DESCRIPTORS_DISTANCE ((FIT_EXD_DESCRIPTORS)6)
|
1948
|
+
#define FIT_EXD_DESCRIPTORS_ESTIMATED_TIME_OF_ARRIVAL ((FIT_EXD_DESCRIPTORS)7)
|
1949
|
+
#define FIT_EXD_DESCRIPTORS_HEADING ((FIT_EXD_DESCRIPTORS)8)
|
1950
|
+
#define FIT_EXD_DESCRIPTORS_TIME ((FIT_EXD_DESCRIPTORS)9)
|
1951
|
+
#define FIT_EXD_DESCRIPTORS_BATTERY_LEVEL ((FIT_EXD_DESCRIPTORS)10)
|
1952
|
+
#define FIT_EXD_DESCRIPTORS_TRAINER_RESISTANCE ((FIT_EXD_DESCRIPTORS)11)
|
1953
|
+
#define FIT_EXD_DESCRIPTORS_TRAINER_TARGET_POWER ((FIT_EXD_DESCRIPTORS)12)
|
1954
|
+
#define FIT_EXD_DESCRIPTORS_TIME_SEATED ((FIT_EXD_DESCRIPTORS)13)
|
1955
|
+
#define FIT_EXD_DESCRIPTORS_TIME_STANDING ((FIT_EXD_DESCRIPTORS)14)
|
1956
|
+
#define FIT_EXD_DESCRIPTORS_ELEVATION ((FIT_EXD_DESCRIPTORS)15)
|
1957
|
+
#define FIT_EXD_DESCRIPTORS_GRADE ((FIT_EXD_DESCRIPTORS)16)
|
1958
|
+
#define FIT_EXD_DESCRIPTORS_ASCENT ((FIT_EXD_DESCRIPTORS)17)
|
1959
|
+
#define FIT_EXD_DESCRIPTORS_DESCENT ((FIT_EXD_DESCRIPTORS)18)
|
1960
|
+
#define FIT_EXD_DESCRIPTORS_VERTICAL_SPEED ((FIT_EXD_DESCRIPTORS)19)
|
1961
|
+
#define FIT_EXD_DESCRIPTORS_DI2_BATTERY_LEVEL ((FIT_EXD_DESCRIPTORS)20)
|
1962
|
+
#define FIT_EXD_DESCRIPTORS_FRONT_GEAR ((FIT_EXD_DESCRIPTORS)21)
|
1963
|
+
#define FIT_EXD_DESCRIPTORS_REAR_GEAR ((FIT_EXD_DESCRIPTORS)22)
|
1964
|
+
#define FIT_EXD_DESCRIPTORS_GEAR_RATIO ((FIT_EXD_DESCRIPTORS)23)
|
1965
|
+
#define FIT_EXD_DESCRIPTORS_HEART_RATE ((FIT_EXD_DESCRIPTORS)24)
|
1966
|
+
#define FIT_EXD_DESCRIPTORS_HEART_RATE_ZONE ((FIT_EXD_DESCRIPTORS)25)
|
1967
|
+
#define FIT_EXD_DESCRIPTORS_TIME_IN_HEART_RATE_ZONE ((FIT_EXD_DESCRIPTORS)26)
|
1968
|
+
#define FIT_EXD_DESCRIPTORS_HEART_RATE_RESERVE ((FIT_EXD_DESCRIPTORS)27)
|
1969
|
+
#define FIT_EXD_DESCRIPTORS_CALORIES ((FIT_EXD_DESCRIPTORS)28)
|
1970
|
+
#define FIT_EXD_DESCRIPTORS_GPS_ACCURACY ((FIT_EXD_DESCRIPTORS)29)
|
1971
|
+
#define FIT_EXD_DESCRIPTORS_GPS_SIGNAL_STRENGTH ((FIT_EXD_DESCRIPTORS)30)
|
1972
|
+
#define FIT_EXD_DESCRIPTORS_TEMPERATURE ((FIT_EXD_DESCRIPTORS)31)
|
1973
|
+
#define FIT_EXD_DESCRIPTORS_TIME_OF_DAY ((FIT_EXD_DESCRIPTORS)32)
|
1974
|
+
#define FIT_EXD_DESCRIPTORS_BALANCE ((FIT_EXD_DESCRIPTORS)33)
|
1975
|
+
#define FIT_EXD_DESCRIPTORS_PEDAL_SMOOTHNESS ((FIT_EXD_DESCRIPTORS)34)
|
1976
|
+
#define FIT_EXD_DESCRIPTORS_POWER ((FIT_EXD_DESCRIPTORS)35)
|
1977
|
+
#define FIT_EXD_DESCRIPTORS_FUNCTIONAL_THRESHOLD_POWER ((FIT_EXD_DESCRIPTORS)36)
|
1978
|
+
#define FIT_EXD_DESCRIPTORS_INTENSITY_FACTOR ((FIT_EXD_DESCRIPTORS)37)
|
1979
|
+
#define FIT_EXD_DESCRIPTORS_WORK ((FIT_EXD_DESCRIPTORS)38)
|
1980
|
+
#define FIT_EXD_DESCRIPTORS_POWER_RATIO ((FIT_EXD_DESCRIPTORS)39)
|
1981
|
+
#define FIT_EXD_DESCRIPTORS_NORMALIZED_POWER ((FIT_EXD_DESCRIPTORS)40)
|
1982
|
+
#define FIT_EXD_DESCRIPTORS_TRAINING_STRESS_SCORE ((FIT_EXD_DESCRIPTORS)41)
|
1983
|
+
#define FIT_EXD_DESCRIPTORS_TIME_ON_ZONE ((FIT_EXD_DESCRIPTORS)42)
|
1984
|
+
#define FIT_EXD_DESCRIPTORS_SPEED ((FIT_EXD_DESCRIPTORS)43)
|
1985
|
+
#define FIT_EXD_DESCRIPTORS_LAPS ((FIT_EXD_DESCRIPTORS)44)
|
1986
|
+
#define FIT_EXD_DESCRIPTORS_REPS ((FIT_EXD_DESCRIPTORS)45)
|
1987
|
+
#define FIT_EXD_DESCRIPTORS_WORKOUT_STEP ((FIT_EXD_DESCRIPTORS)46)
|
1988
|
+
#define FIT_EXD_DESCRIPTORS_COURSE_DISTANCE ((FIT_EXD_DESCRIPTORS)47)
|
1989
|
+
#define FIT_EXD_DESCRIPTORS_NAVIGATION_DISTANCE ((FIT_EXD_DESCRIPTORS)48)
|
1990
|
+
#define FIT_EXD_DESCRIPTORS_COURSE_ESTIMATED_TIME_OF_ARRIVAL ((FIT_EXD_DESCRIPTORS)49)
|
1991
|
+
#define FIT_EXD_DESCRIPTORS_NAVIGATION_ESTIMATED_TIME_OF_ARRIVAL ((FIT_EXD_DESCRIPTORS)50)
|
1992
|
+
#define FIT_EXD_DESCRIPTORS_COURSE_TIME ((FIT_EXD_DESCRIPTORS)51)
|
1993
|
+
#define FIT_EXD_DESCRIPTORS_NAVIGATION_TIME ((FIT_EXD_DESCRIPTORS)52)
|
1994
|
+
#define FIT_EXD_DESCRIPTORS_COURSE_HEADING ((FIT_EXD_DESCRIPTORS)53)
|
1995
|
+
#define FIT_EXD_DESCRIPTORS_NAVIGATION_HEADING ((FIT_EXD_DESCRIPTORS)54)
|
1996
|
+
#define FIT_EXD_DESCRIPTORS_POWER_ZONE ((FIT_EXD_DESCRIPTORS)55)
|
1997
|
+
#define FIT_EXD_DESCRIPTORS_TORQUE_EFFECTIVENESS ((FIT_EXD_DESCRIPTORS)56)
|
1998
|
+
#define FIT_EXD_DESCRIPTORS_TIMER_TIME ((FIT_EXD_DESCRIPTORS)57)
|
1999
|
+
#define FIT_EXD_DESCRIPTORS_POWER_WEIGHT_RATIO ((FIT_EXD_DESCRIPTORS)58)
|
2000
|
+
#define FIT_EXD_DESCRIPTORS_LEFT_PLATFORM_CENTER_OFFSET ((FIT_EXD_DESCRIPTORS)59)
|
2001
|
+
#define FIT_EXD_DESCRIPTORS_RIGHT_PLATFORM_CENTER_OFFSET ((FIT_EXD_DESCRIPTORS)60)
|
2002
|
+
#define FIT_EXD_DESCRIPTORS_LEFT_POWER_PHASE_START_ANGLE ((FIT_EXD_DESCRIPTORS)61)
|
2003
|
+
#define FIT_EXD_DESCRIPTORS_RIGHT_POWER_PHASE_START_ANGLE ((FIT_EXD_DESCRIPTORS)62)
|
2004
|
+
#define FIT_EXD_DESCRIPTORS_LEFT_POWER_PHASE_FINISH_ANGLE ((FIT_EXD_DESCRIPTORS)63)
|
2005
|
+
#define FIT_EXD_DESCRIPTORS_RIGHT_POWER_PHASE_FINISH_ANGLE ((FIT_EXD_DESCRIPTORS)64)
|
2006
|
+
#define FIT_EXD_DESCRIPTORS_GEARS ((FIT_EXD_DESCRIPTORS)65) // Combined gear information
|
2007
|
+
#define FIT_EXD_DESCRIPTORS_PACE ((FIT_EXD_DESCRIPTORS)66)
|
2008
|
+
#define FIT_EXD_DESCRIPTORS_TRAINING_EFFECT ((FIT_EXD_DESCRIPTORS)67)
|
2009
|
+
#define FIT_EXD_DESCRIPTORS_VERTICAL_OSCILLATION ((FIT_EXD_DESCRIPTORS)68)
|
2010
|
+
#define FIT_EXD_DESCRIPTORS_VERTICAL_RATIO ((FIT_EXD_DESCRIPTORS)69)
|
2011
|
+
#define FIT_EXD_DESCRIPTORS_GROUND_CONTACT_TIME ((FIT_EXD_DESCRIPTORS)70)
|
2012
|
+
#define FIT_EXD_DESCRIPTORS_LEFT_GROUND_CONTACT_TIME_BALANCE ((FIT_EXD_DESCRIPTORS)71)
|
2013
|
+
#define FIT_EXD_DESCRIPTORS_RIGHT_GROUND_CONTACT_TIME_BALANCE ((FIT_EXD_DESCRIPTORS)72)
|
2014
|
+
#define FIT_EXD_DESCRIPTORS_STRIDE_LENGTH ((FIT_EXD_DESCRIPTORS)73)
|
2015
|
+
#define FIT_EXD_DESCRIPTORS_RUNNING_CADENCE ((FIT_EXD_DESCRIPTORS)74)
|
2016
|
+
#define FIT_EXD_DESCRIPTORS_PERFORMANCE_CONDITION ((FIT_EXD_DESCRIPTORS)75)
|
2017
|
+
#define FIT_EXD_DESCRIPTORS_COURSE_TYPE ((FIT_EXD_DESCRIPTORS)76)
|
2018
|
+
#define FIT_EXD_DESCRIPTORS_TIME_IN_POWER_ZONE ((FIT_EXD_DESCRIPTORS)77)
|
2019
|
+
#define FIT_EXD_DESCRIPTORS_NAVIGATION_TURN ((FIT_EXD_DESCRIPTORS)78)
|
2020
|
+
#define FIT_EXD_DESCRIPTORS_COURSE_LOCATION ((FIT_EXD_DESCRIPTORS)79)
|
2021
|
+
#define FIT_EXD_DESCRIPTORS_NAVIGATION_LOCATION ((FIT_EXD_DESCRIPTORS)80)
|
2022
|
+
#define FIT_EXD_DESCRIPTORS_COMPASS ((FIT_EXD_DESCRIPTORS)81)
|
2023
|
+
#define FIT_EXD_DESCRIPTORS_GEAR_COMBO ((FIT_EXD_DESCRIPTORS)82)
|
2024
|
+
#define FIT_EXD_DESCRIPTORS_MUSCLE_OXYGEN ((FIT_EXD_DESCRIPTORS)83)
|
2025
|
+
#define FIT_EXD_DESCRIPTORS_ICON ((FIT_EXD_DESCRIPTORS)84)
|
2026
|
+
#define FIT_EXD_DESCRIPTORS_COUNT 85
|
2027
|
+
|
2028
|
+
typedef FIT_UINT32 FIT_AUTO_ACTIVITY_DETECT;
|
2029
|
+
#define FIT_AUTO_ACTIVITY_DETECT_INVALID FIT_UINT32_INVALID
|
2030
|
+
#define FIT_AUTO_ACTIVITY_DETECT_NONE ((FIT_AUTO_ACTIVITY_DETECT)0x00000000)
|
2031
|
+
#define FIT_AUTO_ACTIVITY_DETECT_RUNNING ((FIT_AUTO_ACTIVITY_DETECT)0x00000001)
|
2032
|
+
#define FIT_AUTO_ACTIVITY_DETECT_CYCLING ((FIT_AUTO_ACTIVITY_DETECT)0x00000002)
|
2033
|
+
#define FIT_AUTO_ACTIVITY_DETECT_SWIMMING ((FIT_AUTO_ACTIVITY_DETECT)0x00000004)
|
2034
|
+
#define FIT_AUTO_ACTIVITY_DETECT_WALKING ((FIT_AUTO_ACTIVITY_DETECT)0x00000008)
|
2035
|
+
#define FIT_AUTO_ACTIVITY_DETECT_ELLIPTICAL ((FIT_AUTO_ACTIVITY_DETECT)0x00000020)
|
2036
|
+
#define FIT_AUTO_ACTIVITY_DETECT_SEDENTARY ((FIT_AUTO_ACTIVITY_DETECT)0x00000400)
|
2037
|
+
#define FIT_AUTO_ACTIVITY_DETECT_COUNT 7
|
2038
|
+
|
2039
|
+
typedef FIT_UINT32Z FIT_SUPPORTED_EXD_SCREEN_LAYOUTS;
|
2040
|
+
#define FIT_SUPPORTED_EXD_SCREEN_LAYOUTS_INVALID FIT_UINT32Z_INVALID
|
2041
|
+
#define FIT_SUPPORTED_EXD_SCREEN_LAYOUTS_FULL_SCREEN ((FIT_SUPPORTED_EXD_SCREEN_LAYOUTS)0x00000001)
|
2042
|
+
#define FIT_SUPPORTED_EXD_SCREEN_LAYOUTS_HALF_VERTICAL ((FIT_SUPPORTED_EXD_SCREEN_LAYOUTS)0x00000002)
|
2043
|
+
#define FIT_SUPPORTED_EXD_SCREEN_LAYOUTS_HALF_HORIZONTAL ((FIT_SUPPORTED_EXD_SCREEN_LAYOUTS)0x00000004)
|
2044
|
+
#define FIT_SUPPORTED_EXD_SCREEN_LAYOUTS_HALF_VERTICAL_RIGHT_SPLIT ((FIT_SUPPORTED_EXD_SCREEN_LAYOUTS)0x00000008)
|
2045
|
+
#define FIT_SUPPORTED_EXD_SCREEN_LAYOUTS_HALF_HORIZONTAL_BOTTOM_SPLIT ((FIT_SUPPORTED_EXD_SCREEN_LAYOUTS)0x00000010)
|
2046
|
+
#define FIT_SUPPORTED_EXD_SCREEN_LAYOUTS_FULL_QUARTER_SPLIT ((FIT_SUPPORTED_EXD_SCREEN_LAYOUTS)0x00000020)
|
2047
|
+
#define FIT_SUPPORTED_EXD_SCREEN_LAYOUTS_HALF_VERTICAL_LEFT_SPLIT ((FIT_SUPPORTED_EXD_SCREEN_LAYOUTS)0x00000040)
|
2048
|
+
#define FIT_SUPPORTED_EXD_SCREEN_LAYOUTS_HALF_HORIZONTAL_TOP_SPLIT ((FIT_SUPPORTED_EXD_SCREEN_LAYOUTS)0x00000080)
|
2049
|
+
#define FIT_SUPPORTED_EXD_SCREEN_LAYOUTS_COUNT 8
|
2050
|
+
|
2051
|
+
typedef FIT_UINT8 FIT_FIT_BASE_TYPE;
|
2052
|
+
#define FIT_FIT_BASE_TYPE_INVALID FIT_UINT8_INVALID
|
2053
|
+
#define FIT_FIT_BASE_TYPE_ENUM ((FIT_FIT_BASE_TYPE)0)
|
2054
|
+
#define FIT_FIT_BASE_TYPE_SINT8 ((FIT_FIT_BASE_TYPE)1)
|
2055
|
+
#define FIT_FIT_BASE_TYPE_UINT8 ((FIT_FIT_BASE_TYPE)2)
|
2056
|
+
#define FIT_FIT_BASE_TYPE_SINT16 ((FIT_FIT_BASE_TYPE)131)
|
2057
|
+
#define FIT_FIT_BASE_TYPE_UINT16 ((FIT_FIT_BASE_TYPE)132)
|
2058
|
+
#define FIT_FIT_BASE_TYPE_SINT32 ((FIT_FIT_BASE_TYPE)133)
|
2059
|
+
#define FIT_FIT_BASE_TYPE_UINT32 ((FIT_FIT_BASE_TYPE)134)
|
2060
|
+
#define FIT_FIT_BASE_TYPE_STRING ((FIT_FIT_BASE_TYPE)7)
|
2061
|
+
#define FIT_FIT_BASE_TYPE_FLOAT32 ((FIT_FIT_BASE_TYPE)136)
|
2062
|
+
#define FIT_FIT_BASE_TYPE_FLOAT64 ((FIT_FIT_BASE_TYPE)137)
|
2063
|
+
#define FIT_FIT_BASE_TYPE_UINT8Z ((FIT_FIT_BASE_TYPE)10)
|
2064
|
+
#define FIT_FIT_BASE_TYPE_UINT16Z ((FIT_FIT_BASE_TYPE)139)
|
2065
|
+
#define FIT_FIT_BASE_TYPE_UINT32Z ((FIT_FIT_BASE_TYPE)140)
|
2066
|
+
#define FIT_FIT_BASE_TYPE_BYTE ((FIT_FIT_BASE_TYPE)13)
|
2067
|
+
#define FIT_FIT_BASE_TYPE_SINT64 ((FIT_FIT_BASE_TYPE)142)
|
2068
|
+
#define FIT_FIT_BASE_TYPE_UINT64 ((FIT_FIT_BASE_TYPE)143)
|
2069
|
+
#define FIT_FIT_BASE_TYPE_UINT64Z ((FIT_FIT_BASE_TYPE)144)
|
2070
|
+
#define FIT_FIT_BASE_TYPE_COUNT 17
|
2071
|
+
|
2072
|
+
typedef FIT_ENUM FIT_TURN_TYPE;
|
2073
|
+
#define FIT_TURN_TYPE_INVALID FIT_ENUM_INVALID
|
2074
|
+
#define FIT_TURN_TYPE_ARRIVING_IDX ((FIT_TURN_TYPE)0)
|
2075
|
+
#define FIT_TURN_TYPE_ARRIVING_LEFT_IDX ((FIT_TURN_TYPE)1)
|
2076
|
+
#define FIT_TURN_TYPE_ARRIVING_RIGHT_IDX ((FIT_TURN_TYPE)2)
|
2077
|
+
#define FIT_TURN_TYPE_ARRIVING_VIA_IDX ((FIT_TURN_TYPE)3)
|
2078
|
+
#define FIT_TURN_TYPE_ARRIVING_VIA_LEFT_IDX ((FIT_TURN_TYPE)4)
|
2079
|
+
#define FIT_TURN_TYPE_ARRIVING_VIA_RIGHT_IDX ((FIT_TURN_TYPE)5)
|
2080
|
+
#define FIT_TURN_TYPE_BEAR_KEEP_LEFT_IDX ((FIT_TURN_TYPE)6)
|
2081
|
+
#define FIT_TURN_TYPE_BEAR_KEEP_RIGHT_IDX ((FIT_TURN_TYPE)7)
|
2082
|
+
#define FIT_TURN_TYPE_CONTINUE_IDX ((FIT_TURN_TYPE)8)
|
2083
|
+
#define FIT_TURN_TYPE_EXIT_LEFT_IDX ((FIT_TURN_TYPE)9)
|
2084
|
+
#define FIT_TURN_TYPE_EXIT_RIGHT_IDX ((FIT_TURN_TYPE)10)
|
2085
|
+
#define FIT_TURN_TYPE_FERRY_IDX ((FIT_TURN_TYPE)11)
|
2086
|
+
#define FIT_TURN_TYPE_ROUNDABOUT_45_IDX ((FIT_TURN_TYPE)12)
|
2087
|
+
#define FIT_TURN_TYPE_ROUNDABOUT_90_IDX ((FIT_TURN_TYPE)13)
|
2088
|
+
#define FIT_TURN_TYPE_ROUNDABOUT_135_IDX ((FIT_TURN_TYPE)14)
|
2089
|
+
#define FIT_TURN_TYPE_ROUNDABOUT_180_IDX ((FIT_TURN_TYPE)15)
|
2090
|
+
#define FIT_TURN_TYPE_ROUNDABOUT_225_IDX ((FIT_TURN_TYPE)16)
|
2091
|
+
#define FIT_TURN_TYPE_ROUNDABOUT_270_IDX ((FIT_TURN_TYPE)17)
|
2092
|
+
#define FIT_TURN_TYPE_ROUNDABOUT_315_IDX ((FIT_TURN_TYPE)18)
|
2093
|
+
#define FIT_TURN_TYPE_ROUNDABOUT_360_IDX ((FIT_TURN_TYPE)19)
|
2094
|
+
#define FIT_TURN_TYPE_ROUNDABOUT_NEG_45_IDX ((FIT_TURN_TYPE)20)
|
2095
|
+
#define FIT_TURN_TYPE_ROUNDABOUT_NEG_90_IDX ((FIT_TURN_TYPE)21)
|
2096
|
+
#define FIT_TURN_TYPE_ROUNDABOUT_NEG_135_IDX ((FIT_TURN_TYPE)22)
|
2097
|
+
#define FIT_TURN_TYPE_ROUNDABOUT_NEG_180_IDX ((FIT_TURN_TYPE)23)
|
2098
|
+
#define FIT_TURN_TYPE_ROUNDABOUT_NEG_225_IDX ((FIT_TURN_TYPE)24)
|
2099
|
+
#define FIT_TURN_TYPE_ROUNDABOUT_NEG_270_IDX ((FIT_TURN_TYPE)25)
|
2100
|
+
#define FIT_TURN_TYPE_ROUNDABOUT_NEG_315_IDX ((FIT_TURN_TYPE)26)
|
2101
|
+
#define FIT_TURN_TYPE_ROUNDABOUT_NEG_360_IDX ((FIT_TURN_TYPE)27)
|
2102
|
+
#define FIT_TURN_TYPE_ROUNDABOUT_GENERIC_IDX ((FIT_TURN_TYPE)28)
|
2103
|
+
#define FIT_TURN_TYPE_ROUNDABOUT_NEG_GENERIC_IDX ((FIT_TURN_TYPE)29)
|
2104
|
+
#define FIT_TURN_TYPE_SHARP_TURN_LEFT_IDX ((FIT_TURN_TYPE)30)
|
2105
|
+
#define FIT_TURN_TYPE_SHARP_TURN_RIGHT_IDX ((FIT_TURN_TYPE)31)
|
2106
|
+
#define FIT_TURN_TYPE_TURN_LEFT_IDX ((FIT_TURN_TYPE)32)
|
2107
|
+
#define FIT_TURN_TYPE_TURN_RIGHT_IDX ((FIT_TURN_TYPE)33)
|
2108
|
+
#define FIT_TURN_TYPE_UTURN_LEFT_IDX ((FIT_TURN_TYPE)34)
|
2109
|
+
#define FIT_TURN_TYPE_UTURN_RIGHT_IDX ((FIT_TURN_TYPE)35)
|
2110
|
+
#define FIT_TURN_TYPE_ICON_INV_IDX ((FIT_TURN_TYPE)36)
|
2111
|
+
#define FIT_TURN_TYPE_ICON_IDX_CNT ((FIT_TURN_TYPE)37)
|
2112
|
+
#define FIT_TURN_TYPE_COUNT 38
|
2113
|
+
|
2114
|
+
typedef FIT_ENUM FIT_BIKE_LIGHT_BEAM_ANGLE_MODE;
|
2115
|
+
#define FIT_BIKE_LIGHT_BEAM_ANGLE_MODE_INVALID FIT_ENUM_INVALID
|
2116
|
+
#define FIT_BIKE_LIGHT_BEAM_ANGLE_MODE_MANUAL ((FIT_BIKE_LIGHT_BEAM_ANGLE_MODE)0)
|
2117
|
+
#define FIT_BIKE_LIGHT_BEAM_ANGLE_MODE_AUTO ((FIT_BIKE_LIGHT_BEAM_ANGLE_MODE)1)
|
2118
|
+
#define FIT_BIKE_LIGHT_BEAM_ANGLE_MODE_COUNT 2
|
2119
|
+
|
2120
|
+
typedef FIT_UINT16 FIT_FIT_BASE_UNIT;
|
2121
|
+
#define FIT_FIT_BASE_UNIT_INVALID FIT_UINT16_INVALID
|
2122
|
+
#define FIT_FIT_BASE_UNIT_OTHER ((FIT_FIT_BASE_UNIT)0)
|
2123
|
+
#define FIT_FIT_BASE_UNIT_COUNT 1
|
2124
|
+
|
985
2125
|
|
986
2126
|
///////////////////////////////////////////////////////////////////////
|
987
2127
|
// Message Conversion Structures
|
@@ -1001,7 +2141,7 @@ typedef struct
|
|
1001
2141
|
FIT_UINT8 arch;
|
1002
2142
|
FIT_MESG_NUM global_mesg_num;
|
1003
2143
|
FIT_UINT8 num_fields;
|
1004
|
-
FIT_FIELD_CONVERT fields[
|
2144
|
+
FIT_FIELD_CONVERT fields[89];
|
1005
2145
|
} FIT_MESG_CONVERT;
|
1006
2146
|
|
1007
2147
|
|
@@ -1009,8 +2149,8 @@ typedef struct
|
|
1009
2149
|
// Messages
|
1010
2150
|
///////////////////////////////////////////////////////////////////////
|
1011
2151
|
|
1012
|
-
#define FIT_MESG_SIZE
|
1013
|
-
#define FIT_MESG_DEF_SIZE
|
2152
|
+
#define FIT_MESG_SIZE 254
|
2153
|
+
#define FIT_MESG_DEF_SIZE 272
|
1014
2154
|
|
1015
2155
|
// pad message
|
1016
2156
|
|
@@ -1027,23 +2167,26 @@ typedef struct
|
|
1027
2167
|
|
1028
2168
|
// file_id message
|
1029
2169
|
|
1030
|
-
#define FIT_FILE_ID_MESG_SIZE
|
1031
|
-
#define FIT_FILE_ID_MESG_DEF_SIZE
|
2170
|
+
#define FIT_FILE_ID_MESG_SIZE 35
|
2171
|
+
#define FIT_FILE_ID_MESG_DEF_SIZE 26
|
2172
|
+
#define FIT_FILE_ID_MESG_PRODUCT_NAME_COUNT 20
|
1032
2173
|
|
1033
2174
|
typedef struct
|
1034
2175
|
{
|
1035
|
-
FIT_UINT32Z serial_number; //
|
2176
|
+
FIT_UINT32Z serial_number; //
|
1036
2177
|
FIT_DATE_TIME time_created; // Only set for files that are can be created/erased.
|
1037
|
-
|
1038
|
-
|
2178
|
+
FIT_STRING product_name[FIT_FILE_ID_MESG_PRODUCT_NAME_COUNT]; // Optional free form string to indicate the devices name or model
|
2179
|
+
FIT_MANUFACTURER manufacturer; //
|
2180
|
+
FIT_UINT16 product; //
|
1039
2181
|
FIT_UINT16 number; // Only set for files that are not created/erased.
|
1040
|
-
FIT_FILE type; //
|
2182
|
+
FIT_FILE type; //
|
1041
2183
|
} FIT_FILE_ID_MESG;
|
1042
2184
|
|
1043
2185
|
typedef enum
|
1044
2186
|
{
|
1045
2187
|
FIT_FILE_ID_FIELD_NUM_SERIAL_NUMBER = 3,
|
1046
2188
|
FIT_FILE_ID_FIELD_NUM_TIME_CREATED = 4,
|
2189
|
+
FIT_FILE_ID_FIELD_NUM_PRODUCT_NAME = 8,
|
1047
2190
|
FIT_FILE_ID_FIELD_NUM_MANUFACTURER = 1,
|
1048
2191
|
FIT_FILE_ID_FIELD_NUM_PRODUCT = 2,
|
1049
2192
|
FIT_FILE_ID_FIELD_NUM_NUMBER = 5,
|
@@ -1054,6 +2197,7 @@ typedef enum
|
|
1054
2197
|
{
|
1055
2198
|
FIT_FILE_ID_MESG_SERIAL_NUMBER,
|
1056
2199
|
FIT_FILE_ID_MESG_TIME_CREATED,
|
2200
|
+
FIT_FILE_ID_MESG_PRODUCT_NAME,
|
1057
2201
|
FIT_FILE_ID_MESG_MANUFACTURER,
|
1058
2202
|
FIT_FILE_ID_MESG_PRODUCT,
|
1059
2203
|
FIT_FILE_ID_MESG_NUMBER,
|
@@ -1077,8 +2221,8 @@ typedef struct
|
|
1077
2221
|
|
1078
2222
|
typedef struct
|
1079
2223
|
{
|
1080
|
-
FIT_UINT16 software_version; //
|
1081
|
-
FIT_UINT8 hardware_version; //
|
2224
|
+
FIT_UINT16 software_version; //
|
2225
|
+
FIT_UINT8 hardware_version; //
|
1082
2226
|
} FIT_FILE_CREATOR_MESG;
|
1083
2227
|
|
1084
2228
|
typedef enum
|
@@ -1111,9 +2255,9 @@ typedef struct
|
|
1111
2255
|
|
1112
2256
|
typedef struct
|
1113
2257
|
{
|
1114
|
-
FIT_STRING part_number[FIT_SOFTWARE_MESG_PART_NUMBER_COUNT]; //
|
1115
|
-
FIT_MESSAGE_INDEX message_index; //
|
1116
|
-
FIT_UINT16 version; //
|
2258
|
+
FIT_STRING part_number[FIT_SOFTWARE_MESG_PART_NUMBER_COUNT]; //
|
2259
|
+
FIT_MESSAGE_INDEX message_index; //
|
2260
|
+
FIT_UINT16 version; //
|
1117
2261
|
} FIT_SOFTWARE_MESG;
|
1118
2262
|
|
1119
2263
|
typedef enum
|
@@ -1147,8 +2291,8 @@ typedef struct
|
|
1147
2291
|
|
1148
2292
|
typedef struct
|
1149
2293
|
{
|
1150
|
-
FIT_MANUFACTURER manufacturer; //
|
1151
|
-
FIT_UINT16 product; //
|
2294
|
+
FIT_MANUFACTURER manufacturer; //
|
2295
|
+
FIT_UINT16 product; //
|
1152
2296
|
} FIT_SLAVE_DEVICE_MESG;
|
1153
2297
|
|
1154
2298
|
typedef enum
|
@@ -1183,8 +2327,8 @@ typedef struct
|
|
1183
2327
|
typedef struct
|
1184
2328
|
{
|
1185
2329
|
FIT_UINT8Z languages[FIT_CAPABILITIES_MESG_LANGUAGES_COUNT]; // Use language_bits_x types where x is index of array.
|
1186
|
-
FIT_WORKOUT_CAPABILITIES workouts_supported; //
|
1187
|
-
FIT_CONNECTIVITY_CAPABILITIES connectivity_supported; //
|
2330
|
+
FIT_WORKOUT_CAPABILITIES workouts_supported; //
|
2331
|
+
FIT_CONNECTIVITY_CAPABILITIES connectivity_supported; //
|
1188
2332
|
FIT_SPORT_BITS_0 sports[FIT_CAPABILITIES_MESG_SPORTS_COUNT]; // Use sport_bits_x types where x is index of array.
|
1189
2333
|
} FIT_CAPABILITIES_MESG;
|
1190
2334
|
|
@@ -1222,12 +2366,12 @@ typedef struct
|
|
1222
2366
|
|
1223
2367
|
typedef struct
|
1224
2368
|
{
|
1225
|
-
FIT_STRING directory[FIT_FILE_CAPABILITIES_MESG_DIRECTORY_COUNT]; //
|
1226
|
-
FIT_UINT32 max_size; // bytes,
|
1227
|
-
FIT_MESSAGE_INDEX message_index; //
|
1228
|
-
FIT_UINT16 max_count; //
|
1229
|
-
FIT_FILE type; //
|
1230
|
-
FIT_FILE_FLAGS flags; //
|
2369
|
+
FIT_STRING directory[FIT_FILE_CAPABILITIES_MESG_DIRECTORY_COUNT]; //
|
2370
|
+
FIT_UINT32 max_size; // 1 * bytes + 0,
|
2371
|
+
FIT_MESSAGE_INDEX message_index; //
|
2372
|
+
FIT_UINT16 max_count; //
|
2373
|
+
FIT_FILE type; //
|
2374
|
+
FIT_FILE_FLAGS flags; //
|
1231
2375
|
} FIT_FILE_CAPABILITIES_MESG;
|
1232
2376
|
|
1233
2377
|
typedef enum
|
@@ -1267,11 +2411,11 @@ typedef struct
|
|
1267
2411
|
|
1268
2412
|
typedef struct
|
1269
2413
|
{
|
1270
|
-
FIT_MESSAGE_INDEX message_index; //
|
1271
|
-
FIT_MESG_NUM mesg_num; //
|
1272
|
-
FIT_UINT16 count; //
|
1273
|
-
FIT_FILE file; //
|
1274
|
-
FIT_MESG_COUNT count_type; //
|
2414
|
+
FIT_MESSAGE_INDEX message_index; //
|
2415
|
+
FIT_MESG_NUM mesg_num; //
|
2416
|
+
FIT_UINT16 count; //
|
2417
|
+
FIT_FILE file; //
|
2418
|
+
FIT_MESG_COUNT count_type; //
|
1275
2419
|
} FIT_MESG_CAPABILITIES_MESG;
|
1276
2420
|
|
1277
2421
|
typedef enum
|
@@ -1309,11 +2453,11 @@ typedef struct
|
|
1309
2453
|
|
1310
2454
|
typedef struct
|
1311
2455
|
{
|
1312
|
-
FIT_MESSAGE_INDEX message_index; //
|
1313
|
-
FIT_MESG_NUM mesg_num; //
|
1314
|
-
FIT_UINT16 count; //
|
1315
|
-
FIT_FILE file; //
|
1316
|
-
FIT_UINT8 field_num; //
|
2456
|
+
FIT_MESSAGE_INDEX message_index; //
|
2457
|
+
FIT_MESG_NUM mesg_num; //
|
2458
|
+
FIT_UINT16 count; //
|
2459
|
+
FIT_FILE file; //
|
2460
|
+
FIT_UINT8 field_num; //
|
1317
2461
|
} FIT_FIELD_CAPABILITIES_MESG;
|
1318
2462
|
|
1319
2463
|
typedef enum
|
@@ -1346,22 +2490,72 @@ typedef struct
|
|
1346
2490
|
|
1347
2491
|
// device_settings message
|
1348
2492
|
|
1349
|
-
#define FIT_DEVICE_SETTINGS_MESG_SIZE
|
1350
|
-
#define FIT_DEVICE_SETTINGS_MESG_DEF_SIZE
|
2493
|
+
#define FIT_DEVICE_SETTINGS_MESG_SIZE 35
|
2494
|
+
#define FIT_DEVICE_SETTINGS_MESG_DEF_SIZE 53
|
2495
|
+
#define FIT_DEVICE_SETTINGS_MESG_TIME_OFFSET_COUNT 2
|
2496
|
+
#define FIT_DEVICE_SETTINGS_MESG_PAGES_ENABLED_COUNT 1
|
2497
|
+
#define FIT_DEVICE_SETTINGS_MESG_DEFAULT_PAGE_COUNT 1
|
2498
|
+
#define FIT_DEVICE_SETTINGS_MESG_TIME_MODE_COUNT 2
|
2499
|
+
#define FIT_DEVICE_SETTINGS_MESG_TIME_ZONE_OFFSET_COUNT 2
|
1351
2500
|
|
1352
2501
|
typedef struct
|
1353
2502
|
{
|
1354
2503
|
FIT_UINT32 utc_offset; // Offset from system time. Required to convert timestamp from system time to UTC.
|
2504
|
+
FIT_UINT32 time_offset[FIT_DEVICE_SETTINGS_MESG_TIME_OFFSET_COUNT]; // 1 * s + 0, Offset from system time.
|
2505
|
+
FIT_DATE_TIME clock_time; // UTC timestamp used to set the devices clock and date
|
2506
|
+
FIT_UINT16 pages_enabled[FIT_DEVICE_SETTINGS_MESG_PAGES_ENABLED_COUNT]; // Bitfield to configure enabled screens for each supported loop
|
2507
|
+
FIT_UINT16 default_page[FIT_DEVICE_SETTINGS_MESG_DEFAULT_PAGE_COUNT]; // Bitfield to indicate one page as default for each supported loop
|
2508
|
+
FIT_UINT16 autosync_min_steps; // 1 * steps + 0, Minimum steps before an autosync can occur
|
2509
|
+
FIT_UINT16 autosync_min_time; // 1 * minutes + 0, Minimum minutes before an autosync can occur
|
2510
|
+
FIT_UINT8 active_time_zone; // Index into time zone arrays.
|
2511
|
+
FIT_TIME_MODE time_mode[FIT_DEVICE_SETTINGS_MESG_TIME_MODE_COUNT]; // Display mode for the time
|
2512
|
+
FIT_SINT8 time_zone_offset[FIT_DEVICE_SETTINGS_MESG_TIME_ZONE_OFFSET_COUNT]; // 4 * hr + 0, timezone offset in 1/4 hour increments
|
2513
|
+
FIT_BACKLIGHT_MODE backlight_mode; // Mode for backlight
|
2514
|
+
FIT_BOOL activity_tracker_enabled; // Enabled state of the activity tracker functionality
|
2515
|
+
FIT_BOOL move_alert_enabled; // Enabled state of the move alert
|
2516
|
+
FIT_DATE_MODE date_mode; // Display mode for the date
|
2517
|
+
FIT_DISPLAY_ORIENTATION display_orientation; //
|
2518
|
+
FIT_SIDE mounting_side; //
|
1355
2519
|
} FIT_DEVICE_SETTINGS_MESG;
|
1356
2520
|
|
1357
2521
|
typedef enum
|
1358
2522
|
{
|
1359
|
-
FIT_DEVICE_SETTINGS_FIELD_NUM_UTC_OFFSET = 1
|
2523
|
+
FIT_DEVICE_SETTINGS_FIELD_NUM_UTC_OFFSET = 1,
|
2524
|
+
FIT_DEVICE_SETTINGS_FIELD_NUM_TIME_OFFSET = 2,
|
2525
|
+
FIT_DEVICE_SETTINGS_FIELD_NUM_CLOCK_TIME = 39,
|
2526
|
+
FIT_DEVICE_SETTINGS_FIELD_NUM_PAGES_ENABLED = 40,
|
2527
|
+
FIT_DEVICE_SETTINGS_FIELD_NUM_DEFAULT_PAGE = 57,
|
2528
|
+
FIT_DEVICE_SETTINGS_FIELD_NUM_AUTOSYNC_MIN_STEPS = 58,
|
2529
|
+
FIT_DEVICE_SETTINGS_FIELD_NUM_AUTOSYNC_MIN_TIME = 59,
|
2530
|
+
FIT_DEVICE_SETTINGS_FIELD_NUM_ACTIVE_TIME_ZONE = 0,
|
2531
|
+
FIT_DEVICE_SETTINGS_FIELD_NUM_TIME_MODE = 4,
|
2532
|
+
FIT_DEVICE_SETTINGS_FIELD_NUM_TIME_ZONE_OFFSET = 5,
|
2533
|
+
FIT_DEVICE_SETTINGS_FIELD_NUM_BACKLIGHT_MODE = 12,
|
2534
|
+
FIT_DEVICE_SETTINGS_FIELD_NUM_ACTIVITY_TRACKER_ENABLED = 36,
|
2535
|
+
FIT_DEVICE_SETTINGS_FIELD_NUM_MOVE_ALERT_ENABLED = 46,
|
2536
|
+
FIT_DEVICE_SETTINGS_FIELD_NUM_DATE_MODE = 47,
|
2537
|
+
FIT_DEVICE_SETTINGS_FIELD_NUM_DISPLAY_ORIENTATION = 55,
|
2538
|
+
FIT_DEVICE_SETTINGS_FIELD_NUM_MOUNTING_SIDE = 56
|
1360
2539
|
} FIT_DEVICE_SETTINGS_FIELD_NUM;
|
1361
2540
|
|
1362
2541
|
typedef enum
|
1363
2542
|
{
|
1364
2543
|
FIT_DEVICE_SETTINGS_MESG_UTC_OFFSET,
|
2544
|
+
FIT_DEVICE_SETTINGS_MESG_TIME_OFFSET,
|
2545
|
+
FIT_DEVICE_SETTINGS_MESG_CLOCK_TIME,
|
2546
|
+
FIT_DEVICE_SETTINGS_MESG_PAGES_ENABLED,
|
2547
|
+
FIT_DEVICE_SETTINGS_MESG_DEFAULT_PAGE,
|
2548
|
+
FIT_DEVICE_SETTINGS_MESG_AUTOSYNC_MIN_STEPS,
|
2549
|
+
FIT_DEVICE_SETTINGS_MESG_AUTOSYNC_MIN_TIME,
|
2550
|
+
FIT_DEVICE_SETTINGS_MESG_ACTIVE_TIME_ZONE,
|
2551
|
+
FIT_DEVICE_SETTINGS_MESG_TIME_MODE,
|
2552
|
+
FIT_DEVICE_SETTINGS_MESG_TIME_ZONE_OFFSET,
|
2553
|
+
FIT_DEVICE_SETTINGS_MESG_BACKLIGHT_MODE,
|
2554
|
+
FIT_DEVICE_SETTINGS_MESG_ACTIVITY_TRACKER_ENABLED,
|
2555
|
+
FIT_DEVICE_SETTINGS_MESG_MOVE_ALERT_ENABLED,
|
2556
|
+
FIT_DEVICE_SETTINGS_MESG_DATE_MODE,
|
2557
|
+
FIT_DEVICE_SETTINGS_MESG_DISPLAY_ORIENTATION,
|
2558
|
+
FIT_DEVICE_SETTINGS_MESG_MOUNTING_SIDE,
|
1365
2559
|
FIT_DEVICE_SETTINGS_MESG_FIELDS
|
1366
2560
|
} FIT_DEVICE_SETTINGS_MESG_FIELD;
|
1367
2561
|
|
@@ -1376,36 +2570,38 @@ typedef struct
|
|
1376
2570
|
|
1377
2571
|
// user_profile message
|
1378
2572
|
|
1379
|
-
#define FIT_USER_PROFILE_MESG_SIZE
|
1380
|
-
#define FIT_USER_PROFILE_MESG_DEF_SIZE
|
2573
|
+
#define FIT_USER_PROFILE_MESG_SIZE 50
|
2574
|
+
#define FIT_USER_PROFILE_MESG_DEF_SIZE 80
|
1381
2575
|
#define FIT_USER_PROFILE_MESG_FRIENDLY_NAME_COUNT 16
|
1382
2576
|
#define FIT_USER_PROFILE_MESG_GLOBAL_ID_COUNT 6
|
1383
2577
|
|
1384
2578
|
typedef struct
|
1385
2579
|
{
|
1386
|
-
FIT_STRING friendly_name[FIT_USER_PROFILE_MESG_FRIENDLY_NAME_COUNT]; //
|
1387
|
-
FIT_MESSAGE_INDEX message_index; //
|
1388
|
-
FIT_UINT16 weight; // 10 * kg,
|
1389
|
-
FIT_USER_LOCAL_ID local_id; //
|
1390
|
-
|
1391
|
-
|
1392
|
-
|
1393
|
-
|
1394
|
-
|
1395
|
-
|
1396
|
-
|
1397
|
-
|
1398
|
-
FIT_UINT8
|
1399
|
-
FIT_UINT8
|
1400
|
-
|
1401
|
-
|
1402
|
-
|
1403
|
-
|
1404
|
-
|
1405
|
-
|
1406
|
-
|
1407
|
-
|
1408
|
-
FIT_DISPLAY_MEASURE
|
2580
|
+
FIT_STRING friendly_name[FIT_USER_PROFILE_MESG_FRIENDLY_NAME_COUNT]; //
|
2581
|
+
FIT_MESSAGE_INDEX message_index; //
|
2582
|
+
FIT_UINT16 weight; // 10 * kg + 0,
|
2583
|
+
FIT_USER_LOCAL_ID local_id; //
|
2584
|
+
FIT_UINT16 user_running_step_length; // 1000 * m + 0, User defined running step length set to 0 for auto length
|
2585
|
+
FIT_UINT16 user_walking_step_length; // 1000 * m + 0, User defined walking step length set to 0 for auto length
|
2586
|
+
FIT_GENDER gender; //
|
2587
|
+
FIT_UINT8 age; // 1 * years + 0,
|
2588
|
+
FIT_UINT8 height; // 100 * m + 0,
|
2589
|
+
FIT_LANGUAGE language; //
|
2590
|
+
FIT_DISPLAY_MEASURE elev_setting; //
|
2591
|
+
FIT_DISPLAY_MEASURE weight_setting; //
|
2592
|
+
FIT_UINT8 resting_heart_rate; // 1 * bpm + 0,
|
2593
|
+
FIT_UINT8 default_max_running_heart_rate; // 1 * bpm + 0,
|
2594
|
+
FIT_UINT8 default_max_biking_heart_rate; // 1 * bpm + 0,
|
2595
|
+
FIT_UINT8 default_max_heart_rate; // 1 * bpm + 0,
|
2596
|
+
FIT_DISPLAY_HEART hr_setting; //
|
2597
|
+
FIT_DISPLAY_MEASURE speed_setting; //
|
2598
|
+
FIT_DISPLAY_MEASURE dist_setting; //
|
2599
|
+
FIT_DISPLAY_POWER power_setting; //
|
2600
|
+
FIT_ACTIVITY_CLASS activity_class; //
|
2601
|
+
FIT_DISPLAY_POSITION position_setting; //
|
2602
|
+
FIT_DISPLAY_MEASURE temperature_setting; //
|
2603
|
+
FIT_BYTE global_id[FIT_USER_PROFILE_MESG_GLOBAL_ID_COUNT]; //
|
2604
|
+
FIT_DISPLAY_MEASURE height_setting; //
|
1409
2605
|
} FIT_USER_PROFILE_MESG;
|
1410
2606
|
|
1411
2607
|
typedef enum
|
@@ -1414,6 +2610,8 @@ typedef enum
|
|
1414
2610
|
FIT_USER_PROFILE_FIELD_NUM_MESSAGE_INDEX = 254,
|
1415
2611
|
FIT_USER_PROFILE_FIELD_NUM_WEIGHT = 4,
|
1416
2612
|
FIT_USER_PROFILE_FIELD_NUM_LOCAL_ID = 22,
|
2613
|
+
FIT_USER_PROFILE_FIELD_NUM_USER_RUNNING_STEP_LENGTH = 31,
|
2614
|
+
FIT_USER_PROFILE_FIELD_NUM_USER_WALKING_STEP_LENGTH = 32,
|
1417
2615
|
FIT_USER_PROFILE_FIELD_NUM_GENDER = 1,
|
1418
2616
|
FIT_USER_PROFILE_FIELD_NUM_AGE = 2,
|
1419
2617
|
FIT_USER_PROFILE_FIELD_NUM_HEIGHT = 3,
|
@@ -1441,6 +2639,8 @@ typedef enum
|
|
1441
2639
|
FIT_USER_PROFILE_MESG_MESSAGE_INDEX,
|
1442
2640
|
FIT_USER_PROFILE_MESG_WEIGHT,
|
1443
2641
|
FIT_USER_PROFILE_MESG_LOCAL_ID,
|
2642
|
+
FIT_USER_PROFILE_MESG_USER_RUNNING_STEP_LENGTH,
|
2643
|
+
FIT_USER_PROFILE_MESG_USER_WALKING_STEP_LENGTH,
|
1444
2644
|
FIT_USER_PROFILE_MESG_GENDER,
|
1445
2645
|
FIT_USER_PROFILE_MESG_AGE,
|
1446
2646
|
FIT_USER_PROFILE_MESG_HEIGHT,
|
@@ -1479,11 +2679,11 @@ typedef struct
|
|
1479
2679
|
|
1480
2680
|
typedef struct
|
1481
2681
|
{
|
1482
|
-
FIT_MESSAGE_INDEX message_index; //
|
1483
|
-
FIT_UINT16Z hrm_ant_id; //
|
1484
|
-
FIT_BOOL enabled; //
|
1485
|
-
FIT_BOOL log_hrv; //
|
1486
|
-
FIT_UINT8Z hrm_ant_id_trans_type; //
|
2682
|
+
FIT_MESSAGE_INDEX message_index; //
|
2683
|
+
FIT_UINT16Z hrm_ant_id; //
|
2684
|
+
FIT_BOOL enabled; //
|
2685
|
+
FIT_BOOL log_hrv; //
|
2686
|
+
FIT_UINT8Z hrm_ant_id_trans_type; //
|
1487
2687
|
} FIT_HRM_PROFILE_MESG;
|
1488
2688
|
|
1489
2689
|
typedef enum
|
@@ -1521,13 +2721,13 @@ typedef struct
|
|
1521
2721
|
|
1522
2722
|
typedef struct
|
1523
2723
|
{
|
1524
|
-
FIT_UINT32 odometer; // 100 * m,
|
1525
|
-
FIT_MESSAGE_INDEX message_index; //
|
1526
|
-
FIT_UINT16Z sdm_ant_id; //
|
1527
|
-
FIT_UINT16 sdm_cal_factor; // 10 *
|
1528
|
-
FIT_BOOL enabled; //
|
2724
|
+
FIT_UINT32 odometer; // 100 * m + 0,
|
2725
|
+
FIT_MESSAGE_INDEX message_index; //
|
2726
|
+
FIT_UINT16Z sdm_ant_id; //
|
2727
|
+
FIT_UINT16 sdm_cal_factor; // 10 * % + 0,
|
2728
|
+
FIT_BOOL enabled; //
|
1529
2729
|
FIT_BOOL speed_source; // Use footpod for speed source instead of GPS
|
1530
|
-
FIT_UINT8Z sdm_ant_id_trans_type; //
|
2730
|
+
FIT_UINT8Z sdm_ant_id_trans_type; //
|
1531
2731
|
FIT_UINT8 odometer_rollover; // Rollover counter that can be used to extend the odometer
|
1532
2732
|
} FIT_SDM_PROFILE_MESG;
|
1533
2733
|
|
@@ -1567,45 +2767,46 @@ typedef struct
|
|
1567
2767
|
|
1568
2768
|
// bike_profile message
|
1569
2769
|
|
1570
|
-
#define FIT_BIKE_PROFILE_MESG_SIZE
|
1571
|
-
#define FIT_BIKE_PROFILE_MESG_DEF_SIZE
|
2770
|
+
#define FIT_BIKE_PROFILE_MESG_SIZE 59
|
2771
|
+
#define FIT_BIKE_PROFILE_MESG_DEF_SIZE 101
|
1572
2772
|
#define FIT_BIKE_PROFILE_MESG_NAME_COUNT 16
|
1573
2773
|
#define FIT_BIKE_PROFILE_MESG_FRONT_GEAR_COUNT 1
|
1574
2774
|
#define FIT_BIKE_PROFILE_MESG_REAR_GEAR_COUNT 1
|
1575
2775
|
|
1576
2776
|
typedef struct
|
1577
2777
|
{
|
1578
|
-
FIT_STRING name[FIT_BIKE_PROFILE_MESG_NAME_COUNT]; //
|
1579
|
-
FIT_UINT32 odometer; // 100 * m,
|
1580
|
-
FIT_MESSAGE_INDEX message_index; //
|
1581
|
-
FIT_UINT16Z bike_spd_ant_id; //
|
1582
|
-
FIT_UINT16Z bike_cad_ant_id; //
|
1583
|
-
FIT_UINT16Z bike_spdcad_ant_id; //
|
1584
|
-
FIT_UINT16Z bike_power_ant_id; //
|
1585
|
-
FIT_UINT16 custom_wheelsize; // 1000 * m,
|
1586
|
-
FIT_UINT16 auto_wheelsize; // 1000 * m,
|
1587
|
-
FIT_UINT16 bike_weight; // 10 * kg,
|
1588
|
-
FIT_UINT16 power_cal_factor; // 10 *
|
1589
|
-
FIT_SPORT sport; //
|
1590
|
-
FIT_SUB_SPORT sub_sport; //
|
1591
|
-
FIT_BOOL auto_wheel_cal; //
|
1592
|
-
FIT_BOOL auto_power_zero; //
|
1593
|
-
FIT_UINT8 id; //
|
1594
|
-
FIT_BOOL spd_enabled; //
|
1595
|
-
FIT_BOOL cad_enabled; //
|
1596
|
-
FIT_BOOL spdcad_enabled; //
|
1597
|
-
FIT_BOOL power_enabled; //
|
2778
|
+
FIT_STRING name[FIT_BIKE_PROFILE_MESG_NAME_COUNT]; //
|
2779
|
+
FIT_UINT32 odometer; // 100 * m + 0,
|
2780
|
+
FIT_MESSAGE_INDEX message_index; //
|
2781
|
+
FIT_UINT16Z bike_spd_ant_id; //
|
2782
|
+
FIT_UINT16Z bike_cad_ant_id; //
|
2783
|
+
FIT_UINT16Z bike_spdcad_ant_id; //
|
2784
|
+
FIT_UINT16Z bike_power_ant_id; //
|
2785
|
+
FIT_UINT16 custom_wheelsize; // 1000 * m + 0,
|
2786
|
+
FIT_UINT16 auto_wheelsize; // 1000 * m + 0,
|
2787
|
+
FIT_UINT16 bike_weight; // 10 * kg + 0,
|
2788
|
+
FIT_UINT16 power_cal_factor; // 10 * % + 0,
|
2789
|
+
FIT_SPORT sport; //
|
2790
|
+
FIT_SUB_SPORT sub_sport; //
|
2791
|
+
FIT_BOOL auto_wheel_cal; //
|
2792
|
+
FIT_BOOL auto_power_zero; //
|
2793
|
+
FIT_UINT8 id; //
|
2794
|
+
FIT_BOOL spd_enabled; //
|
2795
|
+
FIT_BOOL cad_enabled; //
|
2796
|
+
FIT_BOOL spdcad_enabled; //
|
2797
|
+
FIT_BOOL power_enabled; //
|
1598
2798
|
FIT_UINT8 crank_length; // 2 * mm + -110,
|
1599
|
-
FIT_BOOL enabled; //
|
1600
|
-
FIT_UINT8Z bike_spd_ant_id_trans_type; //
|
1601
|
-
FIT_UINT8Z bike_cad_ant_id_trans_type; //
|
1602
|
-
FIT_UINT8Z bike_spdcad_ant_id_trans_type; //
|
1603
|
-
FIT_UINT8Z bike_power_ant_id_trans_type; //
|
2799
|
+
FIT_BOOL enabled; //
|
2800
|
+
FIT_UINT8Z bike_spd_ant_id_trans_type; //
|
2801
|
+
FIT_UINT8Z bike_cad_ant_id_trans_type; //
|
2802
|
+
FIT_UINT8Z bike_spdcad_ant_id_trans_type; //
|
2803
|
+
FIT_UINT8Z bike_power_ant_id_trans_type; //
|
1604
2804
|
FIT_UINT8 odometer_rollover; // Rollover counter that can be used to extend the odometer
|
1605
2805
|
FIT_UINT8Z front_gear_num; // Number of front gears
|
1606
2806
|
FIT_UINT8Z front_gear[FIT_BIKE_PROFILE_MESG_FRONT_GEAR_COUNT]; // Number of teeth on each gear 0 is innermost
|
1607
2807
|
FIT_UINT8Z rear_gear_num; // Number of rear gears
|
1608
2808
|
FIT_UINT8Z rear_gear[FIT_BIKE_PROFILE_MESG_REAR_GEAR_COUNT]; // Number of teeth on each gear 0 is innermost
|
2809
|
+
FIT_BOOL shimano_di2_enabled; //
|
1609
2810
|
} FIT_BIKE_PROFILE_MESG;
|
1610
2811
|
|
1611
2812
|
typedef enum
|
@@ -1640,7 +2841,8 @@ typedef enum
|
|
1640
2841
|
FIT_BIKE_PROFILE_FIELD_NUM_FRONT_GEAR_NUM = 38,
|
1641
2842
|
FIT_BIKE_PROFILE_FIELD_NUM_FRONT_GEAR = 39,
|
1642
2843
|
FIT_BIKE_PROFILE_FIELD_NUM_REAR_GEAR_NUM = 40,
|
1643
|
-
FIT_BIKE_PROFILE_FIELD_NUM_REAR_GEAR = 41
|
2844
|
+
FIT_BIKE_PROFILE_FIELD_NUM_REAR_GEAR = 41,
|
2845
|
+
FIT_BIKE_PROFILE_FIELD_NUM_SHIMANO_DI2_ENABLED = 44
|
1644
2846
|
} FIT_BIKE_PROFILE_FIELD_NUM;
|
1645
2847
|
|
1646
2848
|
typedef enum
|
@@ -1676,6 +2878,7 @@ typedef enum
|
|
1676
2878
|
FIT_BIKE_PROFILE_MESG_FRONT_GEAR,
|
1677
2879
|
FIT_BIKE_PROFILE_MESG_REAR_GEAR_NUM,
|
1678
2880
|
FIT_BIKE_PROFILE_MESG_REAR_GEAR,
|
2881
|
+
FIT_BIKE_PROFILE_MESG_SHIMANO_DI2_ENABLED,
|
1679
2882
|
FIT_BIKE_PROFILE_MESG_FIELDS
|
1680
2883
|
} FIT_BIKE_PROFILE_MESG_FIELD;
|
1681
2884
|
|
@@ -1688,6 +2891,73 @@ typedef struct
|
|
1688
2891
|
FIT_UINT8 fields[FIT_BIKE_PROFILE_MESG_FIELDS * FIT_FIELD_DEF_SIZE];
|
1689
2892
|
} FIT_BIKE_PROFILE_MESG_DEF;
|
1690
2893
|
|
2894
|
+
// connectivity message
|
2895
|
+
|
2896
|
+
#define FIT_CONNECTIVITY_MESG_SIZE 36
|
2897
|
+
#define FIT_CONNECTIVITY_MESG_DEF_SIZE 44
|
2898
|
+
#define FIT_CONNECTIVITY_MESG_NAME_COUNT 24
|
2899
|
+
|
2900
|
+
typedef struct
|
2901
|
+
{
|
2902
|
+
FIT_STRING name[FIT_CONNECTIVITY_MESG_NAME_COUNT]; //
|
2903
|
+
FIT_BOOL bluetooth_enabled; // Use Bluetooth for connectivity features
|
2904
|
+
FIT_BOOL bluetooth_le_enabled; // Use Bluetooth Low Energy for connectivity features
|
2905
|
+
FIT_BOOL ant_enabled; // Use ANT for connectivity features
|
2906
|
+
FIT_BOOL live_tracking_enabled; //
|
2907
|
+
FIT_BOOL weather_conditions_enabled; //
|
2908
|
+
FIT_BOOL weather_alerts_enabled; //
|
2909
|
+
FIT_BOOL auto_activity_upload_enabled; //
|
2910
|
+
FIT_BOOL course_download_enabled; //
|
2911
|
+
FIT_BOOL workout_download_enabled; //
|
2912
|
+
FIT_BOOL gps_ephemeris_download_enabled; //
|
2913
|
+
FIT_BOOL incident_detection_enabled; //
|
2914
|
+
FIT_BOOL grouptrack_enabled; //
|
2915
|
+
} FIT_CONNECTIVITY_MESG;
|
2916
|
+
|
2917
|
+
typedef enum
|
2918
|
+
{
|
2919
|
+
FIT_CONNECTIVITY_FIELD_NUM_NAME = 3,
|
2920
|
+
FIT_CONNECTIVITY_FIELD_NUM_BLUETOOTH_ENABLED = 0,
|
2921
|
+
FIT_CONNECTIVITY_FIELD_NUM_BLUETOOTH_LE_ENABLED = 1,
|
2922
|
+
FIT_CONNECTIVITY_FIELD_NUM_ANT_ENABLED = 2,
|
2923
|
+
FIT_CONNECTIVITY_FIELD_NUM_LIVE_TRACKING_ENABLED = 4,
|
2924
|
+
FIT_CONNECTIVITY_FIELD_NUM_WEATHER_CONDITIONS_ENABLED = 5,
|
2925
|
+
FIT_CONNECTIVITY_FIELD_NUM_WEATHER_ALERTS_ENABLED = 6,
|
2926
|
+
FIT_CONNECTIVITY_FIELD_NUM_AUTO_ACTIVITY_UPLOAD_ENABLED = 7,
|
2927
|
+
FIT_CONNECTIVITY_FIELD_NUM_COURSE_DOWNLOAD_ENABLED = 8,
|
2928
|
+
FIT_CONNECTIVITY_FIELD_NUM_WORKOUT_DOWNLOAD_ENABLED = 9,
|
2929
|
+
FIT_CONNECTIVITY_FIELD_NUM_GPS_EPHEMERIS_DOWNLOAD_ENABLED = 10,
|
2930
|
+
FIT_CONNECTIVITY_FIELD_NUM_INCIDENT_DETECTION_ENABLED = 11,
|
2931
|
+
FIT_CONNECTIVITY_FIELD_NUM_GROUPTRACK_ENABLED = 12
|
2932
|
+
} FIT_CONNECTIVITY_FIELD_NUM;
|
2933
|
+
|
2934
|
+
typedef enum
|
2935
|
+
{
|
2936
|
+
FIT_CONNECTIVITY_MESG_NAME,
|
2937
|
+
FIT_CONNECTIVITY_MESG_BLUETOOTH_ENABLED,
|
2938
|
+
FIT_CONNECTIVITY_MESG_BLUETOOTH_LE_ENABLED,
|
2939
|
+
FIT_CONNECTIVITY_MESG_ANT_ENABLED,
|
2940
|
+
FIT_CONNECTIVITY_MESG_LIVE_TRACKING_ENABLED,
|
2941
|
+
FIT_CONNECTIVITY_MESG_WEATHER_CONDITIONS_ENABLED,
|
2942
|
+
FIT_CONNECTIVITY_MESG_WEATHER_ALERTS_ENABLED,
|
2943
|
+
FIT_CONNECTIVITY_MESG_AUTO_ACTIVITY_UPLOAD_ENABLED,
|
2944
|
+
FIT_CONNECTIVITY_MESG_COURSE_DOWNLOAD_ENABLED,
|
2945
|
+
FIT_CONNECTIVITY_MESG_WORKOUT_DOWNLOAD_ENABLED,
|
2946
|
+
FIT_CONNECTIVITY_MESG_GPS_EPHEMERIS_DOWNLOAD_ENABLED,
|
2947
|
+
FIT_CONNECTIVITY_MESG_INCIDENT_DETECTION_ENABLED,
|
2948
|
+
FIT_CONNECTIVITY_MESG_GROUPTRACK_ENABLED,
|
2949
|
+
FIT_CONNECTIVITY_MESG_FIELDS
|
2950
|
+
} FIT_CONNECTIVITY_MESG_FIELD;
|
2951
|
+
|
2952
|
+
typedef struct
|
2953
|
+
{
|
2954
|
+
FIT_UINT8 reserved_1;
|
2955
|
+
FIT_UINT8 arch;
|
2956
|
+
FIT_MESG_NUM global_mesg_num;
|
2957
|
+
FIT_UINT8 num_fields;
|
2958
|
+
FIT_UINT8 fields[FIT_CONNECTIVITY_MESG_FIELDS * FIT_FIELD_DEF_SIZE];
|
2959
|
+
} FIT_CONNECTIVITY_MESG_DEF;
|
2960
|
+
|
1691
2961
|
// zones_target message
|
1692
2962
|
|
1693
2963
|
#define FIT_ZONES_TARGET_MESG_SIZE 6
|
@@ -1695,11 +2965,11 @@ typedef struct
|
|
1695
2965
|
|
1696
2966
|
typedef struct
|
1697
2967
|
{
|
1698
|
-
FIT_UINT16 functional_threshold_power; //
|
1699
|
-
FIT_UINT8 max_heart_rate; //
|
1700
|
-
FIT_UINT8 threshold_heart_rate; //
|
1701
|
-
FIT_HR_ZONE_CALC hr_calc_type; //
|
1702
|
-
FIT_PWR_ZONE_CALC pwr_calc_type; //
|
2968
|
+
FIT_UINT16 functional_threshold_power; //
|
2969
|
+
FIT_UINT8 max_heart_rate; //
|
2970
|
+
FIT_UINT8 threshold_heart_rate; //
|
2971
|
+
FIT_HR_ZONE_CALC hr_calc_type; //
|
2972
|
+
FIT_PWR_ZONE_CALC pwr_calc_type; //
|
1703
2973
|
} FIT_ZONES_TARGET_MESG;
|
1704
2974
|
|
1705
2975
|
typedef enum
|
@@ -1738,9 +3008,9 @@ typedef struct
|
|
1738
3008
|
|
1739
3009
|
typedef struct
|
1740
3010
|
{
|
1741
|
-
FIT_STRING name[FIT_SPORT_MESG_NAME_COUNT]; //
|
1742
|
-
FIT_SPORT sport; //
|
1743
|
-
FIT_SUB_SPORT sub_sport; //
|
3011
|
+
FIT_STRING name[FIT_SPORT_MESG_NAME_COUNT]; //
|
3012
|
+
FIT_SPORT sport; //
|
3013
|
+
FIT_SUB_SPORT sub_sport; //
|
1744
3014
|
} FIT_SPORT_MESG;
|
1745
3015
|
|
1746
3016
|
typedef enum
|
@@ -1775,9 +3045,9 @@ typedef struct
|
|
1775
3045
|
|
1776
3046
|
typedef struct
|
1777
3047
|
{
|
1778
|
-
FIT_STRING name[FIT_HR_ZONE_MESG_NAME_COUNT]; //
|
1779
|
-
FIT_MESSAGE_INDEX message_index; //
|
1780
|
-
FIT_UINT8 high_bpm; // bpm,
|
3048
|
+
FIT_STRING name[FIT_HR_ZONE_MESG_NAME_COUNT]; //
|
3049
|
+
FIT_MESSAGE_INDEX message_index; //
|
3050
|
+
FIT_UINT8 high_bpm; // 1 * bpm + 0,
|
1781
3051
|
} FIT_HR_ZONE_MESG;
|
1782
3052
|
|
1783
3053
|
typedef enum
|
@@ -1812,9 +3082,9 @@ typedef struct
|
|
1812
3082
|
|
1813
3083
|
typedef struct
|
1814
3084
|
{
|
1815
|
-
FIT_STRING name[FIT_SPEED_ZONE_MESG_NAME_COUNT]; //
|
1816
|
-
FIT_MESSAGE_INDEX message_index; //
|
1817
|
-
FIT_UINT16 high_value; // 1000 * m/s,
|
3085
|
+
FIT_STRING name[FIT_SPEED_ZONE_MESG_NAME_COUNT]; //
|
3086
|
+
FIT_MESSAGE_INDEX message_index; //
|
3087
|
+
FIT_UINT16 high_value; // 1000 * m/s + 0,
|
1818
3088
|
} FIT_SPEED_ZONE_MESG;
|
1819
3089
|
|
1820
3090
|
typedef enum
|
@@ -1849,9 +3119,9 @@ typedef struct
|
|
1849
3119
|
|
1850
3120
|
typedef struct
|
1851
3121
|
{
|
1852
|
-
FIT_STRING name[FIT_CADENCE_ZONE_MESG_NAME_COUNT]; //
|
1853
|
-
FIT_MESSAGE_INDEX message_index; //
|
1854
|
-
FIT_UINT8 high_value; // rpm,
|
3122
|
+
FIT_STRING name[FIT_CADENCE_ZONE_MESG_NAME_COUNT]; //
|
3123
|
+
FIT_MESSAGE_INDEX message_index; //
|
3124
|
+
FIT_UINT8 high_value; // 1 * rpm + 0,
|
1855
3125
|
} FIT_CADENCE_ZONE_MESG;
|
1856
3126
|
|
1857
3127
|
typedef enum
|
@@ -1886,9 +3156,9 @@ typedef struct
|
|
1886
3156
|
|
1887
3157
|
typedef struct
|
1888
3158
|
{
|
1889
|
-
FIT_STRING name[FIT_POWER_ZONE_MESG_NAME_COUNT]; //
|
1890
|
-
FIT_MESSAGE_INDEX message_index; //
|
1891
|
-
FIT_UINT16 high_value; // watts,
|
3159
|
+
FIT_STRING name[FIT_POWER_ZONE_MESG_NAME_COUNT]; //
|
3160
|
+
FIT_MESSAGE_INDEX message_index; //
|
3161
|
+
FIT_UINT16 high_value; // 1 * watts + 0,
|
1892
3162
|
} FIT_POWER_ZONE_MESG;
|
1893
3163
|
|
1894
3164
|
typedef enum
|
@@ -1922,10 +3192,10 @@ typedef struct
|
|
1922
3192
|
|
1923
3193
|
typedef struct
|
1924
3194
|
{
|
1925
|
-
FIT_MESSAGE_INDEX message_index; //
|
1926
|
-
FIT_UINT16 calories; // 10 * kcal / min,
|
1927
|
-
FIT_UINT8 high_bpm; //
|
1928
|
-
FIT_UINT8 fat_calories; // 10 * kcal / min,
|
3195
|
+
FIT_MESSAGE_INDEX message_index; //
|
3196
|
+
FIT_UINT16 calories; // 10 * kcal / min + 0,
|
3197
|
+
FIT_UINT8 high_bpm; //
|
3198
|
+
FIT_UINT8 fat_calories; // 10 * kcal / min + 0,
|
1929
3199
|
} FIT_MET_ZONE_MESG;
|
1930
3200
|
|
1931
3201
|
typedef enum
|
@@ -1956,23 +3226,24 @@ typedef struct
|
|
1956
3226
|
|
1957
3227
|
// goal message
|
1958
3228
|
|
1959
|
-
#define FIT_GOAL_MESG_SIZE
|
1960
|
-
#define FIT_GOAL_MESG_DEF_SIZE
|
3229
|
+
#define FIT_GOAL_MESG_SIZE 27
|
3230
|
+
#define FIT_GOAL_MESG_DEF_SIZE 44
|
1961
3231
|
|
1962
3232
|
typedef struct
|
1963
3233
|
{
|
1964
|
-
FIT_DATE_TIME start_date; //
|
1965
|
-
FIT_DATE_TIME end_date; //
|
1966
|
-
FIT_UINT32 value; //
|
1967
|
-
FIT_UINT32 target_value; //
|
1968
|
-
FIT_MESSAGE_INDEX message_index; //
|
1969
|
-
FIT_UINT16 recurrence_value; //
|
1970
|
-
FIT_SPORT sport; //
|
1971
|
-
FIT_SUB_SPORT sub_sport; //
|
1972
|
-
FIT_GOAL type; //
|
1973
|
-
FIT_BOOL repeat; //
|
1974
|
-
FIT_GOAL_RECURRENCE recurrence; //
|
1975
|
-
FIT_BOOL enabled; //
|
3234
|
+
FIT_DATE_TIME start_date; //
|
3235
|
+
FIT_DATE_TIME end_date; //
|
3236
|
+
FIT_UINT32 value; //
|
3237
|
+
FIT_UINT32 target_value; //
|
3238
|
+
FIT_MESSAGE_INDEX message_index; //
|
3239
|
+
FIT_UINT16 recurrence_value; //
|
3240
|
+
FIT_SPORT sport; //
|
3241
|
+
FIT_SUB_SPORT sub_sport; //
|
3242
|
+
FIT_GOAL type; //
|
3243
|
+
FIT_BOOL repeat; //
|
3244
|
+
FIT_GOAL_RECURRENCE recurrence; //
|
3245
|
+
FIT_BOOL enabled; //
|
3246
|
+
FIT_GOAL_SOURCE source; //
|
1976
3247
|
} FIT_GOAL_MESG;
|
1977
3248
|
|
1978
3249
|
typedef enum
|
@@ -1988,7 +3259,8 @@ typedef enum
|
|
1988
3259
|
FIT_GOAL_FIELD_NUM_TYPE = 4,
|
1989
3260
|
FIT_GOAL_FIELD_NUM_REPEAT = 6,
|
1990
3261
|
FIT_GOAL_FIELD_NUM_RECURRENCE = 8,
|
1991
|
-
FIT_GOAL_FIELD_NUM_ENABLED = 10
|
3262
|
+
FIT_GOAL_FIELD_NUM_ENABLED = 10,
|
3263
|
+
FIT_GOAL_FIELD_NUM_SOURCE = 11
|
1992
3264
|
} FIT_GOAL_FIELD_NUM;
|
1993
3265
|
|
1994
3266
|
typedef enum
|
@@ -2005,6 +3277,7 @@ typedef enum
|
|
2005
3277
|
FIT_GOAL_MESG_REPEAT,
|
2006
3278
|
FIT_GOAL_MESG_RECURRENCE,
|
2007
3279
|
FIT_GOAL_MESG_ENABLED,
|
3280
|
+
FIT_GOAL_MESG_SOURCE,
|
2008
3281
|
FIT_GOAL_MESG_FIELDS
|
2009
3282
|
} FIT_GOAL_MESG_FIELD;
|
2010
3283
|
|
@@ -2024,14 +3297,14 @@ typedef struct
|
|
2024
3297
|
|
2025
3298
|
typedef struct
|
2026
3299
|
{
|
2027
|
-
FIT_DATE_TIME timestamp; //
|
2028
|
-
FIT_UINT32 total_timer_time; // 1000 * s,Exclude pauses
|
3300
|
+
FIT_DATE_TIME timestamp; //
|
3301
|
+
FIT_UINT32 total_timer_time; // 1000 * s + 0, Exclude pauses
|
2029
3302
|
FIT_LOCAL_DATE_TIME local_timestamp; // timestamp epoch expressed in local time, used to convert activity timestamps to local time
|
2030
|
-
FIT_UINT16 num_sessions; //
|
2031
|
-
FIT_ACTIVITY type; //
|
2032
|
-
FIT_EVENT event; //
|
2033
|
-
FIT_EVENT_TYPE event_type; //
|
2034
|
-
FIT_UINT8 event_group; //
|
3303
|
+
FIT_UINT16 num_sessions; //
|
3304
|
+
FIT_ACTIVITY type; //
|
3305
|
+
FIT_EVENT event; //
|
3306
|
+
FIT_EVENT_TYPE event_type; //
|
3307
|
+
FIT_UINT8 event_group; //
|
2035
3308
|
} FIT_ACTIVITY_MESG;
|
2036
3309
|
|
2037
3310
|
typedef enum
|
@@ -2070,8 +3343,8 @@ typedef struct
|
|
2070
3343
|
|
2071
3344
|
// session message
|
2072
3345
|
|
2073
|
-
#define FIT_SESSION_MESG_SIZE
|
2074
|
-
#define FIT_SESSION_MESG_DEF_SIZE
|
3346
|
+
#define FIT_SESSION_MESG_SIZE 205
|
3347
|
+
#define FIT_SESSION_MESG_DEF_SIZE 272
|
2075
3348
|
#define FIT_SESSION_MESG_TIME_IN_HR_ZONE_COUNT 1
|
2076
3349
|
#define FIT_SESSION_MESG_TIME_IN_SPEED_ZONE_COUNT 1
|
2077
3350
|
#define FIT_SESSION_MESG_TIME_IN_CADENCE_ZONE_COUNT 1
|
@@ -2082,87 +3355,95 @@ typedef struct
|
|
2082
3355
|
|
2083
3356
|
typedef struct
|
2084
3357
|
{
|
2085
|
-
FIT_DATE_TIME timestamp; // s,Sesson end time.
|
2086
|
-
FIT_DATE_TIME start_time; //
|
2087
|
-
FIT_SINT32 start_position_lat; // semicircles,
|
2088
|
-
FIT_SINT32 start_position_long; // semicircles,
|
2089
|
-
FIT_UINT32 total_elapsed_time; // 1000 * s,Time (includes pauses)
|
2090
|
-
FIT_UINT32 total_timer_time; // 1000 * s,Timer Time (excludes pauses)
|
2091
|
-
FIT_UINT32 total_distance; // 100 * m,
|
2092
|
-
FIT_UINT32 total_cycles; // cycles,
|
2093
|
-
FIT_SINT32 nec_lat; // semicircles,
|
2094
|
-
FIT_SINT32 nec_long; // semicircles,
|
2095
|
-
FIT_SINT32 swc_lat; // semicircles,
|
2096
|
-
FIT_SINT32 swc_long; // semicircles,
|
2097
|
-
FIT_UINT32 avg_stroke_count; // 10 * strokes/lap,
|
2098
|
-
FIT_UINT32 total_work; // J,
|
2099
|
-
FIT_UINT32 total_moving_time; // 1000 * s,
|
2100
|
-
FIT_UINT32 time_in_hr_zone[FIT_SESSION_MESG_TIME_IN_HR_ZONE_COUNT]; // 1000 * s,
|
2101
|
-
FIT_UINT32 time_in_speed_zone[FIT_SESSION_MESG_TIME_IN_SPEED_ZONE_COUNT]; // 1000 * s,
|
2102
|
-
FIT_UINT32 time_in_cadence_zone[FIT_SESSION_MESG_TIME_IN_CADENCE_ZONE_COUNT]; // 1000 * s,
|
2103
|
-
FIT_UINT32 time_in_power_zone[FIT_SESSION_MESG_TIME_IN_POWER_ZONE_COUNT]; // 1000 * s,
|
2104
|
-
FIT_UINT32 avg_lap_time; // 1000 * s,
|
3358
|
+
FIT_DATE_TIME timestamp; // 1 * s + 0, Sesson end time.
|
3359
|
+
FIT_DATE_TIME start_time; //
|
3360
|
+
FIT_SINT32 start_position_lat; // 1 * semicircles + 0,
|
3361
|
+
FIT_SINT32 start_position_long; // 1 * semicircles + 0,
|
3362
|
+
FIT_UINT32 total_elapsed_time; // 1000 * s + 0, Time (includes pauses)
|
3363
|
+
FIT_UINT32 total_timer_time; // 1000 * s + 0, Timer Time (excludes pauses)
|
3364
|
+
FIT_UINT32 total_distance; // 100 * m + 0,
|
3365
|
+
FIT_UINT32 total_cycles; // 1 * cycles + 0,
|
3366
|
+
FIT_SINT32 nec_lat; // 1 * semicircles + 0,
|
3367
|
+
FIT_SINT32 nec_long; // 1 * semicircles + 0,
|
3368
|
+
FIT_SINT32 swc_lat; // 1 * semicircles + 0,
|
3369
|
+
FIT_SINT32 swc_long; // 1 * semicircles + 0,
|
3370
|
+
FIT_UINT32 avg_stroke_count; // 10 * strokes/lap + 0,
|
3371
|
+
FIT_UINT32 total_work; // 1 * J + 0,
|
3372
|
+
FIT_UINT32 total_moving_time; // 1000 * s + 0,
|
3373
|
+
FIT_UINT32 time_in_hr_zone[FIT_SESSION_MESG_TIME_IN_HR_ZONE_COUNT]; // 1000 * s + 0,
|
3374
|
+
FIT_UINT32 time_in_speed_zone[FIT_SESSION_MESG_TIME_IN_SPEED_ZONE_COUNT]; // 1000 * s + 0,
|
3375
|
+
FIT_UINT32 time_in_cadence_zone[FIT_SESSION_MESG_TIME_IN_CADENCE_ZONE_COUNT]; // 1000 * s + 0,
|
3376
|
+
FIT_UINT32 time_in_power_zone[FIT_SESSION_MESG_TIME_IN_POWER_ZONE_COUNT]; // 1000 * s + 0,
|
3377
|
+
FIT_UINT32 avg_lap_time; // 1000 * s + 0,
|
3378
|
+
FIT_UINT32 enhanced_avg_speed; // 1000 * m/s + 0, total_distance / total_timer_time
|
3379
|
+
FIT_UINT32 enhanced_max_speed; // 1000 * m/s + 0,
|
3380
|
+
FIT_UINT32 enhanced_avg_altitude; // 5 * m + 500,
|
3381
|
+
FIT_UINT32 enhanced_min_altitude; // 5 * m + 500,
|
3382
|
+
FIT_UINT32 enhanced_max_altitude; // 5 * m + 500,
|
2105
3383
|
FIT_MESSAGE_INDEX message_index; // Selected bit is set for the current session.
|
2106
|
-
FIT_UINT16 total_calories; // kcal,
|
2107
|
-
FIT_UINT16 total_fat_calories; // kcal,
|
2108
|
-
FIT_UINT16 avg_speed; // 1000 * m/s,total_distance / total_timer_time
|
2109
|
-
FIT_UINT16 max_speed; // 1000 * m/s,
|
2110
|
-
FIT_UINT16 avg_power; // watts,total_power / total_timer_time if non_zero_avg_power otherwise total_power / total_elapsed_time
|
2111
|
-
FIT_UINT16 max_power; // watts,
|
2112
|
-
FIT_UINT16 total_ascent; // m,
|
2113
|
-
FIT_UINT16 total_descent; // m,
|
2114
|
-
FIT_UINT16 first_lap_index; //
|
2115
|
-
FIT_UINT16 num_laps; //
|
2116
|
-
FIT_UINT16 normalized_power; // watts,
|
2117
|
-
FIT_UINT16 training_stress_score; // 10 * tss,
|
2118
|
-
FIT_UINT16 intensity_factor; // 1000 * if,
|
2119
|
-
FIT_LEFT_RIGHT_BALANCE_100 left_right_balance; //
|
2120
|
-
FIT_UINT16 avg_stroke_distance; // 100 * m,
|
2121
|
-
FIT_UINT16 pool_length; // 100 * m,
|
2122
|
-
FIT_UINT16
|
3384
|
+
FIT_UINT16 total_calories; // 1 * kcal + 0,
|
3385
|
+
FIT_UINT16 total_fat_calories; // 1 * kcal + 0,
|
3386
|
+
FIT_UINT16 avg_speed; // 1000 * m/s + 0, total_distance / total_timer_time
|
3387
|
+
FIT_UINT16 max_speed; // 1000 * m/s + 0,
|
3388
|
+
FIT_UINT16 avg_power; // 1 * watts + 0, total_power / total_timer_time if non_zero_avg_power otherwise total_power / total_elapsed_time
|
3389
|
+
FIT_UINT16 max_power; // 1 * watts + 0,
|
3390
|
+
FIT_UINT16 total_ascent; // 1 * m + 0,
|
3391
|
+
FIT_UINT16 total_descent; // 1 * m + 0,
|
3392
|
+
FIT_UINT16 first_lap_index; //
|
3393
|
+
FIT_UINT16 num_laps; //
|
3394
|
+
FIT_UINT16 normalized_power; // 1 * watts + 0,
|
3395
|
+
FIT_UINT16 training_stress_score; // 10 * tss + 0,
|
3396
|
+
FIT_UINT16 intensity_factor; // 1000 * if + 0,
|
3397
|
+
FIT_LEFT_RIGHT_BALANCE_100 left_right_balance; //
|
3398
|
+
FIT_UINT16 avg_stroke_distance; // 100 * m + 0,
|
3399
|
+
FIT_UINT16 pool_length; // 100 * m + 0,
|
3400
|
+
FIT_UINT16 threshold_power; // 1 * watts + 0,
|
3401
|
+
FIT_UINT16 num_active_lengths; // 1 * lengths + 0, # of active lengths of swim pool
|
2123
3402
|
FIT_UINT16 avg_altitude; // 5 * m + 500,
|
2124
3403
|
FIT_UINT16 max_altitude; // 5 * m + 500,
|
2125
|
-
FIT_SINT16 avg_grade; // 100 *
|
2126
|
-
FIT_SINT16 avg_pos_grade; // 100 *
|
2127
|
-
FIT_SINT16 avg_neg_grade; // 100 *
|
2128
|
-
FIT_SINT16 max_pos_grade; // 100 *
|
2129
|
-
FIT_SINT16 max_neg_grade; // 100 *
|
2130
|
-
FIT_SINT16 avg_pos_vertical_speed; // 1000 * m/s,
|
2131
|
-
FIT_SINT16 avg_neg_vertical_speed; // 1000 * m/s,
|
2132
|
-
FIT_SINT16 max_pos_vertical_speed; // 1000 * m/s,
|
2133
|
-
FIT_SINT16 max_neg_vertical_speed; // 1000 * m/s,
|
2134
|
-
FIT_UINT16 best_lap_index; //
|
3404
|
+
FIT_SINT16 avg_grade; // 100 * % + 0,
|
3405
|
+
FIT_SINT16 avg_pos_grade; // 100 * % + 0,
|
3406
|
+
FIT_SINT16 avg_neg_grade; // 100 * % + 0,
|
3407
|
+
FIT_SINT16 max_pos_grade; // 100 * % + 0,
|
3408
|
+
FIT_SINT16 max_neg_grade; // 100 * % + 0,
|
3409
|
+
FIT_SINT16 avg_pos_vertical_speed; // 1000 * m/s + 0,
|
3410
|
+
FIT_SINT16 avg_neg_vertical_speed; // 1000 * m/s + 0,
|
3411
|
+
FIT_SINT16 max_pos_vertical_speed; // 1000 * m/s + 0,
|
3412
|
+
FIT_SINT16 max_neg_vertical_speed; // 1000 * m/s + 0,
|
3413
|
+
FIT_UINT16 best_lap_index; //
|
2135
3414
|
FIT_UINT16 min_altitude; // 5 * m + 500,
|
2136
|
-
FIT_UINT16 player_score; //
|
2137
|
-
FIT_UINT16 opponent_score; //
|
2138
|
-
FIT_UINT16 stroke_count[FIT_SESSION_MESG_STROKE_COUNT_COUNT]; // counts,stroke_type enum used as the index
|
2139
|
-
FIT_UINT16 zone_count[FIT_SESSION_MESG_ZONE_COUNT_COUNT]; // counts,zone number used as the index
|
2140
|
-
FIT_UINT16 max_ball_speed; // 100 * m/s,
|
2141
|
-
FIT_UINT16 avg_ball_speed; // 100 * m/s,
|
2142
|
-
FIT_UINT16 avg_vertical_oscillation; // 10 * mm,
|
2143
|
-
FIT_UINT16 avg_stance_time_percent; // 100 * percent,
|
2144
|
-
FIT_UINT16 avg_stance_time; // 10 * ms,
|
3415
|
+
FIT_UINT16 player_score; //
|
3416
|
+
FIT_UINT16 opponent_score; //
|
3417
|
+
FIT_UINT16 stroke_count[FIT_SESSION_MESG_STROKE_COUNT_COUNT]; // 1 * counts + 0, stroke_type enum used as the index
|
3418
|
+
FIT_UINT16 zone_count[FIT_SESSION_MESG_ZONE_COUNT_COUNT]; // 1 * counts + 0, zone number used as the index
|
3419
|
+
FIT_UINT16 max_ball_speed; // 100 * m/s + 0,
|
3420
|
+
FIT_UINT16 avg_ball_speed; // 100 * m/s + 0,
|
3421
|
+
FIT_UINT16 avg_vertical_oscillation; // 10 * mm + 0,
|
3422
|
+
FIT_UINT16 avg_stance_time_percent; // 100 * percent + 0,
|
3423
|
+
FIT_UINT16 avg_stance_time; // 10 * ms + 0,
|
2145
3424
|
FIT_EVENT event; // session
|
2146
3425
|
FIT_EVENT_TYPE event_type; // stop
|
2147
|
-
FIT_SPORT sport; //
|
2148
|
-
FIT_SUB_SPORT sub_sport; //
|
2149
|
-
FIT_UINT8 avg_heart_rate; // bpm,average heart rate (excludes pause time)
|
2150
|
-
FIT_UINT8 max_heart_rate; // bpm,
|
2151
|
-
FIT_UINT8 avg_cadence; // rpm,total_cycles / total_timer_time if non_zero_avg_cadence otherwise total_cycles / total_elapsed_time
|
2152
|
-
FIT_UINT8 max_cadence; // rpm,
|
2153
|
-
FIT_UINT8 total_training_effect; //
|
2154
|
-
FIT_UINT8 event_group; //
|
2155
|
-
FIT_SESSION_TRIGGER trigger; //
|
2156
|
-
FIT_SWIM_STROKE swim_stroke; // swim_stroke,
|
2157
|
-
FIT_DISPLAY_MEASURE pool_length_unit; //
|
2158
|
-
FIT_UINT8 gps_accuracy; // m,
|
2159
|
-
FIT_SINT8 avg_temperature; // C,
|
2160
|
-
FIT_SINT8 max_temperature; // C,
|
2161
|
-
FIT_UINT8 min_heart_rate; // bpm,
|
2162
|
-
FIT_STRING opponent_name[FIT_SESSION_MESG_OPPONENT_NAME_COUNT]; //
|
2163
|
-
FIT_UINT8 avg_fractional_cadence; // 128 * rpm,fractional part of the avg_cadence
|
2164
|
-
FIT_UINT8 max_fractional_cadence; // 128 * rpm,fractional part of the max_cadence
|
2165
|
-
FIT_UINT8 total_fractional_cycles; // 128 * cycles,fractional part of the total_cycles
|
3426
|
+
FIT_SPORT sport; //
|
3427
|
+
FIT_SUB_SPORT sub_sport; //
|
3428
|
+
FIT_UINT8 avg_heart_rate; // 1 * bpm + 0, average heart rate (excludes pause time)
|
3429
|
+
FIT_UINT8 max_heart_rate; // 1 * bpm + 0,
|
3430
|
+
FIT_UINT8 avg_cadence; // 1 * rpm + 0, total_cycles / total_timer_time if non_zero_avg_cadence otherwise total_cycles / total_elapsed_time
|
3431
|
+
FIT_UINT8 max_cadence; // 1 * rpm + 0,
|
3432
|
+
FIT_UINT8 total_training_effect; //
|
3433
|
+
FIT_UINT8 event_group; //
|
3434
|
+
FIT_SESSION_TRIGGER trigger; //
|
3435
|
+
FIT_SWIM_STROKE swim_stroke; // 1 * swim_stroke + 0,
|
3436
|
+
FIT_DISPLAY_MEASURE pool_length_unit; //
|
3437
|
+
FIT_UINT8 gps_accuracy; // 1 * m + 0,
|
3438
|
+
FIT_SINT8 avg_temperature; // 1 * C + 0,
|
3439
|
+
FIT_SINT8 max_temperature; // 1 * C + 0,
|
3440
|
+
FIT_UINT8 min_heart_rate; // 1 * bpm + 0,
|
3441
|
+
FIT_STRING opponent_name[FIT_SESSION_MESG_OPPONENT_NAME_COUNT]; //
|
3442
|
+
FIT_UINT8 avg_fractional_cadence; // 128 * rpm + 0, fractional part of the avg_cadence
|
3443
|
+
FIT_UINT8 max_fractional_cadence; // 128 * rpm + 0, fractional part of the max_cadence
|
3444
|
+
FIT_UINT8 total_fractional_cycles; // 128 * cycles + 0, fractional part of the total_cycles
|
3445
|
+
FIT_UINT8 sport_index; //
|
3446
|
+
FIT_UINT8 total_anaerobic_training_effect; //
|
2166
3447
|
} FIT_SESSION_MESG;
|
2167
3448
|
|
2168
3449
|
typedef enum
|
@@ -2187,6 +3468,11 @@ typedef enum
|
|
2187
3468
|
FIT_SESSION_FIELD_NUM_TIME_IN_CADENCE_ZONE = 67,
|
2188
3469
|
FIT_SESSION_FIELD_NUM_TIME_IN_POWER_ZONE = 68,
|
2189
3470
|
FIT_SESSION_FIELD_NUM_AVG_LAP_TIME = 69,
|
3471
|
+
FIT_SESSION_FIELD_NUM_ENHANCED_AVG_SPEED = 124,
|
3472
|
+
FIT_SESSION_FIELD_NUM_ENHANCED_MAX_SPEED = 125,
|
3473
|
+
FIT_SESSION_FIELD_NUM_ENHANCED_AVG_ALTITUDE = 126,
|
3474
|
+
FIT_SESSION_FIELD_NUM_ENHANCED_MIN_ALTITUDE = 127,
|
3475
|
+
FIT_SESSION_FIELD_NUM_ENHANCED_MAX_ALTITUDE = 128,
|
2190
3476
|
FIT_SESSION_FIELD_NUM_MESSAGE_INDEX = 254,
|
2191
3477
|
FIT_SESSION_FIELD_NUM_TOTAL_CALORIES = 11,
|
2192
3478
|
FIT_SESSION_FIELD_NUM_TOTAL_FAT_CALORIES = 13,
|
@@ -2204,6 +3490,7 @@ typedef enum
|
|
2204
3490
|
FIT_SESSION_FIELD_NUM_LEFT_RIGHT_BALANCE = 37,
|
2205
3491
|
FIT_SESSION_FIELD_NUM_AVG_STROKE_DISTANCE = 42,
|
2206
3492
|
FIT_SESSION_FIELD_NUM_POOL_LENGTH = 44,
|
3493
|
+
FIT_SESSION_FIELD_NUM_THRESHOLD_POWER = 45,
|
2207
3494
|
FIT_SESSION_FIELD_NUM_NUM_ACTIVE_LENGTHS = 47,
|
2208
3495
|
FIT_SESSION_FIELD_NUM_AVG_ALTITUDE = 49,
|
2209
3496
|
FIT_SESSION_FIELD_NUM_MAX_ALTITUDE = 50,
|
@@ -2247,7 +3534,9 @@ typedef enum
|
|
2247
3534
|
FIT_SESSION_FIELD_NUM_OPPONENT_NAME = 84,
|
2248
3535
|
FIT_SESSION_FIELD_NUM_AVG_FRACTIONAL_CADENCE = 92,
|
2249
3536
|
FIT_SESSION_FIELD_NUM_MAX_FRACTIONAL_CADENCE = 93,
|
2250
|
-
FIT_SESSION_FIELD_NUM_TOTAL_FRACTIONAL_CYCLES = 94
|
3537
|
+
FIT_SESSION_FIELD_NUM_TOTAL_FRACTIONAL_CYCLES = 94,
|
3538
|
+
FIT_SESSION_FIELD_NUM_SPORT_INDEX = 111,
|
3539
|
+
FIT_SESSION_FIELD_NUM_TOTAL_ANAEROBIC_TRAINING_EFFECT = 137
|
2251
3540
|
} FIT_SESSION_FIELD_NUM;
|
2252
3541
|
|
2253
3542
|
typedef enum
|
@@ -2272,6 +3561,11 @@ typedef enum
|
|
2272
3561
|
FIT_SESSION_MESG_TIME_IN_CADENCE_ZONE,
|
2273
3562
|
FIT_SESSION_MESG_TIME_IN_POWER_ZONE,
|
2274
3563
|
FIT_SESSION_MESG_AVG_LAP_TIME,
|
3564
|
+
FIT_SESSION_MESG_ENHANCED_AVG_SPEED,
|
3565
|
+
FIT_SESSION_MESG_ENHANCED_MAX_SPEED,
|
3566
|
+
FIT_SESSION_MESG_ENHANCED_AVG_ALTITUDE,
|
3567
|
+
FIT_SESSION_MESG_ENHANCED_MIN_ALTITUDE,
|
3568
|
+
FIT_SESSION_MESG_ENHANCED_MAX_ALTITUDE,
|
2275
3569
|
FIT_SESSION_MESG_MESSAGE_INDEX,
|
2276
3570
|
FIT_SESSION_MESG_TOTAL_CALORIES,
|
2277
3571
|
FIT_SESSION_MESG_TOTAL_FAT_CALORIES,
|
@@ -2289,6 +3583,7 @@ typedef enum
|
|
2289
3583
|
FIT_SESSION_MESG_LEFT_RIGHT_BALANCE,
|
2290
3584
|
FIT_SESSION_MESG_AVG_STROKE_DISTANCE,
|
2291
3585
|
FIT_SESSION_MESG_POOL_LENGTH,
|
3586
|
+
FIT_SESSION_MESG_THRESHOLD_POWER,
|
2292
3587
|
FIT_SESSION_MESG_NUM_ACTIVE_LENGTHS,
|
2293
3588
|
FIT_SESSION_MESG_AVG_ALTITUDE,
|
2294
3589
|
FIT_SESSION_MESG_MAX_ALTITUDE,
|
@@ -2333,6 +3628,8 @@ typedef enum
|
|
2333
3628
|
FIT_SESSION_MESG_AVG_FRACTIONAL_CADENCE,
|
2334
3629
|
FIT_SESSION_MESG_MAX_FRACTIONAL_CADENCE,
|
2335
3630
|
FIT_SESSION_MESG_TOTAL_FRACTIONAL_CYCLES,
|
3631
|
+
FIT_SESSION_MESG_SPORT_INDEX,
|
3632
|
+
FIT_SESSION_MESG_TOTAL_ANAEROBIC_TRAINING_EFFECT,
|
2336
3633
|
FIT_SESSION_MESG_FIELDS
|
2337
3634
|
} FIT_SESSION_MESG_FIELD;
|
2338
3635
|
|
@@ -2347,8 +3644,8 @@ typedef struct
|
|
2347
3644
|
|
2348
3645
|
// lap message
|
2349
3646
|
|
2350
|
-
#define FIT_LAP_MESG_SIZE
|
2351
|
-
#define FIT_LAP_MESG_DEF_SIZE
|
3647
|
+
#define FIT_LAP_MESG_SIZE 187
|
3648
|
+
#define FIT_LAP_MESG_DEF_SIZE 251
|
2352
3649
|
#define FIT_LAP_MESG_TIME_IN_HR_ZONE_COUNT 1
|
2353
3650
|
#define FIT_LAP_MESG_TIME_IN_SPEED_ZONE_COUNT 1
|
2354
3651
|
#define FIT_LAP_MESG_TIME_IN_CADENCE_ZONE_COUNT 1
|
@@ -2364,83 +3661,88 @@ typedef struct
|
|
2364
3661
|
|
2365
3662
|
typedef struct
|
2366
3663
|
{
|
2367
|
-
FIT_DATE_TIME timestamp; // s,Lap end time.
|
2368
|
-
FIT_DATE_TIME start_time; //
|
2369
|
-
FIT_SINT32 start_position_lat; // semicircles,
|
2370
|
-
FIT_SINT32 start_position_long; // semicircles,
|
2371
|
-
FIT_SINT32 end_position_lat; // semicircles,
|
2372
|
-
FIT_SINT32 end_position_long; // semicircles,
|
2373
|
-
FIT_UINT32 total_elapsed_time; // 1000 * s,Time (includes pauses)
|
2374
|
-
FIT_UINT32 total_timer_time; // 1000 * s,Timer Time (excludes pauses)
|
2375
|
-
FIT_UINT32 total_distance; // 100 * m,
|
2376
|
-
FIT_UINT32 total_cycles; // cycles,
|
2377
|
-
FIT_UINT32 total_work; // J,
|
2378
|
-
FIT_UINT32 total_moving_time; // 1000 * s,
|
2379
|
-
FIT_UINT32 time_in_hr_zone[FIT_LAP_MESG_TIME_IN_HR_ZONE_COUNT]; // 1000 * s,
|
2380
|
-
FIT_UINT32 time_in_speed_zone[FIT_LAP_MESG_TIME_IN_SPEED_ZONE_COUNT]; // 1000 * s,
|
2381
|
-
FIT_UINT32 time_in_cadence_zone[FIT_LAP_MESG_TIME_IN_CADENCE_ZONE_COUNT]; // 1000 * s,
|
2382
|
-
FIT_UINT32 time_in_power_zone[FIT_LAP_MESG_TIME_IN_POWER_ZONE_COUNT]; // 1000 * s,
|
2383
|
-
|
2384
|
-
|
2385
|
-
|
2386
|
-
|
2387
|
-
|
2388
|
-
|
2389
|
-
FIT_UINT16
|
2390
|
-
FIT_UINT16
|
2391
|
-
FIT_UINT16
|
2392
|
-
FIT_UINT16
|
2393
|
-
FIT_UINT16
|
2394
|
-
|
2395
|
-
FIT_UINT16
|
2396
|
-
FIT_UINT16
|
2397
|
-
FIT_UINT16
|
3664
|
+
FIT_DATE_TIME timestamp; // 1 * s + 0, Lap end time.
|
3665
|
+
FIT_DATE_TIME start_time; //
|
3666
|
+
FIT_SINT32 start_position_lat; // 1 * semicircles + 0,
|
3667
|
+
FIT_SINT32 start_position_long; // 1 * semicircles + 0,
|
3668
|
+
FIT_SINT32 end_position_lat; // 1 * semicircles + 0,
|
3669
|
+
FIT_SINT32 end_position_long; // 1 * semicircles + 0,
|
3670
|
+
FIT_UINT32 total_elapsed_time; // 1000 * s + 0, Time (includes pauses)
|
3671
|
+
FIT_UINT32 total_timer_time; // 1000 * s + 0, Timer Time (excludes pauses)
|
3672
|
+
FIT_UINT32 total_distance; // 100 * m + 0,
|
3673
|
+
FIT_UINT32 total_cycles; // 1 * cycles + 0,
|
3674
|
+
FIT_UINT32 total_work; // 1 * J + 0,
|
3675
|
+
FIT_UINT32 total_moving_time; // 1000 * s + 0,
|
3676
|
+
FIT_UINT32 time_in_hr_zone[FIT_LAP_MESG_TIME_IN_HR_ZONE_COUNT]; // 1000 * s + 0,
|
3677
|
+
FIT_UINT32 time_in_speed_zone[FIT_LAP_MESG_TIME_IN_SPEED_ZONE_COUNT]; // 1000 * s + 0,
|
3678
|
+
FIT_UINT32 time_in_cadence_zone[FIT_LAP_MESG_TIME_IN_CADENCE_ZONE_COUNT]; // 1000 * s + 0,
|
3679
|
+
FIT_UINT32 time_in_power_zone[FIT_LAP_MESG_TIME_IN_POWER_ZONE_COUNT]; // 1000 * s + 0,
|
3680
|
+
FIT_UINT32 enhanced_avg_speed; // 1000 * m/s + 0,
|
3681
|
+
FIT_UINT32 enhanced_max_speed; // 1000 * m/s + 0,
|
3682
|
+
FIT_UINT32 enhanced_avg_altitude; // 5 * m + 500,
|
3683
|
+
FIT_UINT32 enhanced_min_altitude; // 5 * m + 500,
|
3684
|
+
FIT_UINT32 enhanced_max_altitude; // 5 * m + 500,
|
3685
|
+
FIT_MESSAGE_INDEX message_index; //
|
3686
|
+
FIT_UINT16 total_calories; // 1 * kcal + 0,
|
3687
|
+
FIT_UINT16 total_fat_calories; // 1 * kcal + 0, If New Leaf
|
3688
|
+
FIT_UINT16 avg_speed; // 1000 * m/s + 0,
|
3689
|
+
FIT_UINT16 max_speed; // 1000 * m/s + 0,
|
3690
|
+
FIT_UINT16 avg_power; // 1 * watts + 0, total_power / total_timer_time if non_zero_avg_power otherwise total_power / total_elapsed_time
|
3691
|
+
FIT_UINT16 max_power; // 1 * watts + 0,
|
3692
|
+
FIT_UINT16 total_ascent; // 1 * m + 0,
|
3693
|
+
FIT_UINT16 total_descent; // 1 * m + 0,
|
3694
|
+
FIT_UINT16 num_lengths; // 1 * lengths + 0, # of lengths of swim pool
|
3695
|
+
FIT_UINT16 normalized_power; // 1 * watts + 0,
|
3696
|
+
FIT_LEFT_RIGHT_BALANCE_100 left_right_balance; //
|
3697
|
+
FIT_UINT16 first_length_index; //
|
3698
|
+
FIT_UINT16 avg_stroke_distance; // 100 * m + 0,
|
3699
|
+
FIT_UINT16 num_active_lengths; // 1 * lengths + 0, # of active lengths of swim pool
|
2398
3700
|
FIT_UINT16 avg_altitude; // 5 * m + 500,
|
2399
3701
|
FIT_UINT16 max_altitude; // 5 * m + 500,
|
2400
|
-
FIT_SINT16 avg_grade; // 100 *
|
2401
|
-
FIT_SINT16 avg_pos_grade; // 100 *
|
2402
|
-
FIT_SINT16 avg_neg_grade; // 100 *
|
2403
|
-
FIT_SINT16 max_pos_grade; // 100 *
|
2404
|
-
FIT_SINT16 max_neg_grade; // 100 *
|
2405
|
-
FIT_SINT16 avg_pos_vertical_speed; // 1000 * m/s,
|
2406
|
-
FIT_SINT16 avg_neg_vertical_speed; // 1000 * m/s,
|
2407
|
-
FIT_SINT16 max_pos_vertical_speed; // 1000 * m/s,
|
2408
|
-
FIT_SINT16 max_neg_vertical_speed; // 1000 * m/s,
|
2409
|
-
FIT_UINT16 repetition_num; //
|
3702
|
+
FIT_SINT16 avg_grade; // 100 * % + 0,
|
3703
|
+
FIT_SINT16 avg_pos_grade; // 100 * % + 0,
|
3704
|
+
FIT_SINT16 avg_neg_grade; // 100 * % + 0,
|
3705
|
+
FIT_SINT16 max_pos_grade; // 100 * % + 0,
|
3706
|
+
FIT_SINT16 max_neg_grade; // 100 * % + 0,
|
3707
|
+
FIT_SINT16 avg_pos_vertical_speed; // 1000 * m/s + 0,
|
3708
|
+
FIT_SINT16 avg_neg_vertical_speed; // 1000 * m/s + 0,
|
3709
|
+
FIT_SINT16 max_pos_vertical_speed; // 1000 * m/s + 0,
|
3710
|
+
FIT_SINT16 max_neg_vertical_speed; // 1000 * m/s + 0,
|
3711
|
+
FIT_UINT16 repetition_num; //
|
2410
3712
|
FIT_UINT16 min_altitude; // 5 * m + 500,
|
2411
|
-
FIT_MESSAGE_INDEX wkt_step_index; //
|
2412
|
-
FIT_UINT16 opponent_score; //
|
2413
|
-
FIT_UINT16 stroke_count[FIT_LAP_MESG_STROKE_COUNT_COUNT]; // counts,stroke_type enum used as the index
|
2414
|
-
FIT_UINT16 zone_count[FIT_LAP_MESG_ZONE_COUNT_COUNT]; // counts,zone number used as the index
|
2415
|
-
FIT_UINT16 avg_vertical_oscillation; // 10 * mm,
|
2416
|
-
FIT_UINT16 avg_stance_time_percent; // 100 * percent,
|
2417
|
-
FIT_UINT16 avg_stance_time; // 10 * ms,
|
2418
|
-
FIT_UINT16 player_score; //
|
2419
|
-
FIT_UINT16 avg_total_hemoglobin_conc[FIT_LAP_MESG_AVG_TOTAL_HEMOGLOBIN_CONC_COUNT]; // 100 * g/dL,Avg saturated and unsaturated hemoglobin
|
2420
|
-
FIT_UINT16 min_total_hemoglobin_conc[FIT_LAP_MESG_MIN_TOTAL_HEMOGLOBIN_CONC_COUNT]; // 100 * g/dL,Min saturated and unsaturated hemoglobin
|
2421
|
-
FIT_UINT16 max_total_hemoglobin_conc[FIT_LAP_MESG_MAX_TOTAL_HEMOGLOBIN_CONC_COUNT]; // 100 * g/dL,Max saturated and unsaturated hemoglobin
|
2422
|
-
FIT_UINT16 avg_saturated_hemoglobin_percent[FIT_LAP_MESG_AVG_SATURATED_HEMOGLOBIN_PERCENT_COUNT]; // 10 *
|
2423
|
-
FIT_UINT16 min_saturated_hemoglobin_percent[FIT_LAP_MESG_MIN_SATURATED_HEMOGLOBIN_PERCENT_COUNT]; // 10 *
|
2424
|
-
FIT_UINT16 max_saturated_hemoglobin_percent[FIT_LAP_MESG_MAX_SATURATED_HEMOGLOBIN_PERCENT_COUNT]; // 10 *
|
2425
|
-
FIT_EVENT event; //
|
2426
|
-
FIT_EVENT_TYPE event_type; //
|
2427
|
-
FIT_UINT8 avg_heart_rate; // bpm,
|
2428
|
-
FIT_UINT8 max_heart_rate; // bpm,
|
2429
|
-
FIT_UINT8 avg_cadence; // rpm,total_cycles / total_timer_time if non_zero_avg_cadence otherwise total_cycles / total_elapsed_time
|
2430
|
-
FIT_UINT8 max_cadence; // rpm,
|
2431
|
-
FIT_INTENSITY intensity; //
|
2432
|
-
FIT_LAP_TRIGGER lap_trigger; //
|
2433
|
-
FIT_SPORT sport; //
|
2434
|
-
FIT_UINT8 event_group; //
|
2435
|
-
FIT_SWIM_STROKE swim_stroke; //
|
2436
|
-
FIT_SUB_SPORT sub_sport; //
|
2437
|
-
FIT_UINT8 gps_accuracy; // m,
|
2438
|
-
FIT_SINT8 avg_temperature; // C,
|
2439
|
-
FIT_SINT8 max_temperature; // C,
|
2440
|
-
FIT_UINT8 min_heart_rate; // bpm,
|
2441
|
-
FIT_UINT8 avg_fractional_cadence; // 128 * rpm,fractional part of the avg_cadence
|
2442
|
-
FIT_UINT8 max_fractional_cadence; // 128 * rpm,fractional part of the max_cadence
|
2443
|
-
FIT_UINT8 total_fractional_cycles; // 128 * cycles,fractional part of the total_cycles
|
3713
|
+
FIT_MESSAGE_INDEX wkt_step_index; //
|
3714
|
+
FIT_UINT16 opponent_score; //
|
3715
|
+
FIT_UINT16 stroke_count[FIT_LAP_MESG_STROKE_COUNT_COUNT]; // 1 * counts + 0, stroke_type enum used as the index
|
3716
|
+
FIT_UINT16 zone_count[FIT_LAP_MESG_ZONE_COUNT_COUNT]; // 1 * counts + 0, zone number used as the index
|
3717
|
+
FIT_UINT16 avg_vertical_oscillation; // 10 * mm + 0,
|
3718
|
+
FIT_UINT16 avg_stance_time_percent; // 100 * percent + 0,
|
3719
|
+
FIT_UINT16 avg_stance_time; // 10 * ms + 0,
|
3720
|
+
FIT_UINT16 player_score; //
|
3721
|
+
FIT_UINT16 avg_total_hemoglobin_conc[FIT_LAP_MESG_AVG_TOTAL_HEMOGLOBIN_CONC_COUNT]; // 100 * g/dL + 0, Avg saturated and unsaturated hemoglobin
|
3722
|
+
FIT_UINT16 min_total_hemoglobin_conc[FIT_LAP_MESG_MIN_TOTAL_HEMOGLOBIN_CONC_COUNT]; // 100 * g/dL + 0, Min saturated and unsaturated hemoglobin
|
3723
|
+
FIT_UINT16 max_total_hemoglobin_conc[FIT_LAP_MESG_MAX_TOTAL_HEMOGLOBIN_CONC_COUNT]; // 100 * g/dL + 0, Max saturated and unsaturated hemoglobin
|
3724
|
+
FIT_UINT16 avg_saturated_hemoglobin_percent[FIT_LAP_MESG_AVG_SATURATED_HEMOGLOBIN_PERCENT_COUNT]; // 10 * % + 0, Avg percentage of hemoglobin saturated with oxygen
|
3725
|
+
FIT_UINT16 min_saturated_hemoglobin_percent[FIT_LAP_MESG_MIN_SATURATED_HEMOGLOBIN_PERCENT_COUNT]; // 10 * % + 0, Min percentage of hemoglobin saturated with oxygen
|
3726
|
+
FIT_UINT16 max_saturated_hemoglobin_percent[FIT_LAP_MESG_MAX_SATURATED_HEMOGLOBIN_PERCENT_COUNT]; // 10 * % + 0, Max percentage of hemoglobin saturated with oxygen
|
3727
|
+
FIT_EVENT event; //
|
3728
|
+
FIT_EVENT_TYPE event_type; //
|
3729
|
+
FIT_UINT8 avg_heart_rate; // 1 * bpm + 0,
|
3730
|
+
FIT_UINT8 max_heart_rate; // 1 * bpm + 0,
|
3731
|
+
FIT_UINT8 avg_cadence; // 1 * rpm + 0, total_cycles / total_timer_time if non_zero_avg_cadence otherwise total_cycles / total_elapsed_time
|
3732
|
+
FIT_UINT8 max_cadence; // 1 * rpm + 0,
|
3733
|
+
FIT_INTENSITY intensity; //
|
3734
|
+
FIT_LAP_TRIGGER lap_trigger; //
|
3735
|
+
FIT_SPORT sport; //
|
3736
|
+
FIT_UINT8 event_group; //
|
3737
|
+
FIT_SWIM_STROKE swim_stroke; //
|
3738
|
+
FIT_SUB_SPORT sub_sport; //
|
3739
|
+
FIT_UINT8 gps_accuracy; // 1 * m + 0,
|
3740
|
+
FIT_SINT8 avg_temperature; // 1 * C + 0,
|
3741
|
+
FIT_SINT8 max_temperature; // 1 * C + 0,
|
3742
|
+
FIT_UINT8 min_heart_rate; // 1 * bpm + 0,
|
3743
|
+
FIT_UINT8 avg_fractional_cadence; // 128 * rpm + 0, fractional part of the avg_cadence
|
3744
|
+
FIT_UINT8 max_fractional_cadence; // 128 * rpm + 0, fractional part of the max_cadence
|
3745
|
+
FIT_UINT8 total_fractional_cycles; // 128 * cycles + 0, fractional part of the total_cycles
|
2444
3746
|
} FIT_LAP_MESG;
|
2445
3747
|
|
2446
3748
|
typedef enum
|
@@ -2461,6 +3763,11 @@ typedef enum
|
|
2461
3763
|
FIT_LAP_FIELD_NUM_TIME_IN_SPEED_ZONE = 58,
|
2462
3764
|
FIT_LAP_FIELD_NUM_TIME_IN_CADENCE_ZONE = 59,
|
2463
3765
|
FIT_LAP_FIELD_NUM_TIME_IN_POWER_ZONE = 60,
|
3766
|
+
FIT_LAP_FIELD_NUM_ENHANCED_AVG_SPEED = 110,
|
3767
|
+
FIT_LAP_FIELD_NUM_ENHANCED_MAX_SPEED = 111,
|
3768
|
+
FIT_LAP_FIELD_NUM_ENHANCED_AVG_ALTITUDE = 112,
|
3769
|
+
FIT_LAP_FIELD_NUM_ENHANCED_MIN_ALTITUDE = 113,
|
3770
|
+
FIT_LAP_FIELD_NUM_ENHANCED_MAX_ALTITUDE = 114,
|
2464
3771
|
FIT_LAP_FIELD_NUM_MESSAGE_INDEX = 254,
|
2465
3772
|
FIT_LAP_FIELD_NUM_TOTAL_CALORIES = 11,
|
2466
3773
|
FIT_LAP_FIELD_NUM_TOTAL_FAT_CALORIES = 12,
|
@@ -2542,6 +3849,11 @@ typedef enum
|
|
2542
3849
|
FIT_LAP_MESG_TIME_IN_SPEED_ZONE,
|
2543
3850
|
FIT_LAP_MESG_TIME_IN_CADENCE_ZONE,
|
2544
3851
|
FIT_LAP_MESG_TIME_IN_POWER_ZONE,
|
3852
|
+
FIT_LAP_MESG_ENHANCED_AVG_SPEED,
|
3853
|
+
FIT_LAP_MESG_ENHANCED_MAX_SPEED,
|
3854
|
+
FIT_LAP_MESG_ENHANCED_AVG_ALTITUDE,
|
3855
|
+
FIT_LAP_MESG_ENHANCED_MIN_ALTITUDE,
|
3856
|
+
FIT_LAP_MESG_ENHANCED_MAX_ALTITUDE,
|
2545
3857
|
FIT_LAP_MESG_MESSAGE_INDEX,
|
2546
3858
|
FIT_LAP_MESG_TOTAL_CALORIES,
|
2547
3859
|
FIT_LAP_MESG_TOTAL_FAT_CALORIES,
|
@@ -2624,24 +3936,24 @@ typedef struct
|
|
2624
3936
|
|
2625
3937
|
typedef struct
|
2626
3938
|
{
|
2627
|
-
FIT_DATE_TIME timestamp; //
|
2628
|
-
FIT_DATE_TIME start_time; //
|
2629
|
-
FIT_UINT32 total_elapsed_time; // 1000 * s,
|
2630
|
-
FIT_UINT32 total_timer_time; // 1000 * s,
|
2631
|
-
FIT_MESSAGE_INDEX message_index; //
|
2632
|
-
FIT_UINT16 total_strokes; // strokes,
|
2633
|
-
FIT_UINT16 avg_speed; // 1000 * m/s,
|
2634
|
-
FIT_UINT16 total_calories; // kcal,
|
2635
|
-
FIT_UINT16 player_score; //
|
2636
|
-
FIT_UINT16 opponent_score; //
|
2637
|
-
FIT_UINT16 stroke_count[FIT_LENGTH_MESG_STROKE_COUNT_COUNT]; // counts,stroke_type enum used as the index
|
2638
|
-
FIT_UINT16 zone_count[FIT_LENGTH_MESG_ZONE_COUNT_COUNT]; // counts,zone number used as the index
|
2639
|
-
FIT_EVENT event; //
|
2640
|
-
FIT_EVENT_TYPE event_type; //
|
2641
|
-
FIT_SWIM_STROKE swim_stroke; // swim_stroke,
|
2642
|
-
FIT_UINT8 avg_swimming_cadence; // strokes/min,
|
2643
|
-
FIT_UINT8 event_group; //
|
2644
|
-
FIT_LENGTH_TYPE length_type; //
|
3939
|
+
FIT_DATE_TIME timestamp; //
|
3940
|
+
FIT_DATE_TIME start_time; //
|
3941
|
+
FIT_UINT32 total_elapsed_time; // 1000 * s + 0,
|
3942
|
+
FIT_UINT32 total_timer_time; // 1000 * s + 0,
|
3943
|
+
FIT_MESSAGE_INDEX message_index; //
|
3944
|
+
FIT_UINT16 total_strokes; // 1 * strokes + 0,
|
3945
|
+
FIT_UINT16 avg_speed; // 1000 * m/s + 0,
|
3946
|
+
FIT_UINT16 total_calories; // 1 * kcal + 0,
|
3947
|
+
FIT_UINT16 player_score; //
|
3948
|
+
FIT_UINT16 opponent_score; //
|
3949
|
+
FIT_UINT16 stroke_count[FIT_LENGTH_MESG_STROKE_COUNT_COUNT]; // 1 * counts + 0, stroke_type enum used as the index
|
3950
|
+
FIT_UINT16 zone_count[FIT_LENGTH_MESG_ZONE_COUNT_COUNT]; // 1 * counts + 0, zone number used as the index
|
3951
|
+
FIT_EVENT event; //
|
3952
|
+
FIT_EVENT_TYPE event_type; //
|
3953
|
+
FIT_SWIM_STROKE swim_stroke; // 1 * swim_stroke + 0,
|
3954
|
+
FIT_UINT8 avg_swimming_cadence; // 1 * strokes/min + 0,
|
3955
|
+
FIT_UINT8 event_group; //
|
3956
|
+
FIT_LENGTH_TYPE length_type; //
|
2645
3957
|
} FIT_LENGTH_MESG;
|
2646
3958
|
|
2647
3959
|
typedef enum
|
@@ -2700,58 +4012,61 @@ typedef struct
|
|
2700
4012
|
|
2701
4013
|
// record message
|
2702
4014
|
|
2703
|
-
#define FIT_RECORD_MESG_SIZE
|
2704
|
-
#define FIT_RECORD_MESG_DEF_SIZE
|
4015
|
+
#define FIT_RECORD_MESG_SIZE 99
|
4016
|
+
#define FIT_RECORD_MESG_DEF_SIZE 149
|
2705
4017
|
#define FIT_RECORD_MESG_COMPRESSED_SPEED_DISTANCE_COUNT 3
|
2706
4018
|
#define FIT_RECORD_MESG_SPEED_1S_COUNT 5
|
2707
4019
|
|
2708
4020
|
typedef struct
|
2709
4021
|
{
|
2710
|
-
FIT_DATE_TIME timestamp; // s,
|
2711
|
-
FIT_SINT32 position_lat; // semicircles,
|
2712
|
-
FIT_SINT32 position_long; // semicircles,
|
2713
|
-
FIT_UINT32 distance; // 100 * m,
|
2714
|
-
FIT_SINT32 time_from_course; // 1000 * s,
|
2715
|
-
FIT_UINT32 total_cycles; // cycles,
|
2716
|
-
FIT_UINT32 accumulated_power; // watts,
|
4022
|
+
FIT_DATE_TIME timestamp; // 1 * s + 0,
|
4023
|
+
FIT_SINT32 position_lat; // 1 * semicircles + 0,
|
4024
|
+
FIT_SINT32 position_long; // 1 * semicircles + 0,
|
4025
|
+
FIT_UINT32 distance; // 100 * m + 0,
|
4026
|
+
FIT_SINT32 time_from_course; // 1000 * s + 0,
|
4027
|
+
FIT_UINT32 total_cycles; // 1 * cycles + 0,
|
4028
|
+
FIT_UINT32 accumulated_power; // 1 * watts + 0,
|
4029
|
+
FIT_UINT32 enhanced_speed; // 1000 * m/s + 0,
|
4030
|
+
FIT_UINT32 enhanced_altitude; // 5 * m + 500,
|
2717
4031
|
FIT_UINT16 altitude; // 5 * m + 500,
|
2718
|
-
FIT_UINT16 speed; // 1000 * m/s,
|
2719
|
-
FIT_UINT16 power; // watts,
|
2720
|
-
FIT_SINT16 grade; // 100 *
|
2721
|
-
FIT_UINT16 compressed_accumulated_power; //
|
2722
|
-
FIT_SINT16 vertical_speed; // 1000 * m/s,
|
2723
|
-
FIT_UINT16 calories; // kcal,
|
2724
|
-
FIT_UINT16 vertical_oscillation; // 10 * mm,
|
2725
|
-
FIT_UINT16 stance_time_percent; // 100 * percent,
|
2726
|
-
FIT_UINT16 stance_time; // 10 * ms,
|
2727
|
-
FIT_UINT16 ball_speed; // 100 * m/s,
|
2728
|
-
FIT_UINT16 cadence256; // 256 * rpm,Log cadence and fractional cadence for backwards compatability
|
2729
|
-
FIT_UINT16 total_hemoglobin_conc; // 100 * g/dL,Total saturated and unsaturated hemoglobin
|
2730
|
-
FIT_UINT16 total_hemoglobin_conc_min; // 100 * g/dL,Min saturated and unsaturated hemoglobin
|
2731
|
-
FIT_UINT16 total_hemoglobin_conc_max; // 100 * g/dL,Max saturated and unsaturated hemoglobin
|
2732
|
-
FIT_UINT16 saturated_hemoglobin_percent; // 10 *
|
2733
|
-
FIT_UINT16 saturated_hemoglobin_percent_min; // 10 *
|
2734
|
-
FIT_UINT16 saturated_hemoglobin_percent_max; // 10 *
|
2735
|
-
FIT_UINT8 heart_rate; // bpm,
|
2736
|
-
FIT_UINT8 cadence; // rpm,
|
2737
|
-
FIT_BYTE compressed_speed_distance[FIT_RECORD_MESG_COMPRESSED_SPEED_DISTANCE_COUNT]; //
|
4032
|
+
FIT_UINT16 speed; // 1000 * m/s + 0,
|
4033
|
+
FIT_UINT16 power; // 1 * watts + 0,
|
4034
|
+
FIT_SINT16 grade; // 100 * % + 0,
|
4035
|
+
FIT_UINT16 compressed_accumulated_power; // 1 * watts + 0,
|
4036
|
+
FIT_SINT16 vertical_speed; // 1000 * m/s + 0,
|
4037
|
+
FIT_UINT16 calories; // 1 * kcal + 0,
|
4038
|
+
FIT_UINT16 vertical_oscillation; // 10 * mm + 0,
|
4039
|
+
FIT_UINT16 stance_time_percent; // 100 * percent + 0,
|
4040
|
+
FIT_UINT16 stance_time; // 10 * ms + 0,
|
4041
|
+
FIT_UINT16 ball_speed; // 100 * m/s + 0,
|
4042
|
+
FIT_UINT16 cadence256; // 256 * rpm + 0, Log cadence and fractional cadence for backwards compatability
|
4043
|
+
FIT_UINT16 total_hemoglobin_conc; // 100 * g/dL + 0, Total saturated and unsaturated hemoglobin
|
4044
|
+
FIT_UINT16 total_hemoglobin_conc_min; // 100 * g/dL + 0, Min saturated and unsaturated hemoglobin
|
4045
|
+
FIT_UINT16 total_hemoglobin_conc_max; // 100 * g/dL + 0, Max saturated and unsaturated hemoglobin
|
4046
|
+
FIT_UINT16 saturated_hemoglobin_percent; // 10 * % + 0, Percentage of hemoglobin saturated with oxygen
|
4047
|
+
FIT_UINT16 saturated_hemoglobin_percent_min; // 10 * % + 0, Min percentage of hemoglobin saturated with oxygen
|
4048
|
+
FIT_UINT16 saturated_hemoglobin_percent_max; // 10 * % + 0, Max percentage of hemoglobin saturated with oxygen
|
4049
|
+
FIT_UINT8 heart_rate; // 1 * bpm + 0,
|
4050
|
+
FIT_UINT8 cadence; // 1 * rpm + 0,
|
4051
|
+
FIT_BYTE compressed_speed_distance[FIT_RECORD_MESG_COMPRESSED_SPEED_DISTANCE_COUNT]; //
|
2738
4052
|
FIT_UINT8 resistance; // Relative. 0 is none 254 is Max.
|
2739
|
-
FIT_UINT8 cycle_length; // 100 * m,
|
2740
|
-
FIT_SINT8 temperature; // C,
|
2741
|
-
FIT_UINT8 speed_1s[FIT_RECORD_MESG_SPEED_1S_COUNT]; // 16 * m/s,Speed at 1s intervals. Timestamp field indicates time of last array element.
|
2742
|
-
FIT_UINT8 cycles; //
|
2743
|
-
FIT_LEFT_RIGHT_BALANCE left_right_balance; //
|
2744
|
-
FIT_UINT8 gps_accuracy; // m,
|
2745
|
-
FIT_ACTIVITY_TYPE activity_type; //
|
2746
|
-
FIT_UINT8 left_torque_effectiveness; // 2 * percent,
|
2747
|
-
FIT_UINT8 right_torque_effectiveness; // 2 * percent,
|
2748
|
-
FIT_UINT8 left_pedal_smoothness; // 2 * percent,
|
2749
|
-
FIT_UINT8 right_pedal_smoothness; // 2 * percent,
|
2750
|
-
FIT_UINT8 combined_pedal_smoothness; // 2 * percent,
|
2751
|
-
FIT_UINT8 time128; // 128 * s,
|
2752
|
-
FIT_STROKE_TYPE stroke_type; //
|
2753
|
-
FIT_UINT8 zone; //
|
2754
|
-
|
4053
|
+
FIT_UINT8 cycle_length; // 100 * m + 0,
|
4054
|
+
FIT_SINT8 temperature; // 1 * C + 0,
|
4055
|
+
FIT_UINT8 speed_1s[FIT_RECORD_MESG_SPEED_1S_COUNT]; // 16 * m/s + 0, Speed at 1s intervals. Timestamp field indicates time of last array element.
|
4056
|
+
FIT_UINT8 cycles; // 1 * cycles + 0,
|
4057
|
+
FIT_LEFT_RIGHT_BALANCE left_right_balance; //
|
4058
|
+
FIT_UINT8 gps_accuracy; // 1 * m + 0,
|
4059
|
+
FIT_ACTIVITY_TYPE activity_type; //
|
4060
|
+
FIT_UINT8 left_torque_effectiveness; // 2 * percent + 0,
|
4061
|
+
FIT_UINT8 right_torque_effectiveness; // 2 * percent + 0,
|
4062
|
+
FIT_UINT8 left_pedal_smoothness; // 2 * percent + 0,
|
4063
|
+
FIT_UINT8 right_pedal_smoothness; // 2 * percent + 0,
|
4064
|
+
FIT_UINT8 combined_pedal_smoothness; // 2 * percent + 0,
|
4065
|
+
FIT_UINT8 time128; // 128 * s + 0,
|
4066
|
+
FIT_STROKE_TYPE stroke_type; //
|
4067
|
+
FIT_UINT8 zone; //
|
4068
|
+
FIT_UINT8 fractional_cadence; // 128 * rpm + 0,
|
4069
|
+
FIT_DEVICE_INDEX device_index; //
|
2755
4070
|
} FIT_RECORD_MESG;
|
2756
4071
|
|
2757
4072
|
typedef enum
|
@@ -2763,6 +4078,8 @@ typedef enum
|
|
2763
4078
|
FIT_RECORD_FIELD_NUM_TIME_FROM_COURSE = 11,
|
2764
4079
|
FIT_RECORD_FIELD_NUM_TOTAL_CYCLES = 19,
|
2765
4080
|
FIT_RECORD_FIELD_NUM_ACCUMULATED_POWER = 29,
|
4081
|
+
FIT_RECORD_FIELD_NUM_ENHANCED_SPEED = 73,
|
4082
|
+
FIT_RECORD_FIELD_NUM_ENHANCED_ALTITUDE = 78,
|
2766
4083
|
FIT_RECORD_FIELD_NUM_ALTITUDE = 2,
|
2767
4084
|
FIT_RECORD_FIELD_NUM_SPEED = 6,
|
2768
4085
|
FIT_RECORD_FIELD_NUM_POWER = 7,
|
@@ -2800,6 +4117,7 @@ typedef enum
|
|
2800
4117
|
FIT_RECORD_FIELD_NUM_TIME128 = 48,
|
2801
4118
|
FIT_RECORD_FIELD_NUM_STROKE_TYPE = 49,
|
2802
4119
|
FIT_RECORD_FIELD_NUM_ZONE = 50,
|
4120
|
+
FIT_RECORD_FIELD_NUM_FRACTIONAL_CADENCE = 53,
|
2803
4121
|
FIT_RECORD_FIELD_NUM_DEVICE_INDEX = 62
|
2804
4122
|
} FIT_RECORD_FIELD_NUM;
|
2805
4123
|
|
@@ -2812,6 +4130,8 @@ typedef enum
|
|
2812
4130
|
FIT_RECORD_MESG_TIME_FROM_COURSE,
|
2813
4131
|
FIT_RECORD_MESG_TOTAL_CYCLES,
|
2814
4132
|
FIT_RECORD_MESG_ACCUMULATED_POWER,
|
4133
|
+
FIT_RECORD_MESG_ENHANCED_SPEED,
|
4134
|
+
FIT_RECORD_MESG_ENHANCED_ALTITUDE,
|
2815
4135
|
FIT_RECORD_MESG_ALTITUDE,
|
2816
4136
|
FIT_RECORD_MESG_SPEED,
|
2817
4137
|
FIT_RECORD_MESG_POWER,
|
@@ -2849,6 +4169,7 @@ typedef enum
|
|
2849
4169
|
FIT_RECORD_MESG_TIME128,
|
2850
4170
|
FIT_RECORD_MESG_STROKE_TYPE,
|
2851
4171
|
FIT_RECORD_MESG_ZONE,
|
4172
|
+
FIT_RECORD_MESG_FRACTIONAL_CADENCE,
|
2852
4173
|
FIT_RECORD_MESG_DEVICE_INDEX,
|
2853
4174
|
FIT_RECORD_MESG_FIELDS
|
2854
4175
|
} FIT_RECORD_MESG_FIELD;
|
@@ -2869,14 +4190,14 @@ typedef struct
|
|
2869
4190
|
|
2870
4191
|
typedef struct
|
2871
4192
|
{
|
2872
|
-
FIT_DATE_TIME timestamp; // s,
|
2873
|
-
FIT_UINT32 data; //
|
2874
|
-
FIT_UINT16 data16; //
|
4193
|
+
FIT_DATE_TIME timestamp; // 1 * s + 0,
|
4194
|
+
FIT_UINT32 data; //
|
4195
|
+
FIT_UINT16 data16; //
|
2875
4196
|
FIT_UINT16 score; // Do not populate directly. Autogenerated by decoder for sport_point subfield components
|
2876
4197
|
FIT_UINT16 opponent_score; // Do not populate directly. Autogenerated by decoder for sport_point subfield components
|
2877
|
-
FIT_EVENT event; //
|
2878
|
-
FIT_EVENT_TYPE event_type; //
|
2879
|
-
FIT_UINT8 event_group; //
|
4198
|
+
FIT_EVENT event; //
|
4199
|
+
FIT_EVENT_TYPE event_type; //
|
4200
|
+
FIT_UINT8 event_group; //
|
2880
4201
|
FIT_UINT8Z front_gear_num; // Do not populate directly. Autogenerated by decoder for gear_change subfield components. Front gear number. 1 is innermost.
|
2881
4202
|
FIT_UINT8Z front_gear; // Do not populate directly. Autogenerated by decoder for gear_change subfield components. Number of front teeth.
|
2882
4203
|
FIT_UINT8Z rear_gear_num; // Do not populate directly. Autogenerated by decoder for gear_change subfield components. Rear gear number. 1 is innermost.
|
@@ -2927,29 +4248,31 @@ typedef struct
|
|
2927
4248
|
|
2928
4249
|
// device_info message
|
2929
4250
|
|
2930
|
-
#define FIT_DEVICE_INFO_MESG_SIZE
|
2931
|
-
#define FIT_DEVICE_INFO_MESG_DEF_SIZE
|
4251
|
+
#define FIT_DEVICE_INFO_MESG_SIZE 51
|
4252
|
+
#define FIT_DEVICE_INFO_MESG_DEF_SIZE 59
|
4253
|
+
#define FIT_DEVICE_INFO_MESG_PRODUCT_NAME_COUNT 20
|
2932
4254
|
#define FIT_DEVICE_INFO_MESG_DESCRIPTOR_COUNT 1
|
2933
4255
|
|
2934
4256
|
typedef struct
|
2935
4257
|
{
|
2936
|
-
FIT_DATE_TIME timestamp; // s,
|
2937
|
-
FIT_UINT32Z serial_number; //
|
2938
|
-
FIT_UINT32 cum_operating_time; // s,Reset by new battery or charge.
|
2939
|
-
|
2940
|
-
|
2941
|
-
FIT_UINT16
|
2942
|
-
FIT_UINT16
|
2943
|
-
|
2944
|
-
|
2945
|
-
|
2946
|
-
FIT_UINT8
|
2947
|
-
|
4258
|
+
FIT_DATE_TIME timestamp; // 1 * s + 0,
|
4259
|
+
FIT_UINT32Z serial_number; //
|
4260
|
+
FIT_UINT32 cum_operating_time; // 1 * s + 0, Reset by new battery or charge.
|
4261
|
+
FIT_STRING product_name[FIT_DEVICE_INFO_MESG_PRODUCT_NAME_COUNT]; // Optional free form string to indicate the devices name or model
|
4262
|
+
FIT_MANUFACTURER manufacturer; //
|
4263
|
+
FIT_UINT16 product; //
|
4264
|
+
FIT_UINT16 software_version; //
|
4265
|
+
FIT_UINT16 battery_voltage; // 256 * V + 0,
|
4266
|
+
FIT_UINT16Z ant_device_number; //
|
4267
|
+
FIT_DEVICE_INDEX device_index; //
|
4268
|
+
FIT_UINT8 device_type; //
|
4269
|
+
FIT_UINT8 hardware_version; //
|
4270
|
+
FIT_BATTERY_STATUS battery_status; //
|
2948
4271
|
FIT_BODY_LOCATION sensor_position; // Indicates the location of the sensor
|
2949
4272
|
FIT_STRING descriptor[FIT_DEVICE_INFO_MESG_DESCRIPTOR_COUNT]; // Used to describe the sensor or location
|
2950
|
-
FIT_UINT8Z ant_transmission_type; //
|
2951
|
-
FIT_ANT_NETWORK ant_network; //
|
2952
|
-
FIT_SOURCE_TYPE source_type; //
|
4273
|
+
FIT_UINT8Z ant_transmission_type; //
|
4274
|
+
FIT_ANT_NETWORK ant_network; //
|
4275
|
+
FIT_SOURCE_TYPE source_type; //
|
2953
4276
|
} FIT_DEVICE_INFO_MESG;
|
2954
4277
|
|
2955
4278
|
typedef enum
|
@@ -2957,6 +4280,7 @@ typedef enum
|
|
2957
4280
|
FIT_DEVICE_INFO_FIELD_NUM_TIMESTAMP = 253,
|
2958
4281
|
FIT_DEVICE_INFO_FIELD_NUM_SERIAL_NUMBER = 3,
|
2959
4282
|
FIT_DEVICE_INFO_FIELD_NUM_CUM_OPERATING_TIME = 7,
|
4283
|
+
FIT_DEVICE_INFO_FIELD_NUM_PRODUCT_NAME = 27,
|
2960
4284
|
FIT_DEVICE_INFO_FIELD_NUM_MANUFACTURER = 2,
|
2961
4285
|
FIT_DEVICE_INFO_FIELD_NUM_PRODUCT = 4,
|
2962
4286
|
FIT_DEVICE_INFO_FIELD_NUM_SOFTWARE_VERSION = 5,
|
@@ -2978,6 +4302,7 @@ typedef enum
|
|
2978
4302
|
FIT_DEVICE_INFO_MESG_TIMESTAMP,
|
2979
4303
|
FIT_DEVICE_INFO_MESG_SERIAL_NUMBER,
|
2980
4304
|
FIT_DEVICE_INFO_MESG_CUM_OPERATING_TIME,
|
4305
|
+
FIT_DEVICE_INFO_MESG_PRODUCT_NAME,
|
2981
4306
|
FIT_DEVICE_INFO_MESG_MANUFACTURER,
|
2982
4307
|
FIT_DEVICE_INFO_MESG_PRODUCT,
|
2983
4308
|
FIT_DEVICE_INFO_MESG_SOFTWARE_VERSION,
|
@@ -3004,6 +4329,51 @@ typedef struct
|
|
3004
4329
|
FIT_UINT8 fields[FIT_DEVICE_INFO_MESG_FIELDS * FIT_FIELD_DEF_SIZE];
|
3005
4330
|
} FIT_DEVICE_INFO_MESG_DEF;
|
3006
4331
|
|
4332
|
+
// training_file message
|
4333
|
+
|
4334
|
+
#define FIT_TRAINING_FILE_MESG_SIZE 17
|
4335
|
+
#define FIT_TRAINING_FILE_MESG_DEF_SIZE 23
|
4336
|
+
|
4337
|
+
typedef struct
|
4338
|
+
{
|
4339
|
+
FIT_DATE_TIME timestamp; //
|
4340
|
+
FIT_UINT32Z serial_number; //
|
4341
|
+
FIT_DATE_TIME time_created; //
|
4342
|
+
FIT_MANUFACTURER manufacturer; //
|
4343
|
+
FIT_UINT16 product; //
|
4344
|
+
FIT_FILE type; //
|
4345
|
+
} FIT_TRAINING_FILE_MESG;
|
4346
|
+
|
4347
|
+
typedef enum
|
4348
|
+
{
|
4349
|
+
FIT_TRAINING_FILE_FIELD_NUM_TIMESTAMP = 253,
|
4350
|
+
FIT_TRAINING_FILE_FIELD_NUM_SERIAL_NUMBER = 3,
|
4351
|
+
FIT_TRAINING_FILE_FIELD_NUM_TIME_CREATED = 4,
|
4352
|
+
FIT_TRAINING_FILE_FIELD_NUM_MANUFACTURER = 1,
|
4353
|
+
FIT_TRAINING_FILE_FIELD_NUM_PRODUCT = 2,
|
4354
|
+
FIT_TRAINING_FILE_FIELD_NUM_TYPE = 0
|
4355
|
+
} FIT_TRAINING_FILE_FIELD_NUM;
|
4356
|
+
|
4357
|
+
typedef enum
|
4358
|
+
{
|
4359
|
+
FIT_TRAINING_FILE_MESG_TIMESTAMP,
|
4360
|
+
FIT_TRAINING_FILE_MESG_SERIAL_NUMBER,
|
4361
|
+
FIT_TRAINING_FILE_MESG_TIME_CREATED,
|
4362
|
+
FIT_TRAINING_FILE_MESG_MANUFACTURER,
|
4363
|
+
FIT_TRAINING_FILE_MESG_PRODUCT,
|
4364
|
+
FIT_TRAINING_FILE_MESG_TYPE,
|
4365
|
+
FIT_TRAINING_FILE_MESG_FIELDS
|
4366
|
+
} FIT_TRAINING_FILE_MESG_FIELD;
|
4367
|
+
|
4368
|
+
typedef struct
|
4369
|
+
{
|
4370
|
+
FIT_UINT8 reserved_1;
|
4371
|
+
FIT_UINT8 arch;
|
4372
|
+
FIT_MESG_NUM global_mesg_num;
|
4373
|
+
FIT_UINT8 num_fields;
|
4374
|
+
FIT_UINT8 fields[FIT_TRAINING_FILE_MESG_FIELDS * FIT_FIELD_DEF_SIZE];
|
4375
|
+
} FIT_TRAINING_FILE_MESG_DEF;
|
4376
|
+
|
3007
4377
|
// hrv message
|
3008
4378
|
|
3009
4379
|
#define FIT_HRV_MESG_SIZE 2
|
@@ -3012,7 +4382,7 @@ typedef struct
|
|
3012
4382
|
|
3013
4383
|
typedef struct
|
3014
4384
|
{
|
3015
|
-
FIT_UINT16 time[FIT_HRV_MESG_TIME_COUNT]; // 1000 * s,Time between beats
|
4385
|
+
FIT_UINT16 time[FIT_HRV_MESG_TIME_COUNT]; // 1000 * s + 0, Time between beats
|
3016
4386
|
} FIT_HRV_MESG;
|
3017
4387
|
|
3018
4388
|
typedef enum
|
@@ -3035,24 +4405,332 @@ typedef struct
|
|
3035
4405
|
FIT_UINT8 fields[FIT_HRV_MESG_FIELDS * FIT_FIELD_DEF_SIZE];
|
3036
4406
|
} FIT_HRV_MESG_DEF;
|
3037
4407
|
|
4408
|
+
// weather_conditions message
|
4409
|
+
|
4410
|
+
#define FIT_WEATHER_CONDITIONS_MESG_SIZE 93
|
4411
|
+
#define FIT_WEATHER_CONDITIONS_MESG_DEF_SIZE 53
|
4412
|
+
#define FIT_WEATHER_CONDITIONS_MESG_LOCATION_COUNT 64
|
4413
|
+
|
4414
|
+
typedef struct
|
4415
|
+
{
|
4416
|
+
FIT_DATE_TIME timestamp; // time of update for current conditions, else forecast time
|
4417
|
+
FIT_STRING location[FIT_WEATHER_CONDITIONS_MESG_LOCATION_COUNT]; // string corresponding to GCS response location string
|
4418
|
+
FIT_DATE_TIME observed_at_time; //
|
4419
|
+
FIT_SINT32 observed_location_lat; // 1 * semicircles + 0,
|
4420
|
+
FIT_SINT32 observed_location_long; // 1 * semicircles + 0,
|
4421
|
+
FIT_UINT16 wind_direction; // 1 * degrees + 0,
|
4422
|
+
FIT_UINT16 wind_speed; // 1000 * m/s + 0,
|
4423
|
+
FIT_WEATHER_REPORT weather_report; // Current or forecast
|
4424
|
+
FIT_SINT8 temperature; // 1 * C + 0,
|
4425
|
+
FIT_WEATHER_STATUS condition; // Corresponds to GSC Response weatherIcon field
|
4426
|
+
FIT_UINT8 precipitation_probability; // range 0-100
|
4427
|
+
FIT_SINT8 temperature_feels_like; // 1 * C + 0, Heat Index if GCS heatIdx above or equal to 90F or wind chill if GCS windChill below or equal to 32F
|
4428
|
+
FIT_UINT8 relative_humidity; //
|
4429
|
+
FIT_DAY_OF_WEEK day_of_week; //
|
4430
|
+
FIT_SINT8 high_temperature; // 1 * C + 0,
|
4431
|
+
FIT_SINT8 low_temperature; // 1 * C + 0,
|
4432
|
+
} FIT_WEATHER_CONDITIONS_MESG;
|
4433
|
+
|
4434
|
+
typedef enum
|
4435
|
+
{
|
4436
|
+
FIT_WEATHER_CONDITIONS_FIELD_NUM_TIMESTAMP = 253,
|
4437
|
+
FIT_WEATHER_CONDITIONS_FIELD_NUM_LOCATION = 8,
|
4438
|
+
FIT_WEATHER_CONDITIONS_FIELD_NUM_OBSERVED_AT_TIME = 9,
|
4439
|
+
FIT_WEATHER_CONDITIONS_FIELD_NUM_OBSERVED_LOCATION_LAT = 10,
|
4440
|
+
FIT_WEATHER_CONDITIONS_FIELD_NUM_OBSERVED_LOCATION_LONG = 11,
|
4441
|
+
FIT_WEATHER_CONDITIONS_FIELD_NUM_WIND_DIRECTION = 3,
|
4442
|
+
FIT_WEATHER_CONDITIONS_FIELD_NUM_WIND_SPEED = 4,
|
4443
|
+
FIT_WEATHER_CONDITIONS_FIELD_NUM_WEATHER_REPORT = 0,
|
4444
|
+
FIT_WEATHER_CONDITIONS_FIELD_NUM_TEMPERATURE = 1,
|
4445
|
+
FIT_WEATHER_CONDITIONS_FIELD_NUM_CONDITION = 2,
|
4446
|
+
FIT_WEATHER_CONDITIONS_FIELD_NUM_PRECIPITATION_PROBABILITY = 5,
|
4447
|
+
FIT_WEATHER_CONDITIONS_FIELD_NUM_TEMPERATURE_FEELS_LIKE = 6,
|
4448
|
+
FIT_WEATHER_CONDITIONS_FIELD_NUM_RELATIVE_HUMIDITY = 7,
|
4449
|
+
FIT_WEATHER_CONDITIONS_FIELD_NUM_DAY_OF_WEEK = 12,
|
4450
|
+
FIT_WEATHER_CONDITIONS_FIELD_NUM_HIGH_TEMPERATURE = 13,
|
4451
|
+
FIT_WEATHER_CONDITIONS_FIELD_NUM_LOW_TEMPERATURE = 14
|
4452
|
+
} FIT_WEATHER_CONDITIONS_FIELD_NUM;
|
4453
|
+
|
4454
|
+
typedef enum
|
4455
|
+
{
|
4456
|
+
FIT_WEATHER_CONDITIONS_MESG_TIMESTAMP,
|
4457
|
+
FIT_WEATHER_CONDITIONS_MESG_LOCATION,
|
4458
|
+
FIT_WEATHER_CONDITIONS_MESG_OBSERVED_AT_TIME,
|
4459
|
+
FIT_WEATHER_CONDITIONS_MESG_OBSERVED_LOCATION_LAT,
|
4460
|
+
FIT_WEATHER_CONDITIONS_MESG_OBSERVED_LOCATION_LONG,
|
4461
|
+
FIT_WEATHER_CONDITIONS_MESG_WIND_DIRECTION,
|
4462
|
+
FIT_WEATHER_CONDITIONS_MESG_WIND_SPEED,
|
4463
|
+
FIT_WEATHER_CONDITIONS_MESG_WEATHER_REPORT,
|
4464
|
+
FIT_WEATHER_CONDITIONS_MESG_TEMPERATURE,
|
4465
|
+
FIT_WEATHER_CONDITIONS_MESG_CONDITION,
|
4466
|
+
FIT_WEATHER_CONDITIONS_MESG_PRECIPITATION_PROBABILITY,
|
4467
|
+
FIT_WEATHER_CONDITIONS_MESG_TEMPERATURE_FEELS_LIKE,
|
4468
|
+
FIT_WEATHER_CONDITIONS_MESG_RELATIVE_HUMIDITY,
|
4469
|
+
FIT_WEATHER_CONDITIONS_MESG_DAY_OF_WEEK,
|
4470
|
+
FIT_WEATHER_CONDITIONS_MESG_HIGH_TEMPERATURE,
|
4471
|
+
FIT_WEATHER_CONDITIONS_MESG_LOW_TEMPERATURE,
|
4472
|
+
FIT_WEATHER_CONDITIONS_MESG_FIELDS
|
4473
|
+
} FIT_WEATHER_CONDITIONS_MESG_FIELD;
|
4474
|
+
|
4475
|
+
typedef struct
|
4476
|
+
{
|
4477
|
+
FIT_UINT8 reserved_1;
|
4478
|
+
FIT_UINT8 arch;
|
4479
|
+
FIT_MESG_NUM global_mesg_num;
|
4480
|
+
FIT_UINT8 num_fields;
|
4481
|
+
FIT_UINT8 fields[FIT_WEATHER_CONDITIONS_MESG_FIELDS * FIT_FIELD_DEF_SIZE];
|
4482
|
+
} FIT_WEATHER_CONDITIONS_MESG_DEF;
|
4483
|
+
|
4484
|
+
// weather_alert message
|
4485
|
+
|
4486
|
+
#define FIT_WEATHER_ALERT_MESG_SIZE 26
|
4487
|
+
#define FIT_WEATHER_ALERT_MESG_DEF_SIZE 23
|
4488
|
+
#define FIT_WEATHER_ALERT_MESG_REPORT_ID_COUNT 12
|
4489
|
+
|
4490
|
+
typedef struct
|
4491
|
+
{
|
4492
|
+
FIT_DATE_TIME timestamp; //
|
4493
|
+
FIT_STRING report_id[FIT_WEATHER_ALERT_MESG_REPORT_ID_COUNT]; // Unique identifier from GCS report ID string, length is 12
|
4494
|
+
FIT_DATE_TIME issue_time; // Time alert was issued
|
4495
|
+
FIT_DATE_TIME expire_time; // Time alert expires
|
4496
|
+
FIT_WEATHER_SEVERITY severity; // Warning, Watch, Advisory, Statement
|
4497
|
+
FIT_WEATHER_SEVERE_TYPE type; // Tornado, Severe Thunderstorm, etc.
|
4498
|
+
} FIT_WEATHER_ALERT_MESG;
|
4499
|
+
|
4500
|
+
typedef enum
|
4501
|
+
{
|
4502
|
+
FIT_WEATHER_ALERT_FIELD_NUM_TIMESTAMP = 253,
|
4503
|
+
FIT_WEATHER_ALERT_FIELD_NUM_REPORT_ID = 0,
|
4504
|
+
FIT_WEATHER_ALERT_FIELD_NUM_ISSUE_TIME = 1,
|
4505
|
+
FIT_WEATHER_ALERT_FIELD_NUM_EXPIRE_TIME = 2,
|
4506
|
+
FIT_WEATHER_ALERT_FIELD_NUM_SEVERITY = 3,
|
4507
|
+
FIT_WEATHER_ALERT_FIELD_NUM_TYPE = 4
|
4508
|
+
} FIT_WEATHER_ALERT_FIELD_NUM;
|
4509
|
+
|
4510
|
+
typedef enum
|
4511
|
+
{
|
4512
|
+
FIT_WEATHER_ALERT_MESG_TIMESTAMP,
|
4513
|
+
FIT_WEATHER_ALERT_MESG_REPORT_ID,
|
4514
|
+
FIT_WEATHER_ALERT_MESG_ISSUE_TIME,
|
4515
|
+
FIT_WEATHER_ALERT_MESG_EXPIRE_TIME,
|
4516
|
+
FIT_WEATHER_ALERT_MESG_SEVERITY,
|
4517
|
+
FIT_WEATHER_ALERT_MESG_TYPE,
|
4518
|
+
FIT_WEATHER_ALERT_MESG_FIELDS
|
4519
|
+
} FIT_WEATHER_ALERT_MESG_FIELD;
|
4520
|
+
|
4521
|
+
typedef struct
|
4522
|
+
{
|
4523
|
+
FIT_UINT8 reserved_1;
|
4524
|
+
FIT_UINT8 arch;
|
4525
|
+
FIT_MESG_NUM global_mesg_num;
|
4526
|
+
FIT_UINT8 num_fields;
|
4527
|
+
FIT_UINT8 fields[FIT_WEATHER_ALERT_MESG_FIELDS * FIT_FIELD_DEF_SIZE];
|
4528
|
+
} FIT_WEATHER_ALERT_MESG_DEF;
|
4529
|
+
|
4530
|
+
// nmea_sentence message
|
4531
|
+
|
4532
|
+
#define FIT_NMEA_SENTENCE_MESG_SIZE 89
|
4533
|
+
#define FIT_NMEA_SENTENCE_MESG_DEF_SIZE 14
|
4534
|
+
#define FIT_NMEA_SENTENCE_MESG_SENTENCE_COUNT 83
|
4535
|
+
|
4536
|
+
typedef struct
|
4537
|
+
{
|
4538
|
+
FIT_DATE_TIME timestamp; // 1 * s + 0, Timestamp message was output
|
4539
|
+
FIT_UINT16 timestamp_ms; // 1 * ms + 0, Fractional part of timestamp, added to timestamp
|
4540
|
+
FIT_STRING sentence[FIT_NMEA_SENTENCE_MESG_SENTENCE_COUNT]; // NMEA sentence
|
4541
|
+
} FIT_NMEA_SENTENCE_MESG;
|
4542
|
+
|
4543
|
+
typedef enum
|
4544
|
+
{
|
4545
|
+
FIT_NMEA_SENTENCE_FIELD_NUM_TIMESTAMP = 253,
|
4546
|
+
FIT_NMEA_SENTENCE_FIELD_NUM_TIMESTAMP_MS = 0,
|
4547
|
+
FIT_NMEA_SENTENCE_FIELD_NUM_SENTENCE = 1
|
4548
|
+
} FIT_NMEA_SENTENCE_FIELD_NUM;
|
4549
|
+
|
4550
|
+
typedef enum
|
4551
|
+
{
|
4552
|
+
FIT_NMEA_SENTENCE_MESG_TIMESTAMP,
|
4553
|
+
FIT_NMEA_SENTENCE_MESG_TIMESTAMP_MS,
|
4554
|
+
FIT_NMEA_SENTENCE_MESG_SENTENCE,
|
4555
|
+
FIT_NMEA_SENTENCE_MESG_FIELDS
|
4556
|
+
} FIT_NMEA_SENTENCE_MESG_FIELD;
|
4557
|
+
|
4558
|
+
typedef struct
|
4559
|
+
{
|
4560
|
+
FIT_UINT8 reserved_1;
|
4561
|
+
FIT_UINT8 arch;
|
4562
|
+
FIT_MESG_NUM global_mesg_num;
|
4563
|
+
FIT_UINT8 num_fields;
|
4564
|
+
FIT_UINT8 fields[FIT_NMEA_SENTENCE_MESG_FIELDS * FIT_FIELD_DEF_SIZE];
|
4565
|
+
} FIT_NMEA_SENTENCE_MESG_DEF;
|
4566
|
+
|
4567
|
+
// aviation_attitude message
|
4568
|
+
|
4569
|
+
#define FIT_AVIATION_ATTITUDE_MESG_SIZE 26
|
4570
|
+
#define FIT_AVIATION_ATTITUDE_MESG_DEF_SIZE 41
|
4571
|
+
#define FIT_AVIATION_ATTITUDE_MESG_SYSTEM_TIME_COUNT 1
|
4572
|
+
#define FIT_AVIATION_ATTITUDE_MESG_PITCH_COUNT 1
|
4573
|
+
#define FIT_AVIATION_ATTITUDE_MESG_ROLL_COUNT 1
|
4574
|
+
#define FIT_AVIATION_ATTITUDE_MESG_ACCEL_LATERAL_COUNT 1
|
4575
|
+
#define FIT_AVIATION_ATTITUDE_MESG_ACCEL_NORMAL_COUNT 1
|
4576
|
+
#define FIT_AVIATION_ATTITUDE_MESG_TURN_RATE_COUNT 1
|
4577
|
+
#define FIT_AVIATION_ATTITUDE_MESG_TRACK_COUNT 1
|
4578
|
+
#define FIT_AVIATION_ATTITUDE_MESG_VALIDITY_COUNT 1
|
4579
|
+
#define FIT_AVIATION_ATTITUDE_MESG_STAGE_COUNT 1
|
4580
|
+
#define FIT_AVIATION_ATTITUDE_MESG_ATTITUDE_STAGE_COMPLETE_COUNT 1
|
4581
|
+
|
4582
|
+
typedef struct
|
4583
|
+
{
|
4584
|
+
FIT_DATE_TIME timestamp; // 1 * s + 0, Timestamp message was output
|
4585
|
+
FIT_UINT32 system_time[FIT_AVIATION_ATTITUDE_MESG_SYSTEM_TIME_COUNT]; // 1 * ms + 0, System time associated with sample expressed in ms.
|
4586
|
+
FIT_UINT16 timestamp_ms; // 1 * ms + 0, Fractional part of timestamp, added to timestamp
|
4587
|
+
FIT_SINT16 pitch[FIT_AVIATION_ATTITUDE_MESG_PITCH_COUNT]; // 10430.38 * radians + 0, Range -PI/2 to +PI/2
|
4588
|
+
FIT_SINT16 roll[FIT_AVIATION_ATTITUDE_MESG_ROLL_COUNT]; // 10430.38 * radians + 0, Range -PI to +PI
|
4589
|
+
FIT_SINT16 accel_lateral[FIT_AVIATION_ATTITUDE_MESG_ACCEL_LATERAL_COUNT]; // 100 * m/s^2 + 0, Range -78.4 to +78.4 (-8 Gs to 8 Gs)
|
4590
|
+
FIT_SINT16 accel_normal[FIT_AVIATION_ATTITUDE_MESG_ACCEL_NORMAL_COUNT]; // 100 * m/s^2 + 0, Range -78.4 to +78.4 (-8 Gs to 8 Gs)
|
4591
|
+
FIT_SINT16 turn_rate[FIT_AVIATION_ATTITUDE_MESG_TURN_RATE_COUNT]; // 1024 * radians/second + 0, Range -8.727 to +8.727 (-500 degs/sec to +500 degs/sec)
|
4592
|
+
FIT_UINT16 track[FIT_AVIATION_ATTITUDE_MESG_TRACK_COUNT]; // 10430.38 * radians + 0, Track Angle/Heading Range 0 - 2pi
|
4593
|
+
FIT_ATTITUDE_VALIDITY validity[FIT_AVIATION_ATTITUDE_MESG_VALIDITY_COUNT]; //
|
4594
|
+
FIT_ATTITUDE_STAGE stage[FIT_AVIATION_ATTITUDE_MESG_STAGE_COUNT]; //
|
4595
|
+
FIT_UINT8 attitude_stage_complete[FIT_AVIATION_ATTITUDE_MESG_ATTITUDE_STAGE_COMPLETE_COUNT]; // 1 * % + 0, The percent complete of the current attitude stage. Set to 0 for attitude stages 0, 1 and 2 and to 100 for attitude stage 3 by AHRS modules that do not support it. Range - 100
|
4596
|
+
} FIT_AVIATION_ATTITUDE_MESG;
|
4597
|
+
|
4598
|
+
typedef enum
|
4599
|
+
{
|
4600
|
+
FIT_AVIATION_ATTITUDE_FIELD_NUM_TIMESTAMP = 253,
|
4601
|
+
FIT_AVIATION_ATTITUDE_FIELD_NUM_SYSTEM_TIME = 1,
|
4602
|
+
FIT_AVIATION_ATTITUDE_FIELD_NUM_TIMESTAMP_MS = 0,
|
4603
|
+
FIT_AVIATION_ATTITUDE_FIELD_NUM_PITCH = 2,
|
4604
|
+
FIT_AVIATION_ATTITUDE_FIELD_NUM_ROLL = 3,
|
4605
|
+
FIT_AVIATION_ATTITUDE_FIELD_NUM_ACCEL_LATERAL = 4,
|
4606
|
+
FIT_AVIATION_ATTITUDE_FIELD_NUM_ACCEL_NORMAL = 5,
|
4607
|
+
FIT_AVIATION_ATTITUDE_FIELD_NUM_TURN_RATE = 6,
|
4608
|
+
FIT_AVIATION_ATTITUDE_FIELD_NUM_TRACK = 9,
|
4609
|
+
FIT_AVIATION_ATTITUDE_FIELD_NUM_VALIDITY = 10,
|
4610
|
+
FIT_AVIATION_ATTITUDE_FIELD_NUM_STAGE = 7,
|
4611
|
+
FIT_AVIATION_ATTITUDE_FIELD_NUM_ATTITUDE_STAGE_COMPLETE = 8
|
4612
|
+
} FIT_AVIATION_ATTITUDE_FIELD_NUM;
|
4613
|
+
|
4614
|
+
typedef enum
|
4615
|
+
{
|
4616
|
+
FIT_AVIATION_ATTITUDE_MESG_TIMESTAMP,
|
4617
|
+
FIT_AVIATION_ATTITUDE_MESG_SYSTEM_TIME,
|
4618
|
+
FIT_AVIATION_ATTITUDE_MESG_TIMESTAMP_MS,
|
4619
|
+
FIT_AVIATION_ATTITUDE_MESG_PITCH,
|
4620
|
+
FIT_AVIATION_ATTITUDE_MESG_ROLL,
|
4621
|
+
FIT_AVIATION_ATTITUDE_MESG_ACCEL_LATERAL,
|
4622
|
+
FIT_AVIATION_ATTITUDE_MESG_ACCEL_NORMAL,
|
4623
|
+
FIT_AVIATION_ATTITUDE_MESG_TURN_RATE,
|
4624
|
+
FIT_AVIATION_ATTITUDE_MESG_TRACK,
|
4625
|
+
FIT_AVIATION_ATTITUDE_MESG_VALIDITY,
|
4626
|
+
FIT_AVIATION_ATTITUDE_MESG_STAGE,
|
4627
|
+
FIT_AVIATION_ATTITUDE_MESG_ATTITUDE_STAGE_COMPLETE,
|
4628
|
+
FIT_AVIATION_ATTITUDE_MESG_FIELDS
|
4629
|
+
} FIT_AVIATION_ATTITUDE_MESG_FIELD;
|
4630
|
+
|
4631
|
+
typedef struct
|
4632
|
+
{
|
4633
|
+
FIT_UINT8 reserved_1;
|
4634
|
+
FIT_UINT8 arch;
|
4635
|
+
FIT_MESG_NUM global_mesg_num;
|
4636
|
+
FIT_UINT8 num_fields;
|
4637
|
+
FIT_UINT8 fields[FIT_AVIATION_ATTITUDE_MESG_FIELDS * FIT_FIELD_DEF_SIZE];
|
4638
|
+
} FIT_AVIATION_ATTITUDE_MESG_DEF;
|
4639
|
+
|
4640
|
+
// video_title message
|
4641
|
+
|
4642
|
+
#define FIT_VIDEO_TITLE_MESG_SIZE 84
|
4643
|
+
#define FIT_VIDEO_TITLE_MESG_DEF_SIZE 14
|
4644
|
+
#define FIT_VIDEO_TITLE_MESG_TEXT_COUNT 80
|
4645
|
+
|
4646
|
+
typedef struct
|
4647
|
+
{
|
4648
|
+
FIT_STRING text[FIT_VIDEO_TITLE_MESG_TEXT_COUNT]; //
|
4649
|
+
FIT_MESSAGE_INDEX message_index; // Long titles will be split into multiple parts
|
4650
|
+
FIT_UINT16 message_count; // Total number of title parts
|
4651
|
+
} FIT_VIDEO_TITLE_MESG;
|
4652
|
+
|
4653
|
+
typedef enum
|
4654
|
+
{
|
4655
|
+
FIT_VIDEO_TITLE_FIELD_NUM_TEXT = 1,
|
4656
|
+
FIT_VIDEO_TITLE_FIELD_NUM_MESSAGE_INDEX = 254,
|
4657
|
+
FIT_VIDEO_TITLE_FIELD_NUM_MESSAGE_COUNT = 0
|
4658
|
+
} FIT_VIDEO_TITLE_FIELD_NUM;
|
4659
|
+
|
4660
|
+
typedef enum
|
4661
|
+
{
|
4662
|
+
FIT_VIDEO_TITLE_MESG_TEXT,
|
4663
|
+
FIT_VIDEO_TITLE_MESG_MESSAGE_INDEX,
|
4664
|
+
FIT_VIDEO_TITLE_MESG_MESSAGE_COUNT,
|
4665
|
+
FIT_VIDEO_TITLE_MESG_FIELDS
|
4666
|
+
} FIT_VIDEO_TITLE_MESG_FIELD;
|
4667
|
+
|
4668
|
+
typedef struct
|
4669
|
+
{
|
4670
|
+
FIT_UINT8 reserved_1;
|
4671
|
+
FIT_UINT8 arch;
|
4672
|
+
FIT_MESG_NUM global_mesg_num;
|
4673
|
+
FIT_UINT8 num_fields;
|
4674
|
+
FIT_UINT8 fields[FIT_VIDEO_TITLE_MESG_FIELDS * FIT_FIELD_DEF_SIZE];
|
4675
|
+
} FIT_VIDEO_TITLE_MESG_DEF;
|
4676
|
+
|
4677
|
+
// video_description message
|
4678
|
+
|
4679
|
+
#define FIT_VIDEO_DESCRIPTION_MESG_SIZE 254
|
4680
|
+
#define FIT_VIDEO_DESCRIPTION_MESG_DEF_SIZE 14
|
4681
|
+
#define FIT_VIDEO_DESCRIPTION_MESG_TEXT_COUNT 250
|
4682
|
+
|
4683
|
+
typedef struct
|
4684
|
+
{
|
4685
|
+
FIT_MESSAGE_INDEX message_index; // Long descriptions will be split into multiple parts
|
4686
|
+
FIT_UINT16 message_count; // Total number of description parts
|
4687
|
+
FIT_STRING text[FIT_VIDEO_DESCRIPTION_MESG_TEXT_COUNT]; //
|
4688
|
+
} FIT_VIDEO_DESCRIPTION_MESG;
|
4689
|
+
|
4690
|
+
typedef enum
|
4691
|
+
{
|
4692
|
+
FIT_VIDEO_DESCRIPTION_FIELD_NUM_MESSAGE_INDEX = 254,
|
4693
|
+
FIT_VIDEO_DESCRIPTION_FIELD_NUM_MESSAGE_COUNT = 0,
|
4694
|
+
FIT_VIDEO_DESCRIPTION_FIELD_NUM_TEXT = 1
|
4695
|
+
} FIT_VIDEO_DESCRIPTION_FIELD_NUM;
|
4696
|
+
|
4697
|
+
typedef enum
|
4698
|
+
{
|
4699
|
+
FIT_VIDEO_DESCRIPTION_MESG_MESSAGE_INDEX,
|
4700
|
+
FIT_VIDEO_DESCRIPTION_MESG_MESSAGE_COUNT,
|
4701
|
+
FIT_VIDEO_DESCRIPTION_MESG_TEXT,
|
4702
|
+
FIT_VIDEO_DESCRIPTION_MESG_FIELDS
|
4703
|
+
} FIT_VIDEO_DESCRIPTION_MESG_FIELD;
|
4704
|
+
|
4705
|
+
typedef struct
|
4706
|
+
{
|
4707
|
+
FIT_UINT8 reserved_1;
|
4708
|
+
FIT_UINT8 arch;
|
4709
|
+
FIT_MESG_NUM global_mesg_num;
|
4710
|
+
FIT_UINT8 num_fields;
|
4711
|
+
FIT_UINT8 fields[FIT_VIDEO_DESCRIPTION_MESG_FIELDS * FIT_FIELD_DEF_SIZE];
|
4712
|
+
} FIT_VIDEO_DESCRIPTION_MESG_DEF;
|
4713
|
+
|
3038
4714
|
// course message
|
3039
4715
|
|
3040
|
-
#define FIT_COURSE_MESG_SIZE
|
3041
|
-
#define FIT_COURSE_MESG_DEF_SIZE
|
4716
|
+
#define FIT_COURSE_MESG_SIZE 22
|
4717
|
+
#define FIT_COURSE_MESG_DEF_SIZE 17
|
3042
4718
|
#define FIT_COURSE_MESG_NAME_COUNT 16
|
3043
4719
|
|
3044
4720
|
typedef struct
|
3045
4721
|
{
|
3046
|
-
FIT_STRING name[FIT_COURSE_MESG_NAME_COUNT]; //
|
3047
|
-
FIT_COURSE_CAPABILITIES capabilities; //
|
3048
|
-
FIT_SPORT sport; //
|
4722
|
+
FIT_STRING name[FIT_COURSE_MESG_NAME_COUNT]; //
|
4723
|
+
FIT_COURSE_CAPABILITIES capabilities; //
|
4724
|
+
FIT_SPORT sport; //
|
4725
|
+
FIT_SUB_SPORT sub_sport; //
|
3049
4726
|
} FIT_COURSE_MESG;
|
3050
4727
|
|
3051
4728
|
typedef enum
|
3052
4729
|
{
|
3053
4730
|
FIT_COURSE_FIELD_NUM_NAME = 5,
|
3054
4731
|
FIT_COURSE_FIELD_NUM_CAPABILITIES = 6,
|
3055
|
-
FIT_COURSE_FIELD_NUM_SPORT = 4
|
4732
|
+
FIT_COURSE_FIELD_NUM_SPORT = 4,
|
4733
|
+
FIT_COURSE_FIELD_NUM_SUB_SPORT = 7
|
3056
4734
|
} FIT_COURSE_FIELD_NUM;
|
3057
4735
|
|
3058
4736
|
typedef enum
|
@@ -3060,6 +4738,7 @@ typedef enum
|
|
3060
4738
|
FIT_COURSE_MESG_NAME,
|
3061
4739
|
FIT_COURSE_MESG_CAPABILITIES,
|
3062
4740
|
FIT_COURSE_MESG_SPORT,
|
4741
|
+
FIT_COURSE_MESG_SUB_SPORT,
|
3063
4742
|
FIT_COURSE_MESG_FIELDS
|
3064
4743
|
} FIT_COURSE_MESG_FIELD;
|
3065
4744
|
|
@@ -3074,19 +4753,20 @@ typedef struct
|
|
3074
4753
|
|
3075
4754
|
// course_point message
|
3076
4755
|
|
3077
|
-
#define FIT_COURSE_POINT_MESG_SIZE
|
3078
|
-
#define FIT_COURSE_POINT_MESG_DEF_SIZE
|
4756
|
+
#define FIT_COURSE_POINT_MESG_SIZE 36
|
4757
|
+
#define FIT_COURSE_POINT_MESG_DEF_SIZE 29
|
3079
4758
|
#define FIT_COURSE_POINT_MESG_NAME_COUNT 16
|
3080
4759
|
|
3081
4760
|
typedef struct
|
3082
4761
|
{
|
3083
|
-
FIT_DATE_TIME timestamp; //
|
3084
|
-
FIT_SINT32 position_lat; // semicircles,
|
3085
|
-
FIT_SINT32 position_long; // semicircles,
|
3086
|
-
FIT_UINT32 distance; // 100 * m,
|
3087
|
-
FIT_STRING name[FIT_COURSE_POINT_MESG_NAME_COUNT]; //
|
3088
|
-
FIT_MESSAGE_INDEX message_index; //
|
3089
|
-
FIT_COURSE_POINT type; //
|
4762
|
+
FIT_DATE_TIME timestamp; //
|
4763
|
+
FIT_SINT32 position_lat; // 1 * semicircles + 0,
|
4764
|
+
FIT_SINT32 position_long; // 1 * semicircles + 0,
|
4765
|
+
FIT_UINT32 distance; // 100 * m + 0,
|
4766
|
+
FIT_STRING name[FIT_COURSE_POINT_MESG_NAME_COUNT]; //
|
4767
|
+
FIT_MESSAGE_INDEX message_index; //
|
4768
|
+
FIT_COURSE_POINT type; //
|
4769
|
+
FIT_BOOL favorite; //
|
3090
4770
|
} FIT_COURSE_POINT_MESG;
|
3091
4771
|
|
3092
4772
|
typedef enum
|
@@ -3097,7 +4777,8 @@ typedef enum
|
|
3097
4777
|
FIT_COURSE_POINT_FIELD_NUM_DISTANCE = 4,
|
3098
4778
|
FIT_COURSE_POINT_FIELD_NUM_NAME = 6,
|
3099
4779
|
FIT_COURSE_POINT_FIELD_NUM_MESSAGE_INDEX = 254,
|
3100
|
-
FIT_COURSE_POINT_FIELD_NUM_TYPE = 5
|
4780
|
+
FIT_COURSE_POINT_FIELD_NUM_TYPE = 5,
|
4781
|
+
FIT_COURSE_POINT_FIELD_NUM_FAVORITE = 8
|
3101
4782
|
} FIT_COURSE_POINT_FIELD_NUM;
|
3102
4783
|
|
3103
4784
|
typedef enum
|
@@ -3109,6 +4790,7 @@ typedef enum
|
|
3109
4790
|
FIT_COURSE_POINT_MESG_NAME,
|
3110
4791
|
FIT_COURSE_POINT_MESG_MESSAGE_INDEX,
|
3111
4792
|
FIT_COURSE_POINT_MESG_TYPE,
|
4793
|
+
FIT_COURSE_POINT_MESG_FAVORITE,
|
3112
4794
|
FIT_COURSE_POINT_MESG_FIELDS
|
3113
4795
|
} FIT_COURSE_POINT_MESG_FIELD;
|
3114
4796
|
|
@@ -3121,6 +4803,458 @@ typedef struct
|
|
3121
4803
|
FIT_UINT8 fields[FIT_COURSE_POINT_MESG_FIELDS * FIT_FIELD_DEF_SIZE];
|
3122
4804
|
} FIT_COURSE_POINT_MESG_DEF;
|
3123
4805
|
|
4806
|
+
// segment_id message
|
4807
|
+
|
4808
|
+
#define FIT_SEGMENT_ID_MESG_SIZE 15
|
4809
|
+
#define FIT_SEGMENT_ID_MESG_DEF_SIZE 32
|
4810
|
+
#define FIT_SEGMENT_ID_MESG_NAME_COUNT 1
|
4811
|
+
#define FIT_SEGMENT_ID_MESG_UUID_COUNT 1
|
4812
|
+
|
4813
|
+
typedef struct
|
4814
|
+
{
|
4815
|
+
FIT_UINT32 user_profile_primary_key; // Primary key of the user that created the segment
|
4816
|
+
FIT_UINT32 device_id; // ID of the device that created the segment
|
4817
|
+
FIT_STRING name[FIT_SEGMENT_ID_MESG_NAME_COUNT]; // Friendly name assigned to segment
|
4818
|
+
FIT_STRING uuid[FIT_SEGMENT_ID_MESG_UUID_COUNT]; // UUID of the segment
|
4819
|
+
FIT_SPORT sport; // Sport associated with the segment
|
4820
|
+
FIT_BOOL enabled; // Segment enabled for evaluation
|
4821
|
+
FIT_UINT8 default_race_leader; // Index for the Leader Board entry selected as the default race participant
|
4822
|
+
FIT_SEGMENT_DELETE_STATUS delete_status; // Indicates if any segments should be deleted
|
4823
|
+
FIT_SEGMENT_SELECTION_TYPE selection_type; // Indicates how the segment was selected to be sent to the device
|
4824
|
+
} FIT_SEGMENT_ID_MESG;
|
4825
|
+
|
4826
|
+
typedef enum
|
4827
|
+
{
|
4828
|
+
FIT_SEGMENT_ID_FIELD_NUM_USER_PROFILE_PRIMARY_KEY = 4,
|
4829
|
+
FIT_SEGMENT_ID_FIELD_NUM_DEVICE_ID = 5,
|
4830
|
+
FIT_SEGMENT_ID_FIELD_NUM_NAME = 0,
|
4831
|
+
FIT_SEGMENT_ID_FIELD_NUM_UUID = 1,
|
4832
|
+
FIT_SEGMENT_ID_FIELD_NUM_SPORT = 2,
|
4833
|
+
FIT_SEGMENT_ID_FIELD_NUM_ENABLED = 3,
|
4834
|
+
FIT_SEGMENT_ID_FIELD_NUM_DEFAULT_RACE_LEADER = 6,
|
4835
|
+
FIT_SEGMENT_ID_FIELD_NUM_DELETE_STATUS = 7,
|
4836
|
+
FIT_SEGMENT_ID_FIELD_NUM_SELECTION_TYPE = 8
|
4837
|
+
} FIT_SEGMENT_ID_FIELD_NUM;
|
4838
|
+
|
4839
|
+
typedef enum
|
4840
|
+
{
|
4841
|
+
FIT_SEGMENT_ID_MESG_USER_PROFILE_PRIMARY_KEY,
|
4842
|
+
FIT_SEGMENT_ID_MESG_DEVICE_ID,
|
4843
|
+
FIT_SEGMENT_ID_MESG_NAME,
|
4844
|
+
FIT_SEGMENT_ID_MESG_UUID,
|
4845
|
+
FIT_SEGMENT_ID_MESG_SPORT,
|
4846
|
+
FIT_SEGMENT_ID_MESG_ENABLED,
|
4847
|
+
FIT_SEGMENT_ID_MESG_DEFAULT_RACE_LEADER,
|
4848
|
+
FIT_SEGMENT_ID_MESG_DELETE_STATUS,
|
4849
|
+
FIT_SEGMENT_ID_MESG_SELECTION_TYPE,
|
4850
|
+
FIT_SEGMENT_ID_MESG_FIELDS
|
4851
|
+
} FIT_SEGMENT_ID_MESG_FIELD;
|
4852
|
+
|
4853
|
+
typedef struct
|
4854
|
+
{
|
4855
|
+
FIT_UINT8 reserved_1;
|
4856
|
+
FIT_UINT8 arch;
|
4857
|
+
FIT_MESG_NUM global_mesg_num;
|
4858
|
+
FIT_UINT8 num_fields;
|
4859
|
+
FIT_UINT8 fields[FIT_SEGMENT_ID_MESG_FIELDS * FIT_FIELD_DEF_SIZE];
|
4860
|
+
} FIT_SEGMENT_ID_MESG_DEF;
|
4861
|
+
|
4862
|
+
// segment_leaderboard_entry message
|
4863
|
+
|
4864
|
+
#define FIT_SEGMENT_LEADERBOARD_ENTRY_MESG_SIZE 16
|
4865
|
+
#define FIT_SEGMENT_LEADERBOARD_ENTRY_MESG_DEF_SIZE 23
|
4866
|
+
#define FIT_SEGMENT_LEADERBOARD_ENTRY_MESG_NAME_COUNT 1
|
4867
|
+
|
4868
|
+
typedef struct
|
4869
|
+
{
|
4870
|
+
FIT_UINT32 group_primary_key; // Primary user ID of this leader
|
4871
|
+
FIT_UINT32 activity_id; // ID of the activity associated with this leader time
|
4872
|
+
FIT_UINT32 segment_time; // 1000 * s + 0, Segment Time (includes pauses)
|
4873
|
+
FIT_MESSAGE_INDEX message_index; //
|
4874
|
+
FIT_STRING name[FIT_SEGMENT_LEADERBOARD_ENTRY_MESG_NAME_COUNT]; // Friendly name assigned to leader
|
4875
|
+
FIT_SEGMENT_LEADERBOARD_TYPE type; // Leader classification
|
4876
|
+
} FIT_SEGMENT_LEADERBOARD_ENTRY_MESG;
|
4877
|
+
|
4878
|
+
typedef enum
|
4879
|
+
{
|
4880
|
+
FIT_SEGMENT_LEADERBOARD_ENTRY_FIELD_NUM_GROUP_PRIMARY_KEY = 2,
|
4881
|
+
FIT_SEGMENT_LEADERBOARD_ENTRY_FIELD_NUM_ACTIVITY_ID = 3,
|
4882
|
+
FIT_SEGMENT_LEADERBOARD_ENTRY_FIELD_NUM_SEGMENT_TIME = 4,
|
4883
|
+
FIT_SEGMENT_LEADERBOARD_ENTRY_FIELD_NUM_MESSAGE_INDEX = 254,
|
4884
|
+
FIT_SEGMENT_LEADERBOARD_ENTRY_FIELD_NUM_NAME = 0,
|
4885
|
+
FIT_SEGMENT_LEADERBOARD_ENTRY_FIELD_NUM_TYPE = 1
|
4886
|
+
} FIT_SEGMENT_LEADERBOARD_ENTRY_FIELD_NUM;
|
4887
|
+
|
4888
|
+
typedef enum
|
4889
|
+
{
|
4890
|
+
FIT_SEGMENT_LEADERBOARD_ENTRY_MESG_GROUP_PRIMARY_KEY,
|
4891
|
+
FIT_SEGMENT_LEADERBOARD_ENTRY_MESG_ACTIVITY_ID,
|
4892
|
+
FIT_SEGMENT_LEADERBOARD_ENTRY_MESG_SEGMENT_TIME,
|
4893
|
+
FIT_SEGMENT_LEADERBOARD_ENTRY_MESG_MESSAGE_INDEX,
|
4894
|
+
FIT_SEGMENT_LEADERBOARD_ENTRY_MESG_NAME,
|
4895
|
+
FIT_SEGMENT_LEADERBOARD_ENTRY_MESG_TYPE,
|
4896
|
+
FIT_SEGMENT_LEADERBOARD_ENTRY_MESG_FIELDS
|
4897
|
+
} FIT_SEGMENT_LEADERBOARD_ENTRY_MESG_FIELD;
|
4898
|
+
|
4899
|
+
typedef struct
|
4900
|
+
{
|
4901
|
+
FIT_UINT8 reserved_1;
|
4902
|
+
FIT_UINT8 arch;
|
4903
|
+
FIT_MESG_NUM global_mesg_num;
|
4904
|
+
FIT_UINT8 num_fields;
|
4905
|
+
FIT_UINT8 fields[FIT_SEGMENT_LEADERBOARD_ENTRY_MESG_FIELDS * FIT_FIELD_DEF_SIZE];
|
4906
|
+
} FIT_SEGMENT_LEADERBOARD_ENTRY_MESG_DEF;
|
4907
|
+
|
4908
|
+
// segment_point message
|
4909
|
+
|
4910
|
+
#define FIT_SEGMENT_POINT_MESG_SIZE 20
|
4911
|
+
#define FIT_SEGMENT_POINT_MESG_DEF_SIZE 23
|
4912
|
+
#define FIT_SEGMENT_POINT_MESG_LEADER_TIME_COUNT 1
|
4913
|
+
|
4914
|
+
typedef struct
|
4915
|
+
{
|
4916
|
+
FIT_SINT32 position_lat; // 1 * semicircles + 0,
|
4917
|
+
FIT_SINT32 position_long; // 1 * semicircles + 0,
|
4918
|
+
FIT_UINT32 distance; // 100 * m + 0, Accumulated distance along the segment at the described point
|
4919
|
+
FIT_UINT32 leader_time[FIT_SEGMENT_POINT_MESG_LEADER_TIME_COUNT]; // 1000 * s + 0, Accumualted time each leader board member required to reach the described point. This value is zero for all leader board members at the starting point of the segment.
|
4920
|
+
FIT_MESSAGE_INDEX message_index; //
|
4921
|
+
FIT_UINT16 altitude; // 5 * m + 500, Accumulated altitude along the segment at the described point
|
4922
|
+
} FIT_SEGMENT_POINT_MESG;
|
4923
|
+
|
4924
|
+
typedef enum
|
4925
|
+
{
|
4926
|
+
FIT_SEGMENT_POINT_FIELD_NUM_POSITION_LAT = 1,
|
4927
|
+
FIT_SEGMENT_POINT_FIELD_NUM_POSITION_LONG = 2,
|
4928
|
+
FIT_SEGMENT_POINT_FIELD_NUM_DISTANCE = 3,
|
4929
|
+
FIT_SEGMENT_POINT_FIELD_NUM_LEADER_TIME = 5,
|
4930
|
+
FIT_SEGMENT_POINT_FIELD_NUM_MESSAGE_INDEX = 254,
|
4931
|
+
FIT_SEGMENT_POINT_FIELD_NUM_ALTITUDE = 4
|
4932
|
+
} FIT_SEGMENT_POINT_FIELD_NUM;
|
4933
|
+
|
4934
|
+
typedef enum
|
4935
|
+
{
|
4936
|
+
FIT_SEGMENT_POINT_MESG_POSITION_LAT,
|
4937
|
+
FIT_SEGMENT_POINT_MESG_POSITION_LONG,
|
4938
|
+
FIT_SEGMENT_POINT_MESG_DISTANCE,
|
4939
|
+
FIT_SEGMENT_POINT_MESG_LEADER_TIME,
|
4940
|
+
FIT_SEGMENT_POINT_MESG_MESSAGE_INDEX,
|
4941
|
+
FIT_SEGMENT_POINT_MESG_ALTITUDE,
|
4942
|
+
FIT_SEGMENT_POINT_MESG_FIELDS
|
4943
|
+
} FIT_SEGMENT_POINT_MESG_FIELD;
|
4944
|
+
|
4945
|
+
typedef struct
|
4946
|
+
{
|
4947
|
+
FIT_UINT8 reserved_1;
|
4948
|
+
FIT_UINT8 arch;
|
4949
|
+
FIT_MESG_NUM global_mesg_num;
|
4950
|
+
FIT_UINT8 num_fields;
|
4951
|
+
FIT_UINT8 fields[FIT_SEGMENT_POINT_MESG_FIELDS * FIT_FIELD_DEF_SIZE];
|
4952
|
+
} FIT_SEGMENT_POINT_MESG_DEF;
|
4953
|
+
|
4954
|
+
// segment_lap message
|
4955
|
+
|
4956
|
+
#define FIT_SEGMENT_LAP_MESG_SIZE 210
|
4957
|
+
#define FIT_SEGMENT_LAP_MESG_DEF_SIZE 224
|
4958
|
+
#define FIT_SEGMENT_LAP_MESG_NAME_COUNT 16
|
4959
|
+
#define FIT_SEGMENT_LAP_MESG_TIME_IN_HR_ZONE_COUNT 1
|
4960
|
+
#define FIT_SEGMENT_LAP_MESG_TIME_IN_SPEED_ZONE_COUNT 1
|
4961
|
+
#define FIT_SEGMENT_LAP_MESG_TIME_IN_CADENCE_ZONE_COUNT 1
|
4962
|
+
#define FIT_SEGMENT_LAP_MESG_TIME_IN_POWER_ZONE_COUNT 1
|
4963
|
+
#define FIT_SEGMENT_LAP_MESG_UUID_COUNT 33
|
4964
|
+
|
4965
|
+
typedef struct
|
4966
|
+
{
|
4967
|
+
FIT_DATE_TIME timestamp; // 1 * s + 0, Lap end time.
|
4968
|
+
FIT_DATE_TIME start_time; //
|
4969
|
+
FIT_SINT32 start_position_lat; // 1 * semicircles + 0,
|
4970
|
+
FIT_SINT32 start_position_long; // 1 * semicircles + 0,
|
4971
|
+
FIT_SINT32 end_position_lat; // 1 * semicircles + 0,
|
4972
|
+
FIT_SINT32 end_position_long; // 1 * semicircles + 0,
|
4973
|
+
FIT_UINT32 total_elapsed_time; // 1000 * s + 0, Time (includes pauses)
|
4974
|
+
FIT_UINT32 total_timer_time; // 1000 * s + 0, Timer Time (excludes pauses)
|
4975
|
+
FIT_UINT32 total_distance; // 100 * m + 0,
|
4976
|
+
FIT_UINT32 total_cycles; // 1 * cycles + 0,
|
4977
|
+
FIT_SINT32 nec_lat; // 1 * semicircles + 0, North east corner latitude.
|
4978
|
+
FIT_SINT32 nec_long; // 1 * semicircles + 0, North east corner longitude.
|
4979
|
+
FIT_SINT32 swc_lat; // 1 * semicircles + 0, South west corner latitude.
|
4980
|
+
FIT_SINT32 swc_long; // 1 * semicircles + 0, South west corner latitude.
|
4981
|
+
FIT_STRING name[FIT_SEGMENT_LAP_MESG_NAME_COUNT]; //
|
4982
|
+
FIT_UINT32 total_work; // 1 * J + 0,
|
4983
|
+
FIT_UINT32 total_moving_time; // 1000 * s + 0,
|
4984
|
+
FIT_UINT32 time_in_hr_zone[FIT_SEGMENT_LAP_MESG_TIME_IN_HR_ZONE_COUNT]; // 1000 * s + 0,
|
4985
|
+
FIT_UINT32 time_in_speed_zone[FIT_SEGMENT_LAP_MESG_TIME_IN_SPEED_ZONE_COUNT]; // 1000 * s + 0,
|
4986
|
+
FIT_UINT32 time_in_cadence_zone[FIT_SEGMENT_LAP_MESG_TIME_IN_CADENCE_ZONE_COUNT]; // 1000 * s + 0,
|
4987
|
+
FIT_UINT32 time_in_power_zone[FIT_SEGMENT_LAP_MESG_TIME_IN_POWER_ZONE_COUNT]; // 1000 * s + 0,
|
4988
|
+
FIT_UINT32 active_time; // 1000 * s + 0,
|
4989
|
+
FIT_MESSAGE_INDEX message_index; //
|
4990
|
+
FIT_UINT16 total_calories; // 1 * kcal + 0,
|
4991
|
+
FIT_UINT16 total_fat_calories; // 1 * kcal + 0, If New Leaf
|
4992
|
+
FIT_UINT16 avg_speed; // 1000 * m/s + 0,
|
4993
|
+
FIT_UINT16 max_speed; // 1000 * m/s + 0,
|
4994
|
+
FIT_UINT16 avg_power; // 1 * watts + 0, total_power / total_timer_time if non_zero_avg_power otherwise total_power / total_elapsed_time
|
4995
|
+
FIT_UINT16 max_power; // 1 * watts + 0,
|
4996
|
+
FIT_UINT16 total_ascent; // 1 * m + 0,
|
4997
|
+
FIT_UINT16 total_descent; // 1 * m + 0,
|
4998
|
+
FIT_UINT16 normalized_power; // 1 * watts + 0,
|
4999
|
+
FIT_LEFT_RIGHT_BALANCE_100 left_right_balance; //
|
5000
|
+
FIT_UINT16 avg_altitude; // 5 * m + 500,
|
5001
|
+
FIT_UINT16 max_altitude; // 5 * m + 500,
|
5002
|
+
FIT_SINT16 avg_grade; // 100 * % + 0,
|
5003
|
+
FIT_SINT16 avg_pos_grade; // 100 * % + 0,
|
5004
|
+
FIT_SINT16 avg_neg_grade; // 100 * % + 0,
|
5005
|
+
FIT_SINT16 max_pos_grade; // 100 * % + 0,
|
5006
|
+
FIT_SINT16 max_neg_grade; // 100 * % + 0,
|
5007
|
+
FIT_SINT16 avg_pos_vertical_speed; // 1000 * m/s + 0,
|
5008
|
+
FIT_SINT16 avg_neg_vertical_speed; // 1000 * m/s + 0,
|
5009
|
+
FIT_SINT16 max_pos_vertical_speed; // 1000 * m/s + 0,
|
5010
|
+
FIT_SINT16 max_neg_vertical_speed; // 1000 * m/s + 0,
|
5011
|
+
FIT_UINT16 repetition_num; //
|
5012
|
+
FIT_UINT16 min_altitude; // 5 * m + 500,
|
5013
|
+
FIT_MESSAGE_INDEX wkt_step_index; //
|
5014
|
+
FIT_UINT16 front_gear_shift_count; //
|
5015
|
+
FIT_UINT16 rear_gear_shift_count; //
|
5016
|
+
FIT_EVENT event; //
|
5017
|
+
FIT_EVENT_TYPE event_type; //
|
5018
|
+
FIT_UINT8 avg_heart_rate; // 1 * bpm + 0,
|
5019
|
+
FIT_UINT8 max_heart_rate; // 1 * bpm + 0,
|
5020
|
+
FIT_UINT8 avg_cadence; // 1 * rpm + 0, total_cycles / total_timer_time if non_zero_avg_cadence otherwise total_cycles / total_elapsed_time
|
5021
|
+
FIT_UINT8 max_cadence; // 1 * rpm + 0,
|
5022
|
+
FIT_SPORT sport; //
|
5023
|
+
FIT_UINT8 event_group; //
|
5024
|
+
FIT_SUB_SPORT sub_sport; //
|
5025
|
+
FIT_UINT8 gps_accuracy; // 1 * m + 0,
|
5026
|
+
FIT_SINT8 avg_temperature; // 1 * C + 0,
|
5027
|
+
FIT_SINT8 max_temperature; // 1 * C + 0,
|
5028
|
+
FIT_UINT8 min_heart_rate; // 1 * bpm + 0,
|
5029
|
+
FIT_SPORT_EVENT sport_event; //
|
5030
|
+
FIT_UINT8 avg_left_torque_effectiveness; // 2 * percent + 0,
|
5031
|
+
FIT_UINT8 avg_right_torque_effectiveness; // 2 * percent + 0,
|
5032
|
+
FIT_UINT8 avg_left_pedal_smoothness; // 2 * percent + 0,
|
5033
|
+
FIT_UINT8 avg_right_pedal_smoothness; // 2 * percent + 0,
|
5034
|
+
FIT_UINT8 avg_combined_pedal_smoothness; // 2 * percent + 0,
|
5035
|
+
FIT_SEGMENT_LAP_STATUS status; //
|
5036
|
+
FIT_STRING uuid[FIT_SEGMENT_LAP_MESG_UUID_COUNT]; //
|
5037
|
+
FIT_UINT8 avg_fractional_cadence; // 128 * rpm + 0, fractional part of the avg_cadence
|
5038
|
+
FIT_UINT8 max_fractional_cadence; // 128 * rpm + 0, fractional part of the max_cadence
|
5039
|
+
FIT_UINT8 total_fractional_cycles; // 128 * cycles + 0, fractional part of the total_cycles
|
5040
|
+
} FIT_SEGMENT_LAP_MESG;
|
5041
|
+
|
5042
|
+
typedef enum
|
5043
|
+
{
|
5044
|
+
FIT_SEGMENT_LAP_FIELD_NUM_TIMESTAMP = 253,
|
5045
|
+
FIT_SEGMENT_LAP_FIELD_NUM_START_TIME = 2,
|
5046
|
+
FIT_SEGMENT_LAP_FIELD_NUM_START_POSITION_LAT = 3,
|
5047
|
+
FIT_SEGMENT_LAP_FIELD_NUM_START_POSITION_LONG = 4,
|
5048
|
+
FIT_SEGMENT_LAP_FIELD_NUM_END_POSITION_LAT = 5,
|
5049
|
+
FIT_SEGMENT_LAP_FIELD_NUM_END_POSITION_LONG = 6,
|
5050
|
+
FIT_SEGMENT_LAP_FIELD_NUM_TOTAL_ELAPSED_TIME = 7,
|
5051
|
+
FIT_SEGMENT_LAP_FIELD_NUM_TOTAL_TIMER_TIME = 8,
|
5052
|
+
FIT_SEGMENT_LAP_FIELD_NUM_TOTAL_DISTANCE = 9,
|
5053
|
+
FIT_SEGMENT_LAP_FIELD_NUM_TOTAL_CYCLES = 10,
|
5054
|
+
FIT_SEGMENT_LAP_FIELD_NUM_NEC_LAT = 25,
|
5055
|
+
FIT_SEGMENT_LAP_FIELD_NUM_NEC_LONG = 26,
|
5056
|
+
FIT_SEGMENT_LAP_FIELD_NUM_SWC_LAT = 27,
|
5057
|
+
FIT_SEGMENT_LAP_FIELD_NUM_SWC_LONG = 28,
|
5058
|
+
FIT_SEGMENT_LAP_FIELD_NUM_NAME = 29,
|
5059
|
+
FIT_SEGMENT_LAP_FIELD_NUM_TOTAL_WORK = 33,
|
5060
|
+
FIT_SEGMENT_LAP_FIELD_NUM_TOTAL_MOVING_TIME = 44,
|
5061
|
+
FIT_SEGMENT_LAP_FIELD_NUM_TIME_IN_HR_ZONE = 49,
|
5062
|
+
FIT_SEGMENT_LAP_FIELD_NUM_TIME_IN_SPEED_ZONE = 50,
|
5063
|
+
FIT_SEGMENT_LAP_FIELD_NUM_TIME_IN_CADENCE_ZONE = 51,
|
5064
|
+
FIT_SEGMENT_LAP_FIELD_NUM_TIME_IN_POWER_ZONE = 52,
|
5065
|
+
FIT_SEGMENT_LAP_FIELD_NUM_ACTIVE_TIME = 56,
|
5066
|
+
FIT_SEGMENT_LAP_FIELD_NUM_MESSAGE_INDEX = 254,
|
5067
|
+
FIT_SEGMENT_LAP_FIELD_NUM_TOTAL_CALORIES = 11,
|
5068
|
+
FIT_SEGMENT_LAP_FIELD_NUM_TOTAL_FAT_CALORIES = 12,
|
5069
|
+
FIT_SEGMENT_LAP_FIELD_NUM_AVG_SPEED = 13,
|
5070
|
+
FIT_SEGMENT_LAP_FIELD_NUM_MAX_SPEED = 14,
|
5071
|
+
FIT_SEGMENT_LAP_FIELD_NUM_AVG_POWER = 19,
|
5072
|
+
FIT_SEGMENT_LAP_FIELD_NUM_MAX_POWER = 20,
|
5073
|
+
FIT_SEGMENT_LAP_FIELD_NUM_TOTAL_ASCENT = 21,
|
5074
|
+
FIT_SEGMENT_LAP_FIELD_NUM_TOTAL_DESCENT = 22,
|
5075
|
+
FIT_SEGMENT_LAP_FIELD_NUM_NORMALIZED_POWER = 30,
|
5076
|
+
FIT_SEGMENT_LAP_FIELD_NUM_LEFT_RIGHT_BALANCE = 31,
|
5077
|
+
FIT_SEGMENT_LAP_FIELD_NUM_AVG_ALTITUDE = 34,
|
5078
|
+
FIT_SEGMENT_LAP_FIELD_NUM_MAX_ALTITUDE = 35,
|
5079
|
+
FIT_SEGMENT_LAP_FIELD_NUM_AVG_GRADE = 37,
|
5080
|
+
FIT_SEGMENT_LAP_FIELD_NUM_AVG_POS_GRADE = 38,
|
5081
|
+
FIT_SEGMENT_LAP_FIELD_NUM_AVG_NEG_GRADE = 39,
|
5082
|
+
FIT_SEGMENT_LAP_FIELD_NUM_MAX_POS_GRADE = 40,
|
5083
|
+
FIT_SEGMENT_LAP_FIELD_NUM_MAX_NEG_GRADE = 41,
|
5084
|
+
FIT_SEGMENT_LAP_FIELD_NUM_AVG_POS_VERTICAL_SPEED = 45,
|
5085
|
+
FIT_SEGMENT_LAP_FIELD_NUM_AVG_NEG_VERTICAL_SPEED = 46,
|
5086
|
+
FIT_SEGMENT_LAP_FIELD_NUM_MAX_POS_VERTICAL_SPEED = 47,
|
5087
|
+
FIT_SEGMENT_LAP_FIELD_NUM_MAX_NEG_VERTICAL_SPEED = 48,
|
5088
|
+
FIT_SEGMENT_LAP_FIELD_NUM_REPETITION_NUM = 53,
|
5089
|
+
FIT_SEGMENT_LAP_FIELD_NUM_MIN_ALTITUDE = 54,
|
5090
|
+
FIT_SEGMENT_LAP_FIELD_NUM_WKT_STEP_INDEX = 57,
|
5091
|
+
FIT_SEGMENT_LAP_FIELD_NUM_FRONT_GEAR_SHIFT_COUNT = 69,
|
5092
|
+
FIT_SEGMENT_LAP_FIELD_NUM_REAR_GEAR_SHIFT_COUNT = 70,
|
5093
|
+
FIT_SEGMENT_LAP_FIELD_NUM_EVENT = 0,
|
5094
|
+
FIT_SEGMENT_LAP_FIELD_NUM_EVENT_TYPE = 1,
|
5095
|
+
FIT_SEGMENT_LAP_FIELD_NUM_AVG_HEART_RATE = 15,
|
5096
|
+
FIT_SEGMENT_LAP_FIELD_NUM_MAX_HEART_RATE = 16,
|
5097
|
+
FIT_SEGMENT_LAP_FIELD_NUM_AVG_CADENCE = 17,
|
5098
|
+
FIT_SEGMENT_LAP_FIELD_NUM_MAX_CADENCE = 18,
|
5099
|
+
FIT_SEGMENT_LAP_FIELD_NUM_SPORT = 23,
|
5100
|
+
FIT_SEGMENT_LAP_FIELD_NUM_EVENT_GROUP = 24,
|
5101
|
+
FIT_SEGMENT_LAP_FIELD_NUM_SUB_SPORT = 32,
|
5102
|
+
FIT_SEGMENT_LAP_FIELD_NUM_GPS_ACCURACY = 36,
|
5103
|
+
FIT_SEGMENT_LAP_FIELD_NUM_AVG_TEMPERATURE = 42,
|
5104
|
+
FIT_SEGMENT_LAP_FIELD_NUM_MAX_TEMPERATURE = 43,
|
5105
|
+
FIT_SEGMENT_LAP_FIELD_NUM_MIN_HEART_RATE = 55,
|
5106
|
+
FIT_SEGMENT_LAP_FIELD_NUM_SPORT_EVENT = 58,
|
5107
|
+
FIT_SEGMENT_LAP_FIELD_NUM_AVG_LEFT_TORQUE_EFFECTIVENESS = 59,
|
5108
|
+
FIT_SEGMENT_LAP_FIELD_NUM_AVG_RIGHT_TORQUE_EFFECTIVENESS = 60,
|
5109
|
+
FIT_SEGMENT_LAP_FIELD_NUM_AVG_LEFT_PEDAL_SMOOTHNESS = 61,
|
5110
|
+
FIT_SEGMENT_LAP_FIELD_NUM_AVG_RIGHT_PEDAL_SMOOTHNESS = 62,
|
5111
|
+
FIT_SEGMENT_LAP_FIELD_NUM_AVG_COMBINED_PEDAL_SMOOTHNESS = 63,
|
5112
|
+
FIT_SEGMENT_LAP_FIELD_NUM_STATUS = 64,
|
5113
|
+
FIT_SEGMENT_LAP_FIELD_NUM_UUID = 65,
|
5114
|
+
FIT_SEGMENT_LAP_FIELD_NUM_AVG_FRACTIONAL_CADENCE = 66,
|
5115
|
+
FIT_SEGMENT_LAP_FIELD_NUM_MAX_FRACTIONAL_CADENCE = 67,
|
5116
|
+
FIT_SEGMENT_LAP_FIELD_NUM_TOTAL_FRACTIONAL_CYCLES = 68
|
5117
|
+
} FIT_SEGMENT_LAP_FIELD_NUM;
|
5118
|
+
|
5119
|
+
typedef enum
|
5120
|
+
{
|
5121
|
+
FIT_SEGMENT_LAP_MESG_TIMESTAMP,
|
5122
|
+
FIT_SEGMENT_LAP_MESG_START_TIME,
|
5123
|
+
FIT_SEGMENT_LAP_MESG_START_POSITION_LAT,
|
5124
|
+
FIT_SEGMENT_LAP_MESG_START_POSITION_LONG,
|
5125
|
+
FIT_SEGMENT_LAP_MESG_END_POSITION_LAT,
|
5126
|
+
FIT_SEGMENT_LAP_MESG_END_POSITION_LONG,
|
5127
|
+
FIT_SEGMENT_LAP_MESG_TOTAL_ELAPSED_TIME,
|
5128
|
+
FIT_SEGMENT_LAP_MESG_TOTAL_TIMER_TIME,
|
5129
|
+
FIT_SEGMENT_LAP_MESG_TOTAL_DISTANCE,
|
5130
|
+
FIT_SEGMENT_LAP_MESG_TOTAL_CYCLES,
|
5131
|
+
FIT_SEGMENT_LAP_MESG_NEC_LAT,
|
5132
|
+
FIT_SEGMENT_LAP_MESG_NEC_LONG,
|
5133
|
+
FIT_SEGMENT_LAP_MESG_SWC_LAT,
|
5134
|
+
FIT_SEGMENT_LAP_MESG_SWC_LONG,
|
5135
|
+
FIT_SEGMENT_LAP_MESG_NAME,
|
5136
|
+
FIT_SEGMENT_LAP_MESG_TOTAL_WORK,
|
5137
|
+
FIT_SEGMENT_LAP_MESG_TOTAL_MOVING_TIME,
|
5138
|
+
FIT_SEGMENT_LAP_MESG_TIME_IN_HR_ZONE,
|
5139
|
+
FIT_SEGMENT_LAP_MESG_TIME_IN_SPEED_ZONE,
|
5140
|
+
FIT_SEGMENT_LAP_MESG_TIME_IN_CADENCE_ZONE,
|
5141
|
+
FIT_SEGMENT_LAP_MESG_TIME_IN_POWER_ZONE,
|
5142
|
+
FIT_SEGMENT_LAP_MESG_ACTIVE_TIME,
|
5143
|
+
FIT_SEGMENT_LAP_MESG_MESSAGE_INDEX,
|
5144
|
+
FIT_SEGMENT_LAP_MESG_TOTAL_CALORIES,
|
5145
|
+
FIT_SEGMENT_LAP_MESG_TOTAL_FAT_CALORIES,
|
5146
|
+
FIT_SEGMENT_LAP_MESG_AVG_SPEED,
|
5147
|
+
FIT_SEGMENT_LAP_MESG_MAX_SPEED,
|
5148
|
+
FIT_SEGMENT_LAP_MESG_AVG_POWER,
|
5149
|
+
FIT_SEGMENT_LAP_MESG_MAX_POWER,
|
5150
|
+
FIT_SEGMENT_LAP_MESG_TOTAL_ASCENT,
|
5151
|
+
FIT_SEGMENT_LAP_MESG_TOTAL_DESCENT,
|
5152
|
+
FIT_SEGMENT_LAP_MESG_NORMALIZED_POWER,
|
5153
|
+
FIT_SEGMENT_LAP_MESG_LEFT_RIGHT_BALANCE,
|
5154
|
+
FIT_SEGMENT_LAP_MESG_AVG_ALTITUDE,
|
5155
|
+
FIT_SEGMENT_LAP_MESG_MAX_ALTITUDE,
|
5156
|
+
FIT_SEGMENT_LAP_MESG_AVG_GRADE,
|
5157
|
+
FIT_SEGMENT_LAP_MESG_AVG_POS_GRADE,
|
5158
|
+
FIT_SEGMENT_LAP_MESG_AVG_NEG_GRADE,
|
5159
|
+
FIT_SEGMENT_LAP_MESG_MAX_POS_GRADE,
|
5160
|
+
FIT_SEGMENT_LAP_MESG_MAX_NEG_GRADE,
|
5161
|
+
FIT_SEGMENT_LAP_MESG_AVG_POS_VERTICAL_SPEED,
|
5162
|
+
FIT_SEGMENT_LAP_MESG_AVG_NEG_VERTICAL_SPEED,
|
5163
|
+
FIT_SEGMENT_LAP_MESG_MAX_POS_VERTICAL_SPEED,
|
5164
|
+
FIT_SEGMENT_LAP_MESG_MAX_NEG_VERTICAL_SPEED,
|
5165
|
+
FIT_SEGMENT_LAP_MESG_REPETITION_NUM,
|
5166
|
+
FIT_SEGMENT_LAP_MESG_MIN_ALTITUDE,
|
5167
|
+
FIT_SEGMENT_LAP_MESG_WKT_STEP_INDEX,
|
5168
|
+
FIT_SEGMENT_LAP_MESG_FRONT_GEAR_SHIFT_COUNT,
|
5169
|
+
FIT_SEGMENT_LAP_MESG_REAR_GEAR_SHIFT_COUNT,
|
5170
|
+
FIT_SEGMENT_LAP_MESG_EVENT,
|
5171
|
+
FIT_SEGMENT_LAP_MESG_EVENT_TYPE,
|
5172
|
+
FIT_SEGMENT_LAP_MESG_AVG_HEART_RATE,
|
5173
|
+
FIT_SEGMENT_LAP_MESG_MAX_HEART_RATE,
|
5174
|
+
FIT_SEGMENT_LAP_MESG_AVG_CADENCE,
|
5175
|
+
FIT_SEGMENT_LAP_MESG_MAX_CADENCE,
|
5176
|
+
FIT_SEGMENT_LAP_MESG_SPORT,
|
5177
|
+
FIT_SEGMENT_LAP_MESG_EVENT_GROUP,
|
5178
|
+
FIT_SEGMENT_LAP_MESG_SUB_SPORT,
|
5179
|
+
FIT_SEGMENT_LAP_MESG_GPS_ACCURACY,
|
5180
|
+
FIT_SEGMENT_LAP_MESG_AVG_TEMPERATURE,
|
5181
|
+
FIT_SEGMENT_LAP_MESG_MAX_TEMPERATURE,
|
5182
|
+
FIT_SEGMENT_LAP_MESG_MIN_HEART_RATE,
|
5183
|
+
FIT_SEGMENT_LAP_MESG_SPORT_EVENT,
|
5184
|
+
FIT_SEGMENT_LAP_MESG_AVG_LEFT_TORQUE_EFFECTIVENESS,
|
5185
|
+
FIT_SEGMENT_LAP_MESG_AVG_RIGHT_TORQUE_EFFECTIVENESS,
|
5186
|
+
FIT_SEGMENT_LAP_MESG_AVG_LEFT_PEDAL_SMOOTHNESS,
|
5187
|
+
FIT_SEGMENT_LAP_MESG_AVG_RIGHT_PEDAL_SMOOTHNESS,
|
5188
|
+
FIT_SEGMENT_LAP_MESG_AVG_COMBINED_PEDAL_SMOOTHNESS,
|
5189
|
+
FIT_SEGMENT_LAP_MESG_STATUS,
|
5190
|
+
FIT_SEGMENT_LAP_MESG_UUID,
|
5191
|
+
FIT_SEGMENT_LAP_MESG_AVG_FRACTIONAL_CADENCE,
|
5192
|
+
FIT_SEGMENT_LAP_MESG_MAX_FRACTIONAL_CADENCE,
|
5193
|
+
FIT_SEGMENT_LAP_MESG_TOTAL_FRACTIONAL_CYCLES,
|
5194
|
+
FIT_SEGMENT_LAP_MESG_FIELDS
|
5195
|
+
} FIT_SEGMENT_LAP_MESG_FIELD;
|
5196
|
+
|
5197
|
+
typedef struct
|
5198
|
+
{
|
5199
|
+
FIT_UINT8 reserved_1;
|
5200
|
+
FIT_UINT8 arch;
|
5201
|
+
FIT_MESG_NUM global_mesg_num;
|
5202
|
+
FIT_UINT8 num_fields;
|
5203
|
+
FIT_UINT8 fields[FIT_SEGMENT_LAP_MESG_FIELDS * FIT_FIELD_DEF_SIZE];
|
5204
|
+
} FIT_SEGMENT_LAP_MESG_DEF;
|
5205
|
+
|
5206
|
+
// segment_file message
|
5207
|
+
|
5208
|
+
#define FIT_SEGMENT_FILE_MESG_SIZE 17
|
5209
|
+
#define FIT_SEGMENT_FILE_MESG_DEF_SIZE 26
|
5210
|
+
#define FIT_SEGMENT_FILE_MESG_LEADER_GROUP_PRIMARY_KEY_COUNT 1
|
5211
|
+
#define FIT_SEGMENT_FILE_MESG_LEADER_ACTIVITY_ID_COUNT 1
|
5212
|
+
#define FIT_SEGMENT_FILE_MESG_FILE_UUID_COUNT 1
|
5213
|
+
#define FIT_SEGMENT_FILE_MESG_LEADER_TYPE_COUNT 1
|
5214
|
+
|
5215
|
+
typedef struct
|
5216
|
+
{
|
5217
|
+
FIT_UINT32 user_profile_primary_key; // Primary key of the user that created the segment file
|
5218
|
+
FIT_UINT32 leader_group_primary_key[FIT_SEGMENT_FILE_MESG_LEADER_GROUP_PRIMARY_KEY_COUNT]; // Group primary key of each leader in the segment file
|
5219
|
+
FIT_UINT32 leader_activity_id[FIT_SEGMENT_FILE_MESG_LEADER_ACTIVITY_ID_COUNT]; // Activity ID of each leader in the segment file
|
5220
|
+
FIT_MESSAGE_INDEX message_index; //
|
5221
|
+
FIT_STRING file_uuid[FIT_SEGMENT_FILE_MESG_FILE_UUID_COUNT]; // UUID of the segment file
|
5222
|
+
FIT_BOOL enabled; // Enabled state of the segment file
|
5223
|
+
FIT_SEGMENT_LEADERBOARD_TYPE leader_type[FIT_SEGMENT_FILE_MESG_LEADER_TYPE_COUNT]; // Leader type of each leader in the segment file
|
5224
|
+
} FIT_SEGMENT_FILE_MESG;
|
5225
|
+
|
5226
|
+
typedef enum
|
5227
|
+
{
|
5228
|
+
FIT_SEGMENT_FILE_FIELD_NUM_USER_PROFILE_PRIMARY_KEY = 4,
|
5229
|
+
FIT_SEGMENT_FILE_FIELD_NUM_LEADER_GROUP_PRIMARY_KEY = 8,
|
5230
|
+
FIT_SEGMENT_FILE_FIELD_NUM_LEADER_ACTIVITY_ID = 9,
|
5231
|
+
FIT_SEGMENT_FILE_FIELD_NUM_MESSAGE_INDEX = 254,
|
5232
|
+
FIT_SEGMENT_FILE_FIELD_NUM_FILE_UUID = 1,
|
5233
|
+
FIT_SEGMENT_FILE_FIELD_NUM_ENABLED = 3,
|
5234
|
+
FIT_SEGMENT_FILE_FIELD_NUM_LEADER_TYPE = 7
|
5235
|
+
} FIT_SEGMENT_FILE_FIELD_NUM;
|
5236
|
+
|
5237
|
+
typedef enum
|
5238
|
+
{
|
5239
|
+
FIT_SEGMENT_FILE_MESG_USER_PROFILE_PRIMARY_KEY,
|
5240
|
+
FIT_SEGMENT_FILE_MESG_LEADER_GROUP_PRIMARY_KEY,
|
5241
|
+
FIT_SEGMENT_FILE_MESG_LEADER_ACTIVITY_ID,
|
5242
|
+
FIT_SEGMENT_FILE_MESG_MESSAGE_INDEX,
|
5243
|
+
FIT_SEGMENT_FILE_MESG_FILE_UUID,
|
5244
|
+
FIT_SEGMENT_FILE_MESG_ENABLED,
|
5245
|
+
FIT_SEGMENT_FILE_MESG_LEADER_TYPE,
|
5246
|
+
FIT_SEGMENT_FILE_MESG_FIELDS
|
5247
|
+
} FIT_SEGMENT_FILE_MESG_FIELD;
|
5248
|
+
|
5249
|
+
typedef struct
|
5250
|
+
{
|
5251
|
+
FIT_UINT8 reserved_1;
|
5252
|
+
FIT_UINT8 arch;
|
5253
|
+
FIT_MESG_NUM global_mesg_num;
|
5254
|
+
FIT_UINT8 num_fields;
|
5255
|
+
FIT_UINT8 fields[FIT_SEGMENT_FILE_MESG_FIELDS * FIT_FIELD_DEF_SIZE];
|
5256
|
+
} FIT_SEGMENT_FILE_MESG_DEF;
|
5257
|
+
|
3124
5258
|
// workout message
|
3125
5259
|
|
3126
5260
|
#define FIT_WORKOUT_MESG_SIZE 23
|
@@ -3129,10 +5263,10 @@ typedef struct
|
|
3129
5263
|
|
3130
5264
|
typedef struct
|
3131
5265
|
{
|
3132
|
-
FIT_WORKOUT_CAPABILITIES capabilities; //
|
3133
|
-
FIT_STRING wkt_name[FIT_WORKOUT_MESG_WKT_NAME_COUNT]; //
|
5266
|
+
FIT_WORKOUT_CAPABILITIES capabilities; //
|
5267
|
+
FIT_STRING wkt_name[FIT_WORKOUT_MESG_WKT_NAME_COUNT]; //
|
3134
5268
|
FIT_UINT16 num_valid_steps; // number of valid steps
|
3135
|
-
FIT_SPORT sport; //
|
5269
|
+
FIT_SPORT sport; //
|
3136
5270
|
} FIT_WORKOUT_MESG;
|
3137
5271
|
|
3138
5272
|
typedef enum
|
@@ -3169,15 +5303,15 @@ typedef struct
|
|
3169
5303
|
|
3170
5304
|
typedef struct
|
3171
5305
|
{
|
3172
|
-
FIT_STRING wkt_step_name[FIT_WORKOUT_STEP_MESG_WKT_STEP_NAME_COUNT]; //
|
3173
|
-
FIT_UINT32 duration_value; //
|
3174
|
-
FIT_UINT32 target_value; //
|
3175
|
-
FIT_UINT32 custom_target_value_low; //
|
3176
|
-
FIT_UINT32 custom_target_value_high; //
|
3177
|
-
FIT_MESSAGE_INDEX message_index; //
|
3178
|
-
FIT_WKT_STEP_DURATION duration_type; //
|
3179
|
-
FIT_WKT_STEP_TARGET target_type; //
|
3180
|
-
FIT_INTENSITY intensity; //
|
5306
|
+
FIT_STRING wkt_step_name[FIT_WORKOUT_STEP_MESG_WKT_STEP_NAME_COUNT]; //
|
5307
|
+
FIT_UINT32 duration_value; //
|
5308
|
+
FIT_UINT32 target_value; //
|
5309
|
+
FIT_UINT32 custom_target_value_low; //
|
5310
|
+
FIT_UINT32 custom_target_value_high; //
|
5311
|
+
FIT_MESSAGE_INDEX message_index; //
|
5312
|
+
FIT_WKT_STEP_DURATION duration_type; //
|
5313
|
+
FIT_WKT_STEP_TARGET target_type; //
|
5314
|
+
FIT_INTENSITY intensity; //
|
3181
5315
|
} FIT_WORKOUT_STEP_MESG;
|
3182
5316
|
|
3183
5317
|
typedef enum
|
@@ -3225,11 +5359,11 @@ typedef struct
|
|
3225
5359
|
{
|
3226
5360
|
FIT_UINT32Z serial_number; // Corresponds to file_id of scheduled workout / course.
|
3227
5361
|
FIT_DATE_TIME time_created; // Corresponds to file_id of scheduled workout / course.
|
3228
|
-
FIT_LOCAL_DATE_TIME scheduled_time; //
|
5362
|
+
FIT_LOCAL_DATE_TIME scheduled_time; //
|
3229
5363
|
FIT_MANUFACTURER manufacturer; // Corresponds to file_id of scheduled workout / course.
|
3230
5364
|
FIT_UINT16 product; // Corresponds to file_id of scheduled workout / course.
|
3231
5365
|
FIT_BOOL completed; // TRUE if this activity has been started
|
3232
|
-
FIT_SCHEDULE type; //
|
5366
|
+
FIT_SCHEDULE type; //
|
3233
5367
|
} FIT_SCHEDULE_MESG;
|
3234
5368
|
|
3235
5369
|
typedef enum
|
@@ -3271,15 +5405,15 @@ typedef struct
|
|
3271
5405
|
|
3272
5406
|
typedef struct
|
3273
5407
|
{
|
3274
|
-
FIT_DATE_TIME timestamp; // s,
|
3275
|
-
FIT_UINT32 timer_time; // s,Excludes pauses
|
3276
|
-
FIT_UINT32 distance; // m,
|
3277
|
-
FIT_UINT32 calories; // kcal,
|
3278
|
-
FIT_UINT32 elapsed_time; // s,Includes pauses
|
3279
|
-
FIT_UINT32 active_time; // s,
|
3280
|
-
FIT_MESSAGE_INDEX message_index; //
|
3281
|
-
FIT_UINT16 sessions; //
|
3282
|
-
FIT_SPORT sport; //
|
5408
|
+
FIT_DATE_TIME timestamp; // 1 * s + 0,
|
5409
|
+
FIT_UINT32 timer_time; // 1 * s + 0, Excludes pauses
|
5410
|
+
FIT_UINT32 distance; // 1 * m + 0,
|
5411
|
+
FIT_UINT32 calories; // 1 * kcal + 0,
|
5412
|
+
FIT_UINT32 elapsed_time; // 1 * s + 0, Includes pauses
|
5413
|
+
FIT_UINT32 active_time; // 1 * s + 0,
|
5414
|
+
FIT_MESSAGE_INDEX message_index; //
|
5415
|
+
FIT_UINT16 sessions; //
|
5416
|
+
FIT_SPORT sport; //
|
3283
5417
|
} FIT_TOTALS_MESG;
|
3284
5418
|
|
3285
5419
|
typedef enum
|
@@ -3325,19 +5459,19 @@ typedef struct
|
|
3325
5459
|
|
3326
5460
|
typedef struct
|
3327
5461
|
{
|
3328
|
-
FIT_DATE_TIME timestamp; // s,
|
3329
|
-
FIT_WEIGHT weight; // 100 * kg,
|
3330
|
-
FIT_UINT16 percent_fat; // 100 *
|
3331
|
-
FIT_UINT16 percent_hydration; // 100 *
|
3332
|
-
FIT_UINT16 visceral_fat_mass; // 100 * kg,
|
3333
|
-
FIT_UINT16 bone_mass; // 100 * kg,
|
3334
|
-
FIT_UINT16 muscle_mass; // 100 * kg,
|
3335
|
-
FIT_UINT16 basal_met; // 4 * kcal/day,
|
3336
|
-
FIT_UINT16 active_met; // 4 * kcal/day
|
5462
|
+
FIT_DATE_TIME timestamp; // 1 * s + 0,
|
5463
|
+
FIT_WEIGHT weight; // 100 * kg + 0,
|
5464
|
+
FIT_UINT16 percent_fat; // 100 * % + 0,
|
5465
|
+
FIT_UINT16 percent_hydration; // 100 * % + 0,
|
5466
|
+
FIT_UINT16 visceral_fat_mass; // 100 * kg + 0,
|
5467
|
+
FIT_UINT16 bone_mass; // 100 * kg + 0,
|
5468
|
+
FIT_UINT16 muscle_mass; // 100 * kg + 0,
|
5469
|
+
FIT_UINT16 basal_met; // 4 * kcal/day + 0,
|
5470
|
+
FIT_UINT16 active_met; // 4 * kcal/day + 0, ~4kJ per kcal, 0.25 allows max 16384 kcal
|
3337
5471
|
FIT_MESSAGE_INDEX user_profile_index; // Associates this weight scale message to a user. This corresponds to the index of the user profile message in the weight scale file.
|
3338
|
-
FIT_UINT8 physique_rating; //
|
3339
|
-
FIT_UINT8 metabolic_age; // years,
|
3340
|
-
FIT_UINT8 visceral_fat_rating; //
|
5472
|
+
FIT_UINT8 physique_rating; //
|
5473
|
+
FIT_UINT8 metabolic_age; // 1 * years + 0,
|
5474
|
+
FIT_UINT8 visceral_fat_rating; //
|
3341
5475
|
} FIT_WEIGHT_SCALE_MESG;
|
3342
5476
|
|
3343
5477
|
typedef enum
|
@@ -3391,17 +5525,17 @@ typedef struct
|
|
3391
5525
|
|
3392
5526
|
typedef struct
|
3393
5527
|
{
|
3394
|
-
FIT_DATE_TIME timestamp; // s,
|
3395
|
-
FIT_UINT16 systolic_pressure; // mmHg,
|
3396
|
-
FIT_UINT16 diastolic_pressure; // mmHg,
|
3397
|
-
FIT_UINT16 mean_arterial_pressure; // mmHg,
|
3398
|
-
FIT_UINT16 map_3_sample_mean; // mmHg,
|
3399
|
-
FIT_UINT16 map_morning_values; // mmHg,
|
3400
|
-
FIT_UINT16 map_evening_values; // mmHg,
|
5528
|
+
FIT_DATE_TIME timestamp; // 1 * s + 0,
|
5529
|
+
FIT_UINT16 systolic_pressure; // 1 * mmHg + 0,
|
5530
|
+
FIT_UINT16 diastolic_pressure; // 1 * mmHg + 0,
|
5531
|
+
FIT_UINT16 mean_arterial_pressure; // 1 * mmHg + 0,
|
5532
|
+
FIT_UINT16 map_3_sample_mean; // 1 * mmHg + 0,
|
5533
|
+
FIT_UINT16 map_morning_values; // 1 * mmHg + 0,
|
5534
|
+
FIT_UINT16 map_evening_values; // 1 * mmHg + 0,
|
3401
5535
|
FIT_MESSAGE_INDEX user_profile_index; // Associates this blood pressure message to a user. This corresponds to the index of the user profile message in the blood pressure file.
|
3402
|
-
FIT_UINT8 heart_rate; // bpm,
|
3403
|
-
FIT_HR_TYPE heart_rate_type; //
|
3404
|
-
FIT_BP_STATUS status; //
|
5536
|
+
FIT_UINT8 heart_rate; // 1 * bpm + 0,
|
5537
|
+
FIT_HR_TYPE heart_rate_type; //
|
5538
|
+
FIT_BP_STATUS status; //
|
3405
5539
|
} FIT_BLOOD_PRESSURE_MESG;
|
3406
5540
|
|
3407
5541
|
typedef enum
|
@@ -3451,8 +5585,8 @@ typedef struct
|
|
3451
5585
|
|
3452
5586
|
typedef struct
|
3453
5587
|
{
|
3454
|
-
FIT_DATE_TIME timestamp; //
|
3455
|
-
FIT_LOCAL_DATE_TIME local_timestamp; // Use to convert activity timestamps to local time if device does not support time zone and daylight savings time correction.
|
5588
|
+
FIT_DATE_TIME timestamp; // 1 * s + 0,
|
5589
|
+
FIT_LOCAL_DATE_TIME local_timestamp; // 1 * s + 0, Use to convert activity timestamps to local time if device does not support time zone and daylight savings time correction.
|
3456
5590
|
} FIT_MONITORING_INFO_MESG;
|
3457
5591
|
|
3458
5592
|
typedef enum
|
@@ -3484,18 +5618,18 @@ typedef struct
|
|
3484
5618
|
|
3485
5619
|
typedef struct
|
3486
5620
|
{
|
3487
|
-
FIT_DATE_TIME timestamp; // s,Must align to logging interval, for example, time must be 00:00:00 for daily log.
|
3488
|
-
FIT_UINT32 distance; // 100 * m,Accumulated distance. Maintained by MonitoringReader for each activity_type. See SDK documentation.
|
3489
|
-
FIT_UINT32 cycles; // 2 * cycles,Accumulated cycles. Maintained by MonitoringReader for each activity_type. See SDK documentation.
|
3490
|
-
FIT_UINT32 active_time; // 1000 * s,
|
5621
|
+
FIT_DATE_TIME timestamp; // 1 * s + 0, Must align to logging interval, for example, time must be 00:00:00 for daily log.
|
5622
|
+
FIT_UINT32 distance; // 100 * m + 0, Accumulated distance. Maintained by MonitoringReader for each activity_type. See SDK documentation.
|
5623
|
+
FIT_UINT32 cycles; // 2 * cycles + 0, Accumulated cycles. Maintained by MonitoringReader for each activity_type. See SDK documentation.
|
5624
|
+
FIT_UINT32 active_time; // 1000 * s + 0,
|
3491
5625
|
FIT_LOCAL_DATE_TIME local_timestamp; // Must align to logging interval, for example, time must be 00:00:00 for daily log.
|
3492
|
-
FIT_UINT16 calories; // kcal,Accumulated total calories. Maintained by MonitoringReader for each activity_type. See SDK documentation
|
3493
|
-
FIT_UINT16 distance_16; // 100 * m,
|
3494
|
-
FIT_UINT16 cycles_16; // 2 * cycles (steps),
|
3495
|
-
FIT_UINT16 active_time_16; // s,
|
5626
|
+
FIT_UINT16 calories; // 1 * kcal + 0, Accumulated total calories. Maintained by MonitoringReader for each activity_type. See SDK documentation
|
5627
|
+
FIT_UINT16 distance_16; // 1 * 100 * m + 0,
|
5628
|
+
FIT_UINT16 cycles_16; // 1 * 2 * cycles (steps) + 0,
|
5629
|
+
FIT_UINT16 active_time_16; // 1 * s + 0,
|
3496
5630
|
FIT_DEVICE_INDEX device_index; // Associates this data to device_info message. Not required for file with single device (sensor).
|
3497
|
-
FIT_ACTIVITY_TYPE activity_type; //
|
3498
|
-
FIT_ACTIVITY_SUBTYPE activity_subtype; //
|
5631
|
+
FIT_ACTIVITY_TYPE activity_type; //
|
5632
|
+
FIT_ACTIVITY_SUBTYPE activity_subtype; //
|
3499
5633
|
} FIT_MONITORING_MESG;
|
3500
5634
|
|
3501
5635
|
typedef enum
|
@@ -3540,6 +5674,396 @@ typedef struct
|
|
3540
5674
|
FIT_UINT8 fields[FIT_MONITORING_MESG_FIELDS * FIT_FIELD_DEF_SIZE];
|
3541
5675
|
} FIT_MONITORING_MESG_DEF;
|
3542
5676
|
|
5677
|
+
// hr message
|
5678
|
+
|
5679
|
+
#define FIT_HR_MESG_SIZE 13
|
5680
|
+
#define FIT_HR_MESG_DEF_SIZE 23
|
5681
|
+
#define FIT_HR_MESG_EVENT_TIMESTAMP_COUNT 1
|
5682
|
+
#define FIT_HR_MESG_FILTERED_BPM_COUNT 1
|
5683
|
+
#define FIT_HR_MESG_EVENT_TIMESTAMP_12_COUNT 1
|
5684
|
+
|
5685
|
+
typedef struct
|
5686
|
+
{
|
5687
|
+
FIT_DATE_TIME timestamp; //
|
5688
|
+
FIT_UINT32 event_timestamp[FIT_HR_MESG_EVENT_TIMESTAMP_COUNT]; // 1024 * s + 0,
|
5689
|
+
FIT_UINT16 fractional_timestamp; // 32768 * s + 0,
|
5690
|
+
FIT_UINT8 time256; // 256 * s + 0,
|
5691
|
+
FIT_UINT8 filtered_bpm[FIT_HR_MESG_FILTERED_BPM_COUNT]; // 1 * bpm + 0,
|
5692
|
+
FIT_BYTE event_timestamp_12[FIT_HR_MESG_EVENT_TIMESTAMP_12_COUNT]; //
|
5693
|
+
} FIT_HR_MESG;
|
5694
|
+
|
5695
|
+
typedef enum
|
5696
|
+
{
|
5697
|
+
FIT_HR_FIELD_NUM_TIMESTAMP = 253,
|
5698
|
+
FIT_HR_FIELD_NUM_EVENT_TIMESTAMP = 9,
|
5699
|
+
FIT_HR_FIELD_NUM_FRACTIONAL_TIMESTAMP = 0,
|
5700
|
+
FIT_HR_FIELD_NUM_TIME256 = 1,
|
5701
|
+
FIT_HR_FIELD_NUM_FILTERED_BPM = 6,
|
5702
|
+
FIT_HR_FIELD_NUM_EVENT_TIMESTAMP_12 = 10
|
5703
|
+
} FIT_HR_FIELD_NUM;
|
5704
|
+
|
5705
|
+
typedef enum
|
5706
|
+
{
|
5707
|
+
FIT_HR_MESG_TIMESTAMP,
|
5708
|
+
FIT_HR_MESG_EVENT_TIMESTAMP,
|
5709
|
+
FIT_HR_MESG_FRACTIONAL_TIMESTAMP,
|
5710
|
+
FIT_HR_MESG_TIME256,
|
5711
|
+
FIT_HR_MESG_FILTERED_BPM,
|
5712
|
+
FIT_HR_MESG_EVENT_TIMESTAMP_12,
|
5713
|
+
FIT_HR_MESG_FIELDS
|
5714
|
+
} FIT_HR_MESG_FIELD;
|
5715
|
+
|
5716
|
+
typedef struct
|
5717
|
+
{
|
5718
|
+
FIT_UINT8 reserved_1;
|
5719
|
+
FIT_UINT8 arch;
|
5720
|
+
FIT_MESG_NUM global_mesg_num;
|
5721
|
+
FIT_UINT8 num_fields;
|
5722
|
+
FIT_UINT8 fields[FIT_HR_MESG_FIELDS * FIT_FIELD_DEF_SIZE];
|
5723
|
+
} FIT_HR_MESG_DEF;
|
5724
|
+
|
5725
|
+
// ant_rx message
|
5726
|
+
|
5727
|
+
#define FIT_ANT_RX_MESG_SIZE 25
|
5728
|
+
#define FIT_ANT_RX_MESG_DEF_SIZE 23
|
5729
|
+
#define FIT_ANT_RX_MESG_DATA_COUNT 8
|
5730
|
+
#define FIT_ANT_RX_MESG_MESG_DATA_COUNT 9
|
5731
|
+
|
5732
|
+
typedef struct
|
5733
|
+
{
|
5734
|
+
FIT_DATE_TIME timestamp; // 1 * s + 0,
|
5735
|
+
FIT_BYTE data[FIT_ANT_RX_MESG_DATA_COUNT]; //
|
5736
|
+
FIT_UINT16 fractional_timestamp; // 32768 * s + 0,
|
5737
|
+
FIT_BYTE mesg_id; //
|
5738
|
+
FIT_BYTE mesg_data[FIT_ANT_RX_MESG_MESG_DATA_COUNT]; //
|
5739
|
+
FIT_UINT8 channel_number; //
|
5740
|
+
} FIT_ANT_RX_MESG;
|
5741
|
+
|
5742
|
+
typedef enum
|
5743
|
+
{
|
5744
|
+
FIT_ANT_RX_FIELD_NUM_TIMESTAMP = 253,
|
5745
|
+
FIT_ANT_RX_FIELD_NUM_DATA = 4,
|
5746
|
+
FIT_ANT_RX_FIELD_NUM_FRACTIONAL_TIMESTAMP = 0,
|
5747
|
+
FIT_ANT_RX_FIELD_NUM_MESG_ID = 1,
|
5748
|
+
FIT_ANT_RX_FIELD_NUM_MESG_DATA = 2,
|
5749
|
+
FIT_ANT_RX_FIELD_NUM_CHANNEL_NUMBER = 3
|
5750
|
+
} FIT_ANT_RX_FIELD_NUM;
|
5751
|
+
|
5752
|
+
typedef enum
|
5753
|
+
{
|
5754
|
+
FIT_ANT_RX_MESG_TIMESTAMP,
|
5755
|
+
FIT_ANT_RX_MESG_DATA,
|
5756
|
+
FIT_ANT_RX_MESG_FRACTIONAL_TIMESTAMP,
|
5757
|
+
FIT_ANT_RX_MESG_MESG_ID,
|
5758
|
+
FIT_ANT_RX_MESG_MESG_DATA,
|
5759
|
+
FIT_ANT_RX_MESG_CHANNEL_NUMBER,
|
5760
|
+
FIT_ANT_RX_MESG_FIELDS
|
5761
|
+
} FIT_ANT_RX_MESG_FIELD;
|
5762
|
+
|
5763
|
+
typedef struct
|
5764
|
+
{
|
5765
|
+
FIT_UINT8 reserved_1;
|
5766
|
+
FIT_UINT8 arch;
|
5767
|
+
FIT_MESG_NUM global_mesg_num;
|
5768
|
+
FIT_UINT8 num_fields;
|
5769
|
+
FIT_UINT8 fields[FIT_ANT_RX_MESG_FIELDS * FIT_FIELD_DEF_SIZE];
|
5770
|
+
} FIT_ANT_RX_MESG_DEF;
|
5771
|
+
|
5772
|
+
// ant_tx message
|
5773
|
+
|
5774
|
+
#define FIT_ANT_TX_MESG_SIZE 25
|
5775
|
+
#define FIT_ANT_TX_MESG_DEF_SIZE 23
|
5776
|
+
#define FIT_ANT_TX_MESG_DATA_COUNT 8
|
5777
|
+
#define FIT_ANT_TX_MESG_MESG_DATA_COUNT 9
|
5778
|
+
|
5779
|
+
typedef struct
|
5780
|
+
{
|
5781
|
+
FIT_DATE_TIME timestamp; // 1 * s + 0,
|
5782
|
+
FIT_BYTE data[FIT_ANT_TX_MESG_DATA_COUNT]; //
|
5783
|
+
FIT_UINT16 fractional_timestamp; // 32768 * s + 0,
|
5784
|
+
FIT_BYTE mesg_id; //
|
5785
|
+
FIT_BYTE mesg_data[FIT_ANT_TX_MESG_MESG_DATA_COUNT]; //
|
5786
|
+
FIT_UINT8 channel_number; //
|
5787
|
+
} FIT_ANT_TX_MESG;
|
5788
|
+
|
5789
|
+
typedef enum
|
5790
|
+
{
|
5791
|
+
FIT_ANT_TX_FIELD_NUM_TIMESTAMP = 253,
|
5792
|
+
FIT_ANT_TX_FIELD_NUM_DATA = 4,
|
5793
|
+
FIT_ANT_TX_FIELD_NUM_FRACTIONAL_TIMESTAMP = 0,
|
5794
|
+
FIT_ANT_TX_FIELD_NUM_MESG_ID = 1,
|
5795
|
+
FIT_ANT_TX_FIELD_NUM_MESG_DATA = 2,
|
5796
|
+
FIT_ANT_TX_FIELD_NUM_CHANNEL_NUMBER = 3
|
5797
|
+
} FIT_ANT_TX_FIELD_NUM;
|
5798
|
+
|
5799
|
+
typedef enum
|
5800
|
+
{
|
5801
|
+
FIT_ANT_TX_MESG_TIMESTAMP,
|
5802
|
+
FIT_ANT_TX_MESG_DATA,
|
5803
|
+
FIT_ANT_TX_MESG_FRACTIONAL_TIMESTAMP,
|
5804
|
+
FIT_ANT_TX_MESG_MESG_ID,
|
5805
|
+
FIT_ANT_TX_MESG_MESG_DATA,
|
5806
|
+
FIT_ANT_TX_MESG_CHANNEL_NUMBER,
|
5807
|
+
FIT_ANT_TX_MESG_FIELDS
|
5808
|
+
} FIT_ANT_TX_MESG_FIELD;
|
5809
|
+
|
5810
|
+
typedef struct
|
5811
|
+
{
|
5812
|
+
FIT_UINT8 reserved_1;
|
5813
|
+
FIT_UINT8 arch;
|
5814
|
+
FIT_MESG_NUM global_mesg_num;
|
5815
|
+
FIT_UINT8 num_fields;
|
5816
|
+
FIT_UINT8 fields[FIT_ANT_TX_MESG_FIELDS * FIT_FIELD_DEF_SIZE];
|
5817
|
+
} FIT_ANT_TX_MESG_DEF;
|
5818
|
+
|
5819
|
+
// exd_screen_configuration message
|
5820
|
+
|
5821
|
+
#define FIT_EXD_SCREEN_CONFIGURATION_MESG_SIZE 4
|
5822
|
+
#define FIT_EXD_SCREEN_CONFIGURATION_MESG_DEF_SIZE 17
|
5823
|
+
|
5824
|
+
typedef struct
|
5825
|
+
{
|
5826
|
+
FIT_UINT8 screen_index; //
|
5827
|
+
FIT_UINT8 field_count; // number of fields in screen
|
5828
|
+
FIT_EXD_LAYOUT layout; //
|
5829
|
+
FIT_BOOL screen_enabled; //
|
5830
|
+
} FIT_EXD_SCREEN_CONFIGURATION_MESG;
|
5831
|
+
|
5832
|
+
typedef enum
|
5833
|
+
{
|
5834
|
+
FIT_EXD_SCREEN_CONFIGURATION_FIELD_NUM_SCREEN_INDEX = 0,
|
5835
|
+
FIT_EXD_SCREEN_CONFIGURATION_FIELD_NUM_FIELD_COUNT = 1,
|
5836
|
+
FIT_EXD_SCREEN_CONFIGURATION_FIELD_NUM_LAYOUT = 2,
|
5837
|
+
FIT_EXD_SCREEN_CONFIGURATION_FIELD_NUM_SCREEN_ENABLED = 3
|
5838
|
+
} FIT_EXD_SCREEN_CONFIGURATION_FIELD_NUM;
|
5839
|
+
|
5840
|
+
typedef enum
|
5841
|
+
{
|
5842
|
+
FIT_EXD_SCREEN_CONFIGURATION_MESG_SCREEN_INDEX,
|
5843
|
+
FIT_EXD_SCREEN_CONFIGURATION_MESG_FIELD_COUNT,
|
5844
|
+
FIT_EXD_SCREEN_CONFIGURATION_MESG_LAYOUT,
|
5845
|
+
FIT_EXD_SCREEN_CONFIGURATION_MESG_SCREEN_ENABLED,
|
5846
|
+
FIT_EXD_SCREEN_CONFIGURATION_MESG_FIELDS
|
5847
|
+
} FIT_EXD_SCREEN_CONFIGURATION_MESG_FIELD;
|
5848
|
+
|
5849
|
+
typedef struct
|
5850
|
+
{
|
5851
|
+
FIT_UINT8 reserved_1;
|
5852
|
+
FIT_UINT8 arch;
|
5853
|
+
FIT_MESG_NUM global_mesg_num;
|
5854
|
+
FIT_UINT8 num_fields;
|
5855
|
+
FIT_UINT8 fields[FIT_EXD_SCREEN_CONFIGURATION_MESG_FIELDS * FIT_FIELD_DEF_SIZE];
|
5856
|
+
} FIT_EXD_SCREEN_CONFIGURATION_MESG_DEF;
|
5857
|
+
|
5858
|
+
// exd_data_field_configuration message
|
5859
|
+
|
5860
|
+
#define FIT_EXD_DATA_FIELD_CONFIGURATION_MESG_SIZE 6
|
5861
|
+
#define FIT_EXD_DATA_FIELD_CONFIGURATION_MESG_DEF_SIZE 23
|
5862
|
+
#define FIT_EXD_DATA_FIELD_CONFIGURATION_MESG_TITLE_COUNT 1
|
5863
|
+
|
5864
|
+
typedef struct
|
5865
|
+
{
|
5866
|
+
FIT_UINT8 screen_index; //
|
5867
|
+
FIT_BYTE concept_field; //
|
5868
|
+
FIT_UINT8 field_id; //
|
5869
|
+
FIT_UINT8 concept_count; //
|
5870
|
+
FIT_EXD_DISPLAY_TYPE display_type; //
|
5871
|
+
FIT_STRING title[FIT_EXD_DATA_FIELD_CONFIGURATION_MESG_TITLE_COUNT]; //
|
5872
|
+
} FIT_EXD_DATA_FIELD_CONFIGURATION_MESG;
|
5873
|
+
|
5874
|
+
typedef enum
|
5875
|
+
{
|
5876
|
+
FIT_EXD_DATA_FIELD_CONFIGURATION_FIELD_NUM_SCREEN_INDEX = 0,
|
5877
|
+
FIT_EXD_DATA_FIELD_CONFIGURATION_FIELD_NUM_CONCEPT_FIELD = 1,
|
5878
|
+
FIT_EXD_DATA_FIELD_CONFIGURATION_FIELD_NUM_FIELD_ID = 2,
|
5879
|
+
FIT_EXD_DATA_FIELD_CONFIGURATION_FIELD_NUM_CONCEPT_COUNT = 3,
|
5880
|
+
FIT_EXD_DATA_FIELD_CONFIGURATION_FIELD_NUM_DISPLAY_TYPE = 4,
|
5881
|
+
FIT_EXD_DATA_FIELD_CONFIGURATION_FIELD_NUM_TITLE = 5
|
5882
|
+
} FIT_EXD_DATA_FIELD_CONFIGURATION_FIELD_NUM;
|
5883
|
+
|
5884
|
+
typedef enum
|
5885
|
+
{
|
5886
|
+
FIT_EXD_DATA_FIELD_CONFIGURATION_MESG_SCREEN_INDEX,
|
5887
|
+
FIT_EXD_DATA_FIELD_CONFIGURATION_MESG_CONCEPT_FIELD,
|
5888
|
+
FIT_EXD_DATA_FIELD_CONFIGURATION_MESG_FIELD_ID,
|
5889
|
+
FIT_EXD_DATA_FIELD_CONFIGURATION_MESG_CONCEPT_COUNT,
|
5890
|
+
FIT_EXD_DATA_FIELD_CONFIGURATION_MESG_DISPLAY_TYPE,
|
5891
|
+
FIT_EXD_DATA_FIELD_CONFIGURATION_MESG_TITLE,
|
5892
|
+
FIT_EXD_DATA_FIELD_CONFIGURATION_MESG_FIELDS
|
5893
|
+
} FIT_EXD_DATA_FIELD_CONFIGURATION_MESG_FIELD;
|
5894
|
+
|
5895
|
+
typedef struct
|
5896
|
+
{
|
5897
|
+
FIT_UINT8 reserved_1;
|
5898
|
+
FIT_UINT8 arch;
|
5899
|
+
FIT_MESG_NUM global_mesg_num;
|
5900
|
+
FIT_UINT8 num_fields;
|
5901
|
+
FIT_UINT8 fields[FIT_EXD_DATA_FIELD_CONFIGURATION_MESG_FIELDS * FIT_FIELD_DEF_SIZE];
|
5902
|
+
} FIT_EXD_DATA_FIELD_CONFIGURATION_MESG_DEF;
|
5903
|
+
|
5904
|
+
// exd_data_concept_configuration message
|
5905
|
+
|
5906
|
+
#define FIT_EXD_DATA_CONCEPT_CONFIGURATION_MESG_SIZE 11
|
5907
|
+
#define FIT_EXD_DATA_CONCEPT_CONFIGURATION_MESG_DEF_SIZE 38
|
5908
|
+
|
5909
|
+
typedef struct
|
5910
|
+
{
|
5911
|
+
FIT_UINT8 screen_index; //
|
5912
|
+
FIT_BYTE concept_field; //
|
5913
|
+
FIT_UINT8 field_id; //
|
5914
|
+
FIT_UINT8 concept_index; //
|
5915
|
+
FIT_UINT8 data_page; //
|
5916
|
+
FIT_UINT8 concept_key; //
|
5917
|
+
FIT_UINT8 scaling; //
|
5918
|
+
FIT_EXD_DATA_UNITS data_units; //
|
5919
|
+
FIT_EXD_QUALIFIERS qualifier; //
|
5920
|
+
FIT_EXD_DESCRIPTORS descriptor; //
|
5921
|
+
FIT_BOOL is_signed; //
|
5922
|
+
} FIT_EXD_DATA_CONCEPT_CONFIGURATION_MESG;
|
5923
|
+
|
5924
|
+
typedef enum
|
5925
|
+
{
|
5926
|
+
FIT_EXD_DATA_CONCEPT_CONFIGURATION_FIELD_NUM_SCREEN_INDEX = 0,
|
5927
|
+
FIT_EXD_DATA_CONCEPT_CONFIGURATION_FIELD_NUM_CONCEPT_FIELD = 1,
|
5928
|
+
FIT_EXD_DATA_CONCEPT_CONFIGURATION_FIELD_NUM_FIELD_ID = 2,
|
5929
|
+
FIT_EXD_DATA_CONCEPT_CONFIGURATION_FIELD_NUM_CONCEPT_INDEX = 3,
|
5930
|
+
FIT_EXD_DATA_CONCEPT_CONFIGURATION_FIELD_NUM_DATA_PAGE = 4,
|
5931
|
+
FIT_EXD_DATA_CONCEPT_CONFIGURATION_FIELD_NUM_CONCEPT_KEY = 5,
|
5932
|
+
FIT_EXD_DATA_CONCEPT_CONFIGURATION_FIELD_NUM_SCALING = 6,
|
5933
|
+
FIT_EXD_DATA_CONCEPT_CONFIGURATION_FIELD_NUM_DATA_UNITS = 8,
|
5934
|
+
FIT_EXD_DATA_CONCEPT_CONFIGURATION_FIELD_NUM_QUALIFIER = 9,
|
5935
|
+
FIT_EXD_DATA_CONCEPT_CONFIGURATION_FIELD_NUM_DESCRIPTOR = 10,
|
5936
|
+
FIT_EXD_DATA_CONCEPT_CONFIGURATION_FIELD_NUM_IS_SIGNED = 11
|
5937
|
+
} FIT_EXD_DATA_CONCEPT_CONFIGURATION_FIELD_NUM;
|
5938
|
+
|
5939
|
+
typedef enum
|
5940
|
+
{
|
5941
|
+
FIT_EXD_DATA_CONCEPT_CONFIGURATION_MESG_SCREEN_INDEX,
|
5942
|
+
FIT_EXD_DATA_CONCEPT_CONFIGURATION_MESG_CONCEPT_FIELD,
|
5943
|
+
FIT_EXD_DATA_CONCEPT_CONFIGURATION_MESG_FIELD_ID,
|
5944
|
+
FIT_EXD_DATA_CONCEPT_CONFIGURATION_MESG_CONCEPT_INDEX,
|
5945
|
+
FIT_EXD_DATA_CONCEPT_CONFIGURATION_MESG_DATA_PAGE,
|
5946
|
+
FIT_EXD_DATA_CONCEPT_CONFIGURATION_MESG_CONCEPT_KEY,
|
5947
|
+
FIT_EXD_DATA_CONCEPT_CONFIGURATION_MESG_SCALING,
|
5948
|
+
FIT_EXD_DATA_CONCEPT_CONFIGURATION_MESG_DATA_UNITS,
|
5949
|
+
FIT_EXD_DATA_CONCEPT_CONFIGURATION_MESG_QUALIFIER,
|
5950
|
+
FIT_EXD_DATA_CONCEPT_CONFIGURATION_MESG_DESCRIPTOR,
|
5951
|
+
FIT_EXD_DATA_CONCEPT_CONFIGURATION_MESG_IS_SIGNED,
|
5952
|
+
FIT_EXD_DATA_CONCEPT_CONFIGURATION_MESG_FIELDS
|
5953
|
+
} FIT_EXD_DATA_CONCEPT_CONFIGURATION_MESG_FIELD;
|
5954
|
+
|
5955
|
+
typedef struct
|
5956
|
+
{
|
5957
|
+
FIT_UINT8 reserved_1;
|
5958
|
+
FIT_UINT8 arch;
|
5959
|
+
FIT_MESG_NUM global_mesg_num;
|
5960
|
+
FIT_UINT8 num_fields;
|
5961
|
+
FIT_UINT8 fields[FIT_EXD_DATA_CONCEPT_CONFIGURATION_MESG_FIELDS * FIT_FIELD_DEF_SIZE];
|
5962
|
+
} FIT_EXD_DATA_CONCEPT_CONFIGURATION_MESG_DEF;
|
5963
|
+
|
5964
|
+
// field_description message
|
5965
|
+
|
5966
|
+
#define FIT_FIELD_DESCRIPTION_MESG_SIZE 90
|
5967
|
+
#define FIT_FIELD_DESCRIPTION_MESG_DEF_SIZE 35
|
5968
|
+
#define FIT_FIELD_DESCRIPTION_MESG_FIELD_NAME_COUNT 64
|
5969
|
+
#define FIT_FIELD_DESCRIPTION_MESG_UNITS_COUNT 16
|
5970
|
+
|
5971
|
+
typedef struct
|
5972
|
+
{
|
5973
|
+
FIT_STRING field_name[FIT_FIELD_DESCRIPTION_MESG_FIELD_NAME_COUNT]; //
|
5974
|
+
FIT_STRING units[FIT_FIELD_DESCRIPTION_MESG_UNITS_COUNT]; //
|
5975
|
+
FIT_FIT_BASE_UNIT fit_base_unit_id; //
|
5976
|
+
FIT_MESG_NUM native_mesg_num; //
|
5977
|
+
FIT_UINT8 developer_data_index; //
|
5978
|
+
FIT_UINT8 field_definition_number; //
|
5979
|
+
FIT_FIT_BASE_TYPE fit_base_type_id; //
|
5980
|
+
FIT_UINT8 scale; //
|
5981
|
+
FIT_SINT8 offset; //
|
5982
|
+
FIT_UINT8 native_field_num; //
|
5983
|
+
} FIT_FIELD_DESCRIPTION_MESG;
|
5984
|
+
|
5985
|
+
typedef enum
|
5986
|
+
{
|
5987
|
+
FIT_FIELD_DESCRIPTION_FIELD_NUM_FIELD_NAME = 3,
|
5988
|
+
FIT_FIELD_DESCRIPTION_FIELD_NUM_UNITS = 8,
|
5989
|
+
FIT_FIELD_DESCRIPTION_FIELD_NUM_FIT_BASE_UNIT_ID = 13,
|
5990
|
+
FIT_FIELD_DESCRIPTION_FIELD_NUM_NATIVE_MESG_NUM = 14,
|
5991
|
+
FIT_FIELD_DESCRIPTION_FIELD_NUM_DEVELOPER_DATA_INDEX = 0,
|
5992
|
+
FIT_FIELD_DESCRIPTION_FIELD_NUM_FIELD_DEFINITION_NUMBER = 1,
|
5993
|
+
FIT_FIELD_DESCRIPTION_FIELD_NUM_FIT_BASE_TYPE_ID = 2,
|
5994
|
+
FIT_FIELD_DESCRIPTION_FIELD_NUM_SCALE = 6,
|
5995
|
+
FIT_FIELD_DESCRIPTION_FIELD_NUM_OFFSET = 7,
|
5996
|
+
FIT_FIELD_DESCRIPTION_FIELD_NUM_NATIVE_FIELD_NUM = 15
|
5997
|
+
} FIT_FIELD_DESCRIPTION_FIELD_NUM;
|
5998
|
+
|
5999
|
+
typedef enum
|
6000
|
+
{
|
6001
|
+
FIT_FIELD_DESCRIPTION_MESG_FIELD_NAME,
|
6002
|
+
FIT_FIELD_DESCRIPTION_MESG_UNITS,
|
6003
|
+
FIT_FIELD_DESCRIPTION_MESG_FIT_BASE_UNIT_ID,
|
6004
|
+
FIT_FIELD_DESCRIPTION_MESG_NATIVE_MESG_NUM,
|
6005
|
+
FIT_FIELD_DESCRIPTION_MESG_DEVELOPER_DATA_INDEX,
|
6006
|
+
FIT_FIELD_DESCRIPTION_MESG_FIELD_DEFINITION_NUMBER,
|
6007
|
+
FIT_FIELD_DESCRIPTION_MESG_FIT_BASE_TYPE_ID,
|
6008
|
+
FIT_FIELD_DESCRIPTION_MESG_SCALE,
|
6009
|
+
FIT_FIELD_DESCRIPTION_MESG_OFFSET,
|
6010
|
+
FIT_FIELD_DESCRIPTION_MESG_NATIVE_FIELD_NUM,
|
6011
|
+
FIT_FIELD_DESCRIPTION_MESG_FIELDS
|
6012
|
+
} FIT_FIELD_DESCRIPTION_MESG_FIELD;
|
6013
|
+
|
6014
|
+
typedef struct
|
6015
|
+
{
|
6016
|
+
FIT_UINT8 reserved_1;
|
6017
|
+
FIT_UINT8 arch;
|
6018
|
+
FIT_MESG_NUM global_mesg_num;
|
6019
|
+
FIT_UINT8 num_fields;
|
6020
|
+
FIT_UINT8 fields[FIT_FIELD_DESCRIPTION_MESG_FIELDS * FIT_FIELD_DEF_SIZE];
|
6021
|
+
} FIT_FIELD_DESCRIPTION_MESG_DEF;
|
6022
|
+
|
6023
|
+
// developer_data_id message
|
6024
|
+
|
6025
|
+
#define FIT_DEVELOPER_DATA_ID_MESG_SIZE 39
|
6026
|
+
#define FIT_DEVELOPER_DATA_ID_MESG_DEF_SIZE 20
|
6027
|
+
#define FIT_DEVELOPER_DATA_ID_MESG_DEVELOPER_ID_COUNT 16
|
6028
|
+
#define FIT_DEVELOPER_DATA_ID_MESG_APPLICATION_ID_COUNT 16
|
6029
|
+
|
6030
|
+
typedef struct
|
6031
|
+
{
|
6032
|
+
FIT_BYTE developer_id[FIT_DEVELOPER_DATA_ID_MESG_DEVELOPER_ID_COUNT]; //
|
6033
|
+
FIT_BYTE application_id[FIT_DEVELOPER_DATA_ID_MESG_APPLICATION_ID_COUNT]; //
|
6034
|
+
FIT_UINT32 application_version; //
|
6035
|
+
FIT_MANUFACTURER manufacturer_id; //
|
6036
|
+
FIT_UINT8 developer_data_index; //
|
6037
|
+
} FIT_DEVELOPER_DATA_ID_MESG;
|
6038
|
+
|
6039
|
+
typedef enum
|
6040
|
+
{
|
6041
|
+
FIT_DEVELOPER_DATA_ID_FIELD_NUM_DEVELOPER_ID = 0,
|
6042
|
+
FIT_DEVELOPER_DATA_ID_FIELD_NUM_APPLICATION_ID = 1,
|
6043
|
+
FIT_DEVELOPER_DATA_ID_FIELD_NUM_APPLICATION_VERSION = 4,
|
6044
|
+
FIT_DEVELOPER_DATA_ID_FIELD_NUM_MANUFACTURER_ID = 2,
|
6045
|
+
FIT_DEVELOPER_DATA_ID_FIELD_NUM_DEVELOPER_DATA_INDEX = 3
|
6046
|
+
} FIT_DEVELOPER_DATA_ID_FIELD_NUM;
|
6047
|
+
|
6048
|
+
typedef enum
|
6049
|
+
{
|
6050
|
+
FIT_DEVELOPER_DATA_ID_MESG_DEVELOPER_ID,
|
6051
|
+
FIT_DEVELOPER_DATA_ID_MESG_APPLICATION_ID,
|
6052
|
+
FIT_DEVELOPER_DATA_ID_MESG_APPLICATION_VERSION,
|
6053
|
+
FIT_DEVELOPER_DATA_ID_MESG_MANUFACTURER_ID,
|
6054
|
+
FIT_DEVELOPER_DATA_ID_MESG_DEVELOPER_DATA_INDEX,
|
6055
|
+
FIT_DEVELOPER_DATA_ID_MESG_FIELDS
|
6056
|
+
} FIT_DEVELOPER_DATA_ID_MESG_FIELD;
|
6057
|
+
|
6058
|
+
typedef struct
|
6059
|
+
{
|
6060
|
+
FIT_UINT8 reserved_1;
|
6061
|
+
FIT_UINT8 arch;
|
6062
|
+
FIT_MESG_NUM global_mesg_num;
|
6063
|
+
FIT_UINT8 num_fields;
|
6064
|
+
FIT_UINT8 fields[FIT_DEVELOPER_DATA_ID_MESG_FIELDS * FIT_FIELD_DEF_SIZE];
|
6065
|
+
} FIT_DEVELOPER_DATA_ID_MESG_DEF;
|
6066
|
+
|
3543
6067
|
typedef enum {
|
3544
6068
|
FIT_MESG_PAD,
|
3545
6069
|
FIT_MESG_FILE_ID,
|
@@ -3555,6 +6079,7 @@ typedef enum {
|
|
3555
6079
|
FIT_MESG_HRM_PROFILE,
|
3556
6080
|
FIT_MESG_SDM_PROFILE,
|
3557
6081
|
FIT_MESG_BIKE_PROFILE,
|
6082
|
+
FIT_MESG_CONNECTIVITY,
|
3558
6083
|
FIT_MESG_ZONES_TARGET,
|
3559
6084
|
FIT_MESG_SPORT,
|
3560
6085
|
FIT_MESG_HR_ZONE,
|
@@ -3570,9 +6095,21 @@ typedef enum {
|
|
3570
6095
|
FIT_MESG_RECORD,
|
3571
6096
|
FIT_MESG_EVENT,
|
3572
6097
|
FIT_MESG_DEVICE_INFO,
|
6098
|
+
FIT_MESG_TRAINING_FILE,
|
3573
6099
|
FIT_MESG_HRV,
|
6100
|
+
FIT_MESG_WEATHER_CONDITIONS,
|
6101
|
+
FIT_MESG_WEATHER_ALERT,
|
6102
|
+
FIT_MESG_NMEA_SENTENCE,
|
6103
|
+
FIT_MESG_AVIATION_ATTITUDE,
|
6104
|
+
FIT_MESG_VIDEO_TITLE,
|
6105
|
+
FIT_MESG_VIDEO_DESCRIPTION,
|
3574
6106
|
FIT_MESG_COURSE,
|
3575
6107
|
FIT_MESG_COURSE_POINT,
|
6108
|
+
FIT_MESG_SEGMENT_ID,
|
6109
|
+
FIT_MESG_SEGMENT_LEADERBOARD_ENTRY,
|
6110
|
+
FIT_MESG_SEGMENT_POINT,
|
6111
|
+
FIT_MESG_SEGMENT_LAP,
|
6112
|
+
FIT_MESG_SEGMENT_FILE,
|
3576
6113
|
FIT_MESG_WORKOUT,
|
3577
6114
|
FIT_MESG_WORKOUT_STEP,
|
3578
6115
|
FIT_MESG_SCHEDULE,
|
@@ -3581,11 +6118,19 @@ typedef enum {
|
|
3581
6118
|
FIT_MESG_BLOOD_PRESSURE,
|
3582
6119
|
FIT_MESG_MONITORING_INFO,
|
3583
6120
|
FIT_MESG_MONITORING,
|
6121
|
+
FIT_MESG_HR,
|
6122
|
+
FIT_MESG_ANT_RX,
|
6123
|
+
FIT_MESG_ANT_TX,
|
6124
|
+
FIT_MESG_EXD_SCREEN_CONFIGURATION,
|
6125
|
+
FIT_MESG_EXD_DATA_FIELD_CONFIGURATION,
|
6126
|
+
FIT_MESG_EXD_DATA_CONCEPT_CONFIGURATION,
|
6127
|
+
FIT_MESG_FIELD_DESCRIPTION,
|
6128
|
+
FIT_MESG_DEVELOPER_DATA_ID,
|
3584
6129
|
FIT_MESGS
|
3585
6130
|
} FIT_MESG;
|
3586
6131
|
|
3587
6132
|
typedef const FIT_MESG_DEF * FIT_CONST_MESG_DEF_PTR;
|
3588
|
-
const
|
6133
|
+
extern const FIT_CONST_MESG_DEF_PTR fit_mesg_defs[FIT_MESGS];
|
3589
6134
|
|
3590
6135
|
|
3591
6136
|
|
@@ -3599,4 +6144,4 @@ const extern FIT_CONST_MESG_DEF_PTR fit_mesg_defs[FIT_MESGS];
|
|
3599
6144
|
#endif
|
3600
6145
|
|
3601
6146
|
#endif // !defined(FIT_EXAMPLE_H)
|
3602
|
-
|
6147
|
+
|