rubyfit 0.0.5 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
+
|