rubyfit 0.0.2

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.
@@ -0,0 +1,618 @@
1
+ ////////////////////////////////////////////////////////////////////////////////
2
+ // The following .FIT software provided may be used with .FIT devices only and
3
+ // 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.
11
+ // All rights reserved. This software may not be reproduced by any means
12
+ // without express written approval of Dynastream Innovations Inc.
13
+ ////////////////////////////////////////////////////////////////////////////////
14
+ // ****WARNING**** This file is auto-generated! Do NOT edit this file.
15
+ // Profile Version = 0.62
16
+ // Product = 'SDK'
17
+ // Alignment = '4'
18
+ //////////////////////////////////////////////////////////////////////////////////
19
+
20
+
21
+ #include "string.h"
22
+ #include "fit_product.h"
23
+
24
+
25
+ ///////////////////////////////////////////////////////////////////////
26
+ // Messages
27
+ ///////////////////////////////////////////////////////////////////////
28
+
29
+ const static FIT_FILE_ID_MESG_DEF file_id_mesg_def =
30
+ {
31
+ 0, // reserved_1
32
+ FIT_ARCH_ENDIAN, // arch
33
+ FIT_MESG_NUM_FILE_ID, // global_mesg_num
34
+ 6, // num_fields
35
+ {
36
+ // Def#, size, base_type
37
+ 3, (sizeof(FIT_UINT32Z)*1), FIT_BASE_TYPE_UINT32Z,
38
+ 4, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
39
+ 1, (sizeof(FIT_MANUFACTURER)*1), FIT_BASE_TYPE_UINT16,
40
+ 2, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
41
+ 5, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
42
+ 0, (sizeof(FIT_FILE)*1), FIT_BASE_TYPE_ENUM,
43
+ }
44
+ };
45
+
46
+ const static FIT_FILE_CREATOR_MESG_DEF file_creator_mesg_def =
47
+ {
48
+ 0, // reserved_1
49
+ FIT_ARCH_ENDIAN, // arch
50
+ FIT_MESG_NUM_FILE_CREATOR, // global_mesg_num
51
+ 2, // num_fields
52
+ {
53
+ // Def#, size, base_type
54
+ 0, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
55
+ 1, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
56
+ }
57
+ };
58
+
59
+ const static FIT_SOFTWARE_MESG_DEF software_mesg_def =
60
+ {
61
+ 0, // reserved_1
62
+ FIT_ARCH_ENDIAN, // arch
63
+ FIT_MESG_NUM_SOFTWARE, // global_mesg_num
64
+ 3, // num_fields
65
+ {
66
+ // Def#, size, base_type
67
+ 5, (sizeof(FIT_STRING)*16), FIT_BASE_TYPE_STRING,
68
+ 254, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
69
+ 3, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
70
+ }
71
+ };
72
+
73
+ const static FIT_CAPABILITIES_MESG_DEF capabilities_mesg_def =
74
+ {
75
+ 0, // reserved_1
76
+ FIT_ARCH_ENDIAN, // arch
77
+ FIT_MESG_NUM_CAPABILITIES, // global_mesg_num
78
+ 1, // num_fields
79
+ {
80
+ // Def#, size, base_type
81
+ 21, (sizeof(FIT_WORKOUT_CAPABILITIES)*1), FIT_BASE_TYPE_UINT32Z,
82
+ }
83
+ };
84
+
85
+ const static FIT_FILE_CAPABILITIES_MESG_DEF file_capabilities_mesg_def =
86
+ {
87
+ 0, // reserved_1
88
+ FIT_ARCH_ENDIAN, // arch
89
+ FIT_MESG_NUM_FILE_CAPABILITIES, // global_mesg_num
90
+ 6, // num_fields
91
+ {
92
+ // Def#, size, base_type
93
+ 2, (sizeof(FIT_STRING)*16), FIT_BASE_TYPE_STRING,
94
+ 4, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
95
+ 254, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
96
+ 3, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
97
+ 0, (sizeof(FIT_FILE)*1), FIT_BASE_TYPE_ENUM,
98
+ 1, (sizeof(FIT_FILE_FLAGS)*1), FIT_BASE_TYPE_UINT8Z,
99
+ }
100
+ };
101
+
102
+ const static FIT_MESG_CAPABILITIES_MESG_DEF mesg_capabilities_mesg_def =
103
+ {
104
+ 0, // reserved_1
105
+ FIT_ARCH_ENDIAN, // arch
106
+ FIT_MESG_NUM_MESG_CAPABILITIES, // global_mesg_num
107
+ 5, // num_fields
108
+ {
109
+ // Def#, size, base_type
110
+ 254, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
111
+ 1, (sizeof(FIT_MESG_NUM)*1), FIT_BASE_TYPE_UINT16,
112
+ 3, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
113
+ 0, (sizeof(FIT_FILE)*1), FIT_BASE_TYPE_ENUM,
114
+ 2, (sizeof(FIT_MESG_COUNT)*1), FIT_BASE_TYPE_ENUM,
115
+ }
116
+ };
117
+
118
+ const static FIT_FIELD_CAPABILITIES_MESG_DEF field_capabilities_mesg_def =
119
+ {
120
+ 0, // reserved_1
121
+ FIT_ARCH_ENDIAN, // arch
122
+ FIT_MESG_NUM_FIELD_CAPABILITIES, // global_mesg_num
123
+ 5, // num_fields
124
+ {
125
+ // Def#, size, base_type
126
+ 254, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
127
+ 1, (sizeof(FIT_MESG_NUM)*1), FIT_BASE_TYPE_UINT16,
128
+ 3, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
129
+ 0, (sizeof(FIT_FILE)*1), FIT_BASE_TYPE_ENUM,
130
+ 2, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
131
+ }
132
+ };
133
+
134
+ const static FIT_DEVICE_SETTINGS_MESG_DEF device_settings_mesg_def =
135
+ {
136
+ 0, // reserved_1
137
+ FIT_ARCH_ENDIAN, // arch
138
+ FIT_MESG_NUM_DEVICE_SETTINGS, // global_mesg_num
139
+ 1, // num_fields
140
+ {
141
+ // Def#, size, base_type
142
+ 1, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
143
+ }
144
+ };
145
+
146
+ const static FIT_USER_PROFILE_MESG_DEF user_profile_mesg_def =
147
+ {
148
+ 0, // reserved_1
149
+ FIT_ARCH_ENDIAN, // arch
150
+ FIT_MESG_NUM_USER_PROFILE, // global_mesg_num
151
+ 19, // num_fields
152
+ {
153
+ // Def#, size, base_type
154
+ 0, (sizeof(FIT_STRING)*16), FIT_BASE_TYPE_STRING,
155
+ 254, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
156
+ 4, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
157
+ 1, (sizeof(FIT_GENDER)*1), FIT_BASE_TYPE_ENUM,
158
+ 2, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
159
+ 3, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
160
+ 5, (sizeof(FIT_LANGUAGE)*1), FIT_BASE_TYPE_ENUM,
161
+ 6, (sizeof(FIT_DISPLAY_MEASURE)*1), FIT_BASE_TYPE_ENUM,
162
+ 7, (sizeof(FIT_DISPLAY_MEASURE)*1), FIT_BASE_TYPE_ENUM,
163
+ 8, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
164
+ 9, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
165
+ 10, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
166
+ 11, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
167
+ 12, (sizeof(FIT_DISPLAY_HEART)*1), FIT_BASE_TYPE_ENUM,
168
+ 13, (sizeof(FIT_DISPLAY_MEASURE)*1), FIT_BASE_TYPE_ENUM,
169
+ 14, (sizeof(FIT_DISPLAY_MEASURE)*1), FIT_BASE_TYPE_ENUM,
170
+ 16, (sizeof(FIT_DISPLAY_POWER)*1), FIT_BASE_TYPE_ENUM,
171
+ 17, (sizeof(FIT_ACTIVITY_CLASS)*1), FIT_BASE_TYPE_ENUM,
172
+ 18, (sizeof(FIT_DISPLAY_POSITION)*1), FIT_BASE_TYPE_ENUM,
173
+ }
174
+ };
175
+
176
+ const static FIT_HRM_PROFILE_MESG_DEF hrm_profile_mesg_def =
177
+ {
178
+ 0, // reserved_1
179
+ FIT_ARCH_ENDIAN, // arch
180
+ FIT_MESG_NUM_HRM_PROFILE, // global_mesg_num
181
+ 3, // num_fields
182
+ {
183
+ // Def#, size, base_type
184
+ 254, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
185
+ 1, (sizeof(FIT_UINT16Z)*1), FIT_BASE_TYPE_UINT16Z,
186
+ 0, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
187
+ }
188
+ };
189
+
190
+ const static FIT_ZONES_TARGET_MESG_DEF zones_target_mesg_def =
191
+ {
192
+ 0, // reserved_1
193
+ FIT_ARCH_ENDIAN, // arch
194
+ FIT_MESG_NUM_ZONES_TARGET, // global_mesg_num
195
+ 5, // num_fields
196
+ {
197
+ // Def#, size, base_type
198
+ 3, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
199
+ 1, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
200
+ 2, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
201
+ 5, (sizeof(FIT_HR_ZONE_CALC)*1), FIT_BASE_TYPE_ENUM,
202
+ 7, (sizeof(FIT_PWR_ZONE_CALC)*1), FIT_BASE_TYPE_ENUM,
203
+ }
204
+ };
205
+
206
+ const static FIT_SPORT_MESG_DEF sport_mesg_def =
207
+ {
208
+ 0, // reserved_1
209
+ FIT_ARCH_ENDIAN, // arch
210
+ FIT_MESG_NUM_SPORT, // global_mesg_num
211
+ 3, // num_fields
212
+ {
213
+ // Def#, size, base_type
214
+ 3, (sizeof(FIT_STRING)*16), FIT_BASE_TYPE_STRING,
215
+ 0, (sizeof(FIT_SPORT)*1), FIT_BASE_TYPE_ENUM,
216
+ 1, (sizeof(FIT_SUB_SPORT)*1), FIT_BASE_TYPE_ENUM,
217
+ }
218
+ };
219
+
220
+ const static FIT_HR_ZONE_MESG_DEF hr_zone_mesg_def =
221
+ {
222
+ 0, // reserved_1
223
+ FIT_ARCH_ENDIAN, // arch
224
+ FIT_MESG_NUM_HR_ZONE, // global_mesg_num
225
+ 3, // num_fields
226
+ {
227
+ // Def#, size, base_type
228
+ 254, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
229
+ 1, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
230
+ 2, (sizeof(FIT_STRING)*1), FIT_BASE_TYPE_STRING,
231
+ }
232
+ };
233
+
234
+ const static FIT_SPEED_ZONE_MESG_DEF speed_zone_mesg_def =
235
+ {
236
+ 0, // reserved_1
237
+ FIT_ARCH_ENDIAN, // arch
238
+ FIT_MESG_NUM_SPEED_ZONE, // global_mesg_num
239
+ 3, // num_fields
240
+ {
241
+ // Def#, size, base_type
242
+ 254, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
243
+ 0, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
244
+ 1, (sizeof(FIT_STRING)*1), FIT_BASE_TYPE_STRING,
245
+ }
246
+ };
247
+
248
+ const static FIT_POWER_ZONE_MESG_DEF power_zone_mesg_def =
249
+ {
250
+ 0, // reserved_1
251
+ FIT_ARCH_ENDIAN, // arch
252
+ FIT_MESG_NUM_POWER_ZONE, // global_mesg_num
253
+ 3, // num_fields
254
+ {
255
+ // Def#, size, base_type
256
+ 254, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
257
+ 1, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
258
+ 2, (sizeof(FIT_STRING)*1), FIT_BASE_TYPE_STRING,
259
+ }
260
+ };
261
+
262
+ const static FIT_MET_ZONE_MESG_DEF met_zone_mesg_def =
263
+ {
264
+ 0, // reserved_1
265
+ FIT_ARCH_ENDIAN, // arch
266
+ FIT_MESG_NUM_MET_ZONE, // global_mesg_num
267
+ 4, // num_fields
268
+ {
269
+ // Def#, size, base_type
270
+ 254, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
271
+ 2, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
272
+ 1, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
273
+ 3, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
274
+ }
275
+ };
276
+
277
+ const static FIT_ACTIVITY_MESG_DEF activity_mesg_def =
278
+ {
279
+ 0, // reserved_1
280
+ FIT_ARCH_ENDIAN, // arch
281
+ FIT_MESG_NUM_ACTIVITY, // global_mesg_num
282
+ 8, // num_fields
283
+ {
284
+ // Def#, size, base_type
285
+ 253, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
286
+ 0, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
287
+ 5, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
288
+ 1, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
289
+ 2, (sizeof(FIT_ACTIVITY)*1), FIT_BASE_TYPE_ENUM,
290
+ 3, (sizeof(FIT_EVENT)*1), FIT_BASE_TYPE_ENUM,
291
+ 4, (sizeof(FIT_EVENT_TYPE)*1), FIT_BASE_TYPE_ENUM,
292
+ 6, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
293
+ }
294
+ };
295
+
296
+ const static FIT_SESSION_MESG_DEF session_mesg_def =
297
+ {
298
+ 0, // reserved_1
299
+ FIT_ARCH_ENDIAN, // arch
300
+ FIT_MESG_NUM_SESSION, // global_mesg_num
301
+ 34, // num_fields
302
+ {
303
+ // Def#, size, base_type
304
+ 253, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
305
+ 2, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
306
+ 3, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
307
+ 4, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
308
+ 7, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
309
+ 8, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
310
+ 9, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
311
+ 10, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
312
+ 29, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
313
+ 30, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
314
+ 31, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
315
+ 32, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
316
+ 254, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
317
+ 11, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
318
+ 13, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
319
+ 14, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
320
+ 15, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
321
+ 20, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
322
+ 21, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
323
+ 22, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
324
+ 23, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
325
+ 25, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
326
+ 26, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
327
+ 0, (sizeof(FIT_EVENT)*1), FIT_BASE_TYPE_ENUM,
328
+ 1, (sizeof(FIT_EVENT_TYPE)*1), FIT_BASE_TYPE_ENUM,
329
+ 5, (sizeof(FIT_SPORT)*1), FIT_BASE_TYPE_ENUM,
330
+ 6, (sizeof(FIT_SUB_SPORT)*1), FIT_BASE_TYPE_ENUM,
331
+ 16, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
332
+ 17, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
333
+ 18, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
334
+ 19, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
335
+ 24, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
336
+ 27, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
337
+ 28, (sizeof(FIT_SESSION_TRIGGER)*1), FIT_BASE_TYPE_ENUM,
338
+ }
339
+ };
340
+
341
+ const static FIT_LAP_MESG_DEF lap_mesg_def =
342
+ {
343
+ 0, // reserved_1
344
+ FIT_ARCH_ENDIAN, // arch
345
+ FIT_MESG_NUM_LAP, // global_mesg_num
346
+ 33, // num_fields
347
+ {
348
+ // Def#, size, base_type
349
+ 253, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
350
+ 2, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
351
+ 3, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
352
+ 4, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
353
+ 5, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
354
+ 6, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
355
+ 7, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
356
+ 8, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
357
+ 9, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
358
+ 10, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
359
+ 27, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
360
+ 28, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
361
+ 29, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
362
+ 30, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
363
+ 254, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
364
+ 11, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
365
+ 12, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
366
+ 13, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
367
+ 14, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
368
+ 19, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
369
+ 20, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
370
+ 21, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
371
+ 22, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
372
+ 0, (sizeof(FIT_EVENT)*1), FIT_BASE_TYPE_ENUM,
373
+ 1, (sizeof(FIT_EVENT_TYPE)*1), FIT_BASE_TYPE_ENUM,
374
+ 15, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
375
+ 16, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
376
+ 17, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
377
+ 18, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
378
+ 23, (sizeof(FIT_INTENSITY)*1), FIT_BASE_TYPE_ENUM,
379
+ 24, (sizeof(FIT_LAP_TRIGGER)*1), FIT_BASE_TYPE_ENUM,
380
+ 25, (sizeof(FIT_SPORT)*1), FIT_BASE_TYPE_ENUM,
381
+ 26, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
382
+ }
383
+ };
384
+
385
+ const static FIT_RECORD_MESG_DEF record_mesg_def =
386
+ {
387
+ 0, // reserved_1
388
+ FIT_ARCH_ENDIAN, // arch
389
+ FIT_MESG_NUM_RECORD, // global_mesg_num
390
+ 15, // num_fields
391
+ {
392
+ // Def#, size, base_type
393
+ 253, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
394
+ 0, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
395
+ 1, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
396
+ 5, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
397
+ 11, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
398
+ 8, (sizeof(FIT_BYTE)*3), FIT_BASE_TYPE_BYTE,
399
+ 3, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
400
+ 2, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
401
+ 6, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
402
+ 7, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
403
+ 9, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
404
+ 4, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
405
+ 10, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
406
+ 12, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
407
+ 13, (sizeof(FIT_SINT8)*1), FIT_BASE_TYPE_SINT8,
408
+ }
409
+ };
410
+
411
+ const static FIT_EVENT_MESG_DEF event_mesg_def =
412
+ {
413
+ 0, // reserved_1
414
+ FIT_ARCH_ENDIAN, // arch
415
+ FIT_MESG_NUM_EVENT, // global_mesg_num
416
+ 6, // num_fields
417
+ {
418
+ // Def#, size, base_type
419
+ 253, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
420
+ 3, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
421
+ 2, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
422
+ 0, (sizeof(FIT_EVENT)*1), FIT_BASE_TYPE_ENUM,
423
+ 1, (sizeof(FIT_EVENT_TYPE)*1), FIT_BASE_TYPE_ENUM,
424
+ 4, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
425
+ }
426
+ };
427
+
428
+ const static FIT_DEVICE_INFO_MESG_DEF device_info_mesg_def =
429
+ {
430
+ 0, // reserved_1
431
+ FIT_ARCH_ENDIAN, // arch
432
+ FIT_MESG_NUM_DEVICE_INFO, // global_mesg_num
433
+ 10, // num_fields
434
+ {
435
+ // Def#, size, base_type
436
+ 253, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
437
+ 3, (sizeof(FIT_UINT32Z)*1), FIT_BASE_TYPE_UINT32Z,
438
+ 2, (sizeof(FIT_MANUFACTURER)*1), FIT_BASE_TYPE_UINT16,
439
+ 4, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
440
+ 5, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
441
+ 10, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
442
+ 0, (sizeof(FIT_DEVICE_INDEX)*1), FIT_BASE_TYPE_UINT8,
443
+ 1, (sizeof(FIT_DEVICE_TYPE)*1), FIT_BASE_TYPE_UINT8,
444
+ 6, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
445
+ 11, (sizeof(FIT_BATTERY_STATUS)*1), FIT_BASE_TYPE_UINT8,
446
+ }
447
+ };
448
+
449
+ const static FIT_COURSE_MESG_DEF course_mesg_def =
450
+ {
451
+ 0, // reserved_1
452
+ FIT_ARCH_ENDIAN, // arch
453
+ FIT_MESG_NUM_COURSE, // global_mesg_num
454
+ 3, // num_fields
455
+ {
456
+ // Def#, size, base_type
457
+ 5, (sizeof(FIT_STRING)*16), FIT_BASE_TYPE_STRING,
458
+ 6, (sizeof(FIT_COURSE_CAPABILITIES)*1), FIT_BASE_TYPE_UINT32Z,
459
+ 4, (sizeof(FIT_SPORT)*1), FIT_BASE_TYPE_ENUM,
460
+ }
461
+ };
462
+
463
+ const static FIT_COURSE_POINT_MESG_DEF course_point_mesg_def =
464
+ {
465
+ 0, // reserved_1
466
+ FIT_ARCH_ENDIAN, // arch
467
+ FIT_MESG_NUM_COURSE_POINT, // global_mesg_num
468
+ 7, // num_fields
469
+ {
470
+ // Def#, size, base_type
471
+ 1, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
472
+ 2, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
473
+ 3, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
474
+ 4, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
475
+ 6, (sizeof(FIT_STRING)*16), FIT_BASE_TYPE_STRING,
476
+ 254, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
477
+ 5, (sizeof(FIT_COURSE_POINT)*1), FIT_BASE_TYPE_ENUM,
478
+ }
479
+ };
480
+
481
+ const static FIT_WORKOUT_MESG_DEF workout_mesg_def =
482
+ {
483
+ 0, // reserved_1
484
+ FIT_ARCH_ENDIAN, // arch
485
+ FIT_MESG_NUM_WORKOUT, // global_mesg_num
486
+ 5, // num_fields
487
+ {
488
+ // Def#, size, base_type
489
+ 5, (sizeof(FIT_WORKOUT_CAPABILITIES)*1), FIT_BASE_TYPE_UINT32Z,
490
+ 8, (sizeof(FIT_STRING)*16), FIT_BASE_TYPE_STRING,
491
+ 6, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
492
+ 7, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
493
+ 4, (sizeof(FIT_SPORT)*1), FIT_BASE_TYPE_ENUM,
494
+ }
495
+ };
496
+
497
+ const static FIT_WORKOUT_STEP_MESG_DEF workout_step_mesg_def =
498
+ {
499
+ 0, // reserved_1
500
+ FIT_ARCH_ENDIAN, // arch
501
+ FIT_MESG_NUM_WORKOUT_STEP, // global_mesg_num
502
+ 9, // num_fields
503
+ {
504
+ // Def#, size, base_type
505
+ 0, (sizeof(FIT_STRING)*16), FIT_BASE_TYPE_STRING,
506
+ 2, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
507
+ 4, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
508
+ 5, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
509
+ 6, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
510
+ 254, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
511
+ 1, (sizeof(FIT_WKT_STEP_DURATION)*1), FIT_BASE_TYPE_ENUM,
512
+ 3, (sizeof(FIT_WKT_STEP_TARGET)*1), FIT_BASE_TYPE_ENUM,
513
+ 7, (sizeof(FIT_INTENSITY)*1), FIT_BASE_TYPE_ENUM,
514
+ }
515
+ };
516
+
517
+ const static FIT_SCHEDULE_MESG_DEF schedule_mesg_def =
518
+ {
519
+ 0, // reserved_1
520
+ FIT_ARCH_ENDIAN, // arch
521
+ FIT_MESG_NUM_SCHEDULE, // global_mesg_num
522
+ 7, // num_fields
523
+ {
524
+ // Def#, size, base_type
525
+ 2, (sizeof(FIT_UINT32Z)*1), FIT_BASE_TYPE_UINT32Z,
526
+ 3, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
527
+ 6, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
528
+ 0, (sizeof(FIT_MANUFACTURER)*1), FIT_BASE_TYPE_UINT16,
529
+ 1, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
530
+ 4, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
531
+ 5, (sizeof(FIT_SCHEDULE)*1), FIT_BASE_TYPE_ENUM,
532
+ }
533
+ };
534
+
535
+ const static FIT_TOTALS_MESG_DEF totals_mesg_def =
536
+ {
537
+ 0, // reserved_1
538
+ FIT_ARCH_ENDIAN, // arch
539
+ FIT_MESG_NUM_TOTALS, // global_mesg_num
540
+ 6, // num_fields
541
+ {
542
+ // Def#, size, base_type
543
+ 253, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
544
+ 0, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
545
+ 1, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
546
+ 2, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
547
+ 254, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
548
+ 3, (sizeof(FIT_SPORT)*1), FIT_BASE_TYPE_ENUM,
549
+ }
550
+ };
551
+
552
+ const static FIT_WEIGHT_SCALE_MESG_DEF weight_scale_mesg_def =
553
+ {
554
+ 0, // reserved_1
555
+ FIT_ARCH_ENDIAN, // arch
556
+ FIT_MESG_NUM_WEIGHT_SCALE, // global_mesg_num
557
+ 12, // num_fields
558
+ {
559
+ // Def#, size, base_type
560
+ 253, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
561
+ 0, (sizeof(FIT_WEIGHT)*1), FIT_BASE_TYPE_UINT16,
562
+ 1, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
563
+ 2, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
564
+ 3, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
565
+ 4, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
566
+ 5, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
567
+ 7, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
568
+ 9, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
569
+ 8, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
570
+ 10, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
571
+ 11, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
572
+ }
573
+ };
574
+
575
+
576
+ ///////////////////////////////////////////////////////////////////////
577
+ // Public Constants
578
+ ///////////////////////////////////////////////////////////////////////
579
+
580
+ const FIT_MESG_DEF *fit_mesg_defs[FIT_MESGS] =
581
+ {
582
+ (FIT_MESG_DEF *)&file_id_mesg_def,
583
+ (FIT_MESG_DEF *)&file_creator_mesg_def,
584
+ (FIT_MESG_DEF *)&software_mesg_def,
585
+ (FIT_MESG_DEF *)&capabilities_mesg_def,
586
+ (FIT_MESG_DEF *)&file_capabilities_mesg_def,
587
+ (FIT_MESG_DEF *)&mesg_capabilities_mesg_def,
588
+ (FIT_MESG_DEF *)&field_capabilities_mesg_def,
589
+ (FIT_MESG_DEF *)&device_settings_mesg_def,
590
+ (FIT_MESG_DEF *)&user_profile_mesg_def,
591
+ (FIT_MESG_DEF *)&hrm_profile_mesg_def,
592
+ (FIT_MESG_DEF *)&zones_target_mesg_def,
593
+ (FIT_MESG_DEF *)&sport_mesg_def,
594
+ (FIT_MESG_DEF *)&hr_zone_mesg_def,
595
+ (FIT_MESG_DEF *)&speed_zone_mesg_def,
596
+ (FIT_MESG_DEF *)&power_zone_mesg_def,
597
+ (FIT_MESG_DEF *)&met_zone_mesg_def,
598
+ (FIT_MESG_DEF *)&activity_mesg_def,
599
+ (FIT_MESG_DEF *)&session_mesg_def,
600
+ (FIT_MESG_DEF *)&lap_mesg_def,
601
+ (FIT_MESG_DEF *)&record_mesg_def,
602
+ (FIT_MESG_DEF *)&event_mesg_def,
603
+ (FIT_MESG_DEF *)&device_info_mesg_def,
604
+ (FIT_MESG_DEF *)&course_mesg_def,
605
+ (FIT_MESG_DEF *)&course_point_mesg_def,
606
+ (FIT_MESG_DEF *)&workout_mesg_def,
607
+ (FIT_MESG_DEF *)&workout_step_mesg_def,
608
+ (FIT_MESG_DEF *)&schedule_mesg_def,
609
+ (FIT_MESG_DEF *)&totals_mesg_def,
610
+ (FIT_MESG_DEF *)&weight_scale_mesg_def,
611
+ };
612
+
613
+ const FIT_FIELD_CAPABILITIES_MESG fit_field_capabilities[FIT_FIELD_CAPABILITIES_MESGS] =
614
+ {
615
+ { FIT_MESG_NUM_RECORD, 1, FIT_FILE_ACTIVITY, FIT_RECORD_FIELD_NUM_POSITION_LAT },
616
+ { FIT_MESG_NUM_RECORD, 1, FIT_FILE_ACTIVITY, FIT_RECORD_FIELD_NUM_POSITION_LONG },
617
+ };
618
+