Wahoo Fitness API  3.6.1
Documentation for the iPhone version of the Wahoo Fitness API.
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Properties Macros Pages
fit_sdk.h
Go to the documentation of this file.
1 // The following FIT Protocol software provided may be used with FIT protocol
3 // devices only and remains the copyrighted property of Dynastream Innovations Inc.
4 // The software is being provided on an "as-is" basis and as an accommodation,
5 // and therefore all warranties, representations, or guarantees of any kind
6 // (whether express, implied or statutory) including, without limitation,
7 // warranties of merchantability, non-infringement, or fitness for a particular
8 // purpose, are specifically disclaimed.
9 //
10 // Copyright 2008 Dynastream Innovations Inc.
12 // ****WARNING**** This file is auto-generated! Do NOT edit this file.
13 // Profile Version = 2.0Release
14 // Tag = $Name: AKW2_000 $
15 // Product = SDK
16 // Alignment = 4 bytes, padding disabled.
18 
19 
20 #if !defined(FIT_SDK_H)
21 #define FIT_SDK_H
22 
23 #include "fit.h"
24 
25 #if defined(__cplusplus)
26  extern "C" {
27 #endif
28 
29 
31 // Public Definitions
33 
34 #define FIT_ALIGNMENT 4
35 
37 // Types
39 
40 
42 #define FIT_FILE_INVALID FIT_ENUM_INVALID
43 #define FIT_FILE_DEVICE ((FIT_FILE)1) // Read only, single file. Must be in root directory.
44 #define FIT_FILE_SETTINGS ((FIT_FILE)2) // Read/write, single file. Directory=Settings
45 #define FIT_FILE_SPORT ((FIT_FILE)3) // Read/write, multiple files, file number = sport type. Directory=Sports
46 #define FIT_FILE_ACTIVITY ((FIT_FILE)4) // Read/erase, multiple files. Directory=Activities
47 #define FIT_FILE_WORKOUT ((FIT_FILE)5) // Read/write/erase, multiple files. Directory=Workouts
48 #define FIT_FILE_COURSE ((FIT_FILE)6) // Read/write/erase, multiple files. Directory=Courses
49 #define FIT_FILE_SCHEDULES ((FIT_FILE)7) // Read/write, single file. Directory=Schedules
50 #define FIT_FILE_WEIGHT ((FIT_FILE)9) // Read only, single file. Circular buffer. All message definitions at start of file. Directory=Weight
51 #define FIT_FILE_TOTALS ((FIT_FILE)10) // Read only, single file. Directory=Totals
52 #define FIT_FILE_GOALS ((FIT_FILE)11) // Read/write, single file. Directory=Goals
53 #define FIT_FILE_BLOOD_PRESSURE ((FIT_FILE)14) // Read only. Directory=Blood Pressure
54 #define FIT_FILE_MONITORING ((FIT_FILE)15) // Read only. Directory=Monitoring
55 #define FIT_FILE_ACTIVITY_SUMMARY ((FIT_FILE)20) // Read/erase, multiple files. Directory=Activities
56 #define FIT_FILE_MONITORING_DAILY ((FIT_FILE)28)
57 #define FIT_FILE_COUNT 14
58 
60 #define FIT_MESG_NUM_INVALID FIT_UINT16_INVALID
61 #define FIT_MESG_NUM_FILE_ID ((FIT_MESG_NUM)0)
62 #define FIT_MESG_NUM_CAPABILITIES ((FIT_MESG_NUM)1)
63 #define FIT_MESG_NUM_DEVICE_SETTINGS ((FIT_MESG_NUM)2)
64 #define FIT_MESG_NUM_USER_PROFILE ((FIT_MESG_NUM)3)
65 #define FIT_MESG_NUM_HRM_PROFILE ((FIT_MESG_NUM)4)
66 #define FIT_MESG_NUM_SDM_PROFILE ((FIT_MESG_NUM)5)
67 #define FIT_MESG_NUM_BIKE_PROFILE ((FIT_MESG_NUM)6)
68 #define FIT_MESG_NUM_ZONES_TARGET ((FIT_MESG_NUM)7)
69 #define FIT_MESG_NUM_HR_ZONE ((FIT_MESG_NUM)8)
70 #define FIT_MESG_NUM_POWER_ZONE ((FIT_MESG_NUM)9)
71 #define FIT_MESG_NUM_MET_ZONE ((FIT_MESG_NUM)10)
72 #define FIT_MESG_NUM_SPORT ((FIT_MESG_NUM)12)
73 #define FIT_MESG_NUM_GOAL ((FIT_MESG_NUM)15)
74 #define FIT_MESG_NUM_SESSION ((FIT_MESG_NUM)18)
75 #define FIT_MESG_NUM_LAP ((FIT_MESG_NUM)19)
76 #define FIT_MESG_NUM_RECORD ((FIT_MESG_NUM)20)
77 #define FIT_MESG_NUM_EVENT ((FIT_MESG_NUM)21)
78 #define FIT_MESG_NUM_DEVICE_INFO ((FIT_MESG_NUM)23)
79 #define FIT_MESG_NUM_WORKOUT ((FIT_MESG_NUM)26)
80 #define FIT_MESG_NUM_WORKOUT_STEP ((FIT_MESG_NUM)27)
81 #define FIT_MESG_NUM_SCHEDULE ((FIT_MESG_NUM)28)
82 #define FIT_MESG_NUM_WEIGHT_SCALE ((FIT_MESG_NUM)30)
83 #define FIT_MESG_NUM_COURSE ((FIT_MESG_NUM)31)
84 #define FIT_MESG_NUM_COURSE_POINT ((FIT_MESG_NUM)32)
85 #define FIT_MESG_NUM_TOTALS ((FIT_MESG_NUM)33)
86 #define FIT_MESG_NUM_ACTIVITY ((FIT_MESG_NUM)34)
87 #define FIT_MESG_NUM_SOFTWARE ((FIT_MESG_NUM)35)
88 #define FIT_MESG_NUM_FILE_CAPABILITIES ((FIT_MESG_NUM)37)
89 #define FIT_MESG_NUM_MESG_CAPABILITIES ((FIT_MESG_NUM)38)
90 #define FIT_MESG_NUM_FIELD_CAPABILITIES ((FIT_MESG_NUM)39)
91 #define FIT_MESG_NUM_FILE_CREATOR ((FIT_MESG_NUM)49)
92 #define FIT_MESG_NUM_BLOOD_PRESSURE ((FIT_MESG_NUM)51)
93 #define FIT_MESG_NUM_MONITORING ((FIT_MESG_NUM)55)
94 #define FIT_MESG_NUM_HRV ((FIT_MESG_NUM)78)
95 #define FIT_MESG_NUM_LENGTH ((FIT_MESG_NUM)101)
96 #define FIT_MESG_NUM_MONITORING_INFO ((FIT_MESG_NUM)103)
97 #define FIT_MESG_NUM_PAD ((FIT_MESG_NUM)105)
98 #define FIT_MESG_NUM_MFG_RANGE_MIN ((FIT_MESG_NUM)0xFF00) // 0xFF00 - 0xFFFE reserved for manufacturer specific messages
99 #define FIT_MESG_NUM_MFG_RANGE_MAX ((FIT_MESG_NUM)0xFFFE) // 0xFF00 - 0xFFFE reserved for manufacturer specific messages
100 #define FIT_MESG_NUM_COUNT 39
101 
103 #define FIT_CHECKSUM_INVALID FIT_UINT8_INVALID
104 #define FIT_CHECKSUM_CLEAR ((FIT_CHECKSUM)0) // Allows clear of checksum for flash memory where can only write 1 to 0 without erasing sector.
105 #define FIT_CHECKSUM_OK ((FIT_CHECKSUM)1) // Set to mark checksum as valid if computes to invalid values 0 or 0xFF. Checksum can also be set to ok to save encoding computation time.
106 #define FIT_CHECKSUM_COUNT 2
107 
109 #define FIT_FILE_FLAGS_INVALID FIT_UINT8Z_INVALID
110 #define FIT_FILE_FLAGS_READ ((FIT_FILE_FLAGS)0x02)
111 #define FIT_FILE_FLAGS_WRITE ((FIT_FILE_FLAGS)0x04)
112 #define FIT_FILE_FLAGS_ERASE ((FIT_FILE_FLAGS)0x08)
113 #define FIT_FILE_FLAGS_COUNT 3
114 
116 #define FIT_MESG_COUNT_INVALID FIT_ENUM_INVALID
117 #define FIT_MESG_COUNT_NUM_PER_FILE ((FIT_MESG_COUNT)0)
118 #define FIT_MESG_COUNT_MAX_PER_FILE ((FIT_MESG_COUNT)1)
119 #define FIT_MESG_COUNT_MAX_PER_FILE_TYPE ((FIT_MESG_COUNT)2)
120 #define FIT_MESG_COUNT_COUNT 3
121 
122 typedef FIT_UINT32 FIT_DATE_TIME; // seconds since UTC 00:00 Dec 31 1989
123 #define FIT_DATE_TIME_INVALID FIT_UINT32_INVALID
124 #define FIT_DATE_TIME_MIN ((FIT_DATE_TIME)0x10000000) // if date_time is < 0x10000000 then it is system time (seconds from device power on)
125 #define FIT_DATE_TIME_COUNT 1
126 
127 typedef FIT_UINT32 FIT_LOCAL_DATE_TIME; // seconds since 00:00 Dec 31 1989 in local time zone
128 #define FIT_LOCAL_DATE_TIME_INVALID FIT_UINT32_INVALID
129 #define FIT_LOCAL_DATE_TIME_COUNT 0
130 
132 #define FIT_MESSAGE_INDEX_INVALID FIT_UINT16_INVALID
133 #define FIT_MESSAGE_INDEX_SELECTED ((FIT_MESSAGE_INDEX)0x8000) // message is selected if set
134 #define FIT_MESSAGE_INDEX_RESERVED ((FIT_MESSAGE_INDEX)0x7000) // reserved (default 0)
135 #define FIT_MESSAGE_INDEX_MASK ((FIT_MESSAGE_INDEX)0x0FFF) // index
136 #define FIT_MESSAGE_INDEX_COUNT 3
137 
139 #define FIT_DEVICE_INDEX_INVALID FIT_UINT8_INVALID
140 #define FIT_DEVICE_INDEX_CREATOR ((FIT_DEVICE_INDEX)0) // Creator of the file is always device index 0.
141 #define FIT_DEVICE_INDEX_COUNT 1
142 
144 #define FIT_GENDER_INVALID FIT_ENUM_INVALID
145 #define FIT_GENDER_FEMALE ((FIT_GENDER)0)
146 #define FIT_GENDER_MALE ((FIT_GENDER)1)
147 #define FIT_GENDER_COUNT 2
148 
150 #define FIT_LANGUAGE_INVALID FIT_ENUM_INVALID
151 #define FIT_LANGUAGE_ENGLISH ((FIT_LANGUAGE)0)
152 #define FIT_LANGUAGE_FRENCH ((FIT_LANGUAGE)1)
153 #define FIT_LANGUAGE_ITALIAN ((FIT_LANGUAGE)2)
154 #define FIT_LANGUAGE_GERMAN ((FIT_LANGUAGE)3)
155 #define FIT_LANGUAGE_SPANISH ((FIT_LANGUAGE)4)
156 #define FIT_LANGUAGE_CROATIAN ((FIT_LANGUAGE)5)
157 #define FIT_LANGUAGE_CZECH ((FIT_LANGUAGE)6)
158 #define FIT_LANGUAGE_DANISH ((FIT_LANGUAGE)7)
159 #define FIT_LANGUAGE_DUTCH ((FIT_LANGUAGE)8)
160 #define FIT_LANGUAGE_FINNISH ((FIT_LANGUAGE)9)
161 #define FIT_LANGUAGE_GREEK ((FIT_LANGUAGE)10)
162 #define FIT_LANGUAGE_HUNGARIAN ((FIT_LANGUAGE)11)
163 #define FIT_LANGUAGE_NORWEGIAN ((FIT_LANGUAGE)12)
164 #define FIT_LANGUAGE_POLISH ((FIT_LANGUAGE)13)
165 #define FIT_LANGUAGE_PORTUGUESE ((FIT_LANGUAGE)14)
166 #define FIT_LANGUAGE_SLOVAKIAN ((FIT_LANGUAGE)15)
167 #define FIT_LANGUAGE_SLOVENIAN ((FIT_LANGUAGE)16)
168 #define FIT_LANGUAGE_SWEDISH ((FIT_LANGUAGE)17)
169 #define FIT_LANGUAGE_RUSSIAN ((FIT_LANGUAGE)18)
170 #define FIT_LANGUAGE_TURKISH ((FIT_LANGUAGE)19)
171 #define FIT_LANGUAGE_LATVIAN ((FIT_LANGUAGE)20)
172 #define FIT_LANGUAGE_UKRAINIAN ((FIT_LANGUAGE)21)
173 #define FIT_LANGUAGE_ARABIC ((FIT_LANGUAGE)22)
174 #define FIT_LANGUAGE_FARSI ((FIT_LANGUAGE)23)
175 #define FIT_LANGUAGE_BULGARIAN ((FIT_LANGUAGE)24)
176 #define FIT_LANGUAGE_ROMANIAN ((FIT_LANGUAGE)25)
177 #define FIT_LANGUAGE_CUSTOM ((FIT_LANGUAGE)254)
178 #define FIT_LANGUAGE_COUNT 27
179 
181 #define FIT_DISPLAY_MEASURE_INVALID FIT_ENUM_INVALID
182 #define FIT_DISPLAY_MEASURE_METRIC ((FIT_DISPLAY_MEASURE)0)
183 #define FIT_DISPLAY_MEASURE_STATUTE ((FIT_DISPLAY_MEASURE)1)
184 #define FIT_DISPLAY_MEASURE_COUNT 2
185 
187 #define FIT_DISPLAY_HEART_INVALID FIT_ENUM_INVALID
188 #define FIT_DISPLAY_HEART_BPM ((FIT_DISPLAY_HEART)0)
189 #define FIT_DISPLAY_HEART_MAX ((FIT_DISPLAY_HEART)1)
190 #define FIT_DISPLAY_HEART_RESERVE ((FIT_DISPLAY_HEART)2)
191 #define FIT_DISPLAY_HEART_COUNT 3
192 
194 #define FIT_DISPLAY_POWER_INVALID FIT_ENUM_INVALID
195 #define FIT_DISPLAY_POWER_WATTS ((FIT_DISPLAY_POWER)0)
196 #define FIT_DISPLAY_POWER_PERCENT_FTP ((FIT_DISPLAY_POWER)1)
197 #define FIT_DISPLAY_POWER_COUNT 2
198 
200 #define FIT_DISPLAY_POSITION_INVALID FIT_ENUM_INVALID
201 #define FIT_DISPLAY_POSITION_DEGREE ((FIT_DISPLAY_POSITION)0) // dd.dddddd
202 #define FIT_DISPLAY_POSITION_DEGREE_MINUTE ((FIT_DISPLAY_POSITION)1) // dddmm.mmm
203 #define FIT_DISPLAY_POSITION_DEGREE_MINUTE_SECOND ((FIT_DISPLAY_POSITION)2) // dddmmss
204 #define FIT_DISPLAY_POSITION_AUSTRIAN_GRID ((FIT_DISPLAY_POSITION)3) // Austrian Grid (BMN)
205 #define FIT_DISPLAY_POSITION_BRITISH_GRID ((FIT_DISPLAY_POSITION)4) // British National Grid
206 #define FIT_DISPLAY_POSITION_DUTCH_GRID ((FIT_DISPLAY_POSITION)5) // Dutch grid system
207 #define FIT_DISPLAY_POSITION_HUNGARIAN_GRID ((FIT_DISPLAY_POSITION)6) // Hungarian grid system
208 #define FIT_DISPLAY_POSITION_FINNISH_GRID ((FIT_DISPLAY_POSITION)7) // Finnish grid system Zone3 KKJ27
209 #define FIT_DISPLAY_POSITION_GERMAN_GRID ((FIT_DISPLAY_POSITION)8) // Gausss Krueger (German)
210 #define FIT_DISPLAY_POSITION_ICELANDIC_GRID ((FIT_DISPLAY_POSITION)9) // Icelandic Grid
211 #define FIT_DISPLAY_POSITION_INDONESIAN_EQUATORIAL ((FIT_DISPLAY_POSITION)10) // Indonesian Equatorial LCO
212 #define FIT_DISPLAY_POSITION_INDONESIAN_IRIAN ((FIT_DISPLAY_POSITION)11) // Indonesian Irian LCO
213 #define FIT_DISPLAY_POSITION_INDONESIAN_SOUTHERN ((FIT_DISPLAY_POSITION)12) // Indonesian Southern LCO
214 #define FIT_DISPLAY_POSITION_INDIA_ZONE_0 ((FIT_DISPLAY_POSITION)13) // India zone 0
215 #define FIT_DISPLAY_POSITION_INDIA_ZONE_IA ((FIT_DISPLAY_POSITION)14) // India zone IA
216 #define FIT_DISPLAY_POSITION_INDIA_ZONE_IB ((FIT_DISPLAY_POSITION)15) // India zone IB
217 #define FIT_DISPLAY_POSITION_INDIA_ZONE_IIA ((FIT_DISPLAY_POSITION)16) // India zone IIA
218 #define FIT_DISPLAY_POSITION_INDIA_ZONE_IIB ((FIT_DISPLAY_POSITION)17) // India zone IIB
219 #define FIT_DISPLAY_POSITION_INDIA_ZONE_IIIA ((FIT_DISPLAY_POSITION)18) // India zone IIIA
220 #define FIT_DISPLAY_POSITION_INDIA_ZONE_IIIB ((FIT_DISPLAY_POSITION)19) // India zone IIIB
221 #define FIT_DISPLAY_POSITION_INDIA_ZONE_IVA ((FIT_DISPLAY_POSITION)20) // India zone IVA
222 #define FIT_DISPLAY_POSITION_INDIA_ZONE_IVB ((FIT_DISPLAY_POSITION)21) // India zone IVB
223 #define FIT_DISPLAY_POSITION_IRISH_TRANSVERSE ((FIT_DISPLAY_POSITION)22) // Irish Transverse Mercator
224 #define FIT_DISPLAY_POSITION_IRISH_GRID ((FIT_DISPLAY_POSITION)23) // Irish Grid
225 #define FIT_DISPLAY_POSITION_LORAN ((FIT_DISPLAY_POSITION)24) // Loran TD
226 #define FIT_DISPLAY_POSITION_MAIDENHEAD_GRID ((FIT_DISPLAY_POSITION)25) // Maidenhead grid system
227 #define FIT_DISPLAY_POSITION_MGRS_GRID ((FIT_DISPLAY_POSITION)26) // MGRS grid system
228 #define FIT_DISPLAY_POSITION_NEW_ZEALAND_GRID ((FIT_DISPLAY_POSITION)27) // New Zealand grid system
229 #define FIT_DISPLAY_POSITION_NEW_ZEALAND_TRANSVERSE ((FIT_DISPLAY_POSITION)28) // New Zealand Transverse Mercator
230 #define FIT_DISPLAY_POSITION_QATAR_GRID ((FIT_DISPLAY_POSITION)29) // Qatar National Grid
231 #define FIT_DISPLAY_POSITION_MODIFIED_SWEDISH_GRID ((FIT_DISPLAY_POSITION)30) // Modified RT-90 (Sweden)
232 #define FIT_DISPLAY_POSITION_SWEDISH_GRID ((FIT_DISPLAY_POSITION)31) // RT-90 (Sweden)
233 #define FIT_DISPLAY_POSITION_SOUTH_AFRICAN_GRID ((FIT_DISPLAY_POSITION)32) // South African Grid
234 #define FIT_DISPLAY_POSITION_SWISS_GRID ((FIT_DISPLAY_POSITION)33) // Swiss CH-1903 grid
235 #define FIT_DISPLAY_POSITION_TAIWAN_GRID ((FIT_DISPLAY_POSITION)34) // Taiwan Grid
236 #define FIT_DISPLAY_POSITION_UNITED_STATES_GRID ((FIT_DISPLAY_POSITION)35) // United States National Grid
237 #define FIT_DISPLAY_POSITION_UTM_UPS_GRID ((FIT_DISPLAY_POSITION)36) // UTM/UPS grid system
238 #define FIT_DISPLAY_POSITION_WEST_MALAYAN ((FIT_DISPLAY_POSITION)37) // West Malayan RSO
239 #define FIT_DISPLAY_POSITION_BORNEO_RSO ((FIT_DISPLAY_POSITION)38) // Borneo RSO
240 #define FIT_DISPLAY_POSITION_ESTONIAN_GRID ((FIT_DISPLAY_POSITION)39) // Estonian grid system
241 #define FIT_DISPLAY_POSITION_LATVIAN_GRID ((FIT_DISPLAY_POSITION)40) // Latvian Transverse Mercator
242 #define FIT_DISPLAY_POSITION_SWEDISH_REF_99_GRID ((FIT_DISPLAY_POSITION)41) // Reference Grid 99 TM (Swedish)
243 #define FIT_DISPLAY_POSITION_COUNT 42
244 
246 #define FIT_SPORT_INVALID FIT_ENUM_INVALID
247 #define FIT_SPORT_GENERIC ((FIT_SPORT)0)
248 #define FIT_SPORT_RUNNING ((FIT_SPORT)1)
249 #define FIT_SPORT_CYCLING ((FIT_SPORT)2)
250 #define FIT_SPORT_TRANSITION ((FIT_SPORT)3) // Mulitsport transition
251 #define FIT_SPORT_FITNESS_EQUIPMENT ((FIT_SPORT)4)
252 #define FIT_SPORT_SWIMMING ((FIT_SPORT)5)
253 #define FIT_SPORT_BASKETBALL ((FIT_SPORT)6)
254 #define FIT_SPORT_SOCCER ((FIT_SPORT)7)
255 #define FIT_SPORT_TENNIS ((FIT_SPORT)8)
256 #define FIT_SPORT_AMERICAN_FOOTBALL ((FIT_SPORT)9)
257 #define FIT_SPORT_TRAINING ((FIT_SPORT)10)
258 #define FIT_SPORT_ALL ((FIT_SPORT)254) // All is for goals only to include all sports.
259 #define FIT_SPORT_COUNT 12
260 
261 typedef FIT_UINT8Z FIT_SPORT_BITS_0; // Bit field corresponding to sport enum type (1 << sport).
262 #define FIT_SPORT_BITS_0_INVALID FIT_UINT8Z_INVALID
263 #define FIT_SPORT_BITS_0_GENERIC ((FIT_SPORT_BITS_0)0x01)
264 #define FIT_SPORT_BITS_0_RUNNING ((FIT_SPORT_BITS_0)0x02)
265 #define FIT_SPORT_BITS_0_CYCLING ((FIT_SPORT_BITS_0)0x04)
266 #define FIT_SPORT_BITS_0_TRANSITION ((FIT_SPORT_BITS_0)0x08) // Mulitsport transition
267 #define FIT_SPORT_BITS_0_FITNESS_EQUIPMENT ((FIT_SPORT_BITS_0)0x10)
268 #define FIT_SPORT_BITS_0_SWIMMING ((FIT_SPORT_BITS_0)0x20)
269 #define FIT_SPORT_BITS_0_BASKETBALL ((FIT_SPORT_BITS_0)0x40)
270 #define FIT_SPORT_BITS_0_SOCCER ((FIT_SPORT_BITS_0)0x80)
271 #define FIT_SPORT_BITS_0_COUNT 8
272 
273 typedef FIT_UINT8Z FIT_SPORT_BITS_1; // Bit field corresponding to sport enum type (1 << (sport-8)).
274 #define FIT_SPORT_BITS_1_INVALID FIT_UINT8Z_INVALID
275 #define FIT_SPORT_BITS_1_TENNIS ((FIT_SPORT_BITS_1)0x01)
276 #define FIT_SPORT_BITS_1_AMERICAN_FOOTBALL ((FIT_SPORT_BITS_1)0x02)
277 #define FIT_SPORT_BITS_1_TRAINING ((FIT_SPORT_BITS_1)0x04)
278 #define FIT_SPORT_BITS_1_COUNT 3
279 
281 #define FIT_SUB_SPORT_INVALID FIT_ENUM_INVALID
282 #define FIT_SUB_SPORT_GENERIC ((FIT_SUB_SPORT)0)
283 #define FIT_SUB_SPORT_TREADMILL ((FIT_SUB_SPORT)1) // Run
284 #define FIT_SUB_SPORT_STREET ((FIT_SUB_SPORT)2) // Run
285 #define FIT_SUB_SPORT_TRAIL ((FIT_SUB_SPORT)3) // Run
286 #define FIT_SUB_SPORT_TRACK ((FIT_SUB_SPORT)4) // Run
287 #define FIT_SUB_SPORT_SPIN ((FIT_SUB_SPORT)5) // Cycling
288 #define FIT_SUB_SPORT_INDOOR_CYCLING ((FIT_SUB_SPORT)6) // Cycling
289 #define FIT_SUB_SPORT_ROAD ((FIT_SUB_SPORT)7) // Cycling
290 #define FIT_SUB_SPORT_MOUNTAIN ((FIT_SUB_SPORT)8) // Cycling
291 #define FIT_SUB_SPORT_DOWNHILL ((FIT_SUB_SPORT)9) // Cycling
292 #define FIT_SUB_SPORT_RECUMBENT ((FIT_SUB_SPORT)10) // Cycling
293 #define FIT_SUB_SPORT_CYCLOCROSS ((FIT_SUB_SPORT)11) // Cycling
294 #define FIT_SUB_SPORT_HAND_CYCLING ((FIT_SUB_SPORT)12) // Cycling
295 #define FIT_SUB_SPORT_TRACK_CYCLING ((FIT_SUB_SPORT)13) // Cycling
296 #define FIT_SUB_SPORT_INDOOR_ROWING ((FIT_SUB_SPORT)14) // Fitness Equipment
297 #define FIT_SUB_SPORT_ELLIPTICAL ((FIT_SUB_SPORT)15) // Fitness Equipment
298 #define FIT_SUB_SPORT_STAIR_CLIMBING ((FIT_SUB_SPORT)16) // Fitness Equipment
299 #define FIT_SUB_SPORT_LAP_SWIMMING ((FIT_SUB_SPORT)17) // Swimming
300 #define FIT_SUB_SPORT_OPEN_WATER ((FIT_SUB_SPORT)18) // Swimming
301 #define FIT_SUB_SPORT_FLEXIBILITY_TRAINING ((FIT_SUB_SPORT)19) // Training
302 #define FIT_SUB_SPORT_STRENGTH_TRAINING ((FIT_SUB_SPORT)20) // Training
303 #define FIT_SUB_SPORT_ALL ((FIT_SUB_SPORT)254)
304 #define FIT_SUB_SPORT_COUNT 22
305 
307 #define FIT_ACTIVITY_INVALID FIT_ENUM_INVALID
308 #define FIT_ACTIVITY_MANUAL ((FIT_ACTIVITY)0)
309 #define FIT_ACTIVITY_AUTO_MULTI_SPORT ((FIT_ACTIVITY)1)
310 #define FIT_ACTIVITY_COUNT 2
311 
313 #define FIT_INTENSITY_INVALID FIT_ENUM_INVALID
314 #define FIT_INTENSITY_ACTIVE ((FIT_INTENSITY)0)
315 #define FIT_INTENSITY_REST ((FIT_INTENSITY)1)
316 #define FIT_INTENSITY_WARMUP ((FIT_INTENSITY)2)
317 #define FIT_INTENSITY_COOLDOWN ((FIT_INTENSITY)3)
318 #define FIT_INTENSITY_COUNT 4
319 
321 #define FIT_SESSION_TRIGGER_INVALID FIT_ENUM_INVALID
322 #define FIT_SESSION_TRIGGER_ACTIVITY_END ((FIT_SESSION_TRIGGER)0)
323 #define FIT_SESSION_TRIGGER_MANUAL ((FIT_SESSION_TRIGGER)1) // User changed sport.
324 #define FIT_SESSION_TRIGGER_AUTO_MULTI_SPORT ((FIT_SESSION_TRIGGER)2) // Auto multi-sport feature is enabled and user pressed lap button to advance session.
325 #define FIT_SESSION_TRIGGER_FITNESS_EQUIPMENT ((FIT_SESSION_TRIGGER)3) // Auto sport change caused by user linking to fitness equipment.
326 #define FIT_SESSION_TRIGGER_COUNT 4
327 
329 #define FIT_AUTOLAP_TRIGGER_INVALID FIT_ENUM_INVALID
330 #define FIT_AUTOLAP_TRIGGER_TIME ((FIT_AUTOLAP_TRIGGER)0)
331 #define FIT_AUTOLAP_TRIGGER_DISTANCE ((FIT_AUTOLAP_TRIGGER)1)
332 #define FIT_AUTOLAP_TRIGGER_POSITION_START ((FIT_AUTOLAP_TRIGGER)2)
333 #define FIT_AUTOLAP_TRIGGER_POSITION_LAP ((FIT_AUTOLAP_TRIGGER)3)
334 #define FIT_AUTOLAP_TRIGGER_POSITION_WAYPOINT ((FIT_AUTOLAP_TRIGGER)4)
335 #define FIT_AUTOLAP_TRIGGER_POSITION_MARKED ((FIT_AUTOLAP_TRIGGER)5)
336 #define FIT_AUTOLAP_TRIGGER_OFF ((FIT_AUTOLAP_TRIGGER)6)
337 #define FIT_AUTOLAP_TRIGGER_COUNT 7
338 
340 #define FIT_LAP_TRIGGER_INVALID FIT_ENUM_INVALID
341 #define FIT_LAP_TRIGGER_MANUAL ((FIT_LAP_TRIGGER)0)
342 #define FIT_LAP_TRIGGER_TIME ((FIT_LAP_TRIGGER)1)
343 #define FIT_LAP_TRIGGER_DISTANCE ((FIT_LAP_TRIGGER)2)
344 #define FIT_LAP_TRIGGER_POSITION_START ((FIT_LAP_TRIGGER)3)
345 #define FIT_LAP_TRIGGER_POSITION_LAP ((FIT_LAP_TRIGGER)4)
346 #define FIT_LAP_TRIGGER_POSITION_WAYPOINT ((FIT_LAP_TRIGGER)5)
347 #define FIT_LAP_TRIGGER_POSITION_MARKED ((FIT_LAP_TRIGGER)6)
348 #define FIT_LAP_TRIGGER_SESSION_END ((FIT_LAP_TRIGGER)7)
349 #define FIT_LAP_TRIGGER_FITNESS_EQUIPMENT ((FIT_LAP_TRIGGER)8)
350 #define FIT_LAP_TRIGGER_COUNT 9
351 
353 #define FIT_EVENT_INVALID FIT_ENUM_INVALID
354 #define FIT_EVENT_TIMER ((FIT_EVENT)0) // Group 0. Start / stop_all
355 #define FIT_EVENT_WORKOUT ((FIT_EVENT)3) // start / stop
356 #define FIT_EVENT_WORKOUT_STEP ((FIT_EVENT)4) // Start at beginning of workout. Stop at end of each step.
357 #define FIT_EVENT_POWER_DOWN ((FIT_EVENT)5) // stop_all group 0
358 #define FIT_EVENT_POWER_UP ((FIT_EVENT)6) // stop_all group 0
359 #define FIT_EVENT_OFF_COURSE ((FIT_EVENT)7) // start / stop group 0
360 #define FIT_EVENT_SESSION ((FIT_EVENT)8) // Stop at end of each session.
361 #define FIT_EVENT_LAP ((FIT_EVENT)9) // Stop at end of each lap.
362 #define FIT_EVENT_COURSE_POINT ((FIT_EVENT)10) // marker
363 #define FIT_EVENT_BATTERY ((FIT_EVENT)11) // marker
364 #define FIT_EVENT_VIRTUAL_PARTNER_PACE ((FIT_EVENT)12) // Group 1. Start at beginning of activity if VP enabled, when VP pace is changed during activity or VP enabled mid activity. stop_disable when VP disabled.
365 #define FIT_EVENT_HR_HIGH_ALERT ((FIT_EVENT)13) // Group 0. Start / stop when in alert condition.
366 #define FIT_EVENT_HR_LOW_ALERT ((FIT_EVENT)14) // Group 0. Start / stop when in alert condition.
367 #define FIT_EVENT_SPEED_HIGH_ALERT ((FIT_EVENT)15) // Group 0. Start / stop when in alert condition.
368 #define FIT_EVENT_SPEED_LOW_ALERT ((FIT_EVENT)16) // Group 0. Start / stop when in alert condition.
369 #define FIT_EVENT_CAD_HIGH_ALERT ((FIT_EVENT)17) // Group 0. Start / stop when in alert condition.
370 #define FIT_EVENT_CAD_LOW_ALERT ((FIT_EVENT)18) // Group 0. Start / stop when in alert condition.
371 #define FIT_EVENT_POWER_HIGH_ALERT ((FIT_EVENT)19) // Group 0. Start / stop when in alert condition.
372 #define FIT_EVENT_POWER_LOW_ALERT ((FIT_EVENT)20) // Group 0. Start / stop when in alert condition.
373 #define FIT_EVENT_RECOVERY_HR ((FIT_EVENT)21) // marker
374 #define FIT_EVENT_BATTERY_LOW ((FIT_EVENT)22) // marker
375 #define FIT_EVENT_TIME_DURATION_ALERT ((FIT_EVENT)23) // Group 1. Start if enabled mid activity (not required at start of activity). Stop when duration is reached. stop_disable if disabled.
376 #define FIT_EVENT_DISTANCE_DURATION_ALERT ((FIT_EVENT)24) // Group 1. Start if enabled mid activity (not required at start of activity). Stop when duration is reached. stop_disable if disabled.
377 #define FIT_EVENT_CALORIE_DURATION_ALERT ((FIT_EVENT)25) // Group 1. Start if enabled mid activity (not required at start of activity). Stop when duration is reached. stop_disable if disabled.
378 #define FIT_EVENT_ACTIVITY ((FIT_EVENT)26) // Group 1.. Stop at end of activity.
379 #define FIT_EVENT_FITNESS_EQUIPMENT ((FIT_EVENT)27) // marker
380 #define FIT_EVENT_COUNT 26
381 
383 #define FIT_EVENT_TYPE_INVALID FIT_ENUM_INVALID
384 #define FIT_EVENT_TYPE_START ((FIT_EVENT_TYPE)0)
385 #define FIT_EVENT_TYPE_STOP ((FIT_EVENT_TYPE)1)
386 #define FIT_EVENT_TYPE_CONSECUTIVE_DEPRECIATED ((FIT_EVENT_TYPE)2)
387 #define FIT_EVENT_TYPE_MARKER ((FIT_EVENT_TYPE)3)
388 #define FIT_EVENT_TYPE_STOP_ALL ((FIT_EVENT_TYPE)4)
389 #define FIT_EVENT_TYPE_BEGIN_DEPRECIATED ((FIT_EVENT_TYPE)5)
390 #define FIT_EVENT_TYPE_END_DEPRECIATED ((FIT_EVENT_TYPE)6)
391 #define FIT_EVENT_TYPE_END_ALL_DEPRECIATED ((FIT_EVENT_TYPE)7)
392 #define FIT_EVENT_TYPE_STOP_DISABLE ((FIT_EVENT_TYPE)8)
393 #define FIT_EVENT_TYPE_STOP_DISABLE_ALL ((FIT_EVENT_TYPE)9)
394 #define FIT_EVENT_TYPE_COUNT 10
395 
396 typedef FIT_ENUM FIT_TIMER_TRIGGER; // timer event data
397 #define FIT_TIMER_TRIGGER_INVALID FIT_ENUM_INVALID
398 #define FIT_TIMER_TRIGGER_MANUAL ((FIT_TIMER_TRIGGER)0)
399 #define FIT_TIMER_TRIGGER_AUTO ((FIT_TIMER_TRIGGER)1)
400 #define FIT_TIMER_TRIGGER_FITNESS_EQUIPMENT ((FIT_TIMER_TRIGGER)2)
401 #define FIT_TIMER_TRIGGER_COUNT 3
402 
403 typedef FIT_ENUM FIT_FITNESS_EQUIPMENT_STATE; // fitness equipment event data
404 #define FIT_FITNESS_EQUIPMENT_STATE_INVALID FIT_ENUM_INVALID
405 #define FIT_FITNESS_EQUIPMENT_STATE_READY ((FIT_FITNESS_EQUIPMENT_STATE)0)
406 #define FIT_FITNESS_EQUIPMENT_STATE_IN_USE ((FIT_FITNESS_EQUIPMENT_STATE)1)
407 #define FIT_FITNESS_EQUIPMENT_STATE_PAUSED ((FIT_FITNESS_EQUIPMENT_STATE)2)
408 #define FIT_FITNESS_EQUIPMENT_STATE_UNKNOWN ((FIT_FITNESS_EQUIPMENT_STATE)3) // lost connection to fitness equipment
409 #define FIT_FITNESS_EQUIPMENT_STATE_COUNT 4
410 
412 #define FIT_ACTIVITY_CLASS_INVALID FIT_ENUM_INVALID
413 #define FIT_ACTIVITY_CLASS_LEVEL ((FIT_ACTIVITY_CLASS)0x7F) // 0 to 100
414 #define FIT_ACTIVITY_CLASS_LEVEL_MAX ((FIT_ACTIVITY_CLASS)100)
415 #define FIT_ACTIVITY_CLASS_ATHLETE ((FIT_ACTIVITY_CLASS)0x80)
416 #define FIT_ACTIVITY_CLASS_COUNT 3
417 
419 #define FIT_HR_ZONE_CALC_INVALID FIT_ENUM_INVALID
420 #define FIT_HR_ZONE_CALC_CUSTOM ((FIT_HR_ZONE_CALC)0)
421 #define FIT_HR_ZONE_CALC_PERCENT_MAX_HR ((FIT_HR_ZONE_CALC)1)
422 #define FIT_HR_ZONE_CALC_PERCENT_HRR ((FIT_HR_ZONE_CALC)2)
423 #define FIT_HR_ZONE_CALC_COUNT 3
424 
426 #define FIT_PWR_ZONE_CALC_INVALID FIT_ENUM_INVALID
427 #define FIT_PWR_ZONE_CALC_CUSTOM ((FIT_PWR_ZONE_CALC)0)
428 #define FIT_PWR_ZONE_CALC_PERCENT_FTP ((FIT_PWR_ZONE_CALC)1)
429 #define FIT_PWR_ZONE_CALC_COUNT 2
430 
432 #define FIT_WKT_STEP_DURATION_INVALID FIT_ENUM_INVALID
433 #define FIT_WKT_STEP_DURATION_TIME ((FIT_WKT_STEP_DURATION)0)
434 #define FIT_WKT_STEP_DURATION_DISTANCE ((FIT_WKT_STEP_DURATION)1)
435 #define FIT_WKT_STEP_DURATION_HR_LESS_THAN ((FIT_WKT_STEP_DURATION)2)
436 #define FIT_WKT_STEP_DURATION_HR_GREATER_THAN ((FIT_WKT_STEP_DURATION)3)
437 #define FIT_WKT_STEP_DURATION_CALORIES ((FIT_WKT_STEP_DURATION)4)
438 #define FIT_WKT_STEP_DURATION_OPEN ((FIT_WKT_STEP_DURATION)5)
439 #define FIT_WKT_STEP_DURATION_REPEAT_UNTIL_STEPS_CMPLT ((FIT_WKT_STEP_DURATION)6)
440 #define FIT_WKT_STEP_DURATION_REPEAT_UNTIL_TIME ((FIT_WKT_STEP_DURATION)7)
441 #define FIT_WKT_STEP_DURATION_REPEAT_UNTIL_DISTANCE ((FIT_WKT_STEP_DURATION)8)
442 #define FIT_WKT_STEP_DURATION_REPEAT_UNTIL_CALORIES ((FIT_WKT_STEP_DURATION)9)
443 #define FIT_WKT_STEP_DURATION_REPEAT_UNTIL_HR_LESS_THAN ((FIT_WKT_STEP_DURATION)10)
444 #define FIT_WKT_STEP_DURATION_REPEAT_UNTIL_HR_GREATER_THAN ((FIT_WKT_STEP_DURATION)11)
445 #define FIT_WKT_STEP_DURATION_REPEAT_UNTIL_POWER_LESS_THAN ((FIT_WKT_STEP_DURATION)12)
446 #define FIT_WKT_STEP_DURATION_REPEAT_UNTIL_POWER_GREATER_THAN ((FIT_WKT_STEP_DURATION)13)
447 #define FIT_WKT_STEP_DURATION_POWER_LESS_THAN ((FIT_WKT_STEP_DURATION)14)
448 #define FIT_WKT_STEP_DURATION_POWER_GREATER_THAN ((FIT_WKT_STEP_DURATION)15)
449 #define FIT_WKT_STEP_DURATION_COUNT 16
450 
452 #define FIT_WKT_STEP_TARGET_INVALID FIT_ENUM_INVALID
453 #define FIT_WKT_STEP_TARGET_SPEED ((FIT_WKT_STEP_TARGET)0)
454 #define FIT_WKT_STEP_TARGET_HEART_RATE ((FIT_WKT_STEP_TARGET)1)
455 #define FIT_WKT_STEP_TARGET_OPEN ((FIT_WKT_STEP_TARGET)2)
456 #define FIT_WKT_STEP_TARGET_CADENCE ((FIT_WKT_STEP_TARGET)3)
457 #define FIT_WKT_STEP_TARGET_POWER ((FIT_WKT_STEP_TARGET)4)
458 #define FIT_WKT_STEP_TARGET_GRADE ((FIT_WKT_STEP_TARGET)5)
459 #define FIT_WKT_STEP_TARGET_RESISTANCE ((FIT_WKT_STEP_TARGET)6)
460 #define FIT_WKT_STEP_TARGET_COUNT 7
461 
463 #define FIT_GOAL_INVALID FIT_ENUM_INVALID
464 #define FIT_GOAL_TIME ((FIT_GOAL)0)
465 #define FIT_GOAL_DISTANCE ((FIT_GOAL)1)
466 #define FIT_GOAL_CALORIES ((FIT_GOAL)2)
467 #define FIT_GOAL_FREQUENCY ((FIT_GOAL)3)
468 #define FIT_GOAL_STEPS ((FIT_GOAL)4)
469 #define FIT_GOAL_COUNT 5
470 
472 #define FIT_GOAL_RECURRENCE_INVALID FIT_ENUM_INVALID
473 #define FIT_GOAL_RECURRENCE_OFF ((FIT_GOAL_RECURRENCE)0)
474 #define FIT_GOAL_RECURRENCE_DAILY ((FIT_GOAL_RECURRENCE)1)
475 #define FIT_GOAL_RECURRENCE_WEEKLY ((FIT_GOAL_RECURRENCE)2)
476 #define FIT_GOAL_RECURRENCE_MONTHLY ((FIT_GOAL_RECURRENCE)3)
477 #define FIT_GOAL_RECURRENCE_YEARLY ((FIT_GOAL_RECURRENCE)4)
478 #define FIT_GOAL_RECURRENCE_CUSTOM ((FIT_GOAL_RECURRENCE)5)
479 #define FIT_GOAL_RECURRENCE_COUNT 6
480 
482 #define FIT_SCHEDULE_INVALID FIT_ENUM_INVALID
483 #define FIT_SCHEDULE_WORKOUT ((FIT_SCHEDULE)0)
484 #define FIT_SCHEDULE_COURSE ((FIT_SCHEDULE)1)
485 #define FIT_SCHEDULE_COUNT 2
486 
488 #define FIT_COURSE_POINT_INVALID FIT_ENUM_INVALID
489 #define FIT_COURSE_POINT_GENERIC ((FIT_COURSE_POINT)0)
490 #define FIT_COURSE_POINT_SUMMIT ((FIT_COURSE_POINT)1)
491 #define FIT_COURSE_POINT_VALLEY ((FIT_COURSE_POINT)2)
492 #define FIT_COURSE_POINT_WATER ((FIT_COURSE_POINT)3)
493 #define FIT_COURSE_POINT_FOOD ((FIT_COURSE_POINT)4)
494 #define FIT_COURSE_POINT_DANGER ((FIT_COURSE_POINT)5)
495 #define FIT_COURSE_POINT_LEFT ((FIT_COURSE_POINT)6)
496 #define FIT_COURSE_POINT_RIGHT ((FIT_COURSE_POINT)7)
497 #define FIT_COURSE_POINT_STRAIGHT ((FIT_COURSE_POINT)8)
498 #define FIT_COURSE_POINT_FIRST_AID ((FIT_COURSE_POINT)9)
499 #define FIT_COURSE_POINT_FOURTH_CATEGORY ((FIT_COURSE_POINT)10)
500 #define FIT_COURSE_POINT_THIRD_CATEGORY ((FIT_COURSE_POINT)11)
501 #define FIT_COURSE_POINT_SECOND_CATEGORY ((FIT_COURSE_POINT)12)
502 #define FIT_COURSE_POINT_FIRST_CATEGORY ((FIT_COURSE_POINT)13)
503 #define FIT_COURSE_POINT_HORS_CATEGORY ((FIT_COURSE_POINT)14)
504 #define FIT_COURSE_POINT_SPRINT ((FIT_COURSE_POINT)15)
505 #define FIT_COURSE_POINT_LEFT_FORK ((FIT_COURSE_POINT)16)
506 #define FIT_COURSE_POINT_RIGHT_FORK ((FIT_COURSE_POINT)17)
507 #define FIT_COURSE_POINT_MIDDLE_FORK ((FIT_COURSE_POINT)18)
508 #define FIT_COURSE_POINT_COUNT 19
509 
511 #define FIT_MANUFACTURER_INVALID FIT_UINT16_INVALID
512 #define FIT_MANUFACTURER_GARMIN ((FIT_MANUFACTURER)1)
513 #define FIT_MANUFACTURER_GARMIN_FR405_ANTFS ((FIT_MANUFACTURER)2) // Do not use. Used by FR405 for ANTFS man id.
514 #define FIT_MANUFACTURER_ZEPHYR ((FIT_MANUFACTURER)3)
515 #define FIT_MANUFACTURER_DAYTON ((FIT_MANUFACTURER)4)
516 #define FIT_MANUFACTURER_IDT ((FIT_MANUFACTURER)5)
517 #define FIT_MANUFACTURER_SRM ((FIT_MANUFACTURER)6)
518 #define FIT_MANUFACTURER_QUARQ ((FIT_MANUFACTURER)7)
519 #define FIT_MANUFACTURER_IBIKE ((FIT_MANUFACTURER)8)
520 #define FIT_MANUFACTURER_SARIS ((FIT_MANUFACTURER)9)
521 #define FIT_MANUFACTURER_SPARK_HK ((FIT_MANUFACTURER)10)
522 #define FIT_MANUFACTURER_TANITA ((FIT_MANUFACTURER)11)
523 #define FIT_MANUFACTURER_ECHOWELL ((FIT_MANUFACTURER)12)
524 #define FIT_MANUFACTURER_DYNASTREAM_OEM ((FIT_MANUFACTURER)13)
525 #define FIT_MANUFACTURER_NAUTILUS ((FIT_MANUFACTURER)14)
526 #define FIT_MANUFACTURER_DYNASTREAM ((FIT_MANUFACTURER)15)
527 #define FIT_MANUFACTURER_TIMEX ((FIT_MANUFACTURER)16)
528 #define FIT_MANUFACTURER_METRIGEAR ((FIT_MANUFACTURER)17)
529 #define FIT_MANUFACTURER_XELIC ((FIT_MANUFACTURER)18)
530 #define FIT_MANUFACTURER_BEURER ((FIT_MANUFACTURER)19)
531 #define FIT_MANUFACTURER_CARDIOSPORT ((FIT_MANUFACTURER)20)
532 #define FIT_MANUFACTURER_A_AND_D ((FIT_MANUFACTURER)21)
533 #define FIT_MANUFACTURER_HMM ((FIT_MANUFACTURER)22)
534 #define FIT_MANUFACTURER_SUUNTO ((FIT_MANUFACTURER)23)
535 #define FIT_MANUFACTURER_THITA_ELEKTRONIK ((FIT_MANUFACTURER)24)
536 #define FIT_MANUFACTURER_GPULSE ((FIT_MANUFACTURER)25)
537 #define FIT_MANUFACTURER_CLEAN_MOBILE ((FIT_MANUFACTURER)26)
538 #define FIT_MANUFACTURER_PEDAL_BRAIN ((FIT_MANUFACTURER)27)
539 #define FIT_MANUFACTURER_PEAKSWARE ((FIT_MANUFACTURER)28)
540 #define FIT_MANUFACTURER_SAXONAR ((FIT_MANUFACTURER)29)
541 #define FIT_MANUFACTURER_LEMOND_FITNESS ((FIT_MANUFACTURER)30)
542 #define FIT_MANUFACTURER_DEXCOM ((FIT_MANUFACTURER)31)
543 #define FIT_MANUFACTURER_WAHOO_FITNESS ((FIT_MANUFACTURER)32)
544 #define FIT_MANUFACTURER_OCTANE_FITNESS ((FIT_MANUFACTURER)33)
545 #define FIT_MANUFACTURER_ARCHINOETICS ((FIT_MANUFACTURER)34)
546 #define FIT_MANUFACTURER_THE_HURT_BOX ((FIT_MANUFACTURER)35)
547 #define FIT_MANUFACTURER_CITIZEN_SYSTEMS ((FIT_MANUFACTURER)36)
548 #define FIT_MANUFACTURER_OSYNCE ((FIT_MANUFACTURER)38)
549 #define FIT_MANUFACTURER_HOLUX ((FIT_MANUFACTURER)39)
550 #define FIT_MANUFACTURER_CONCEPT2 ((FIT_MANUFACTURER)40)
551 #define FIT_MANUFACTURER_ONE_GIANT_LEAP ((FIT_MANUFACTURER)42)
552 #define FIT_MANUFACTURER_ACE_SENSOR ((FIT_MANUFACTURER)43)
553 #define FIT_MANUFACTURER_BRIM_BROTHERS ((FIT_MANUFACTURER)44)
554 #define FIT_MANUFACTURER_XPLOVA ((FIT_MANUFACTURER)45)
555 #define FIT_MANUFACTURER_PERCEPTION_DIGITAL ((FIT_MANUFACTURER)46)
556 #define FIT_MANUFACTURER_BF1SYSTEMS ((FIT_MANUFACTURER)47)
557 #define FIT_MANUFACTURER_PIONEER ((FIT_MANUFACTURER)48)
558 #define FIT_MANUFACTURER_SPANTEC ((FIT_MANUFACTURER)49)
559 #define FIT_MANUFACTURER_METALOGICS ((FIT_MANUFACTURER)50)
560 #define FIT_MANUFACTURER_4IIIIS ((FIT_MANUFACTURER)51)
561 #define FIT_MANUFACTURER_COUNT 49
562 
564 #define FIT_GARMIN_PRODUCT_INVALID FIT_UINT16_INVALID
565 #define FIT_GARMIN_PRODUCT_HRM1 ((FIT_GARMIN_PRODUCT)1)
566 #define FIT_GARMIN_PRODUCT_AXH01 ((FIT_GARMIN_PRODUCT)2) // AXH01 HRM chipset
567 #define FIT_GARMIN_PRODUCT_AXB01 ((FIT_GARMIN_PRODUCT)3)
568 #define FIT_GARMIN_PRODUCT_AXB02 ((FIT_GARMIN_PRODUCT)4)
569 #define FIT_GARMIN_PRODUCT_HRM2SS ((FIT_GARMIN_PRODUCT)5)
570 #define FIT_GARMIN_PRODUCT_DSI_ALF02 ((FIT_GARMIN_PRODUCT)6)
571 #define FIT_GARMIN_PRODUCT_FR405 ((FIT_GARMIN_PRODUCT)717) // Forerunner 405
572 #define FIT_GARMIN_PRODUCT_FR50 ((FIT_GARMIN_PRODUCT)782) // Forerunner 50
573 #define FIT_GARMIN_PRODUCT_FR60 ((FIT_GARMIN_PRODUCT)988) // Forerunner 60
574 #define FIT_GARMIN_PRODUCT_DSI_ALF01 ((FIT_GARMIN_PRODUCT)1011)
575 #define FIT_GARMIN_PRODUCT_FR310XT ((FIT_GARMIN_PRODUCT)1018) // Forerunner 310
576 #define FIT_GARMIN_PRODUCT_EDGE500 ((FIT_GARMIN_PRODUCT)1036)
577 #define FIT_GARMIN_PRODUCT_FR110 ((FIT_GARMIN_PRODUCT)1124) // Forerunner 110
578 #define FIT_GARMIN_PRODUCT_EDGE800 ((FIT_GARMIN_PRODUCT)1169)
579 #define FIT_GARMIN_PRODUCT_CHIRP ((FIT_GARMIN_PRODUCT)1253)
580 #define FIT_GARMIN_PRODUCT_EDGE200 ((FIT_GARMIN_PRODUCT)1325)
581 #define FIT_GARMIN_PRODUCT_FR910XT ((FIT_GARMIN_PRODUCT)1328)
582 #define FIT_GARMIN_PRODUCT_ALF04 ((FIT_GARMIN_PRODUCT)1341)
583 #define FIT_GARMIN_PRODUCT_FR610 ((FIT_GARMIN_PRODUCT)1345)
584 #define FIT_GARMIN_PRODUCT_FR70 ((FIT_GARMIN_PRODUCT)1436)
585 #define FIT_GARMIN_PRODUCT_FR310XT_4T ((FIT_GARMIN_PRODUCT)1446)
586 #define FIT_GARMIN_PRODUCT_AMX ((FIT_GARMIN_PRODUCT)1461)
587 #define FIT_GARMIN_PRODUCT_SDM4 ((FIT_GARMIN_PRODUCT)10007) // SDM4 footpod
588 #define FIT_GARMIN_PRODUCT_TRAINING_CENTER ((FIT_GARMIN_PRODUCT)20119)
589 #define FIT_GARMIN_PRODUCT_CONNECT ((FIT_GARMIN_PRODUCT)65534) // Garmin Connect website
590 #define FIT_GARMIN_PRODUCT_COUNT 25
591 
593 #define FIT_DEVICE_TYPE_INVALID FIT_UINT8_INVALID
594 #define FIT_DEVICE_TYPE_ANTFS ((FIT_DEVICE_TYPE)1)
595 #define FIT_DEVICE_TYPE_BIKE_POWER ((FIT_DEVICE_TYPE)11)
596 #define FIT_DEVICE_TYPE_ENVIRONMENT_SENSOR ((FIT_DEVICE_TYPE)12)
597 #define FIT_DEVICE_TYPE_MULTI_SPORT_SPEED_DISTANCE ((FIT_DEVICE_TYPE)15)
598 #define FIT_DEVICE_TYPE_FITNESS_EQUIPMENT ((FIT_DEVICE_TYPE)17)
599 #define FIT_DEVICE_TYPE_BLOOD_PRESSURE ((FIT_DEVICE_TYPE)18)
600 #define FIT_DEVICE_TYPE_WEIGHT_SCALE ((FIT_DEVICE_TYPE)119)
601 #define FIT_DEVICE_TYPE_HEART_RATE ((FIT_DEVICE_TYPE)120)
602 #define FIT_DEVICE_TYPE_BIKE_SPEED_CADENCE ((FIT_DEVICE_TYPE)121)
603 #define FIT_DEVICE_TYPE_BIKE_CADENCE ((FIT_DEVICE_TYPE)122)
604 #define FIT_DEVICE_TYPE_BIKE_SPEED ((FIT_DEVICE_TYPE)123)
605 #define FIT_DEVICE_TYPE_STRIDE_SPEED_DISTANCE ((FIT_DEVICE_TYPE)124)
606 #define FIT_DEVICE_TYPE_COUNT 12
607 
609 #define FIT_WORKOUT_CAPABILITIES_INVALID FIT_UINT32Z_INVALID
610 #define FIT_WORKOUT_CAPABILITIES_INTERVAL ((FIT_WORKOUT_CAPABILITIES)0x00000001)
611 #define FIT_WORKOUT_CAPABILITIES_CUSTOM ((FIT_WORKOUT_CAPABILITIES)0x00000002)
612 #define FIT_WORKOUT_CAPABILITIES_FITNESS_EQUIPMENT ((FIT_WORKOUT_CAPABILITIES)0x00000004)
613 #define FIT_WORKOUT_CAPABILITIES_FIRSTBEAT ((FIT_WORKOUT_CAPABILITIES)0x00000008)
614 #define FIT_WORKOUT_CAPABILITIES_NEW_LEAF ((FIT_WORKOUT_CAPABILITIES)0x00000010)
615 #define FIT_WORKOUT_CAPABILITIES_TCX ((FIT_WORKOUT_CAPABILITIES)0x00000020) // For backwards compatibility. Watch should add missing id fields then clear flag.
616 #define FIT_WORKOUT_CAPABILITIES_SPEED ((FIT_WORKOUT_CAPABILITIES)0x00000080) // Speed source required for workout step.
617 #define FIT_WORKOUT_CAPABILITIES_HEART_RATE ((FIT_WORKOUT_CAPABILITIES)0x00000100) // Heart rate source required for workout step.
618 #define FIT_WORKOUT_CAPABILITIES_DISTANCE ((FIT_WORKOUT_CAPABILITIES)0x00000200) // Distance source required for workout step.
619 #define FIT_WORKOUT_CAPABILITIES_CADENCE ((FIT_WORKOUT_CAPABILITIES)0x00000400) // Cadence source required for workout step.
620 #define FIT_WORKOUT_CAPABILITIES_POWER ((FIT_WORKOUT_CAPABILITIES)0x00000800) // Power source required for workout step.
621 #define FIT_WORKOUT_CAPABILITIES_GRADE ((FIT_WORKOUT_CAPABILITIES)0x00001000) // Grade source required for workout step.
622 #define FIT_WORKOUT_CAPABILITIES_RESISTANCE ((FIT_WORKOUT_CAPABILITIES)0x00002000) // Resistance source required for workout step.
623 #define FIT_WORKOUT_CAPABILITIES_PROTECTED ((FIT_WORKOUT_CAPABILITIES)0x00004000)
624 #define FIT_WORKOUT_CAPABILITIES_COUNT 14
625 
627 #define FIT_BATTERY_STATUS_INVALID FIT_UINT8_INVALID
628 #define FIT_BATTERY_STATUS_NEW ((FIT_BATTERY_STATUS)1)
629 #define FIT_BATTERY_STATUS_GOOD ((FIT_BATTERY_STATUS)2)
630 #define FIT_BATTERY_STATUS_OK ((FIT_BATTERY_STATUS)3)
631 #define FIT_BATTERY_STATUS_LOW ((FIT_BATTERY_STATUS)4)
632 #define FIT_BATTERY_STATUS_CRITICAL ((FIT_BATTERY_STATUS)5)
633 #define FIT_BATTERY_STATUS_COUNT 5
634 
636 #define FIT_HR_TYPE_INVALID FIT_ENUM_INVALID
637 #define FIT_HR_TYPE_NORMAL ((FIT_HR_TYPE)0)
638 #define FIT_HR_TYPE_IRREGULAR ((FIT_HR_TYPE)1)
639 #define FIT_HR_TYPE_COUNT 2
640 
642 #define FIT_COURSE_CAPABILITIES_INVALID FIT_UINT32Z_INVALID
643 #define FIT_COURSE_CAPABILITIES_PROCESSED ((FIT_COURSE_CAPABILITIES)0x00000001)
644 #define FIT_COURSE_CAPABILITIES_VALID ((FIT_COURSE_CAPABILITIES)0x00000002)
645 #define FIT_COURSE_CAPABILITIES_TIME ((FIT_COURSE_CAPABILITIES)0x00000004)
646 #define FIT_COURSE_CAPABILITIES_DISTANCE ((FIT_COURSE_CAPABILITIES)0x00000008)
647 #define FIT_COURSE_CAPABILITIES_POSITION ((FIT_COURSE_CAPABILITIES)0x00000010)
648 #define FIT_COURSE_CAPABILITIES_HEART_RATE ((FIT_COURSE_CAPABILITIES)0x00000020)
649 #define FIT_COURSE_CAPABILITIES_POWER ((FIT_COURSE_CAPABILITIES)0x00000040)
650 #define FIT_COURSE_CAPABILITIES_CADENCE ((FIT_COURSE_CAPABILITIES)0x00000080)
651 #define FIT_COURSE_CAPABILITIES_TRAINING ((FIT_COURSE_CAPABILITIES)0x00000100)
652 #define FIT_COURSE_CAPABILITIES_NAVIGATION ((FIT_COURSE_CAPABILITIES)0x00000200)
653 #define FIT_COURSE_CAPABILITIES_COUNT 10
654 
656 #define FIT_WEIGHT_INVALID FIT_UINT16_INVALID
657 #define FIT_WEIGHT_CALCULATING ((FIT_WEIGHT)0xFFFE)
658 #define FIT_WEIGHT_COUNT 1
659 
660 typedef FIT_UINT32 FIT_WORKOUT_HR; // 0 - 100 indicates% of maz hr; >100 indicates bpm (255 max) plus 100
661 #define FIT_WORKOUT_HR_INVALID FIT_UINT32_INVALID
662 #define FIT_WORKOUT_HR_BPM_OFFSET ((FIT_WORKOUT_HR)100)
663 #define FIT_WORKOUT_HR_COUNT 1
664 
665 typedef FIT_UINT32 FIT_WORKOUT_POWER; // 0 - 1000 indicates % of functional threshold power; >1000 indicates watts plus 1000.
666 #define FIT_WORKOUT_POWER_INVALID FIT_UINT32_INVALID
667 #define FIT_WORKOUT_POWER_WATTS_OFFSET ((FIT_WORKOUT_POWER)1000)
668 #define FIT_WORKOUT_POWER_COUNT 1
669 
671 #define FIT_BP_STATUS_INVALID FIT_ENUM_INVALID
672 #define FIT_BP_STATUS_NO_ERROR ((FIT_BP_STATUS)0)
673 #define FIT_BP_STATUS_ERROR_INCOMPLETE_DATA ((FIT_BP_STATUS)1)
674 #define FIT_BP_STATUS_ERROR_NO_MEASUREMENT ((FIT_BP_STATUS)2)
675 #define FIT_BP_STATUS_ERROR_DATA_OUT_OF_RANGE ((FIT_BP_STATUS)3)
676 #define FIT_BP_STATUS_ERROR_IRREGULAR_HEART_RATE ((FIT_BP_STATUS)4)
677 #define FIT_BP_STATUS_COUNT 5
678 
680 #define FIT_USER_LOCAL_ID_INVALID FIT_UINT16_INVALID
681 #define FIT_USER_LOCAL_ID_LOCAL_MIN ((FIT_USER_LOCAL_ID)0x0001)
682 #define FIT_USER_LOCAL_ID_LOCAL_MAX ((FIT_USER_LOCAL_ID)0x000F)
683 #define FIT_USER_LOCAL_ID_STATIONARY_MIN ((FIT_USER_LOCAL_ID)0x0010)
684 #define FIT_USER_LOCAL_ID_STATIONARY_MAX ((FIT_USER_LOCAL_ID)0x00FF)
685 #define FIT_USER_LOCAL_ID_PORTABLE_MIN ((FIT_USER_LOCAL_ID)0x0100)
686 #define FIT_USER_LOCAL_ID_PORTABLE_MAX ((FIT_USER_LOCAL_ID)0xFFFE)
687 #define FIT_USER_LOCAL_ID_COUNT 6
688 
690 #define FIT_SWIM_STROKE_INVALID FIT_ENUM_INVALID
691 #define FIT_SWIM_STROKE_FREESTYLE ((FIT_SWIM_STROKE)0)
692 #define FIT_SWIM_STROKE_BACKSTROKE ((FIT_SWIM_STROKE)1)
693 #define FIT_SWIM_STROKE_BREASTSTROKE ((FIT_SWIM_STROKE)2)
694 #define FIT_SWIM_STROKE_BUTTERFLY ((FIT_SWIM_STROKE)3)
695 #define FIT_SWIM_STROKE_DRILL ((FIT_SWIM_STROKE)4)
696 #define FIT_SWIM_STROKE_MIXED ((FIT_SWIM_STROKE)5)
697 #define FIT_SWIM_STROKE_COUNT 6
698 
700 #define FIT_ACTIVITY_TYPE_INVALID FIT_ENUM_INVALID
701 #define FIT_ACTIVITY_TYPE_GENERIC ((FIT_ACTIVITY_TYPE)0)
702 #define FIT_ACTIVITY_TYPE_RUNNING ((FIT_ACTIVITY_TYPE)1)
703 #define FIT_ACTIVITY_TYPE_CYCLING ((FIT_ACTIVITY_TYPE)2)
704 #define FIT_ACTIVITY_TYPE_TRANSITION ((FIT_ACTIVITY_TYPE)3) // Mulitsport transition
705 #define FIT_ACTIVITY_TYPE_FITNESS_EQUIPMENT ((FIT_ACTIVITY_TYPE)4)
706 #define FIT_ACTIVITY_TYPE_SWIMMING ((FIT_ACTIVITY_TYPE)5)
707 #define FIT_ACTIVITY_TYPE_WALKING ((FIT_ACTIVITY_TYPE)6)
708 #define FIT_ACTIVITY_TYPE_ALL ((FIT_ACTIVITY_TYPE)254) // All is for goals only to include all sports.
709 #define FIT_ACTIVITY_TYPE_COUNT 8
710 
712 #define FIT_ACTIVITY_SUBTYPE_INVALID FIT_ENUM_INVALID
713 #define FIT_ACTIVITY_SUBTYPE_GENERIC ((FIT_ACTIVITY_SUBTYPE)0)
714 #define FIT_ACTIVITY_SUBTYPE_TREADMILL ((FIT_ACTIVITY_SUBTYPE)1) // Run
715 #define FIT_ACTIVITY_SUBTYPE_STREET ((FIT_ACTIVITY_SUBTYPE)2) // Run
716 #define FIT_ACTIVITY_SUBTYPE_TRAIL ((FIT_ACTIVITY_SUBTYPE)3) // Run
717 #define FIT_ACTIVITY_SUBTYPE_TRACK ((FIT_ACTIVITY_SUBTYPE)4) // Run
718 #define FIT_ACTIVITY_SUBTYPE_SPIN ((FIT_ACTIVITY_SUBTYPE)5) // Cycling
719 #define FIT_ACTIVITY_SUBTYPE_INDOOR_CYCLING ((FIT_ACTIVITY_SUBTYPE)6) // Cycling
720 #define FIT_ACTIVITY_SUBTYPE_ROAD ((FIT_ACTIVITY_SUBTYPE)7) // Cycling
721 #define FIT_ACTIVITY_SUBTYPE_MOUNTAIN ((FIT_ACTIVITY_SUBTYPE)8) // Cycling
722 #define FIT_ACTIVITY_SUBTYPE_DOWNHILL ((FIT_ACTIVITY_SUBTYPE)9) // Cycling
723 #define FIT_ACTIVITY_SUBTYPE_RECUMBENT ((FIT_ACTIVITY_SUBTYPE)10) // Cycling
724 #define FIT_ACTIVITY_SUBTYPE_CYCLOCROSS ((FIT_ACTIVITY_SUBTYPE)11) // Cycling
725 #define FIT_ACTIVITY_SUBTYPE_HAND_CYCLING ((FIT_ACTIVITY_SUBTYPE)12) // Cycling
726 #define FIT_ACTIVITY_SUBTYPE_TRACK_CYCLING ((FIT_ACTIVITY_SUBTYPE)13) // Cycling
727 #define FIT_ACTIVITY_SUBTYPE_INDOOR_ROWING ((FIT_ACTIVITY_SUBTYPE)14) // Fitness Equipment
728 #define FIT_ACTIVITY_SUBTYPE_ELLIPTICAL ((FIT_ACTIVITY_SUBTYPE)15) // Fitness Equipment
729 #define FIT_ACTIVITY_SUBTYPE_STAIR_CLIMBING ((FIT_ACTIVITY_SUBTYPE)16) // Fitness Equipment
730 #define FIT_ACTIVITY_SUBTYPE_LAP_SWIMMING ((FIT_ACTIVITY_SUBTYPE)17) // Swimming
731 #define FIT_ACTIVITY_SUBTYPE_OPEN_WATER ((FIT_ACTIVITY_SUBTYPE)18) // Swimming
732 #define FIT_ACTIVITY_SUBTYPE_ALL ((FIT_ACTIVITY_SUBTYPE)254)
733 #define FIT_ACTIVITY_SUBTYPE_COUNT 20
734 
736 #define FIT_LEFT_RIGHT_BALANCE_INVALID FIT_UINT8_INVALID
737 #define FIT_LEFT_RIGHT_BALANCE_MASK ((FIT_LEFT_RIGHT_BALANCE)0x7F) // % contribution
738 #define FIT_LEFT_RIGHT_BALANCE_RIGHT ((FIT_LEFT_RIGHT_BALANCE)0x80) // data corresponds to right if set, otherwise unknown
739 #define FIT_LEFT_RIGHT_BALANCE_COUNT 2
740 
742 #define FIT_LEFT_RIGHT_BALANCE_100_INVALID FIT_UINT16_INVALID
743 #define FIT_LEFT_RIGHT_BALANCE_100_MASK ((FIT_LEFT_RIGHT_BALANCE_100)0x3FFF) // % contribution scaled by 100
744 #define FIT_LEFT_RIGHT_BALANCE_100_RIGHT ((FIT_LEFT_RIGHT_BALANCE_100)0x8000) // data corresponds to right if set, otherwise unknown
745 #define FIT_LEFT_RIGHT_BALANCE_100_COUNT 2
746 
748 #define FIT_LENGTH_TYPE_INVALID FIT_ENUM_INVALID
749 #define FIT_LENGTH_TYPE_IDLE ((FIT_LENGTH_TYPE)0) // Rest period. Length with no strokes
750 #define FIT_LENGTH_TYPE_ACTIVE ((FIT_LENGTH_TYPE)1) // Length with strokes.
751 #define FIT_LENGTH_TYPE_COUNT 2
752 
753 
755 // Message Conversion Structures
757 
758 typedef struct
759 {
765 
766 typedef struct
767 {
770  FIT_MESG_NUM global_mesg_num;
772  FIT_FIELD_CONVERT fields[46];
774 
775 
777 // Messages
779 
780 #define FIT_MESG_SIZE 106
781 #define FIT_MESG_DEF_SIZE 143
782 
783 // pad message
784 
785 #define FIT_PAD_MESG_DEF_SIZE 5
786 
787 typedef struct
788 {
791  FIT_MESG_NUM global_mesg_num;
794 
795 
796 // file_id message
797 
798 #define FIT_FILE_ID_MESG_SIZE 15
799 #define FIT_FILE_ID_MESG_DEF_SIZE 23
800 
801 typedef struct
802 {
804  FIT_DATE_TIME time_created; // Only set for files that are can be created/erased.
805  FIT_MANUFACTURER manufacturer; //
807  FIT_UINT16 number; // Only set for files that are not created/erased.
808  FIT_FILE type; //
810 
811 typedef enum
812 {
820 
821 typedef enum
822 {
831 
832 typedef struct
833 {
836  FIT_MESG_NUM global_mesg_num;
840 
841 // file_creator message
842 
843 #define FIT_FILE_CREATOR_MESG_SIZE 3
844 #define FIT_FILE_CREATOR_MESG_DEF_SIZE 11
845 
846 typedef struct
847 {
851 
852 typedef enum
853 {
857 
858 typedef enum
859 {
864 
865 typedef struct
866 {
869  FIT_MESG_NUM global_mesg_num;
873 
874 // software message
875 
876 #define FIT_SOFTWARE_MESG_SIZE 24
877 #define FIT_SOFTWARE_MESG_DEF_SIZE 20
878 #define FIT_SOFTWARE_MESG_PART_NUMBER_COUNT 16
879 
880 typedef struct
881 {
883  FIT_MESSAGE_INDEX message_index; //
885  FIT_MANUFACTURER manufacturer; //
888 
889 typedef enum
890 {
897 
898 typedef enum
899 {
907 
908 typedef struct
909 {
912  FIT_MESG_NUM global_mesg_num;
916 
917 // capabilities message
918 
919 #define FIT_CAPABILITIES_MESG_SIZE 9
920 #define FIT_CAPABILITIES_MESG_DEF_SIZE 14
921 #define FIT_CAPABILITIES_MESG_LANGUAGES_COUNT 4
922 #define FIT_CAPABILITIES_MESG_SPORTS_COUNT 1
923 
924 typedef struct
925 {
926  FIT_UINT8Z languages[FIT_CAPABILITIES_MESG_LANGUAGES_COUNT]; // Use language_bits_x types where x is index of array.
927  FIT_WORKOUT_CAPABILITIES workouts_supported; //
928  FIT_SPORT_BITS_0 sports[FIT_CAPABILITIES_MESG_SPORTS_COUNT]; // Use sport_bits_x types where x is index of array.
930 
931 typedef enum
932 {
937 
938 typedef enum
939 {
945 
946 typedef struct
947 {
950  FIT_MESG_NUM global_mesg_num;
954 
955 // file_capabilities message
956 
957 #define FIT_FILE_CAPABILITIES_MESG_SIZE 26
958 #define FIT_FILE_CAPABILITIES_MESG_DEF_SIZE 23
959 #define FIT_FILE_CAPABILITIES_MESG_DIRECTORY_COUNT 16
960 
961 typedef struct
962 {
964  FIT_UINT32 max_size; // bytes,
965  FIT_MESSAGE_INDEX message_index; //
967  FIT_FILE type; //
968  FIT_FILE_FLAGS flags; //
970 
971 typedef enum
972 {
980 
981 typedef enum
982 {
991 
992 typedef struct
993 {
996  FIT_MESG_NUM global_mesg_num;
1000 
1001 // mesg_capabilities message
1002 
1003 #define FIT_MESG_CAPABILITIES_MESG_SIZE 8
1004 #define FIT_MESG_CAPABILITIES_MESG_DEF_SIZE 20
1005 
1006 typedef struct
1007 {
1008  FIT_MESSAGE_INDEX message_index; //
1009  FIT_MESG_NUM mesg_num; //
1011  FIT_FILE file; //
1012  FIT_MESG_COUNT count_type; //
1014 
1015 typedef enum
1016 {
1023 
1024 typedef enum
1025 {
1033 
1034 typedef struct
1035 {
1038  FIT_MESG_NUM global_mesg_num;
1042 
1043 // field_capabilities message
1044 
1045 #define FIT_FIELD_CAPABILITIES_MESG_SIZE 9
1046 #define FIT_FIELD_CAPABILITIES_MESG_DEF_SIZE 23
1047 #define FIT_FIELD_CAPABILITIES_MESG_BITS_COUNT 1
1048 
1049 typedef struct
1050 {
1051  FIT_MESSAGE_INDEX message_index; //
1052  FIT_MESG_NUM mesg_num; //
1054  FIT_FILE file; //
1058 
1059 typedef enum
1060 {
1068 
1069 typedef enum
1070 {
1079 
1080 typedef struct
1081 {
1084  FIT_MESG_NUM global_mesg_num;
1088 
1089 // device_settings message
1090 
1091 #define FIT_DEVICE_SETTINGS_MESG_SIZE 4
1092 #define FIT_DEVICE_SETTINGS_MESG_DEF_SIZE 8
1093 
1094 typedef struct
1095 {
1096  FIT_UINT32 utc_offset; // Offset from system time. Required to convert timestamp from system time to UTC.
1098 
1099 typedef enum
1100 {
1103 
1104 typedef enum
1105 {
1109 
1110 typedef struct
1111 {
1114  FIT_MESG_NUM global_mesg_num;
1118 
1119 // user_profile message
1120 
1121 #define FIT_USER_PROFILE_MESG_SIZE 45
1122 #define FIT_USER_PROFILE_MESG_DEF_SIZE 71
1123 #define FIT_USER_PROFILE_MESG_FRIENDLY_NAME_COUNT 16
1124 #define FIT_USER_PROFILE_MESG_GLOBAL_ID_COUNT 6
1125 
1126 typedef struct
1127 {
1129  FIT_MESSAGE_INDEX message_index; //
1130  FIT_UINT16 weight; // 10 * kg,
1131  FIT_USER_LOCAL_ID local_id; //
1132  FIT_GENDER gender; //
1133  FIT_UINT8 age; // years,
1134  FIT_UINT8 height; // 100 * m,
1135  FIT_LANGUAGE language; //
1136  FIT_DISPLAY_MEASURE elev_setting; //
1137  FIT_DISPLAY_MEASURE weight_setting; //
1142  FIT_DISPLAY_HEART hr_setting; //
1143  FIT_DISPLAY_MEASURE speed_setting; //
1144  FIT_DISPLAY_MEASURE dist_setting; //
1145  FIT_DISPLAY_POWER power_setting; //
1146  FIT_ACTIVITY_CLASS activity_class; //
1147  FIT_DISPLAY_POSITION position_setting; //
1148  FIT_DISPLAY_MEASURE temperature_setting; //
1151 
1152 typedef enum
1153 {
1177 
1178 typedef enum
1179 {
1204 
1205 typedef struct
1206 {
1209  FIT_MESG_NUM global_mesg_num;
1213 
1214 // hrm_profile message
1215 
1216 #define FIT_HRM_PROFILE_MESG_SIZE 7
1217 #define FIT_HRM_PROFILE_MESG_DEF_SIZE 20
1218 
1219 typedef struct
1220 {
1221  FIT_MESSAGE_INDEX message_index; //
1227 
1228 typedef enum
1229 {
1236 
1237 typedef enum
1238 {
1246 
1247 typedef struct
1248 {
1251  FIT_MESG_NUM global_mesg_num;
1255 
1256 // sdm_profile message
1257 
1258 #define FIT_SDM_PROFILE_MESG_SIZE 13
1259 #define FIT_SDM_PROFILE_MESG_DEF_SIZE 26
1260 
1261 typedef struct
1262 {
1263  FIT_UINT32 odometer; // 100 * m,
1264  FIT_MESSAGE_INDEX message_index; //
1268  FIT_BOOL speed_source; // Use footpod for speed source instead of GPS
1271 
1272 typedef enum
1273 {
1282 
1283 typedef enum
1284 {
1294 
1295 typedef struct
1296 {
1299  FIT_MESG_NUM global_mesg_num;
1303 
1304 // bike_profile message
1305 
1306 #define FIT_BIKE_PROFILE_MESG_SIZE 53
1307 #define FIT_BIKE_PROFILE_MESG_DEF_SIZE 83
1308 #define FIT_BIKE_PROFILE_MESG_NAME_COUNT 16
1309 
1310 typedef struct
1311 {
1313  FIT_UINT32 odometer; // 100 * m,
1314  FIT_MESSAGE_INDEX message_index; //
1323  FIT_SPORT sport; //
1324  FIT_SUB_SPORT sub_sport; //
1332  FIT_UINT8 crank_length; // 2 * mm + -110,
1339 
1340 typedef enum
1341 {
1369 
1370 typedef enum
1371 {
1400 
1401 typedef struct
1402 {
1405  FIT_MESG_NUM global_mesg_num;
1409 
1410 // zones_target message
1411 
1412 #define FIT_ZONES_TARGET_MESG_SIZE 6
1413 #define FIT_ZONES_TARGET_MESG_DEF_SIZE 20
1414 
1415 typedef struct
1416 {
1420  FIT_HR_ZONE_CALC hr_calc_type; //
1421  FIT_PWR_ZONE_CALC pwr_calc_type; //
1423 
1424 typedef enum
1425 {
1432 
1433 typedef enum
1434 {
1442 
1443 typedef struct
1444 {
1447  FIT_MESG_NUM global_mesg_num;
1451 
1452 // sport message
1453 
1454 #define FIT_SPORT_MESG_SIZE 18
1455 #define FIT_SPORT_MESG_DEF_SIZE 14
1456 #define FIT_SPORT_MESG_NAME_COUNT 16
1457 
1458 typedef struct
1459 {
1461  FIT_SPORT sport; //
1462  FIT_SUB_SPORT sub_sport; //
1463 } FIT_SPORT_MESG;
1464 
1465 typedef enum
1466 {
1471 
1472 typedef enum
1473 {
1479 
1480 typedef struct
1481 {
1484  FIT_MESG_NUM global_mesg_num;
1488 
1489 // hr_zone message
1490 
1491 #define FIT_HR_ZONE_MESG_SIZE 4
1492 #define FIT_HR_ZONE_MESG_DEF_SIZE 14
1493 #define FIT_HR_ZONE_MESG_NAME_COUNT 1
1494 
1495 typedef struct
1496 {
1497  FIT_MESSAGE_INDEX message_index; //
1501 
1502 typedef enum
1503 {
1508 
1509 typedef enum
1510 {
1516 
1517 typedef struct
1518 {
1521  FIT_MESG_NUM global_mesg_num;
1525 
1526 // power_zone message
1527 
1528 #define FIT_POWER_ZONE_MESG_SIZE 5
1529 #define FIT_POWER_ZONE_MESG_DEF_SIZE 14
1530 #define FIT_POWER_ZONE_MESG_NAME_COUNT 1
1531 
1532 typedef struct
1533 {
1534  FIT_MESSAGE_INDEX message_index; //
1538 
1539 typedef enum
1540 {
1545 
1546 typedef enum
1547 {
1553 
1554 typedef struct
1555 {
1558  FIT_MESG_NUM global_mesg_num;
1562 
1563 // met_zone message
1564 
1565 #define FIT_MET_ZONE_MESG_SIZE 6
1566 #define FIT_MET_ZONE_MESG_DEF_SIZE 17
1567 
1568 typedef struct
1569 {
1570  FIT_MESSAGE_INDEX message_index; //
1571  FIT_UINT16 calories; // 10 * kcal / min,
1573  FIT_UINT8 fat_calories; // 10 * kcal / min,
1575 
1576 typedef enum
1577 {
1583 
1584 typedef enum
1585 {
1592 
1593 typedef struct
1594 {
1597  FIT_MESG_NUM global_mesg_num;
1601 
1602 // goal message
1603 
1604 #define FIT_GOAL_MESG_SIZE 26
1605 #define FIT_GOAL_MESG_DEF_SIZE 41
1606 
1607 typedef struct
1608 {
1609  FIT_DATE_TIME start_date; //
1610  FIT_DATE_TIME end_date; //
1613  FIT_MESSAGE_INDEX message_index; //
1615  FIT_SPORT sport; //
1616  FIT_SUB_SPORT sub_sport; //
1617  FIT_GOAL type; //
1619  FIT_GOAL_RECURRENCE recurrence; //
1621 } FIT_GOAL_MESG;
1622 
1623 typedef enum
1624 {
1638 
1639 typedef enum
1640 {
1655 
1656 typedef struct
1657 {
1660  FIT_MESG_NUM global_mesg_num;
1664 
1665 // activity message
1666 
1667 #define FIT_ACTIVITY_MESG_SIZE 18
1668 #define FIT_ACTIVITY_MESG_DEF_SIZE 29
1669 
1670 typedef struct
1671 {
1672  FIT_DATE_TIME timestamp; //
1673  FIT_UINT32 total_timer_time; // 1000 * s,Exclude pauses
1674  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.
1676  FIT_ACTIVITY type; //
1677  FIT_EVENT event; //
1678  FIT_EVENT_TYPE event_type; //
1681 
1682 typedef enum
1683 {
1693 
1694 typedef enum
1695 {
1706 
1707 typedef struct
1708 {
1711  FIT_MESG_NUM global_mesg_num;
1715 
1716 // session message
1717 
1718 #define FIT_SESSION_MESG_SIZE 106
1719 #define FIT_SESSION_MESG_DEF_SIZE 143
1720 
1721 typedef struct
1722 {
1723  FIT_DATE_TIME timestamp; // s,Sesson end time.
1724  FIT_DATE_TIME start_time; //
1727  FIT_UINT32 total_elapsed_time; // 1000 * s,Time (includes pauses)
1728  FIT_UINT32 total_timer_time; // 1000 * s,Timer Time (excludes pauses)
1731  FIT_SINT32 nec_lat; // semicircles,
1732  FIT_SINT32 nec_long; // semicircles,
1733  FIT_SINT32 swc_lat; // semicircles,
1734  FIT_SINT32 swc_long; // semicircles,
1735  FIT_UINT32 avg_stroke_count; // 10 * strokes,
1737  FIT_MESSAGE_INDEX message_index; // Selected bit is set for the current session.
1740  FIT_UINT16 avg_speed; // 1000 * m/s,total_distance / total_timer_time
1741  FIT_UINT16 max_speed; // 1000 * m/s,
1742  FIT_UINT16 avg_power; // watts,total_power / total_timer_time if non_zero_avg_power otherwise total_power / total_elapsed_time
1751  FIT_LEFT_RIGHT_BALANCE_100 left_right_balance; //
1754  FIT_UINT16 num_active_lengths; // lengths,# of active lengths of swim pool
1755  FIT_EVENT event; // session
1756  FIT_EVENT_TYPE event_type; // stop
1757  FIT_SPORT sport; //
1758  FIT_SUB_SPORT sub_sport; //
1759  FIT_UINT8 avg_heart_rate; // bpm,average heart rate (excludes pause time)
1761  FIT_UINT8 avg_cadence; // rpm,total_cycles / total_timer_time if non_zero_avg_cadence otherwise total_cycles / total_elapsed_time
1765  FIT_SESSION_TRIGGER trigger; //
1766  FIT_SWIM_STROKE swim_stroke; // swim_stroke,
1767  FIT_DISPLAY_MEASURE pool_length_unit; //
1770 
1771 typedef enum
1772 {
1820 
1821 typedef enum
1822 {
1871 
1872 typedef struct
1873 {
1876  FIT_MESG_NUM global_mesg_num;
1880 
1881 // lap message
1882 
1883 #define FIT_LAP_MESG_SIZE 87
1884 #define FIT_LAP_MESG_DEF_SIZE 122
1885 
1886 typedef struct
1887 {
1888  FIT_DATE_TIME timestamp; // s,Lap end time.
1889  FIT_DATE_TIME start_time; //
1892  FIT_SINT32 end_position_lat; // semicircles,
1894  FIT_UINT32 total_elapsed_time; // 1000 * s,Time (includes pauses)
1895  FIT_UINT32 total_timer_time; // 1000 * s,Timer Time (excludes pauses)
1899  FIT_MESSAGE_INDEX message_index; //
1901  FIT_UINT16 total_fat_calories; // kcal,If New Leaf
1902  FIT_UINT16 avg_speed; // 1000 * m/s,
1903  FIT_UINT16 max_speed; // 1000 * m/s,
1904  FIT_UINT16 avg_power; // watts,total_power / total_timer_time if non_zero_avg_power otherwise total_power / total_elapsed_time
1908  FIT_UINT16 num_lengths; // lengths,# of lengths of swim pool
1910  FIT_LEFT_RIGHT_BALANCE_100 left_right_balance; //
1913  FIT_UINT16 num_active_lengths; // lengths,# of active lengths of swim pool
1914  FIT_EVENT event; //
1915  FIT_EVENT_TYPE event_type; //
1918  FIT_UINT8 avg_cadence; // rpm,total_cycles / total_timer_time if non_zero_avg_cadence otherwise total_cycles / total_elapsed_time
1920  FIT_INTENSITY intensity; //
1921  FIT_LAP_TRIGGER lap_trigger; //
1922  FIT_SPORT sport; //
1924  FIT_SWIM_STROKE swim_stroke; //
1925  FIT_SUB_SPORT sub_sport; //
1927 } FIT_LAP_MESG;
1928 
1929 typedef enum
1930 {
1971 
1972 typedef enum
1973 {
2015 
2016 typedef struct
2017 {
2020  FIT_MESG_NUM global_mesg_num;
2024 
2025 // length message
2026 
2027 #define FIT_LENGTH_MESG_SIZE 30
2028 #define FIT_LENGTH_MESG_DEF_SIZE 47
2029 
2030 typedef struct
2031 {
2032  FIT_DATE_TIME timestamp; //
2033  FIT_DATE_TIME start_time; //
2036  FIT_MESSAGE_INDEX message_index; //
2038  FIT_UINT16 avg_speed; // 1000 * m/s,
2040  FIT_EVENT event; //
2041  FIT_EVENT_TYPE event_type; //
2042  FIT_SWIM_STROKE swim_stroke; // swim_stroke,
2045  FIT_LENGTH_TYPE length_type; //
2046 } FIT_LENGTH_MESG;
2047 
2048 typedef enum
2049 {
2065 
2066 typedef enum
2067 {
2084 
2085 typedef struct
2086 {
2089  FIT_MESG_NUM global_mesg_num;
2093 
2094 // record message
2095 
2096 #define FIT_RECORD_MESG_SIZE 53
2097 #define FIT_RECORD_MESG_DEF_SIZE 68
2098 #define FIT_RECORD_MESG_COMPRESSED_SPEED_DISTANCE_COUNT 3
2099 #define FIT_RECORD_MESG_SPEED_1S_COUNT 5
2100 
2101 typedef struct
2102 {
2103  FIT_DATE_TIME timestamp; // s,
2104  FIT_SINT32 position_lat; // semicircles,
2105  FIT_SINT32 position_long; // semicircles,
2106  FIT_UINT32 distance; // 100 * m,
2110  FIT_UINT16 altitude; // 5 * m + 500,
2111  FIT_UINT16 speed; // 1000 * m/s,
2112  FIT_UINT16 power; // watts,
2113  FIT_SINT16 grade; // 100 * %,
2118  FIT_UINT8 resistance; // Relative. 0 is none 254 is Max.
2121  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.
2123  FIT_LEFT_RIGHT_BALANCE left_right_balance; //
2124 } FIT_RECORD_MESG;
2125 
2126 typedef enum
2127 {
2150 
2151 typedef enum
2152 {
2176 
2177 typedef struct
2178 {
2181  FIT_MESG_NUM global_mesg_num;
2185 
2186 // event message
2187 
2188 #define FIT_EVENT_MESG_SIZE 13
2189 #define FIT_EVENT_MESG_DEF_SIZE 23
2190 
2191 typedef struct
2192 {
2193  FIT_DATE_TIME timestamp; // s,
2196  FIT_EVENT event; //
2197  FIT_EVENT_TYPE event_type; //
2199 } FIT_EVENT_MESG;
2200 
2201 typedef enum
2202 {
2210 
2211 typedef enum
2212 {
2221 
2222 typedef struct
2223 {
2226  FIT_MESG_NUM global_mesg_num;
2230 
2231 // device_info message
2232 
2233 #define FIT_DEVICE_INFO_MESG_SIZE 24
2234 #define FIT_DEVICE_INFO_MESG_DEF_SIZE 38
2235 
2236 typedef struct
2237 {
2238  FIT_DATE_TIME timestamp; // s,
2240  FIT_UINT32 cum_operating_time; // s,Reset by new battery or charge.
2241  FIT_MANUFACTURER manufacturer; //
2245  FIT_DEVICE_INDEX device_index; //
2246  FIT_DEVICE_TYPE device_type; //
2248  FIT_BATTERY_STATUS battery_status; //
2250 
2251 typedef enum
2252 {
2265 
2266 typedef enum
2267 {
2281 
2282 typedef struct
2283 {
2286  FIT_MESG_NUM global_mesg_num;
2290 
2291 // hrv message
2292 
2293 #define FIT_HRV_MESG_SIZE 2
2294 #define FIT_HRV_MESG_DEF_SIZE 8
2295 #define FIT_HRV_MESG_TIME_COUNT 1
2296 
2297 typedef struct
2298 {
2299  FIT_UINT16 time[FIT_HRV_MESG_TIME_COUNT]; // 1000 * s,Time between beats
2300 } FIT_HRV_MESG;
2301 
2302 typedef enum
2303 {
2306 
2307 typedef enum
2308 {
2312 
2313 typedef struct
2314 {
2317  FIT_MESG_NUM global_mesg_num;
2321 
2322 // course message
2323 
2324 #define FIT_COURSE_MESG_SIZE 21
2325 #define FIT_COURSE_MESG_DEF_SIZE 14
2326 #define FIT_COURSE_MESG_NAME_COUNT 16
2327 
2328 typedef struct
2329 {
2331  FIT_COURSE_CAPABILITIES capabilities; //
2332  FIT_SPORT sport; //
2333 } FIT_COURSE_MESG;
2334 
2335 typedef enum
2336 {
2341 
2342 typedef enum
2343 {
2349 
2350 typedef struct
2351 {
2354  FIT_MESG_NUM global_mesg_num;
2358 
2359 // course_point message
2360 
2361 #define FIT_COURSE_POINT_MESG_SIZE 35
2362 #define FIT_COURSE_POINT_MESG_DEF_SIZE 26
2363 #define FIT_COURSE_POINT_MESG_NAME_COUNT 16
2364 
2365 typedef struct
2366 {
2367  FIT_DATE_TIME timestamp; //
2368  FIT_SINT32 position_lat; // semicircles,
2369  FIT_SINT32 position_long; // semicircles,
2370  FIT_UINT32 distance; // 100 * m,
2372  FIT_MESSAGE_INDEX message_index; //
2373  FIT_COURSE_POINT type; //
2375 
2376 typedef enum
2377 {
2386 
2387 typedef enum
2388 {
2398 
2399 typedef struct
2400 {
2403  FIT_MESG_NUM global_mesg_num;
2407 
2408 // workout message
2409 
2410 #define FIT_WORKOUT_MESG_SIZE 23
2411 #define FIT_WORKOUT_MESG_DEF_SIZE 17
2412 #define FIT_WORKOUT_MESG_WKT_NAME_COUNT 16
2413 
2414 typedef struct
2415 {
2416  FIT_WORKOUT_CAPABILITIES capabilities; //
2418  FIT_UINT16 num_valid_steps; // number of valid steps
2419  FIT_SPORT sport; //
2421 
2422 typedef enum
2423 {
2429 
2430 typedef enum
2431 {
2438 
2439 typedef struct
2440 {
2443  FIT_MESG_NUM global_mesg_num;
2447 
2448 // workout_step message
2449 
2450 #define FIT_WORKOUT_STEP_MESG_SIZE 37
2451 #define FIT_WORKOUT_STEP_MESG_DEF_SIZE 32
2452 #define FIT_WORKOUT_STEP_MESG_WKT_STEP_NAME_COUNT 16
2453 
2454 typedef struct
2455 {
2461  FIT_MESSAGE_INDEX message_index; //
2462  FIT_WKT_STEP_DURATION duration_type; //
2463  FIT_WKT_STEP_TARGET target_type; //
2464  FIT_INTENSITY intensity; //
2466 
2467 typedef enum
2468 {
2479 
2480 typedef enum
2481 {
2493 
2494 typedef struct
2495 {
2498  FIT_MESG_NUM global_mesg_num;
2502 
2503 // schedule message
2504 
2505 #define FIT_SCHEDULE_MESG_SIZE 18
2506 #define FIT_SCHEDULE_MESG_DEF_SIZE 26
2507 
2508 typedef struct
2509 {
2510  FIT_UINT32Z serial_number; // Corresponds to file_id of scheduled workout / course.
2511  FIT_DATE_TIME time_created; // Corresponds to file_id of scheduled workout / course.
2512  FIT_LOCAL_DATE_TIME scheduled_time; //
2513  FIT_MANUFACTURER manufacturer; // Corresponds to file_id of scheduled workout / course.
2514  FIT_UINT16 product; // Corresponds to file_id of scheduled workout / course.
2515  FIT_BOOL completed; // TRUE if this activity has been started
2516  FIT_SCHEDULE type; //
2518 
2519 typedef enum
2520 {
2529 
2530 typedef enum
2531 {
2541 
2542 typedef struct
2543 {
2546  FIT_MESG_NUM global_mesg_num;
2550 
2551 // totals message
2552 
2553 #define FIT_TOTALS_MESG_SIZE 25
2554 #define FIT_TOTALS_MESG_DEF_SIZE 29
2555 
2556 typedef struct
2557 {
2558  FIT_DATE_TIME timestamp; // s,
2559  FIT_UINT32 timer_time; // s,Excludes pauses
2562  FIT_UINT32 elapsed_time; // s,Includes pauses
2563  FIT_MESSAGE_INDEX message_index; //
2565  FIT_SPORT sport; //
2566 } FIT_TOTALS_MESG;
2567 
2568 typedef enum
2569 {
2579 
2580 typedef enum
2581 {
2592 
2593 typedef struct
2594 {
2597  FIT_MESG_NUM global_mesg_num;
2601 
2602 // weight_scale message
2603 
2604 #define FIT_WEIGHT_SCALE_MESG_SIZE 25
2605 #define FIT_WEIGHT_SCALE_MESG_DEF_SIZE 44
2606 
2607 typedef struct
2608 {
2609  FIT_DATE_TIME timestamp; // s,
2610  FIT_WEIGHT weight; // 100 * kg,
2614  FIT_UINT16 bone_mass; // 100 * kg,
2615  FIT_UINT16 muscle_mass; // 100 * kg,
2616  FIT_UINT16 basal_met; // 4 * kcal/day,
2617  FIT_UINT16 active_met; // 4 * kcal/day,~4kJ per kcal, 0.25 allows max 16384 kcal
2618  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.
2623 
2624 typedef enum
2625 {
2640 
2641 typedef enum
2642 {
2658 
2659 typedef struct
2660 {
2663  FIT_MESG_NUM global_mesg_num;
2667 
2668 // blood_pressure message
2669 
2670 #define FIT_BLOOD_PRESSURE_MESG_SIZE 21
2671 #define FIT_BLOOD_PRESSURE_MESG_DEF_SIZE 38
2672 
2673 typedef struct
2674 {
2675  FIT_DATE_TIME timestamp; // s,
2682  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.
2684  FIT_HR_TYPE heart_rate_type; //
2685  FIT_BP_STATUS status; //
2687 
2688 typedef enum
2689 {
2702 
2703 typedef enum
2704 {
2718 
2719 typedef struct
2720 {
2723  FIT_MESG_NUM global_mesg_num;
2727 
2728 // monitoring_info message
2729 
2730 #define FIT_MONITORING_INFO_MESG_SIZE 8
2731 #define FIT_MONITORING_INFO_MESG_DEF_SIZE 11
2732 
2733 typedef struct
2734 {
2735  FIT_DATE_TIME timestamp; //
2736  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.
2738 
2739 typedef enum
2740 {
2744 
2745 typedef enum
2746 {
2751 
2752 typedef struct
2753 {
2756  FIT_MESG_NUM global_mesg_num;
2760 
2761 // monitoring message
2762 
2763 #define FIT_MONITORING_MESG_SIZE 31
2764 #define FIT_MONITORING_MESG_DEF_SIZE 41
2765 
2766 typedef struct
2767 {
2768  FIT_DATE_TIME timestamp; // s,Must align to logging interval, for example, time must be 00:00:00 for daily log.
2769  FIT_UINT32 distance; // 100 * m,
2770  FIT_UINT32 cycles; // cycles,
2771  FIT_UINT32 active_time; // 1000 * s,
2772  FIT_LOCAL_DATE_TIME local_timestamp; // Must align to logging interval, for example, time must be 00:00:00 for daily log.
2777  FIT_DEVICE_INDEX device_index; // Associates this data to device_info message. Not required for file with single device (sensor).
2778  FIT_ACTIVITY_TYPE activity_type; //
2779  FIT_ACTIVITY_SUBTYPE activity_subtype; //
2781 
2782 typedef enum
2783 {
2797 
2798 typedef enum
2799 {
2814 
2815 typedef struct
2816 {
2819  FIT_MESG_NUM global_mesg_num;
2823 
2824 typedef enum {
2863 } FIT_MESG;
2864 
2866 const extern FIT_CONST_MESG_DEF_PTR fit_mesg_defs[FIT_MESGS];
2867 
2868 
2869 
2870 
2871 #if defined(__cplusplus)
2872  }
2873 #endif
2874 
2875 #endif // !defined(FIT_SDK_H)
2876 
FIT_SINT32 start_position_lat
Definition: fit_sdk.h:1890
FIT_UINT8 heart_rate
Definition: fit_sdk.h:2683
Definition: fit_sdk.h:2584
FIT_SINT32 nec_lat
Definition: fit_sdk.h:1731
FIT_SUB_SPORT sub_sport
Definition: fit_sdk.h:1462
FIT_POWER_ZONE_MESG_FIELD
Definition: fit_sdk.h:1546
FIT_ENUM FIT_ACTIVITY_SUBTYPE
Definition: fit_sdk.h:711
Definition: fit_sdk.h:1951
Definition: fit_sdk.h:2062
Definition: fit_sdk.h:1359
Definition: fit_sdk.h:1806
FIT_UINT32 total_cycles
Definition: fit_sdk.h:1730
Definition: fit_sdk.h:946
FIT_BLOOD_PRESSURE_MESG_FIELD
Definition: fit_sdk.h:2703
#define FIT_WORKOUT_STEP_MESG_WKT_STEP_NAME_COUNT
Definition: fit_sdk.h:2452
Definition: fit_sdk.h:2158
Definition: fit_sdk.h:1839
Definition: fit_sdk.h:2643
Definition: fit_sdk.h:2146
Definition: fit_sdk.h:1183
#define FIT_COURSE_MESG_NAME_COUNT
Definition: fit_sdk.h:2326
FIT_UINT8 arch
Definition: fit_sdk.h:995
FIT_MESG_NUM global_mesg_num
Definition: fit_sdk.h:836
Definition: fit_sdk.h:1607
FIT_UINT16 first_length_index
Definition: fit_sdk.h:1911
FIT_ENUM FIT_FILE
Definition: fit_sdk.h:41
Definition: fit_sdk.h:2476
Definition: fit_sdk.h:1458
FIT_DISPLAY_MEASURE dist_setting
Definition: fit_sdk.h:1144
Definition: fit_sdk.h:2849
FIT_UINT32 max_size
Definition: fit_sdk.h:964
Definition: fit_sdk.h:1953
Definition: fit_sdk.h:2542
FIT_UINT8 num_fields
Definition: fit_sdk.h:2021
Definition: fit_sdk.h:1835
FIT_UINT8 arch
Definition: fit_sdk.h:1208
FIT_UINT8 arch
Definition: fit_sdk.h:2285
FIT_DISPLAY_MEASURE elev_setting
Definition: fit_sdk.h:1136
FIT_UINT32 distance
Definition: fit_sdk.h:2769
Definition: fit_sdk.h:2143
FIT_UINT32 FIT_DATE_TIME
Definition: fit_sdk.h:122
Definition: fit_sdk.h:1476
Definition: fit_sdk.h:1689
Definition: fit_sdk.h:2527
FIT_UINT8Z bike_spd_ant_id_trans_type
Definition: fit_sdk.h:1334
#define FIT_POWER_ZONE_MESG_NAME_COUNT
Definition: fit_sdk.h:1530
Definition: fit_sdk.h:2213
FIT_UINT8 arch
Definition: fit_sdk.h:1483
FIT_UINT16 total_strokes
Definition: fit_sdk.h:2037
FIT_UINT16 total_ascent
Definition: fit_sdk.h:1906
Definition: fit_sdk.h:1393
FIT_SESSION_MESG_FIELD
Definition: fit_sdk.h:1821
FIT_EVENT_TYPE event_type
Definition: fit_sdk.h:1678
Definition: fit_sdk.h:2532
FIT_MESG
Definition: fit_sdk.h:2824
FIT_UINT16 first_lap_index
Definition: fit_sdk.h:1746
Definition: fit_sdk.h:2491
Definition: fit_sdk.h:986
FIT_FIELD_CAPABILITIES_MESG_FIELD
Definition: fit_sdk.h:1069
Definition: fit_sdk.h:1837
Definition: fit_sdk.h:2162
FIT_DISPLAY_MEASURE pool_length_unit
Definition: fit_sdk.h:1767
Definition: fit_sdk.h:1590
uint8_t FIT_UINT8
Definition: fit.h:78
Definition: fit_sdk.h:2054
Definition: fit_sdk.h:895
Definition: fit_sdk.h:1398
FIT_UINT8 reserved_1
Definition: fit_sdk.h:2544
FIT_DATE_TIME timestamp
Definition: fit_sdk.h:1888
FIT_BIKE_PROFILE_FIELD_NUM
Definition: fit_sdk.h:1340
Definition: fit_sdk.h:2535
Definition: fit_sdk.h:1586
FIT_ENUM FIT_EVENT
Definition: fit_sdk.h:352
#define FIT_CAPABILITIES_MESG_SPORTS_COUNT
Definition: fit_sdk.h:922
Definition: fit_sdk.h:2328
FIT_MESG_NUM global_mesg_num
Definition: fit_sdk.h:1484
FIT_DATE_TIME timestamp
Definition: fit_sdk.h:2238
FIT_MESSAGE_INDEX message_index
Definition: fit_sdk.h:1899
Definition: fit_sdk.h:1786
Definition: fit_sdk.h:1968
FIT_UINT16 avg_speed
Definition: fit_sdk.h:1902
Definition: fit_sdk.h:1385
Definition: fit_sdk.h:1796
Definition: fit_sdk.h:1653
Definition: fit_sdk.h:2347
Definition: fit_sdk.h:2829
FIT_UINT16 map_evening_values
Definition: fit_sdk.h:2681
FIT_FILE_ID_FIELD_NUM
Definition: fit_sdk.h:811
FIT_UINT16 num_active_lengths
Definition: fit_sdk.h:1754
FIT_INTENSITY intensity
Definition: fit_sdk.h:2464
Definition: fit_sdk.h:1261
Definition: fit_sdk.h:1588
Definition: fit_sdk.h:1685
FIT_UINT8 num_fields
Definition: fit_sdk.h:771
Definition: fit_sdk.h:2006
FIT_SINT8 temperature
Definition: fit_sdk.h:2120
Definition: fit_sdk.h:2700
FIT_UINT8 arch
Definition: fit_sdk.h:1083
Definition: fit_sdk.h:2809
FIT_UINT8 arch
Definition: fit_sdk.h:2596
FIT_WEIGHT_SCALE_FIELD_NUM
Definition: fit_sdk.h:2624
FIT_MESSAGE_INDEX user_profile_index
Definition: fit_sdk.h:2618
FIT_UINT16 total_fat_calories
Definition: fit_sdk.h:1901
FIT_BOOL auto_wheel_cal
Definition: fit_sdk.h:1325
Definition: fit_sdk.h:1286
Definition: fit_sdk.h:984
FIT_UINT32 FIT_LOCAL_DATE_TIME
Definition: fit_sdk.h:127
Definition: fit_sdk.h:1542
FIT_DATE_TIME start_time
Definition: fit_sdk.h:1724
FIT_MESSAGE_INDEX message_index
Definition: fit_sdk.h:1737
Definition: fit_sdk.h:2004
Definition: fit_sdk.h:2490
Definition: fit_sdk.h:1181
Definition: fit_sdk.h:2593
Definition: fit_sdk.h:832
Definition: fit_sdk.h:2801
Definition: fit_sdk.h:2344
Definition: fit_sdk.h:2786
FIT_UINT8 num_fields
Definition: fit_sdk.h:1559
FIT_ENUM FIT_SCHEDULE
Definition: fit_sdk.h:481
FIT_SPORT sport
Definition: fit_sdk.h:1461
Definition: fit_sdk.h:2160
FIT_UINT8 reserved_1
Definition: fit_sdk.h:1445
FIT_UINT8 num_fields
Definition: fit_sdk.h:2287
Definition: fit_sdk.h:1841
Definition: fit_sdk.h:2170
FIT_MESSAGE_INDEX message_index
Definition: fit_sdk.h:1570
FIT_DATE_TIME time_created
Definition: fit_sdk.h:804
FIT_UINT8 num_fields
Definition: fit_sdk.h:1085
Definition: fit_sdk.h:816
Definition: fit_sdk.h:2078
FIT_USER_PROFILE_MESG_FIELD
Definition: fit_sdk.h:1178
FIT_ACTIVITY_MESG_FIELD
Definition: fit_sdk.h:1694
Definition: fit_sdk.h:1551
int16_t FIT_SINT16
Definition: fit.h:83
Definition: fit_sdk.h:2339
Definition: fit_sdk.h:1652
Definition: fit_sdk.h:1785
FIT_UINT16 max_power
Definition: fit_sdk.h:1905
FIT_ENUM FIT_HR_ZONE_CALC
Definition: fit_sdk.h:418
Definition: fit_sdk.h:2135
Definition: fit_sdk.h:2831
Definition: fit_sdk.h:2140
FIT_UINT16 product
Definition: fit_sdk.h:886
FIT_UINT8 arch
Definition: fit_sdk.h:2722
Definition: fit_sdk.h:2313
FIT_UINT32 avg_stroke_count
Definition: fit_sdk.h:1735
FIT_DEVICE_SETTINGS_MESG_FIELD
Definition: fit_sdk.h:1104
Definition: fit_sdk.h:1849
Definition: fit_sdk.h:2271
Definition: fit_sdk.h:1180
Definition: fit_sdk.h:943
Definition: fit_sdk.h:1778
Definition: fit_sdk.h:2835
Definition: fit_sdk.h:2163
Definition: fit_sdk.h:1826
#define FIT_HRV_MESG_TIME_COUNT
Definition: fit_sdk.h:2295
FIT_MESSAGE_INDEX message_index
Definition: fit_sdk.h:2372
FIT_UINT8 arch
Definition: fit_sdk.h:1520
FIT_UINT32 distance
Definition: fit_sdk.h:2370
Definition: fit_sdk.h:824
FIT_EVENT_TYPE event_type
Definition: fit_sdk.h:2197
Definition: fit_sdk.h:1957
FIT_UINT16 basal_met
Definition: fit_sdk.h:2616
FIT_UINT8Z bike_spdcad_ant_id_trans_type
Definition: fit_sdk.h:1336
Definition: fit_sdk.h:2841
FIT_UINT32 target_value
Definition: fit_sdk.h:2458
Definition: fit_sdk.h:1185
FIT_UINT32 elapsed_time
Definition: fit_sdk.h:2562
Definition: fit_sdk.h:1827
Definition: fit_sdk.h:1803
Definition: fit_sdk.h:1593
FIT_UINT8Z FIT_SPORT_BITS_1
Definition: fit_sdk.h:273
FIT_TOTALS_FIELD_NUM
Definition: fit_sdk.h:2568
Definition: fit_sdk.h:1415
FIT_COURSE_POINT_FIELD_NUM
Definition: fit_sdk.h:2376
Definition: fit_sdk.h:1945
FIT_COURSE_POINT type
Definition: fit_sdk.h:2373
Definition: fit_sdk.h:2269
Definition: fit_sdk.h:1373
FIT_UINT8 arch
Definition: fit_sdk.h:1446
Definition: fit_sdk.h:1289
Definition: fit_sdk.h:989
Definition: fit_sdk.h:1836
Definition: fit_sdk.h:2391
Definition: fit_sdk.h:2399
Definition: fit_sdk.h:1830
Definition: fit_sdk.h:1783
Definition: fit_sdk.h:1791
FIT_UINT8 num_fields
Definition: fit_sdk.h:2820
FIT_UINT8 num_fields
Definition: fit_sdk.h:997
Definition: fit_sdk.h:1504
Definition: fit_sdk.h:2277
Definition: fit_sdk.h:2715
Definition: fit_sdk.h:894
FIT_UINT16 power_cal_factor
Definition: fit_sdk.h:1322
Definition: fit_sdk.h:2789
FIT_UINT8 reserved_1
Definition: fit_sdk.h:789
FIT_UINT32 target_value
Definition: fit_sdk.h:1612
Definition: fit_sdk.h:1579
Definition: fit_sdk.h:2008
Definition: fit_sdk.h:2074
Definition: fit_sdk.h:1931
Definition: fit_sdk.h:1030
Definition: fit_sdk.h:2522
FIT_UINT8 num_fields
Definition: fit_sdk.h:1485
Definition: fit_sdk.h:2214
FIT_UINT8 num_fields
Definition: fit_sdk.h:1039
Definition: fit_sdk.h:1948
Definition: fit_sdk.h:1833
Definition: fit_sdk.h:1773
Definition: fit_sdk.h:1506
FIT_UINT32 data
Definition: fit_sdk.h:2194
FIT_UINT16 training_stress_score
Definition: fit_sdk.h:1749
FIT_UINT16 num_sessions
Definition: fit_sdk.h:1675
Definition: fit_sdk.h:1944
FIT_UINT8 reserved_1
Definition: fit_sdk.h:2661
FIT_DISPLAY_MEASURE temperature_setting
Definition: fit_sdk.h:1148
uint8_t FIT_BYTE
Definition: fit.h:133
FIT_UINT16 battery_voltage
Definition: fit_sdk.h:2244
FIT_UINT32 active_time
Definition: fit_sdk.h:2771
Definition: fit_sdk.h:2000
FIT_UINT8 reserved_1
Definition: fit_sdk.h:2018
Definition: fit_sdk.h:2716
Definition: fit_sdk.h:2653
FIT_BOOL enabled
Definition: fit_sdk.h:1223
Definition: fit_sdk.h:2128
FIT_UINT8 reserved_1
Definition: fit_sdk.h:2224
Definition: fit_sdk.h:978
Definition: fit_sdk.h:1858
FIT_UINT16 product
Definition: fit_sdk.h:806
FIT_MESG_NUM global_mesg_num
Definition: fit_sdk.h:869
Definition: fit_sdk.h:2634
Definition: fit_sdk.h:2698
Definition: fit_sdk.h:924
FIT_UINT16 avg_power
Definition: fit_sdk.h:1742
Definition: fit_sdk.h:1998
FIT_SWIM_STROKE swim_stroke
Definition: fit_sdk.h:1924
FIT_UINT16 total_descent
Definition: fit_sdk.h:1907
FIT_MESG_NUM global_mesg_num
Definition: fit_sdk.h:2089
Definition: fit_sdk.h:1292
FIT_UINT8 num_fields
Definition: fit_sdk.h:1661
Definition: fit_sdk.h:2350
Definition: fit_sdk.h:933
FIT_ENUM FIT_SPORT
Definition: fit_sdk.h:245
FIT_UINT8 reserved_1
Definition: fit_sdk.h:2179
FIT_UINT8Z hrm_ant_id_trans_type
Definition: fit_sdk.h:1225
FIT_LENGTH_FIELD_NUM
Definition: fit_sdk.h:2048
Definition: fit_sdk.h:1288
Definition: fit_sdk.h:1644
Definition: fit_sdk.h:1589
Definition: fit_sdk.h:1075
FIT_SINT32 end_position_lat
Definition: fit_sdk.h:1892
FIT_MESG_NUM global_mesg_num
Definition: fit_sdk.h:2354
FIT_UINT8 num_fields
Definition: fit_sdk.h:1598
FIT_UINT8 total_training_effect
Definition: fit_sdk.h:1763
Definition: fit_sdk.h:2309
Definition: fit_sdk.h:2275
FIT_FILE type
Definition: fit_sdk.h:967
FIT_DATE_TIME timestamp
Definition: fit_sdk.h:2768
Definition: fit_sdk.h:1696
Definition: fit_sdk.h:1384
FIT_UINT32 total_elapsed_time
Definition: fit_sdk.h:1894
Definition: fit_sdk.h:2282
Definition: fit_sdk.h:1991
FIT_UINT8 reserved_1
Definition: fit_sdk.h:1297
#define FIT_COURSE_POINT_MESG_NAME_COUNT
Definition: fit_sdk.h:2363
FIT_UINT16 FIT_WEIGHT
Definition: fit_sdk.h:655
FIT_ENUM FIT_ACTIVITY_CLASS
Definition: fit_sdk.h:411
FIT_BATTERY_STATUS battery_status
Definition: fit_sdk.h:2248
Definition: fit_sdk.h:2810
FIT_EVENT_MESG_FIELD
Definition: fit_sdk.h:2211
Definition: fit_sdk.h:1630
Definition: fit_sdk.h:1106
Definition: fit_sdk.h:1701
Definition: fit_sdk.h:2270
FIT_ENUM FIT_DISPLAY_HEART
Definition: fit_sdk.h:186
FIT_UINT16 recurrence_value
Definition: fit_sdk.h:1614
Definition: fit_sdk.h:1933
FIT_UINT16 total_calories
Definition: fit_sdk.h:1900
FIT_MESG_NUM global_mesg_num
Definition: fit_sdk.h:2819
FIT_ENUM FIT_SUB_SPORT
Definition: fit_sdk.h:280
FIT_UINT8 num_fields
Definition: fit_sdk.h:2318
FIT_EVENT_TYPE event_type
Definition: fit_sdk.h:1756
Definition: fit_sdk.h:1848
FIT_ENUM FIT_PWR_ZONE_CALC
Definition: fit_sdk.h:425
Definition: fit_sdk.h:1818
Definition: fit_sdk.h:1828
FIT_MESSAGE_INDEX message_index
Definition: fit_sdk.h:1051
FIT_UINT32 total_timer_time
Definition: fit_sdk.h:1728
FIT_DATE_TIME timestamp
Definition: fit_sdk.h:2193
FIT_UINT8 num_fields
Definition: fit_sdk.h:2444
Definition: fit_sdk.h:2137
Definition: fit_sdk.h:2690
Definition: fit_sdk.h:1187
FIT_UINT16 total_descent
Definition: fit_sdk.h:1745
FIT_MESG_NUM global_mesg_num
Definition: fit_sdk.h:2181
Definition: fit_sdk.h:2644
Definition: fit_sdk.h:1703
const FIT_MESG_DEF * FIT_CONST_MESG_DEF_PTR
Definition: fit_sdk.h:2865
Definition: fit_sdk.h:2803
FIT_UINT8 num_fields
Definition: fit_sdk.h:1300
Definition: fit_sdk.h:1817
Definition: fit_sdk.h:1845
Definition: fit_sdk.h:2659
Definition: fit_sdk.h:1656
Definition: fit_sdk.h:1792
Definition: fit_sdk.h:1080
Definition: fit_sdk.h:2268
Definition: fit_sdk.h:1126
Definition: fit_sdk.h:2807
Definition: fit_sdk.h:2056
FIT_COURSE_POINT_MESG_FIELD
Definition: fit_sdk.h:2387
Definition: fit_sdk.h:2132
Definition: fit_sdk.h:2646
Definition: fit_sdk.h:1947
FIT_FILE_FLAGS flags
Definition: fit_sdk.h:968
FIT_UINT16 map_morning_values
Definition: fit_sdk.h:2680
Definition: fit_sdk.h:828
Definition: fit_sdk.h:1230
Definition: fit_sdk.h:2857
FIT_UINT16 avg_stroke_distance
Definition: fit_sdk.h:1912
FIT_UINT8 reserved_1
Definition: fit_sdk.h:1519
Definition: fit_sdk.h:2278
FIT_MESG_NUM global_mesg_num
Definition: fit_sdk.h:996
Definition: fit_sdk.h:2273
FIT_UINT8 arch
Definition: fit_sdk.h:2180
#define FIT_HR_ZONE_MESG_NAME_COUNT
Definition: fit_sdk.h:1493
FIT_UINT8 avg_swimming_cadence
Definition: fit_sdk.h:2043
FIT_LENGTH_MESG_FIELD
Definition: fit_sdk.h:2066
Definition: fit_sdk.h:2844
FIT_UINT16 functional_threshold_power
Definition: fit_sdk.h:1417
Definition: fit_sdk.h:2129
FIT_UINT8Z FIT_SPORT_BITS_0
Definition: fit_sdk.h:261
Definition: fit_sdk.h:1357
FIT_UINT8 reserved_1
Definition: fit_sdk.h:1595
Definition: fit_sdk.h:2261
Definition: fit_sdk.h:862
FIT_SCHEDULE_MESG_FIELD
Definition: fit_sdk.h:2530
FIT_SCHEDULE type
Definition: fit_sdk.h:2516
FIT_UINT8 arch
Definition: fit_sdk.h:2353
FIT_UINT8 fat_calories
Definition: fit_sdk.h:1573
FIT_UINT32Z FIT_WORKOUT_CAPABILITIES
Definition: fit_sdk.h:608
Definition: fit_sdk.h:1072
FIT_SINT32 start_position_long
Definition: fit_sdk.h:1891
FIT_UINT16 max_speed
Definition: fit_sdk.h:1741
Definition: fit_sdk.h:1964
Definition: fit_sdk.h:2802
FIT_UINT8 arch
Definition: fit_sdk.h:1557
Definition: fit_sdk.h:2177
FIT_MESG_NUM global_mesg_num
Definition: fit_sdk.h:1660
Definition: fit_sdk.h:2846
Definition: fit_sdk.h:2427
FIT_MANUFACTURER manufacturer
Definition: fit_sdk.h:805
FIT_UINT8 reserved_1
Definition: fit_sdk.h:1556
FIT_UINT16 FIT_LEFT_RIGHT_BALANCE_100
Definition: fit_sdk.h:741
Definition: fit_sdk.h:1353
FIT_UINT8 arch
Definition: fit_sdk.h:2497
Definition: fit_sdk.h:1986
Definition: fit_sdk.h:1202
Definition: fit_sdk.h:2052
FIT_WORKOUT_MESG_FIELD
Definition: fit_sdk.h:2430
Definition: fit_sdk.h:2138
Definition: fit_sdk.h:1201
FIT_ENUM FIT_SWIM_STROKE
Definition: fit_sdk.h:689
Definition: fit_sdk.h:1787
FIT_UINT16 auto_wheelsize
Definition: fit_sdk.h:1320
Definition: fit_sdk.h:825
FIT_UINT8 avg_cadence
Definition: fit_sdk.h:1918
Definition: fit_sdk.h:1825
Definition: fit_sdk.h:1779
uint32_t FIT_UINT32Z
Definition: fit.h:128
FIT_UINT32Z serial_number
Definition: fit_sdk.h:803
const FIT_CONST_MESG_DEF_PTR fit_mesg_defs[FIT_MESGS]
FIT_MANUFACTURER manufacturer
Definition: fit_sdk.h:2513
FIT_UINT8 num_fields
Definition: fit_sdk.h:2547
Definition: fit_sdk.h:1935
FIT_LEFT_RIGHT_BALANCE_100 left_right_balance
Definition: fit_sdk.h:1751
Definition: fit_sdk.h:1627
Definition: fit_sdk.h:2719
FIT_MESG_CAPABILITIES_FIELD_NUM
Definition: fit_sdk.h:1015
Definition: fit_sdk.h:2574
Definition: fit_sdk.h:1374
FIT_WORKOUT_CAPABILITIES capabilities
Definition: fit_sdk.h:2416
Definition: fit_sdk.h:1184
FIT_UINT32 utc_offset
Definition: fit_sdk.h:1096
Definition: fit_sdk.h:1794
Definition: fit_sdk.h:2633
Definition: fit_sdk.h:2523
FIT_UINT16 calories
Definition: fit_sdk.h:1571
Definition: fit_sdk.h:893
Definition: fit_sdk.h:2861
Definition: fit_sdk.h:1242
FIT_ENUM FIT_LAP_TRIGGER
Definition: fit_sdk.h:339
#define FIT_FIELD_CAPABILITIES_MESG_BITS_COUNT
Definition: fit_sdk.h:1047
Definition: fit_sdk.h:1162
Definition: fit_sdk.h:2217
FIT_FILE type
Definition: fit_sdk.h:808
Definition: fit_sdk.h:1975
Definition: fit_sdk.h:892
FIT_UINT8 event_group
Definition: fit_sdk.h:1679
Definition: fit_sdk.h:900
FIT_UINT8 event_group
Definition: fit_sdk.h:2044
Definition: fit_sdk.h:1788
Definition: fit_sdk.h:1862
FIT_UINT8 hardware_version
Definition: fit_sdk.h:2247
FIT_HRV_FIELD_NUM
Definition: fit_sdk.h:2302
Definition: fit_sdk.h:2825
FIT_CAPABILITIES_MESG_FIELD
Definition: fit_sdk.h:938
Definition: fit_sdk.h:2536
Definition: fit_sdk.h:2079
Definition: fit_sdk.h:1834
FIT_SINT32 position_long
Definition: fit_sdk.h:2105
FIT_UINT8 reserved_1
Definition: fit_sdk.h:910
FIT_UINT8 default_max_heart_rate
Definition: fit_sdk.h:1141
FIT_UINT8 num_fields
Definition: fit_sdk.h:951
FIT_UINT8 reserved_1
Definition: fit_sdk.h:1036
Definition: fit_sdk.h:2812
Definition: fit_sdk.h:2081
uint16_t FIT_UINT16Z
Definition: fit.h:123
Definition: fit_sdk.h:2733
Definition: fit_sdk.h:2173
Definition: fit_sdk.h:2747
FIT_FILE file
Definition: fit_sdk.h:1011
Definition: fit_sdk.h:801
FIT_UINT8 num_fields
Definition: fit_sdk.h:1877
FIT_MESSAGE_INDEX message_index
Definition: fit_sdk.h:883
Definition: fit_sdk.h:2793
FIT_UINT8 arch
Definition: fit_sdk.h:2402
FIT_UINT32Z serial_number
Definition: fit_sdk.h:2510
uint8_t FIT_UINT8Z
Definition: fit.h:118
Definition: fit_sdk.h:1548
FIT_UINT16 total_ascent
Definition: fit_sdk.h:1744
Definition: fit_sdk.h:1064
FIT_UINT16 speed
Definition: fit_sdk.h:2111
FIT_INTENSITY intensity
Definition: fit_sdk.h:1920
Definition: fit_sdk.h:2435
Definition: fit_sdk.h:2850
Definition: fit_sdk.h:2254
Definition: fit_sdk.h:1477
Definition: fit_sdk.h:2012
FIT_ENUM FIT_WKT_STEP_DURATION
Definition: fit_sdk.h:431
Definition: fit_sdk.h:1812
FIT_SESSION_TRIGGER trigger
Definition: fit_sdk.h:1765
Definition: fit_sdk.h:1781
Definition: fit_sdk.h:2573
Definition: fit_sdk.h:2236
FIT_UINT8 reserved_1
Definition: fit_sdk.h:1482
Definition: fit_sdk.h:2556
FIT_MESG_NUM global_mesg_num
Definition: fit_sdk.h:1405
FIT_UINT8 reserved_1
Definition: fit_sdk.h:2315
FIT_HR_ZONE_FIELD_NUM
Definition: fit_sdk.h:1502
Definition: fit_sdk.h:2582
Definition: fit_sdk.h:2171
Definition: fit_sdk.h:2524
Definition: fit_sdk.h:1232
FIT_MESG_NUM global_mesg_num
Definition: fit_sdk.h:950
FIT_GOAL_MESG_FIELD
Definition: fit_sdk.h:1639
Definition: fit_sdk.h:1808
Definition: fit_sdk.h:1782
Definition: fit_sdk.h:891
FIT_GOAL_FIELD_NUM
Definition: fit_sdk.h:1623
FIT_CAPABILITIES_FIELD_NUM
Definition: fit_sdk.h:931
FIT_EVENT_TYPE event_type
Definition: fit_sdk.h:2041
FIT_DATE_TIME end_date
Definition: fit_sdk.h:1610
Definition: fit_sdk.h:2628
Definition: fit_sdk.h:1940
FIT_LEFT_RIGHT_BALANCE left_right_balance
Definition: fit_sdk.h:2123
Definition: fit_sdk.h:2525
FIT_BOOL speed_source
Definition: fit_sdk.h:1268
Definition: fit_sdk.h:1686
FIT_UINT16 compressed_distance
Definition: fit_sdk.h:2774
Definition: fit_sdk.h:2489
Definition: fit_sdk.h:1362
FIT_ENUM FIT_ACTIVITY
Definition: fit_sdk.h:306
Definition: fit_sdk.h:2651
Definition: fit_sdk.h:1963
Definition: fit_sdk.h:1856
FIT_HRM_PROFILE_FIELD_NUM
Definition: fit_sdk.h:1228
FIT_SOFTWARE_MESG_FIELD
Definition: fit_sdk.h:898
Definition: fit_sdk.h:2130
FIT_UINT16 active_met
Definition: fit_sdk.h:2617
Definition: fit_sdk.h:1982
Definition: fit_sdk.h:2279
FIT_SCHEDULE_FIELD_NUM
Definition: fit_sdk.h:2519
FIT_UINT8 arch
Definition: fit_sdk.h:1037
Definition: fit_sdk.h:2063
Definition: fit_sdk.h:1852
FIT_BOOL power_enabled
Definition: fit_sdk.h:1331
FIT_UINT16Z sdm_ant_id
Definition: fit_sdk.h:1265
Definition: fit_sdk.h:2207
Definition: fit_sdk.h:2483
Definition: fit_sdk.h:1867
Definition: fit_sdk.h:1949
FIT_UINT8 cycle_length
Definition: fit_sdk.h:2119
Definition: fit_sdk.h:1031
Definition: fit_sdk.h:2833
Definition: fit_sdk.h:1194
Definition: fit_sdk.h:2174
Definition: fit_sdk.h:1094
FIT_ENUM FIT_HR_TYPE
Definition: fit_sdk.h:635
Definition: fit_sdk.h:2051
Definition: fit_sdk.h:2784
FIT_DATE_TIME timestamp
Definition: fit_sdk.h:2367
Definition: fit_sdk.h:2191
FIT_MESG_NUM global_mesg_num
Definition: fit_sdk.h:1876
Definition: fit_sdk.h:2806
Definition: fit_sdk.h:942
Definition: fit_sdk.h:1580
FIT_WEIGHT weight
Definition: fit_sdk.h:2610
Definition: fit_sdk.h:2434
FIT_UINT8 num_fields
Definition: fit_sdk.h:2090
FIT_COURSE_CAPABILITIES capabilities
Definition: fit_sdk.h:2331
Definition: fit_sdk.h:1699
FIT_SPORT sport
Definition: fit_sdk.h:2332
Definition: fit_sdk.h:1994
Definition: fit_sdk.h:2204
FIT_UINT8 arch
Definition: fit_sdk.h:835
FIT_SOFTWARE_FIELD_NUM
Definition: fit_sdk.h:889
FIT_UINT16 sessions
Definition: fit_sdk.h:2564
FIT_UINT8 arch
Definition: fit_sdk.h:949
Definition: fit_sdk.h:2539
FIT_UINT8 num_fields
Definition: fit_sdk.h:1115
Definition: fit_sdk.h:2009
FIT_DISPLAY_MEASURE speed_setting
Definition: fit_sdk.h:1143
Definition: fit_sdk.h:2222
Definition: fit_sdk.h:2705
Definition: fit_sdk.h:2848
FIT_UINT8 reserved_1
Definition: fit_sdk.h:2441
Definition: fit_sdk.h:1290
FIT_DEVICE_SETTINGS_FIELD_NUM
Definition: fit_sdk.h:1099
Definition: fit_sdk.h:1805
FIT_UINT8 num_fields
Definition: fit_sdk.h:2182
Definition: fit_sdk.h:1815
Definition: fit_sdk.h:2053
Definition: fit_sdk.h:1635
FIT_UINT8 arch
Definition: fit_sdk.h:1250
Definition: fit_sdk.h:846
Definition: fit_sdk.h:2845
Definition: fit_sdk.h:2577
FIT_UINT16Z hrm_ant_id
Definition: fit_sdk.h:1222
FIT_SUB_SPORT sub_sport
Definition: fit_sdk.h:1925
Definition: fit_sdk.h:1160
FIT_UINT8 avg_cadence
Definition: fit_sdk.h:1761
Definition: fit_sdk.h:2153
FIT_ENUM FIT_GENDER
Definition: fit_sdk.h:143
FIT_UINT32 total_elapsed_time
Definition: fit_sdk.h:2034
Definition: fit_sdk.h:1274
FIT_MET_ZONE_FIELD_NUM
Definition: fit_sdk.h:1576
Definition: fit_sdk.h:2839
Definition: fit_sdk.h:1823
FIT_UINT8 FIT_DEVICE_TYPE
Definition: fit_sdk.h:592
Definition: fit_sdk.h:1514
FIT_BOOL spdcad_enabled
Definition: fit_sdk.h:1330
FIT_UINT8 reserved_1
Definition: fit_sdk.h:1207
Definition: fit_sdk.h:2208
Definition: fit_sdk.h:1351
FIT_UINT8 arch
Definition: fit_sdk.h:2545
FIT_BLOOD_PRESSURE_FIELD_NUM
Definition: fit_sdk.h:2688
FIT_HR_ZONE_CALC hr_calc_type
Definition: fit_sdk.h:1420
Definition: fit_sdk.h:758
FIT_SPORT sport
Definition: fit_sdk.h:2419
Definition: fit_sdk.h:1029
Definition: fit_sdk.h:1690
uint32_t FIT_UINT32
Definition: fit.h:98
FIT_MESSAGE_INDEX message_index
Definition: fit_sdk.h:2461
FIT_MESG_NUM global_mesg_num
Definition: fit_sdk.h:1114
Definition: fit_sdk.h:1721
FIT_BOOL enabled
Definition: fit_sdk.h:1620
Definition: fit_sdk.h:1943