rubyfit 0.0.11 → 0.0.16

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.
@@ -1,42 +1,42 @@
1
- ////////////////////////////////////////////////////////////////////////////////
2
- // 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 2016 Dynastream Innovations Inc.
11
- ////////////////////////////////////////////////////////////////////////////////
12
- // ****WARNING**** This file is auto-generated! Do NOT edit this file.
13
- // Profile Version = 20.16Release
14
- // Tag = production/akw/20.16.00-0-gce20b51
15
- // Product = EXAMPLE
16
- // Alignment = 4 bytes, padding disabled.
17
- ////////////////////////////////////////////////////////////////////////////////
18
-
19
-
20
- #if !defined(FIT_CRC_H)
21
- #define FIT_CRC_H
22
-
23
- #include "fit.h"
24
-
25
-
26
- //////////////////////////////////////////////////////////////////////////////////
27
- // Public Function Prototypes
28
- //////////////////////////////////////////////////////////////////////////////////
29
-
30
- #if defined(__cplusplus)
31
- extern "C" {
32
- #endif
33
-
34
- FIT_UINT16 FitCRC_Get16(FIT_UINT16 crc, FIT_UINT8 byte);
35
- FIT_UINT16 FitCRC_Update16(FIT_UINT16 crc, const volatile void *data, FIT_UINT32 size);
36
- FIT_UINT16 FitCRC_Calc16(const volatile void *data, FIT_UINT32 size);
37
-
38
- #if defined(__cplusplus)
39
- }
40
- #endif
41
-
42
- #endif // !defined(FIT_CRC_H)
1
+ ////////////////////////////////////////////////////////////////////////////////
2
+ // The following FIT Protocol software provided may be used with FIT protocol
3
+ // devices only and remains the copyrighted property of Garmin Canada 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 2020 Garmin Canada Inc.
11
+ ////////////////////////////////////////////////////////////////////////////////
12
+ // ****WARNING**** This file is auto-generated! Do NOT edit this file.
13
+ // Profile Version = 21.27Release
14
+ // Tag = production/akw/21.27.00-0-gef9575d
15
+ // Product = EXAMPLE
16
+ // Alignment = 4 bytes, padding disabled.
17
+ ////////////////////////////////////////////////////////////////////////////////
18
+
19
+
20
+ #if !defined(FIT_CRC_H)
21
+ #define FIT_CRC_H
22
+
23
+ #include "fit.h"
24
+
25
+
26
+ //////////////////////////////////////////////////////////////////////////////////
27
+ // Public Function Prototypes
28
+ //////////////////////////////////////////////////////////////////////////////////
29
+
30
+ #if defined(__cplusplus)
31
+ extern "C" {
32
+ #endif
33
+
34
+ FIT_UINT16 FitCRC_Get16(FIT_UINT16 crc, FIT_UINT8 byte);
35
+ FIT_UINT16 FitCRC_Update16(FIT_UINT16 crc, const volatile void *data, FIT_UINT32 size);
36
+ FIT_UINT16 FitCRC_Calc16(const volatile void *data, FIT_UINT32 size);
37
+
38
+ #if defined(__cplusplus)
39
+ }
40
+ #endif
41
+
42
+ #endif // !defined(FIT_CRC_H)
@@ -1,1431 +1,1512 @@
1
- ////////////////////////////////////////////////////////////////////////////////
2
- // 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 2016 Dynastream Innovations Inc.
11
- ////////////////////////////////////////////////////////////////////////////////
12
- // ****WARNING**** This file is auto-generated! Do NOT edit this file.
13
- // Profile Version = 20.16Release
14
- // Tag = production/akw/20.16.00-0-gce20b51
15
- // Product = EXAMPLE
16
- // Alignment = 4 bytes, padding disabled.
17
- ////////////////////////////////////////////////////////////////////////////////
18
-
19
-
20
- #include "string.h"
21
- #include "fit_config.h"
22
- #include "fit_example.h"
23
-
24
-
25
- ///////////////////////////////////////////////////////////////////////
26
- // Messages
27
- ///////////////////////////////////////////////////////////////////////
28
-
29
- const static FIT_PAD_MESG_DEF pad_mesg_def =
30
- {
31
- 0, // reserved_1
32
- FIT_ARCH_ENDIAN, // arch
33
- FIT_MESG_NUM_PAD, // global_mesg_num
34
- 0 // num_fields
35
- };
36
-
37
-
38
- const static FIT_FILE_ID_MESG_DEF file_id_mesg_def =
39
- {
40
- 0, // reserved_1
41
- FIT_ARCH_ENDIAN, // arch
42
- FIT_MESG_NUM_FILE_ID, // global_mesg_num
43
- 7, // num_fields
44
- { // field_def_num, size, base_type
45
- FIT_FILE_ID_FIELD_NUM_SERIAL_NUMBER, (sizeof(FIT_UINT32Z)*1), FIT_BASE_TYPE_UINT32Z,
46
- FIT_FILE_ID_FIELD_NUM_TIME_CREATED, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
47
- FIT_FILE_ID_FIELD_NUM_PRODUCT_NAME, (sizeof(FIT_STRING)*20), FIT_BASE_TYPE_STRING,
48
- FIT_FILE_ID_FIELD_NUM_MANUFACTURER, (sizeof(FIT_MANUFACTURER)*1), FIT_BASE_TYPE_UINT16,
49
- FIT_FILE_ID_FIELD_NUM_PRODUCT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
50
- FIT_FILE_ID_FIELD_NUM_NUMBER, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
51
- FIT_FILE_ID_FIELD_NUM_TYPE, (sizeof(FIT_FILE)*1), FIT_BASE_TYPE_ENUM,
52
- }
53
- };
54
-
55
- const static FIT_FILE_CREATOR_MESG_DEF file_creator_mesg_def =
56
- {
57
- 0, // reserved_1
58
- FIT_ARCH_ENDIAN, // arch
59
- FIT_MESG_NUM_FILE_CREATOR, // global_mesg_num
60
- 2, // num_fields
61
- { // field_def_num, size, base_type
62
- FIT_FILE_CREATOR_FIELD_NUM_SOFTWARE_VERSION, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
63
- FIT_FILE_CREATOR_FIELD_NUM_HARDWARE_VERSION, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
64
- }
65
- };
66
-
67
- const static FIT_SOFTWARE_MESG_DEF software_mesg_def =
68
- {
69
- 0, // reserved_1
70
- FIT_ARCH_ENDIAN, // arch
71
- FIT_MESG_NUM_SOFTWARE, // global_mesg_num
72
- 3, // num_fields
73
- { // field_def_num, size, base_type
74
- FIT_SOFTWARE_FIELD_NUM_PART_NUMBER, (sizeof(FIT_STRING)*16), FIT_BASE_TYPE_STRING,
75
- FIT_SOFTWARE_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
76
- FIT_SOFTWARE_FIELD_NUM_VERSION, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
77
- }
78
- };
79
-
80
- const static FIT_SLAVE_DEVICE_MESG_DEF slave_device_mesg_def =
81
- {
82
- 0, // reserved_1
83
- FIT_ARCH_ENDIAN, // arch
84
- FIT_MESG_NUM_SLAVE_DEVICE, // global_mesg_num
85
- 2, // num_fields
86
- { // field_def_num, size, base_type
87
- FIT_SLAVE_DEVICE_FIELD_NUM_MANUFACTURER, (sizeof(FIT_MANUFACTURER)*1), FIT_BASE_TYPE_UINT16,
88
- FIT_SLAVE_DEVICE_FIELD_NUM_PRODUCT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
89
- }
90
- };
91
-
92
- const static FIT_CAPABILITIES_MESG_DEF capabilities_mesg_def =
93
- {
94
- 0, // reserved_1
95
- FIT_ARCH_ENDIAN, // arch
96
- FIT_MESG_NUM_CAPABILITIES, // global_mesg_num
97
- 4, // num_fields
98
- { // field_def_num, size, base_type
99
- FIT_CAPABILITIES_FIELD_NUM_LANGUAGES, (sizeof(FIT_UINT8Z)*4), FIT_BASE_TYPE_UINT8Z,
100
- FIT_CAPABILITIES_FIELD_NUM_WORKOUTS_SUPPORTED, (sizeof(FIT_WORKOUT_CAPABILITIES)*1), FIT_BASE_TYPE_UINT32Z,
101
- FIT_CAPABILITIES_FIELD_NUM_CONNECTIVITY_SUPPORTED, (sizeof(FIT_CONNECTIVITY_CAPABILITIES)*1), FIT_BASE_TYPE_UINT32Z,
102
- FIT_CAPABILITIES_FIELD_NUM_SPORTS, (sizeof(FIT_SPORT_BITS_0)*1), FIT_BASE_TYPE_UINT8Z,
103
- }
104
- };
105
-
106
- const static FIT_FILE_CAPABILITIES_MESG_DEF file_capabilities_mesg_def =
107
- {
108
- 0, // reserved_1
109
- FIT_ARCH_ENDIAN, // arch
110
- FIT_MESG_NUM_FILE_CAPABILITIES, // global_mesg_num
111
- 6, // num_fields
112
- { // field_def_num, size, base_type
113
- FIT_FILE_CAPABILITIES_FIELD_NUM_DIRECTORY, (sizeof(FIT_STRING)*16), FIT_BASE_TYPE_STRING,
114
- FIT_FILE_CAPABILITIES_FIELD_NUM_MAX_SIZE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
115
- FIT_FILE_CAPABILITIES_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
116
- FIT_FILE_CAPABILITIES_FIELD_NUM_MAX_COUNT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
117
- FIT_FILE_CAPABILITIES_FIELD_NUM_TYPE, (sizeof(FIT_FILE)*1), FIT_BASE_TYPE_ENUM,
118
- FIT_FILE_CAPABILITIES_FIELD_NUM_FLAGS, (sizeof(FIT_FILE_FLAGS)*1), FIT_BASE_TYPE_UINT8Z,
119
- }
120
- };
121
-
122
- const static FIT_MESG_CAPABILITIES_MESG_DEF mesg_capabilities_mesg_def =
123
- {
124
- 0, // reserved_1
125
- FIT_ARCH_ENDIAN, // arch
126
- FIT_MESG_NUM_MESG_CAPABILITIES, // global_mesg_num
127
- 5, // num_fields
128
- { // field_def_num, size, base_type
129
- FIT_MESG_CAPABILITIES_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
130
- FIT_MESG_CAPABILITIES_FIELD_NUM_MESG_NUM, (sizeof(FIT_MESG_NUM)*1), FIT_BASE_TYPE_UINT16,
131
- FIT_MESG_CAPABILITIES_FIELD_NUM_COUNT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
132
- FIT_MESG_CAPABILITIES_FIELD_NUM_FILE, (sizeof(FIT_FILE)*1), FIT_BASE_TYPE_ENUM,
133
- FIT_MESG_CAPABILITIES_FIELD_NUM_COUNT_TYPE, (sizeof(FIT_MESG_COUNT)*1), FIT_BASE_TYPE_ENUM,
134
- }
135
- };
136
-
137
- const static FIT_FIELD_CAPABILITIES_MESG_DEF field_capabilities_mesg_def =
138
- {
139
- 0, // reserved_1
140
- FIT_ARCH_ENDIAN, // arch
141
- FIT_MESG_NUM_FIELD_CAPABILITIES, // global_mesg_num
142
- 5, // num_fields
143
- { // field_def_num, size, base_type
144
- FIT_FIELD_CAPABILITIES_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
145
- FIT_FIELD_CAPABILITIES_FIELD_NUM_MESG_NUM, (sizeof(FIT_MESG_NUM)*1), FIT_BASE_TYPE_UINT16,
146
- FIT_FIELD_CAPABILITIES_FIELD_NUM_COUNT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
147
- FIT_FIELD_CAPABILITIES_FIELD_NUM_FILE, (sizeof(FIT_FILE)*1), FIT_BASE_TYPE_ENUM,
148
- FIT_FIELD_CAPABILITIES_FIELD_NUM_FIELD_NUM, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
149
- }
150
- };
151
-
152
- const static FIT_DEVICE_SETTINGS_MESG_DEF device_settings_mesg_def =
153
- {
154
- 0, // reserved_1
155
- FIT_ARCH_ENDIAN, // arch
156
- FIT_MESG_NUM_DEVICE_SETTINGS, // global_mesg_num
157
- 16, // num_fields
158
- { // field_def_num, size, base_type
159
- FIT_DEVICE_SETTINGS_FIELD_NUM_UTC_OFFSET, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
160
- FIT_DEVICE_SETTINGS_FIELD_NUM_TIME_OFFSET, (sizeof(FIT_UINT32)*2), FIT_BASE_TYPE_UINT32,
161
- FIT_DEVICE_SETTINGS_FIELD_NUM_CLOCK_TIME, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
162
- FIT_DEVICE_SETTINGS_FIELD_NUM_PAGES_ENABLED, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
163
- FIT_DEVICE_SETTINGS_FIELD_NUM_DEFAULT_PAGE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
164
- FIT_DEVICE_SETTINGS_FIELD_NUM_AUTOSYNC_MIN_STEPS, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
165
- FIT_DEVICE_SETTINGS_FIELD_NUM_AUTOSYNC_MIN_TIME, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
166
- FIT_DEVICE_SETTINGS_FIELD_NUM_ACTIVE_TIME_ZONE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
167
- FIT_DEVICE_SETTINGS_FIELD_NUM_TIME_MODE, (sizeof(FIT_TIME_MODE)*2), FIT_BASE_TYPE_ENUM,
168
- FIT_DEVICE_SETTINGS_FIELD_NUM_TIME_ZONE_OFFSET, (sizeof(FIT_SINT8)*2), FIT_BASE_TYPE_SINT8,
169
- FIT_DEVICE_SETTINGS_FIELD_NUM_BACKLIGHT_MODE, (sizeof(FIT_BACKLIGHT_MODE)*1), FIT_BASE_TYPE_ENUM,
170
- FIT_DEVICE_SETTINGS_FIELD_NUM_ACTIVITY_TRACKER_ENABLED, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
171
- FIT_DEVICE_SETTINGS_FIELD_NUM_MOVE_ALERT_ENABLED, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
172
- FIT_DEVICE_SETTINGS_FIELD_NUM_DATE_MODE, (sizeof(FIT_DATE_MODE)*1), FIT_BASE_TYPE_ENUM,
173
- FIT_DEVICE_SETTINGS_FIELD_NUM_DISPLAY_ORIENTATION, (sizeof(FIT_DISPLAY_ORIENTATION)*1), FIT_BASE_TYPE_ENUM,
174
- FIT_DEVICE_SETTINGS_FIELD_NUM_MOUNTING_SIDE, (sizeof(FIT_SIDE)*1), FIT_BASE_TYPE_ENUM,
175
- }
176
- };
177
-
178
- const static FIT_USER_PROFILE_MESG_DEF user_profile_mesg_def =
179
- {
180
- 0, // reserved_1
181
- FIT_ARCH_ENDIAN, // arch
182
- FIT_MESG_NUM_USER_PROFILE, // global_mesg_num
183
- 25, // num_fields
184
- { // field_def_num, size, base_type
185
- FIT_USER_PROFILE_FIELD_NUM_FRIENDLY_NAME, (sizeof(FIT_STRING)*16), FIT_BASE_TYPE_STRING,
186
- FIT_USER_PROFILE_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
187
- FIT_USER_PROFILE_FIELD_NUM_WEIGHT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
188
- FIT_USER_PROFILE_FIELD_NUM_LOCAL_ID, (sizeof(FIT_USER_LOCAL_ID)*1), FIT_BASE_TYPE_UINT16,
189
- FIT_USER_PROFILE_FIELD_NUM_USER_RUNNING_STEP_LENGTH, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
190
- FIT_USER_PROFILE_FIELD_NUM_USER_WALKING_STEP_LENGTH, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
191
- FIT_USER_PROFILE_FIELD_NUM_GENDER, (sizeof(FIT_GENDER)*1), FIT_BASE_TYPE_ENUM,
192
- FIT_USER_PROFILE_FIELD_NUM_AGE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
193
- FIT_USER_PROFILE_FIELD_NUM_HEIGHT, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
194
- FIT_USER_PROFILE_FIELD_NUM_LANGUAGE, (sizeof(FIT_LANGUAGE)*1), FIT_BASE_TYPE_ENUM,
195
- FIT_USER_PROFILE_FIELD_NUM_ELEV_SETTING, (sizeof(FIT_DISPLAY_MEASURE)*1), FIT_BASE_TYPE_ENUM,
196
- FIT_USER_PROFILE_FIELD_NUM_WEIGHT_SETTING, (sizeof(FIT_DISPLAY_MEASURE)*1), FIT_BASE_TYPE_ENUM,
197
- FIT_USER_PROFILE_FIELD_NUM_RESTING_HEART_RATE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
198
- FIT_USER_PROFILE_FIELD_NUM_DEFAULT_MAX_RUNNING_HEART_RATE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
199
- FIT_USER_PROFILE_FIELD_NUM_DEFAULT_MAX_BIKING_HEART_RATE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
200
- FIT_USER_PROFILE_FIELD_NUM_DEFAULT_MAX_HEART_RATE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
201
- FIT_USER_PROFILE_FIELD_NUM_HR_SETTING, (sizeof(FIT_DISPLAY_HEART)*1), FIT_BASE_TYPE_ENUM,
202
- FIT_USER_PROFILE_FIELD_NUM_SPEED_SETTING, (sizeof(FIT_DISPLAY_MEASURE)*1), FIT_BASE_TYPE_ENUM,
203
- FIT_USER_PROFILE_FIELD_NUM_DIST_SETTING, (sizeof(FIT_DISPLAY_MEASURE)*1), FIT_BASE_TYPE_ENUM,
204
- FIT_USER_PROFILE_FIELD_NUM_POWER_SETTING, (sizeof(FIT_DISPLAY_POWER)*1), FIT_BASE_TYPE_ENUM,
205
- FIT_USER_PROFILE_FIELD_NUM_ACTIVITY_CLASS, (sizeof(FIT_ACTIVITY_CLASS)*1), FIT_BASE_TYPE_ENUM,
206
- FIT_USER_PROFILE_FIELD_NUM_POSITION_SETTING, (sizeof(FIT_DISPLAY_POSITION)*1), FIT_BASE_TYPE_ENUM,
207
- FIT_USER_PROFILE_FIELD_NUM_TEMPERATURE_SETTING, (sizeof(FIT_DISPLAY_MEASURE)*1), FIT_BASE_TYPE_ENUM,
208
- FIT_USER_PROFILE_FIELD_NUM_GLOBAL_ID, (sizeof(FIT_BYTE)*6), FIT_BASE_TYPE_BYTE,
209
- FIT_USER_PROFILE_FIELD_NUM_HEIGHT_SETTING, (sizeof(FIT_DISPLAY_MEASURE)*1), FIT_BASE_TYPE_ENUM,
210
- }
211
- };
212
-
213
- const static FIT_HRM_PROFILE_MESG_DEF hrm_profile_mesg_def =
214
- {
215
- 0, // reserved_1
216
- FIT_ARCH_ENDIAN, // arch
217
- FIT_MESG_NUM_HRM_PROFILE, // global_mesg_num
218
- 5, // num_fields
219
- { // field_def_num, size, base_type
220
- FIT_HRM_PROFILE_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
221
- FIT_HRM_PROFILE_FIELD_NUM_HRM_ANT_ID, (sizeof(FIT_UINT16Z)*1), FIT_BASE_TYPE_UINT16Z,
222
- FIT_HRM_PROFILE_FIELD_NUM_ENABLED, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
223
- FIT_HRM_PROFILE_FIELD_NUM_LOG_HRV, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
224
- FIT_HRM_PROFILE_FIELD_NUM_HRM_ANT_ID_TRANS_TYPE, (sizeof(FIT_UINT8Z)*1), FIT_BASE_TYPE_UINT8Z,
225
- }
226
- };
227
-
228
- const static FIT_SDM_PROFILE_MESG_DEF sdm_profile_mesg_def =
229
- {
230
- 0, // reserved_1
231
- FIT_ARCH_ENDIAN, // arch
232
- FIT_MESG_NUM_SDM_PROFILE, // global_mesg_num
233
- 8, // num_fields
234
- { // field_def_num, size, base_type
235
- FIT_SDM_PROFILE_FIELD_NUM_ODOMETER, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
236
- FIT_SDM_PROFILE_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
237
- FIT_SDM_PROFILE_FIELD_NUM_SDM_ANT_ID, (sizeof(FIT_UINT16Z)*1), FIT_BASE_TYPE_UINT16Z,
238
- FIT_SDM_PROFILE_FIELD_NUM_SDM_CAL_FACTOR, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
239
- FIT_SDM_PROFILE_FIELD_NUM_ENABLED, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
240
- FIT_SDM_PROFILE_FIELD_NUM_SPEED_SOURCE, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
241
- FIT_SDM_PROFILE_FIELD_NUM_SDM_ANT_ID_TRANS_TYPE, (sizeof(FIT_UINT8Z)*1), FIT_BASE_TYPE_UINT8Z,
242
- FIT_SDM_PROFILE_FIELD_NUM_ODOMETER_ROLLOVER, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
243
- }
244
- };
245
-
246
- const static FIT_BIKE_PROFILE_MESG_DEF bike_profile_mesg_def =
247
- {
248
- 0, // reserved_1
249
- FIT_ARCH_ENDIAN, // arch
250
- FIT_MESG_NUM_BIKE_PROFILE, // global_mesg_num
251
- 32, // num_fields
252
- { // field_def_num, size, base_type
253
- FIT_BIKE_PROFILE_FIELD_NUM_NAME, (sizeof(FIT_STRING)*16), FIT_BASE_TYPE_STRING,
254
- FIT_BIKE_PROFILE_FIELD_NUM_ODOMETER, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
255
- FIT_BIKE_PROFILE_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
256
- FIT_BIKE_PROFILE_FIELD_NUM_BIKE_SPD_ANT_ID, (sizeof(FIT_UINT16Z)*1), FIT_BASE_TYPE_UINT16Z,
257
- FIT_BIKE_PROFILE_FIELD_NUM_BIKE_CAD_ANT_ID, (sizeof(FIT_UINT16Z)*1), FIT_BASE_TYPE_UINT16Z,
258
- FIT_BIKE_PROFILE_FIELD_NUM_BIKE_SPDCAD_ANT_ID, (sizeof(FIT_UINT16Z)*1), FIT_BASE_TYPE_UINT16Z,
259
- FIT_BIKE_PROFILE_FIELD_NUM_BIKE_POWER_ANT_ID, (sizeof(FIT_UINT16Z)*1), FIT_BASE_TYPE_UINT16Z,
260
- FIT_BIKE_PROFILE_FIELD_NUM_CUSTOM_WHEELSIZE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
261
- FIT_BIKE_PROFILE_FIELD_NUM_AUTO_WHEELSIZE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
262
- FIT_BIKE_PROFILE_FIELD_NUM_BIKE_WEIGHT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
263
- FIT_BIKE_PROFILE_FIELD_NUM_POWER_CAL_FACTOR, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
264
- FIT_BIKE_PROFILE_FIELD_NUM_SPORT, (sizeof(FIT_SPORT)*1), FIT_BASE_TYPE_ENUM,
265
- FIT_BIKE_PROFILE_FIELD_NUM_SUB_SPORT, (sizeof(FIT_SUB_SPORT)*1), FIT_BASE_TYPE_ENUM,
266
- FIT_BIKE_PROFILE_FIELD_NUM_AUTO_WHEEL_CAL, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
267
- FIT_BIKE_PROFILE_FIELD_NUM_AUTO_POWER_ZERO, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
268
- FIT_BIKE_PROFILE_FIELD_NUM_ID, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
269
- FIT_BIKE_PROFILE_FIELD_NUM_SPD_ENABLED, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
270
- FIT_BIKE_PROFILE_FIELD_NUM_CAD_ENABLED, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
271
- FIT_BIKE_PROFILE_FIELD_NUM_SPDCAD_ENABLED, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
272
- FIT_BIKE_PROFILE_FIELD_NUM_POWER_ENABLED, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
273
- FIT_BIKE_PROFILE_FIELD_NUM_CRANK_LENGTH, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
274
- FIT_BIKE_PROFILE_FIELD_NUM_ENABLED, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
275
- FIT_BIKE_PROFILE_FIELD_NUM_BIKE_SPD_ANT_ID_TRANS_TYPE, (sizeof(FIT_UINT8Z)*1), FIT_BASE_TYPE_UINT8Z,
276
- FIT_BIKE_PROFILE_FIELD_NUM_BIKE_CAD_ANT_ID_TRANS_TYPE, (sizeof(FIT_UINT8Z)*1), FIT_BASE_TYPE_UINT8Z,
277
- FIT_BIKE_PROFILE_FIELD_NUM_BIKE_SPDCAD_ANT_ID_TRANS_TYPE, (sizeof(FIT_UINT8Z)*1), FIT_BASE_TYPE_UINT8Z,
278
- FIT_BIKE_PROFILE_FIELD_NUM_BIKE_POWER_ANT_ID_TRANS_TYPE, (sizeof(FIT_UINT8Z)*1), FIT_BASE_TYPE_UINT8Z,
279
- FIT_BIKE_PROFILE_FIELD_NUM_ODOMETER_ROLLOVER, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
280
- FIT_BIKE_PROFILE_FIELD_NUM_FRONT_GEAR_NUM, (sizeof(FIT_UINT8Z)*1), FIT_BASE_TYPE_UINT8Z,
281
- FIT_BIKE_PROFILE_FIELD_NUM_FRONT_GEAR, (sizeof(FIT_UINT8Z)*1), FIT_BASE_TYPE_UINT8Z,
282
- FIT_BIKE_PROFILE_FIELD_NUM_REAR_GEAR_NUM, (sizeof(FIT_UINT8Z)*1), FIT_BASE_TYPE_UINT8Z,
283
- FIT_BIKE_PROFILE_FIELD_NUM_REAR_GEAR, (sizeof(FIT_UINT8Z)*1), FIT_BASE_TYPE_UINT8Z,
284
- FIT_BIKE_PROFILE_FIELD_NUM_SHIMANO_DI2_ENABLED, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
285
- }
286
- };
287
-
288
- const static FIT_CONNECTIVITY_MESG_DEF connectivity_mesg_def =
289
- {
290
- 0, // reserved_1
291
- FIT_ARCH_ENDIAN, // arch
292
- FIT_MESG_NUM_CONNECTIVITY, // global_mesg_num
293
- 13, // num_fields
294
- { // field_def_num, size, base_type
295
- FIT_CONNECTIVITY_FIELD_NUM_NAME, (sizeof(FIT_STRING)*24), FIT_BASE_TYPE_STRING,
296
- FIT_CONNECTIVITY_FIELD_NUM_BLUETOOTH_ENABLED, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
297
- FIT_CONNECTIVITY_FIELD_NUM_BLUETOOTH_LE_ENABLED, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
298
- FIT_CONNECTIVITY_FIELD_NUM_ANT_ENABLED, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
299
- FIT_CONNECTIVITY_FIELD_NUM_LIVE_TRACKING_ENABLED, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
300
- FIT_CONNECTIVITY_FIELD_NUM_WEATHER_CONDITIONS_ENABLED, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
301
- FIT_CONNECTIVITY_FIELD_NUM_WEATHER_ALERTS_ENABLED, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
302
- FIT_CONNECTIVITY_FIELD_NUM_AUTO_ACTIVITY_UPLOAD_ENABLED, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
303
- FIT_CONNECTIVITY_FIELD_NUM_COURSE_DOWNLOAD_ENABLED, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
304
- FIT_CONNECTIVITY_FIELD_NUM_WORKOUT_DOWNLOAD_ENABLED, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
305
- FIT_CONNECTIVITY_FIELD_NUM_GPS_EPHEMERIS_DOWNLOAD_ENABLED, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
306
- FIT_CONNECTIVITY_FIELD_NUM_INCIDENT_DETECTION_ENABLED, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
307
- FIT_CONNECTIVITY_FIELD_NUM_GROUPTRACK_ENABLED, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
308
- }
309
- };
310
-
311
- const static FIT_ZONES_TARGET_MESG_DEF zones_target_mesg_def =
312
- {
313
- 0, // reserved_1
314
- FIT_ARCH_ENDIAN, // arch
315
- FIT_MESG_NUM_ZONES_TARGET, // global_mesg_num
316
- 5, // num_fields
317
- { // field_def_num, size, base_type
318
- FIT_ZONES_TARGET_FIELD_NUM_FUNCTIONAL_THRESHOLD_POWER, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
319
- FIT_ZONES_TARGET_FIELD_NUM_MAX_HEART_RATE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
320
- FIT_ZONES_TARGET_FIELD_NUM_THRESHOLD_HEART_RATE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
321
- FIT_ZONES_TARGET_FIELD_NUM_HR_CALC_TYPE, (sizeof(FIT_HR_ZONE_CALC)*1), FIT_BASE_TYPE_ENUM,
322
- FIT_ZONES_TARGET_FIELD_NUM_PWR_CALC_TYPE, (sizeof(FIT_PWR_ZONE_CALC)*1), FIT_BASE_TYPE_ENUM,
323
- }
324
- };
325
-
326
- const static FIT_SPORT_MESG_DEF sport_mesg_def =
327
- {
328
- 0, // reserved_1
329
- FIT_ARCH_ENDIAN, // arch
330
- FIT_MESG_NUM_SPORT, // global_mesg_num
331
- 3, // num_fields
332
- { // field_def_num, size, base_type
333
- FIT_SPORT_FIELD_NUM_NAME, (sizeof(FIT_STRING)*16), FIT_BASE_TYPE_STRING,
334
- FIT_SPORT_FIELD_NUM_SPORT, (sizeof(FIT_SPORT)*1), FIT_BASE_TYPE_ENUM,
335
- FIT_SPORT_FIELD_NUM_SUB_SPORT, (sizeof(FIT_SUB_SPORT)*1), FIT_BASE_TYPE_ENUM,
336
- }
337
- };
338
-
339
- const static FIT_HR_ZONE_MESG_DEF hr_zone_mesg_def =
340
- {
341
- 0, // reserved_1
342
- FIT_ARCH_ENDIAN, // arch
343
- FIT_MESG_NUM_HR_ZONE, // global_mesg_num
344
- 3, // num_fields
345
- { // field_def_num, size, base_type
346
- FIT_HR_ZONE_FIELD_NUM_NAME, (sizeof(FIT_STRING)*16), FIT_BASE_TYPE_STRING,
347
- FIT_HR_ZONE_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
348
- FIT_HR_ZONE_FIELD_NUM_HIGH_BPM, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
349
- }
350
- };
351
-
352
- const static FIT_SPEED_ZONE_MESG_DEF speed_zone_mesg_def =
353
- {
354
- 0, // reserved_1
355
- FIT_ARCH_ENDIAN, // arch
356
- FIT_MESG_NUM_SPEED_ZONE, // global_mesg_num
357
- 3, // num_fields
358
- { // field_def_num, size, base_type
359
- FIT_SPEED_ZONE_FIELD_NUM_NAME, (sizeof(FIT_STRING)*16), FIT_BASE_TYPE_STRING,
360
- FIT_SPEED_ZONE_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
361
- FIT_SPEED_ZONE_FIELD_NUM_HIGH_VALUE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
362
- }
363
- };
364
-
365
- const static FIT_CADENCE_ZONE_MESG_DEF cadence_zone_mesg_def =
366
- {
367
- 0, // reserved_1
368
- FIT_ARCH_ENDIAN, // arch
369
- FIT_MESG_NUM_CADENCE_ZONE, // global_mesg_num
370
- 3, // num_fields
371
- { // field_def_num, size, base_type
372
- FIT_CADENCE_ZONE_FIELD_NUM_NAME, (sizeof(FIT_STRING)*16), FIT_BASE_TYPE_STRING,
373
- FIT_CADENCE_ZONE_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
374
- FIT_CADENCE_ZONE_FIELD_NUM_HIGH_VALUE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
375
- }
376
- };
377
-
378
- const static FIT_POWER_ZONE_MESG_DEF power_zone_mesg_def =
379
- {
380
- 0, // reserved_1
381
- FIT_ARCH_ENDIAN, // arch
382
- FIT_MESG_NUM_POWER_ZONE, // global_mesg_num
383
- 3, // num_fields
384
- { // field_def_num, size, base_type
385
- FIT_POWER_ZONE_FIELD_NUM_NAME, (sizeof(FIT_STRING)*16), FIT_BASE_TYPE_STRING,
386
- FIT_POWER_ZONE_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
387
- FIT_POWER_ZONE_FIELD_NUM_HIGH_VALUE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
388
- }
389
- };
390
-
391
- const static FIT_MET_ZONE_MESG_DEF met_zone_mesg_def =
392
- {
393
- 0, // reserved_1
394
- FIT_ARCH_ENDIAN, // arch
395
- FIT_MESG_NUM_MET_ZONE, // global_mesg_num
396
- 4, // num_fields
397
- { // field_def_num, size, base_type
398
- FIT_MET_ZONE_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
399
- FIT_MET_ZONE_FIELD_NUM_CALORIES, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
400
- FIT_MET_ZONE_FIELD_NUM_HIGH_BPM, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
401
- FIT_MET_ZONE_FIELD_NUM_FAT_CALORIES, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
402
- }
403
- };
404
-
405
- const static FIT_GOAL_MESG_DEF goal_mesg_def =
406
- {
407
- 0, // reserved_1
408
- FIT_ARCH_ENDIAN, // arch
409
- FIT_MESG_NUM_GOAL, // global_mesg_num
410
- 13, // num_fields
411
- { // field_def_num, size, base_type
412
- FIT_GOAL_FIELD_NUM_START_DATE, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
413
- FIT_GOAL_FIELD_NUM_END_DATE, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
414
- FIT_GOAL_FIELD_NUM_VALUE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
415
- FIT_GOAL_FIELD_NUM_TARGET_VALUE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
416
- FIT_GOAL_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
417
- FIT_GOAL_FIELD_NUM_RECURRENCE_VALUE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
418
- FIT_GOAL_FIELD_NUM_SPORT, (sizeof(FIT_SPORT)*1), FIT_BASE_TYPE_ENUM,
419
- FIT_GOAL_FIELD_NUM_SUB_SPORT, (sizeof(FIT_SUB_SPORT)*1), FIT_BASE_TYPE_ENUM,
420
- FIT_GOAL_FIELD_NUM_TYPE, (sizeof(FIT_GOAL)*1), FIT_BASE_TYPE_ENUM,
421
- FIT_GOAL_FIELD_NUM_REPEAT, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
422
- FIT_GOAL_FIELD_NUM_RECURRENCE, (sizeof(FIT_GOAL_RECURRENCE)*1), FIT_BASE_TYPE_ENUM,
423
- FIT_GOAL_FIELD_NUM_ENABLED, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
424
- FIT_GOAL_FIELD_NUM_SOURCE, (sizeof(FIT_GOAL_SOURCE)*1), FIT_BASE_TYPE_ENUM,
425
- }
426
- };
427
-
428
- const static FIT_ACTIVITY_MESG_DEF activity_mesg_def =
429
- {
430
- 0, // reserved_1
431
- FIT_ARCH_ENDIAN, // arch
432
- FIT_MESG_NUM_ACTIVITY, // global_mesg_num
433
- 8, // num_fields
434
- { // field_def_num, size, base_type
435
- FIT_ACTIVITY_FIELD_NUM_TIMESTAMP, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
436
- FIT_ACTIVITY_FIELD_NUM_TOTAL_TIMER_TIME, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
437
- FIT_ACTIVITY_FIELD_NUM_LOCAL_TIMESTAMP, (sizeof(FIT_LOCAL_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
438
- FIT_ACTIVITY_FIELD_NUM_NUM_SESSIONS, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
439
- FIT_ACTIVITY_FIELD_NUM_TYPE, (sizeof(FIT_ACTIVITY)*1), FIT_BASE_TYPE_ENUM,
440
- FIT_ACTIVITY_FIELD_NUM_EVENT, (sizeof(FIT_EVENT)*1), FIT_BASE_TYPE_ENUM,
441
- FIT_ACTIVITY_FIELD_NUM_EVENT_TYPE, (sizeof(FIT_EVENT_TYPE)*1), FIT_BASE_TYPE_ENUM,
442
- FIT_ACTIVITY_FIELD_NUM_EVENT_GROUP, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
443
- }
444
- };
445
-
446
- const static FIT_SESSION_MESG_DEF session_mesg_def =
447
- {
448
- 0, // reserved_1
449
- FIT_ARCH_ENDIAN, // arch
450
- FIT_MESG_NUM_SESSION, // global_mesg_num
451
- 89, // num_fields
452
- { // field_def_num, size, base_type
453
- FIT_SESSION_FIELD_NUM_TIMESTAMP, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
454
- FIT_SESSION_FIELD_NUM_START_TIME, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
455
- FIT_SESSION_FIELD_NUM_START_POSITION_LAT, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
456
- FIT_SESSION_FIELD_NUM_START_POSITION_LONG, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
457
- FIT_SESSION_FIELD_NUM_TOTAL_ELAPSED_TIME, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
458
- FIT_SESSION_FIELD_NUM_TOTAL_TIMER_TIME, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
459
- FIT_SESSION_FIELD_NUM_TOTAL_DISTANCE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
460
- FIT_SESSION_FIELD_NUM_TOTAL_CYCLES, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
461
- FIT_SESSION_FIELD_NUM_NEC_LAT, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
462
- FIT_SESSION_FIELD_NUM_NEC_LONG, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
463
- FIT_SESSION_FIELD_NUM_SWC_LAT, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
464
- FIT_SESSION_FIELD_NUM_SWC_LONG, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
465
- FIT_SESSION_FIELD_NUM_AVG_STROKE_COUNT, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
466
- FIT_SESSION_FIELD_NUM_TOTAL_WORK, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
467
- FIT_SESSION_FIELD_NUM_TOTAL_MOVING_TIME, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
468
- FIT_SESSION_FIELD_NUM_TIME_IN_HR_ZONE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
469
- FIT_SESSION_FIELD_NUM_TIME_IN_SPEED_ZONE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
470
- FIT_SESSION_FIELD_NUM_TIME_IN_CADENCE_ZONE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
471
- FIT_SESSION_FIELD_NUM_TIME_IN_POWER_ZONE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
472
- FIT_SESSION_FIELD_NUM_AVG_LAP_TIME, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
473
- FIT_SESSION_FIELD_NUM_ENHANCED_AVG_SPEED, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
474
- FIT_SESSION_FIELD_NUM_ENHANCED_MAX_SPEED, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
475
- FIT_SESSION_FIELD_NUM_ENHANCED_AVG_ALTITUDE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
476
- FIT_SESSION_FIELD_NUM_ENHANCED_MIN_ALTITUDE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
477
- FIT_SESSION_FIELD_NUM_ENHANCED_MAX_ALTITUDE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
478
- FIT_SESSION_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
479
- FIT_SESSION_FIELD_NUM_TOTAL_CALORIES, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
480
- FIT_SESSION_FIELD_NUM_TOTAL_FAT_CALORIES, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
481
- FIT_SESSION_FIELD_NUM_AVG_SPEED, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
482
- FIT_SESSION_FIELD_NUM_MAX_SPEED, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
483
- FIT_SESSION_FIELD_NUM_AVG_POWER, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
484
- FIT_SESSION_FIELD_NUM_MAX_POWER, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
485
- FIT_SESSION_FIELD_NUM_TOTAL_ASCENT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
486
- FIT_SESSION_FIELD_NUM_TOTAL_DESCENT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
487
- FIT_SESSION_FIELD_NUM_FIRST_LAP_INDEX, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
488
- FIT_SESSION_FIELD_NUM_NUM_LAPS, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
489
- FIT_SESSION_FIELD_NUM_NORMALIZED_POWER, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
490
- FIT_SESSION_FIELD_NUM_TRAINING_STRESS_SCORE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
491
- FIT_SESSION_FIELD_NUM_INTENSITY_FACTOR, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
492
- FIT_SESSION_FIELD_NUM_LEFT_RIGHT_BALANCE, (sizeof(FIT_LEFT_RIGHT_BALANCE_100)*1), FIT_BASE_TYPE_UINT16,
493
- FIT_SESSION_FIELD_NUM_AVG_STROKE_DISTANCE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
494
- FIT_SESSION_FIELD_NUM_POOL_LENGTH, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
495
- FIT_SESSION_FIELD_NUM_THRESHOLD_POWER, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
496
- FIT_SESSION_FIELD_NUM_NUM_ACTIVE_LENGTHS, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
497
- FIT_SESSION_FIELD_NUM_AVG_ALTITUDE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
498
- FIT_SESSION_FIELD_NUM_MAX_ALTITUDE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
499
- FIT_SESSION_FIELD_NUM_AVG_GRADE, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
500
- FIT_SESSION_FIELD_NUM_AVG_POS_GRADE, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
501
- FIT_SESSION_FIELD_NUM_AVG_NEG_GRADE, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
502
- FIT_SESSION_FIELD_NUM_MAX_POS_GRADE, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
503
- FIT_SESSION_FIELD_NUM_MAX_NEG_GRADE, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
504
- FIT_SESSION_FIELD_NUM_AVG_POS_VERTICAL_SPEED, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
505
- FIT_SESSION_FIELD_NUM_AVG_NEG_VERTICAL_SPEED, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
506
- FIT_SESSION_FIELD_NUM_MAX_POS_VERTICAL_SPEED, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
507
- FIT_SESSION_FIELD_NUM_MAX_NEG_VERTICAL_SPEED, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
508
- FIT_SESSION_FIELD_NUM_BEST_LAP_INDEX, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
509
- FIT_SESSION_FIELD_NUM_MIN_ALTITUDE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
510
- FIT_SESSION_FIELD_NUM_PLAYER_SCORE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
511
- FIT_SESSION_FIELD_NUM_OPPONENT_SCORE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
512
- FIT_SESSION_FIELD_NUM_STROKE_COUNT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
513
- FIT_SESSION_FIELD_NUM_ZONE_COUNT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
514
- FIT_SESSION_FIELD_NUM_MAX_BALL_SPEED, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
515
- FIT_SESSION_FIELD_NUM_AVG_BALL_SPEED, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
516
- FIT_SESSION_FIELD_NUM_AVG_VERTICAL_OSCILLATION, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
517
- FIT_SESSION_FIELD_NUM_AVG_STANCE_TIME_PERCENT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
518
- FIT_SESSION_FIELD_NUM_AVG_STANCE_TIME, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
519
- FIT_SESSION_FIELD_NUM_EVENT, (sizeof(FIT_EVENT)*1), FIT_BASE_TYPE_ENUM,
520
- FIT_SESSION_FIELD_NUM_EVENT_TYPE, (sizeof(FIT_EVENT_TYPE)*1), FIT_BASE_TYPE_ENUM,
521
- FIT_SESSION_FIELD_NUM_SPORT, (sizeof(FIT_SPORT)*1), FIT_BASE_TYPE_ENUM,
522
- FIT_SESSION_FIELD_NUM_SUB_SPORT, (sizeof(FIT_SUB_SPORT)*1), FIT_BASE_TYPE_ENUM,
523
- FIT_SESSION_FIELD_NUM_AVG_HEART_RATE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
524
- FIT_SESSION_FIELD_NUM_MAX_HEART_RATE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
525
- FIT_SESSION_FIELD_NUM_AVG_CADENCE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
526
- FIT_SESSION_FIELD_NUM_MAX_CADENCE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
527
- FIT_SESSION_FIELD_NUM_TOTAL_TRAINING_EFFECT, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
528
- FIT_SESSION_FIELD_NUM_EVENT_GROUP, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
529
- FIT_SESSION_FIELD_NUM_TRIGGER, (sizeof(FIT_SESSION_TRIGGER)*1), FIT_BASE_TYPE_ENUM,
530
- FIT_SESSION_FIELD_NUM_SWIM_STROKE, (sizeof(FIT_SWIM_STROKE)*1), FIT_BASE_TYPE_ENUM,
531
- FIT_SESSION_FIELD_NUM_POOL_LENGTH_UNIT, (sizeof(FIT_DISPLAY_MEASURE)*1), FIT_BASE_TYPE_ENUM,
532
- FIT_SESSION_FIELD_NUM_GPS_ACCURACY, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
533
- FIT_SESSION_FIELD_NUM_AVG_TEMPERATURE, (sizeof(FIT_SINT8)*1), FIT_BASE_TYPE_SINT8,
534
- FIT_SESSION_FIELD_NUM_MAX_TEMPERATURE, (sizeof(FIT_SINT8)*1), FIT_BASE_TYPE_SINT8,
535
- FIT_SESSION_FIELD_NUM_MIN_HEART_RATE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
536
- FIT_SESSION_FIELD_NUM_OPPONENT_NAME, (sizeof(FIT_STRING)*1), FIT_BASE_TYPE_STRING,
537
- FIT_SESSION_FIELD_NUM_AVG_FRACTIONAL_CADENCE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
538
- FIT_SESSION_FIELD_NUM_MAX_FRACTIONAL_CADENCE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
539
- FIT_SESSION_FIELD_NUM_TOTAL_FRACTIONAL_CYCLES, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
540
- FIT_SESSION_FIELD_NUM_SPORT_INDEX, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
541
- FIT_SESSION_FIELD_NUM_TOTAL_ANAEROBIC_TRAINING_EFFECT, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
542
- }
543
- };
544
-
545
- const static FIT_LAP_MESG_DEF lap_mesg_def =
546
- {
547
- 0, // reserved_1
548
- FIT_ARCH_ENDIAN, // arch
549
- FIT_MESG_NUM_LAP, // global_mesg_num
550
- 82, // num_fields
551
- { // field_def_num, size, base_type
552
- FIT_LAP_FIELD_NUM_TIMESTAMP, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
553
- FIT_LAP_FIELD_NUM_START_TIME, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
554
- FIT_LAP_FIELD_NUM_START_POSITION_LAT, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
555
- FIT_LAP_FIELD_NUM_START_POSITION_LONG, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
556
- FIT_LAP_FIELD_NUM_END_POSITION_LAT, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
557
- FIT_LAP_FIELD_NUM_END_POSITION_LONG, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
558
- FIT_LAP_FIELD_NUM_TOTAL_ELAPSED_TIME, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
559
- FIT_LAP_FIELD_NUM_TOTAL_TIMER_TIME, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
560
- FIT_LAP_FIELD_NUM_TOTAL_DISTANCE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
561
- FIT_LAP_FIELD_NUM_TOTAL_CYCLES, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
562
- FIT_LAP_FIELD_NUM_TOTAL_WORK, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
563
- FIT_LAP_FIELD_NUM_TOTAL_MOVING_TIME, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
564
- FIT_LAP_FIELD_NUM_TIME_IN_HR_ZONE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
565
- FIT_LAP_FIELD_NUM_TIME_IN_SPEED_ZONE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
566
- FIT_LAP_FIELD_NUM_TIME_IN_CADENCE_ZONE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
567
- FIT_LAP_FIELD_NUM_TIME_IN_POWER_ZONE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
568
- FIT_LAP_FIELD_NUM_ENHANCED_AVG_SPEED, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
569
- FIT_LAP_FIELD_NUM_ENHANCED_MAX_SPEED, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
570
- FIT_LAP_FIELD_NUM_ENHANCED_AVG_ALTITUDE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
571
- FIT_LAP_FIELD_NUM_ENHANCED_MIN_ALTITUDE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
572
- FIT_LAP_FIELD_NUM_ENHANCED_MAX_ALTITUDE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
573
- FIT_LAP_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
574
- FIT_LAP_FIELD_NUM_TOTAL_CALORIES, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
575
- FIT_LAP_FIELD_NUM_TOTAL_FAT_CALORIES, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
576
- FIT_LAP_FIELD_NUM_AVG_SPEED, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
577
- FIT_LAP_FIELD_NUM_MAX_SPEED, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
578
- FIT_LAP_FIELD_NUM_AVG_POWER, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
579
- FIT_LAP_FIELD_NUM_MAX_POWER, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
580
- FIT_LAP_FIELD_NUM_TOTAL_ASCENT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
581
- FIT_LAP_FIELD_NUM_TOTAL_DESCENT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
582
- FIT_LAP_FIELD_NUM_NUM_LENGTHS, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
583
- FIT_LAP_FIELD_NUM_NORMALIZED_POWER, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
584
- FIT_LAP_FIELD_NUM_LEFT_RIGHT_BALANCE, (sizeof(FIT_LEFT_RIGHT_BALANCE_100)*1), FIT_BASE_TYPE_UINT16,
585
- FIT_LAP_FIELD_NUM_FIRST_LENGTH_INDEX, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
586
- FIT_LAP_FIELD_NUM_AVG_STROKE_DISTANCE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
587
- FIT_LAP_FIELD_NUM_NUM_ACTIVE_LENGTHS, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
588
- FIT_LAP_FIELD_NUM_AVG_ALTITUDE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
589
- FIT_LAP_FIELD_NUM_MAX_ALTITUDE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
590
- FIT_LAP_FIELD_NUM_AVG_GRADE, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
591
- FIT_LAP_FIELD_NUM_AVG_POS_GRADE, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
592
- FIT_LAP_FIELD_NUM_AVG_NEG_GRADE, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
593
- FIT_LAP_FIELD_NUM_MAX_POS_GRADE, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
594
- FIT_LAP_FIELD_NUM_MAX_NEG_GRADE, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
595
- FIT_LAP_FIELD_NUM_AVG_POS_VERTICAL_SPEED, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
596
- FIT_LAP_FIELD_NUM_AVG_NEG_VERTICAL_SPEED, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
597
- FIT_LAP_FIELD_NUM_MAX_POS_VERTICAL_SPEED, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
598
- FIT_LAP_FIELD_NUM_MAX_NEG_VERTICAL_SPEED, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
599
- FIT_LAP_FIELD_NUM_REPETITION_NUM, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
600
- FIT_LAP_FIELD_NUM_MIN_ALTITUDE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
601
- FIT_LAP_FIELD_NUM_WKT_STEP_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
602
- FIT_LAP_FIELD_NUM_OPPONENT_SCORE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
603
- FIT_LAP_FIELD_NUM_STROKE_COUNT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
604
- FIT_LAP_FIELD_NUM_ZONE_COUNT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
605
- FIT_LAP_FIELD_NUM_AVG_VERTICAL_OSCILLATION, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
606
- FIT_LAP_FIELD_NUM_AVG_STANCE_TIME_PERCENT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
607
- FIT_LAP_FIELD_NUM_AVG_STANCE_TIME, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
608
- FIT_LAP_FIELD_NUM_PLAYER_SCORE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
609
- FIT_LAP_FIELD_NUM_AVG_TOTAL_HEMOGLOBIN_CONC, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
610
- FIT_LAP_FIELD_NUM_MIN_TOTAL_HEMOGLOBIN_CONC, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
611
- FIT_LAP_FIELD_NUM_MAX_TOTAL_HEMOGLOBIN_CONC, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
612
- FIT_LAP_FIELD_NUM_AVG_SATURATED_HEMOGLOBIN_PERCENT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
613
- FIT_LAP_FIELD_NUM_MIN_SATURATED_HEMOGLOBIN_PERCENT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
614
- FIT_LAP_FIELD_NUM_MAX_SATURATED_HEMOGLOBIN_PERCENT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
615
- FIT_LAP_FIELD_NUM_EVENT, (sizeof(FIT_EVENT)*1), FIT_BASE_TYPE_ENUM,
616
- FIT_LAP_FIELD_NUM_EVENT_TYPE, (sizeof(FIT_EVENT_TYPE)*1), FIT_BASE_TYPE_ENUM,
617
- FIT_LAP_FIELD_NUM_AVG_HEART_RATE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
618
- FIT_LAP_FIELD_NUM_MAX_HEART_RATE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
619
- FIT_LAP_FIELD_NUM_AVG_CADENCE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
620
- FIT_LAP_FIELD_NUM_MAX_CADENCE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
621
- FIT_LAP_FIELD_NUM_INTENSITY, (sizeof(FIT_INTENSITY)*1), FIT_BASE_TYPE_ENUM,
622
- FIT_LAP_FIELD_NUM_LAP_TRIGGER, (sizeof(FIT_LAP_TRIGGER)*1), FIT_BASE_TYPE_ENUM,
623
- FIT_LAP_FIELD_NUM_SPORT, (sizeof(FIT_SPORT)*1), FIT_BASE_TYPE_ENUM,
624
- FIT_LAP_FIELD_NUM_EVENT_GROUP, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
625
- FIT_LAP_FIELD_NUM_SWIM_STROKE, (sizeof(FIT_SWIM_STROKE)*1), FIT_BASE_TYPE_ENUM,
626
- FIT_LAP_FIELD_NUM_SUB_SPORT, (sizeof(FIT_SUB_SPORT)*1), FIT_BASE_TYPE_ENUM,
627
- FIT_LAP_FIELD_NUM_GPS_ACCURACY, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
628
- FIT_LAP_FIELD_NUM_AVG_TEMPERATURE, (sizeof(FIT_SINT8)*1), FIT_BASE_TYPE_SINT8,
629
- FIT_LAP_FIELD_NUM_MAX_TEMPERATURE, (sizeof(FIT_SINT8)*1), FIT_BASE_TYPE_SINT8,
630
- FIT_LAP_FIELD_NUM_MIN_HEART_RATE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
631
- FIT_LAP_FIELD_NUM_AVG_FRACTIONAL_CADENCE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
632
- FIT_LAP_FIELD_NUM_MAX_FRACTIONAL_CADENCE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
633
- FIT_LAP_FIELD_NUM_TOTAL_FRACTIONAL_CYCLES, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
634
- }
635
- };
636
-
637
- const static FIT_LENGTH_MESG_DEF length_mesg_def =
638
- {
639
- 0, // reserved_1
640
- FIT_ARCH_ENDIAN, // arch
641
- FIT_MESG_NUM_LENGTH, // global_mesg_num
642
- 18, // num_fields
643
- { // field_def_num, size, base_type
644
- FIT_LENGTH_FIELD_NUM_TIMESTAMP, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
645
- FIT_LENGTH_FIELD_NUM_START_TIME, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
646
- FIT_LENGTH_FIELD_NUM_TOTAL_ELAPSED_TIME, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
647
- FIT_LENGTH_FIELD_NUM_TOTAL_TIMER_TIME, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
648
- FIT_LENGTH_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
649
- FIT_LENGTH_FIELD_NUM_TOTAL_STROKES, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
650
- FIT_LENGTH_FIELD_NUM_AVG_SPEED, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
651
- FIT_LENGTH_FIELD_NUM_TOTAL_CALORIES, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
652
- FIT_LENGTH_FIELD_NUM_PLAYER_SCORE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
653
- FIT_LENGTH_FIELD_NUM_OPPONENT_SCORE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
654
- FIT_LENGTH_FIELD_NUM_STROKE_COUNT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
655
- FIT_LENGTH_FIELD_NUM_ZONE_COUNT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
656
- FIT_LENGTH_FIELD_NUM_EVENT, (sizeof(FIT_EVENT)*1), FIT_BASE_TYPE_ENUM,
657
- FIT_LENGTH_FIELD_NUM_EVENT_TYPE, (sizeof(FIT_EVENT_TYPE)*1), FIT_BASE_TYPE_ENUM,
658
- FIT_LENGTH_FIELD_NUM_SWIM_STROKE, (sizeof(FIT_SWIM_STROKE)*1), FIT_BASE_TYPE_ENUM,
659
- FIT_LENGTH_FIELD_NUM_AVG_SWIMMING_CADENCE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
660
- FIT_LENGTH_FIELD_NUM_EVENT_GROUP, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
661
- FIT_LENGTH_FIELD_NUM_LENGTH_TYPE, (sizeof(FIT_LENGTH_TYPE)*1), FIT_BASE_TYPE_ENUM,
662
- }
663
- };
664
-
665
- const static FIT_RECORD_MESG_DEF record_mesg_def =
666
- {
667
- 0, // reserved_1
668
- FIT_ARCH_ENDIAN, // arch
669
- FIT_MESG_NUM_RECORD, // global_mesg_num
670
- 48, // num_fields
671
- { // field_def_num, size, base_type
672
- FIT_RECORD_FIELD_NUM_TIMESTAMP, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
673
- FIT_RECORD_FIELD_NUM_POSITION_LAT, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
674
- FIT_RECORD_FIELD_NUM_POSITION_LONG, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
675
- FIT_RECORD_FIELD_NUM_DISTANCE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
676
- FIT_RECORD_FIELD_NUM_TIME_FROM_COURSE, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
677
- FIT_RECORD_FIELD_NUM_TOTAL_CYCLES, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
678
- FIT_RECORD_FIELD_NUM_ACCUMULATED_POWER, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
679
- FIT_RECORD_FIELD_NUM_ENHANCED_SPEED, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
680
- FIT_RECORD_FIELD_NUM_ENHANCED_ALTITUDE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
681
- FIT_RECORD_FIELD_NUM_ALTITUDE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
682
- FIT_RECORD_FIELD_NUM_SPEED, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
683
- FIT_RECORD_FIELD_NUM_POWER, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
684
- FIT_RECORD_FIELD_NUM_GRADE, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
685
- FIT_RECORD_FIELD_NUM_COMPRESSED_ACCUMULATED_POWER, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
686
- FIT_RECORD_FIELD_NUM_VERTICAL_SPEED, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
687
- FIT_RECORD_FIELD_NUM_CALORIES, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
688
- FIT_RECORD_FIELD_NUM_VERTICAL_OSCILLATION, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
689
- FIT_RECORD_FIELD_NUM_STANCE_TIME_PERCENT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
690
- FIT_RECORD_FIELD_NUM_STANCE_TIME, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
691
- FIT_RECORD_FIELD_NUM_BALL_SPEED, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
692
- FIT_RECORD_FIELD_NUM_CADENCE256, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
693
- FIT_RECORD_FIELD_NUM_TOTAL_HEMOGLOBIN_CONC, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
694
- FIT_RECORD_FIELD_NUM_TOTAL_HEMOGLOBIN_CONC_MIN, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
695
- FIT_RECORD_FIELD_NUM_TOTAL_HEMOGLOBIN_CONC_MAX, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
696
- FIT_RECORD_FIELD_NUM_SATURATED_HEMOGLOBIN_PERCENT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
697
- FIT_RECORD_FIELD_NUM_SATURATED_HEMOGLOBIN_PERCENT_MIN, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
698
- FIT_RECORD_FIELD_NUM_SATURATED_HEMOGLOBIN_PERCENT_MAX, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
699
- FIT_RECORD_FIELD_NUM_HEART_RATE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
700
- FIT_RECORD_FIELD_NUM_CADENCE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
701
- FIT_RECORD_FIELD_NUM_COMPRESSED_SPEED_DISTANCE, (sizeof(FIT_BYTE)*3), FIT_BASE_TYPE_BYTE,
702
- FIT_RECORD_FIELD_NUM_RESISTANCE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
703
- FIT_RECORD_FIELD_NUM_CYCLE_LENGTH, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
704
- FIT_RECORD_FIELD_NUM_TEMPERATURE, (sizeof(FIT_SINT8)*1), FIT_BASE_TYPE_SINT8,
705
- FIT_RECORD_FIELD_NUM_SPEED_1S, (sizeof(FIT_UINT8)*5), FIT_BASE_TYPE_UINT8,
706
- FIT_RECORD_FIELD_NUM_CYCLES, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
707
- FIT_RECORD_FIELD_NUM_LEFT_RIGHT_BALANCE, (sizeof(FIT_LEFT_RIGHT_BALANCE)*1), FIT_BASE_TYPE_UINT8,
708
- FIT_RECORD_FIELD_NUM_GPS_ACCURACY, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
709
- FIT_RECORD_FIELD_NUM_ACTIVITY_TYPE, (sizeof(FIT_ACTIVITY_TYPE)*1), FIT_BASE_TYPE_ENUM,
710
- FIT_RECORD_FIELD_NUM_LEFT_TORQUE_EFFECTIVENESS, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
711
- FIT_RECORD_FIELD_NUM_RIGHT_TORQUE_EFFECTIVENESS, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
712
- FIT_RECORD_FIELD_NUM_LEFT_PEDAL_SMOOTHNESS, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
713
- FIT_RECORD_FIELD_NUM_RIGHT_PEDAL_SMOOTHNESS, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
714
- FIT_RECORD_FIELD_NUM_COMBINED_PEDAL_SMOOTHNESS, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
715
- FIT_RECORD_FIELD_NUM_TIME128, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
716
- FIT_RECORD_FIELD_NUM_STROKE_TYPE, (sizeof(FIT_STROKE_TYPE)*1), FIT_BASE_TYPE_ENUM,
717
- FIT_RECORD_FIELD_NUM_ZONE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
718
- FIT_RECORD_FIELD_NUM_FRACTIONAL_CADENCE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
719
- FIT_RECORD_FIELD_NUM_DEVICE_INDEX, (sizeof(FIT_DEVICE_INDEX)*1), FIT_BASE_TYPE_UINT8,
720
- }
721
- };
722
-
723
- const static FIT_EVENT_MESG_DEF event_mesg_def =
724
- {
725
- 0, // reserved_1
726
- FIT_ARCH_ENDIAN, // arch
727
- FIT_MESG_NUM_EVENT, // global_mesg_num
728
- 12, // num_fields
729
- { // field_def_num, size, base_type
730
- FIT_EVENT_FIELD_NUM_TIMESTAMP, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
731
- FIT_EVENT_FIELD_NUM_DATA, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
732
- FIT_EVENT_FIELD_NUM_DATA16, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
733
- FIT_EVENT_FIELD_NUM_SCORE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
734
- FIT_EVENT_FIELD_NUM_OPPONENT_SCORE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
735
- FIT_EVENT_FIELD_NUM_EVENT, (sizeof(FIT_EVENT)*1), FIT_BASE_TYPE_ENUM,
736
- FIT_EVENT_FIELD_NUM_EVENT_TYPE, (sizeof(FIT_EVENT_TYPE)*1), FIT_BASE_TYPE_ENUM,
737
- FIT_EVENT_FIELD_NUM_EVENT_GROUP, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
738
- FIT_EVENT_FIELD_NUM_FRONT_GEAR_NUM, (sizeof(FIT_UINT8Z)*1), FIT_BASE_TYPE_UINT8Z,
739
- FIT_EVENT_FIELD_NUM_FRONT_GEAR, (sizeof(FIT_UINT8Z)*1), FIT_BASE_TYPE_UINT8Z,
740
- FIT_EVENT_FIELD_NUM_REAR_GEAR_NUM, (sizeof(FIT_UINT8Z)*1), FIT_BASE_TYPE_UINT8Z,
741
- FIT_EVENT_FIELD_NUM_REAR_GEAR, (sizeof(FIT_UINT8Z)*1), FIT_BASE_TYPE_UINT8Z,
742
- }
743
- };
744
-
745
- const static FIT_DEVICE_INFO_MESG_DEF device_info_mesg_def =
746
- {
747
- 0, // reserved_1
748
- FIT_ARCH_ENDIAN, // arch
749
- FIT_MESG_NUM_DEVICE_INFO, // global_mesg_num
750
- 18, // num_fields
751
- { // field_def_num, size, base_type
752
- FIT_DEVICE_INFO_FIELD_NUM_TIMESTAMP, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
753
- FIT_DEVICE_INFO_FIELD_NUM_SERIAL_NUMBER, (sizeof(FIT_UINT32Z)*1), FIT_BASE_TYPE_UINT32Z,
754
- FIT_DEVICE_INFO_FIELD_NUM_CUM_OPERATING_TIME, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
755
- FIT_DEVICE_INFO_FIELD_NUM_PRODUCT_NAME, (sizeof(FIT_STRING)*20), FIT_BASE_TYPE_STRING,
756
- FIT_DEVICE_INFO_FIELD_NUM_MANUFACTURER, (sizeof(FIT_MANUFACTURER)*1), FIT_BASE_TYPE_UINT16,
757
- FIT_DEVICE_INFO_FIELD_NUM_PRODUCT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
758
- FIT_DEVICE_INFO_FIELD_NUM_SOFTWARE_VERSION, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
759
- FIT_DEVICE_INFO_FIELD_NUM_BATTERY_VOLTAGE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
760
- FIT_DEVICE_INFO_FIELD_NUM_ANT_DEVICE_NUMBER, (sizeof(FIT_UINT16Z)*1), FIT_BASE_TYPE_UINT16Z,
761
- FIT_DEVICE_INFO_FIELD_NUM_DEVICE_INDEX, (sizeof(FIT_DEVICE_INDEX)*1), FIT_BASE_TYPE_UINT8,
762
- FIT_DEVICE_INFO_FIELD_NUM_DEVICE_TYPE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
763
- FIT_DEVICE_INFO_FIELD_NUM_HARDWARE_VERSION, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
764
- FIT_DEVICE_INFO_FIELD_NUM_BATTERY_STATUS, (sizeof(FIT_BATTERY_STATUS)*1), FIT_BASE_TYPE_UINT8,
765
- FIT_DEVICE_INFO_FIELD_NUM_SENSOR_POSITION, (sizeof(FIT_BODY_LOCATION)*1), FIT_BASE_TYPE_ENUM,
766
- FIT_DEVICE_INFO_FIELD_NUM_DESCRIPTOR, (sizeof(FIT_STRING)*1), FIT_BASE_TYPE_STRING,
767
- FIT_DEVICE_INFO_FIELD_NUM_ANT_TRANSMISSION_TYPE, (sizeof(FIT_UINT8Z)*1), FIT_BASE_TYPE_UINT8Z,
768
- FIT_DEVICE_INFO_FIELD_NUM_ANT_NETWORK, (sizeof(FIT_ANT_NETWORK)*1), FIT_BASE_TYPE_ENUM,
769
- FIT_DEVICE_INFO_FIELD_NUM_SOURCE_TYPE, (sizeof(FIT_SOURCE_TYPE)*1), FIT_BASE_TYPE_ENUM,
770
- }
771
- };
772
-
773
- const static FIT_TRAINING_FILE_MESG_DEF training_file_mesg_def =
774
- {
775
- 0, // reserved_1
776
- FIT_ARCH_ENDIAN, // arch
777
- FIT_MESG_NUM_TRAINING_FILE, // global_mesg_num
778
- 6, // num_fields
779
- { // field_def_num, size, base_type
780
- FIT_TRAINING_FILE_FIELD_NUM_TIMESTAMP, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
781
- FIT_TRAINING_FILE_FIELD_NUM_SERIAL_NUMBER, (sizeof(FIT_UINT32Z)*1), FIT_BASE_TYPE_UINT32Z,
782
- FIT_TRAINING_FILE_FIELD_NUM_TIME_CREATED, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
783
- FIT_TRAINING_FILE_FIELD_NUM_MANUFACTURER, (sizeof(FIT_MANUFACTURER)*1), FIT_BASE_TYPE_UINT16,
784
- FIT_TRAINING_FILE_FIELD_NUM_PRODUCT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
785
- FIT_TRAINING_FILE_FIELD_NUM_TYPE, (sizeof(FIT_FILE)*1), FIT_BASE_TYPE_ENUM,
786
- }
787
- };
788
-
789
- const static FIT_HRV_MESG_DEF hrv_mesg_def =
790
- {
791
- 0, // reserved_1
792
- FIT_ARCH_ENDIAN, // arch
793
- FIT_MESG_NUM_HRV, // global_mesg_num
794
- 1, // num_fields
795
- { // field_def_num, size, base_type
796
- FIT_HRV_FIELD_NUM_TIME, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
797
- }
798
- };
799
-
800
- const static FIT_WEATHER_CONDITIONS_MESG_DEF weather_conditions_mesg_def =
801
- {
802
- 0, // reserved_1
803
- FIT_ARCH_ENDIAN, // arch
804
- FIT_MESG_NUM_WEATHER_CONDITIONS, // global_mesg_num
805
- 16, // num_fields
806
- { // field_def_num, size, base_type
807
- FIT_WEATHER_CONDITIONS_FIELD_NUM_TIMESTAMP, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
808
- FIT_WEATHER_CONDITIONS_FIELD_NUM_LOCATION, (sizeof(FIT_STRING)*64), FIT_BASE_TYPE_STRING,
809
- FIT_WEATHER_CONDITIONS_FIELD_NUM_OBSERVED_AT_TIME, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
810
- FIT_WEATHER_CONDITIONS_FIELD_NUM_OBSERVED_LOCATION_LAT, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
811
- FIT_WEATHER_CONDITIONS_FIELD_NUM_OBSERVED_LOCATION_LONG, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
812
- FIT_WEATHER_CONDITIONS_FIELD_NUM_WIND_DIRECTION, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
813
- FIT_WEATHER_CONDITIONS_FIELD_NUM_WIND_SPEED, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
814
- FIT_WEATHER_CONDITIONS_FIELD_NUM_WEATHER_REPORT, (sizeof(FIT_WEATHER_REPORT)*1), FIT_BASE_TYPE_ENUM,
815
- FIT_WEATHER_CONDITIONS_FIELD_NUM_TEMPERATURE, (sizeof(FIT_SINT8)*1), FIT_BASE_TYPE_SINT8,
816
- FIT_WEATHER_CONDITIONS_FIELD_NUM_CONDITION, (sizeof(FIT_WEATHER_STATUS)*1), FIT_BASE_TYPE_ENUM,
817
- FIT_WEATHER_CONDITIONS_FIELD_NUM_PRECIPITATION_PROBABILITY, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
818
- FIT_WEATHER_CONDITIONS_FIELD_NUM_TEMPERATURE_FEELS_LIKE, (sizeof(FIT_SINT8)*1), FIT_BASE_TYPE_SINT8,
819
- FIT_WEATHER_CONDITIONS_FIELD_NUM_RELATIVE_HUMIDITY, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
820
- FIT_WEATHER_CONDITIONS_FIELD_NUM_DAY_OF_WEEK, (sizeof(FIT_DAY_OF_WEEK)*1), FIT_BASE_TYPE_ENUM,
821
- FIT_WEATHER_CONDITIONS_FIELD_NUM_HIGH_TEMPERATURE, (sizeof(FIT_SINT8)*1), FIT_BASE_TYPE_SINT8,
822
- FIT_WEATHER_CONDITIONS_FIELD_NUM_LOW_TEMPERATURE, (sizeof(FIT_SINT8)*1), FIT_BASE_TYPE_SINT8,
823
- }
824
- };
825
-
826
- const static FIT_WEATHER_ALERT_MESG_DEF weather_alert_mesg_def =
827
- {
828
- 0, // reserved_1
829
- FIT_ARCH_ENDIAN, // arch
830
- FIT_MESG_NUM_WEATHER_ALERT, // global_mesg_num
831
- 6, // num_fields
832
- { // field_def_num, size, base_type
833
- FIT_WEATHER_ALERT_FIELD_NUM_TIMESTAMP, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
834
- FIT_WEATHER_ALERT_FIELD_NUM_REPORT_ID, (sizeof(FIT_STRING)*12), FIT_BASE_TYPE_STRING,
835
- FIT_WEATHER_ALERT_FIELD_NUM_ISSUE_TIME, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
836
- FIT_WEATHER_ALERT_FIELD_NUM_EXPIRE_TIME, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
837
- FIT_WEATHER_ALERT_FIELD_NUM_SEVERITY, (sizeof(FIT_WEATHER_SEVERITY)*1), FIT_BASE_TYPE_ENUM,
838
- FIT_WEATHER_ALERT_FIELD_NUM_TYPE, (sizeof(FIT_WEATHER_SEVERE_TYPE)*1), FIT_BASE_TYPE_ENUM,
839
- }
840
- };
841
-
842
- const static FIT_NMEA_SENTENCE_MESG_DEF nmea_sentence_mesg_def =
843
- {
844
- 0, // reserved_1
845
- FIT_ARCH_ENDIAN, // arch
846
- FIT_MESG_NUM_NMEA_SENTENCE, // global_mesg_num
847
- 3, // num_fields
848
- { // field_def_num, size, base_type
849
- FIT_NMEA_SENTENCE_FIELD_NUM_TIMESTAMP, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
850
- FIT_NMEA_SENTENCE_FIELD_NUM_TIMESTAMP_MS, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
851
- FIT_NMEA_SENTENCE_FIELD_NUM_SENTENCE, (sizeof(FIT_STRING)*83), FIT_BASE_TYPE_STRING,
852
- }
853
- };
854
-
855
- const static FIT_AVIATION_ATTITUDE_MESG_DEF aviation_attitude_mesg_def =
856
- {
857
- 0, // reserved_1
858
- FIT_ARCH_ENDIAN, // arch
859
- FIT_MESG_NUM_AVIATION_ATTITUDE, // global_mesg_num
860
- 12, // num_fields
861
- { // field_def_num, size, base_type
862
- FIT_AVIATION_ATTITUDE_FIELD_NUM_TIMESTAMP, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
863
- FIT_AVIATION_ATTITUDE_FIELD_NUM_SYSTEM_TIME, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
864
- FIT_AVIATION_ATTITUDE_FIELD_NUM_TIMESTAMP_MS, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
865
- FIT_AVIATION_ATTITUDE_FIELD_NUM_PITCH, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
866
- FIT_AVIATION_ATTITUDE_FIELD_NUM_ROLL, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
867
- FIT_AVIATION_ATTITUDE_FIELD_NUM_ACCEL_LATERAL, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
868
- FIT_AVIATION_ATTITUDE_FIELD_NUM_ACCEL_NORMAL, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
869
- FIT_AVIATION_ATTITUDE_FIELD_NUM_TURN_RATE, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
870
- FIT_AVIATION_ATTITUDE_FIELD_NUM_TRACK, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
871
- FIT_AVIATION_ATTITUDE_FIELD_NUM_VALIDITY, (sizeof(FIT_ATTITUDE_VALIDITY)*1), FIT_BASE_TYPE_UINT16,
872
- FIT_AVIATION_ATTITUDE_FIELD_NUM_STAGE, (sizeof(FIT_ATTITUDE_STAGE)*1), FIT_BASE_TYPE_ENUM,
873
- FIT_AVIATION_ATTITUDE_FIELD_NUM_ATTITUDE_STAGE_COMPLETE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
874
- }
875
- };
876
-
877
- const static FIT_VIDEO_TITLE_MESG_DEF video_title_mesg_def =
878
- {
879
- 0, // reserved_1
880
- FIT_ARCH_ENDIAN, // arch
881
- FIT_MESG_NUM_VIDEO_TITLE, // global_mesg_num
882
- 3, // num_fields
883
- { // field_def_num, size, base_type
884
- FIT_VIDEO_TITLE_FIELD_NUM_TEXT, (sizeof(FIT_STRING)*80), FIT_BASE_TYPE_STRING,
885
- FIT_VIDEO_TITLE_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
886
- FIT_VIDEO_TITLE_FIELD_NUM_MESSAGE_COUNT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
887
- }
888
- };
889
-
890
- const static FIT_VIDEO_DESCRIPTION_MESG_DEF video_description_mesg_def =
891
- {
892
- 0, // reserved_1
893
- FIT_ARCH_ENDIAN, // arch
894
- FIT_MESG_NUM_VIDEO_DESCRIPTION, // global_mesg_num
895
- 3, // num_fields
896
- { // field_def_num, size, base_type
897
- FIT_VIDEO_DESCRIPTION_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
898
- FIT_VIDEO_DESCRIPTION_FIELD_NUM_MESSAGE_COUNT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
899
- FIT_VIDEO_DESCRIPTION_FIELD_NUM_TEXT, (sizeof(FIT_STRING)*250), FIT_BASE_TYPE_STRING,
900
- }
901
- };
902
-
903
- const static FIT_COURSE_MESG_DEF course_mesg_def =
904
- {
905
- 0, // reserved_1
906
- FIT_ARCH_ENDIAN, // arch
907
- FIT_MESG_NUM_COURSE, // global_mesg_num
908
- 4, // num_fields
909
- { // field_def_num, size, base_type
910
- FIT_COURSE_FIELD_NUM_NAME, (sizeof(FIT_STRING)*16), FIT_BASE_TYPE_STRING,
911
- FIT_COURSE_FIELD_NUM_CAPABILITIES, (sizeof(FIT_COURSE_CAPABILITIES)*1), FIT_BASE_TYPE_UINT32Z,
912
- FIT_COURSE_FIELD_NUM_SPORT, (sizeof(FIT_SPORT)*1), FIT_BASE_TYPE_ENUM,
913
- FIT_COURSE_FIELD_NUM_SUB_SPORT, (sizeof(FIT_SUB_SPORT)*1), FIT_BASE_TYPE_ENUM,
914
- }
915
- };
916
-
917
- const static FIT_COURSE_POINT_MESG_DEF course_point_mesg_def =
918
- {
919
- 0, // reserved_1
920
- FIT_ARCH_ENDIAN, // arch
921
- FIT_MESG_NUM_COURSE_POINT, // global_mesg_num
922
- 8, // num_fields
923
- { // field_def_num, size, base_type
924
- FIT_COURSE_POINT_FIELD_NUM_TIMESTAMP, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
925
- FIT_COURSE_POINT_FIELD_NUM_POSITION_LAT, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
926
- FIT_COURSE_POINT_FIELD_NUM_POSITION_LONG, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
927
- FIT_COURSE_POINT_FIELD_NUM_DISTANCE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
928
- FIT_COURSE_POINT_FIELD_NUM_NAME, (sizeof(FIT_STRING)*16), FIT_BASE_TYPE_STRING,
929
- FIT_COURSE_POINT_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
930
- FIT_COURSE_POINT_FIELD_NUM_TYPE, (sizeof(FIT_COURSE_POINT)*1), FIT_BASE_TYPE_ENUM,
931
- FIT_COURSE_POINT_FIELD_NUM_FAVORITE, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
932
- }
933
- };
934
-
935
- const static FIT_SEGMENT_ID_MESG_DEF segment_id_mesg_def =
936
- {
937
- 0, // reserved_1
938
- FIT_ARCH_ENDIAN, // arch
939
- FIT_MESG_NUM_SEGMENT_ID, // global_mesg_num
940
- 9, // num_fields
941
- { // field_def_num, size, base_type
942
- FIT_SEGMENT_ID_FIELD_NUM_USER_PROFILE_PRIMARY_KEY, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
943
- FIT_SEGMENT_ID_FIELD_NUM_DEVICE_ID, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
944
- FIT_SEGMENT_ID_FIELD_NUM_NAME, (sizeof(FIT_STRING)*1), FIT_BASE_TYPE_STRING,
945
- FIT_SEGMENT_ID_FIELD_NUM_UUID, (sizeof(FIT_STRING)*1), FIT_BASE_TYPE_STRING,
946
- FIT_SEGMENT_ID_FIELD_NUM_SPORT, (sizeof(FIT_SPORT)*1), FIT_BASE_TYPE_ENUM,
947
- FIT_SEGMENT_ID_FIELD_NUM_ENABLED, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
948
- FIT_SEGMENT_ID_FIELD_NUM_DEFAULT_RACE_LEADER, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
949
- FIT_SEGMENT_ID_FIELD_NUM_DELETE_STATUS, (sizeof(FIT_SEGMENT_DELETE_STATUS)*1), FIT_BASE_TYPE_ENUM,
950
- FIT_SEGMENT_ID_FIELD_NUM_SELECTION_TYPE, (sizeof(FIT_SEGMENT_SELECTION_TYPE)*1), FIT_BASE_TYPE_ENUM,
951
- }
952
- };
953
-
954
- const static FIT_SEGMENT_LEADERBOARD_ENTRY_MESG_DEF segment_leaderboard_entry_mesg_def =
955
- {
956
- 0, // reserved_1
957
- FIT_ARCH_ENDIAN, // arch
958
- FIT_MESG_NUM_SEGMENT_LEADERBOARD_ENTRY, // global_mesg_num
959
- 6, // num_fields
960
- { // field_def_num, size, base_type
961
- FIT_SEGMENT_LEADERBOARD_ENTRY_FIELD_NUM_GROUP_PRIMARY_KEY, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
962
- FIT_SEGMENT_LEADERBOARD_ENTRY_FIELD_NUM_ACTIVITY_ID, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
963
- FIT_SEGMENT_LEADERBOARD_ENTRY_FIELD_NUM_SEGMENT_TIME, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
964
- FIT_SEGMENT_LEADERBOARD_ENTRY_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
965
- FIT_SEGMENT_LEADERBOARD_ENTRY_FIELD_NUM_NAME, (sizeof(FIT_STRING)*1), FIT_BASE_TYPE_STRING,
966
- FIT_SEGMENT_LEADERBOARD_ENTRY_FIELD_NUM_TYPE, (sizeof(FIT_SEGMENT_LEADERBOARD_TYPE)*1), FIT_BASE_TYPE_ENUM,
967
- }
968
- };
969
-
970
- const static FIT_SEGMENT_POINT_MESG_DEF segment_point_mesg_def =
971
- {
972
- 0, // reserved_1
973
- FIT_ARCH_ENDIAN, // arch
974
- FIT_MESG_NUM_SEGMENT_POINT, // global_mesg_num
975
- 6, // num_fields
976
- { // field_def_num, size, base_type
977
- FIT_SEGMENT_POINT_FIELD_NUM_POSITION_LAT, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
978
- FIT_SEGMENT_POINT_FIELD_NUM_POSITION_LONG, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
979
- FIT_SEGMENT_POINT_FIELD_NUM_DISTANCE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
980
- FIT_SEGMENT_POINT_FIELD_NUM_LEADER_TIME, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
981
- FIT_SEGMENT_POINT_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
982
- FIT_SEGMENT_POINT_FIELD_NUM_ALTITUDE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
983
- }
984
- };
985
-
986
- const static FIT_SEGMENT_LAP_MESG_DEF segment_lap_mesg_def =
987
- {
988
- 0, // reserved_1
989
- FIT_ARCH_ENDIAN, // arch
990
- FIT_MESG_NUM_SEGMENT_LAP, // global_mesg_num
991
- 73, // num_fields
992
- { // field_def_num, size, base_type
993
- FIT_SEGMENT_LAP_FIELD_NUM_TIMESTAMP, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
994
- FIT_SEGMENT_LAP_FIELD_NUM_START_TIME, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
995
- FIT_SEGMENT_LAP_FIELD_NUM_START_POSITION_LAT, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
996
- FIT_SEGMENT_LAP_FIELD_NUM_START_POSITION_LONG, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
997
- FIT_SEGMENT_LAP_FIELD_NUM_END_POSITION_LAT, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
998
- FIT_SEGMENT_LAP_FIELD_NUM_END_POSITION_LONG, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
999
- FIT_SEGMENT_LAP_FIELD_NUM_TOTAL_ELAPSED_TIME, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1000
- FIT_SEGMENT_LAP_FIELD_NUM_TOTAL_TIMER_TIME, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1001
- FIT_SEGMENT_LAP_FIELD_NUM_TOTAL_DISTANCE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1002
- FIT_SEGMENT_LAP_FIELD_NUM_TOTAL_CYCLES, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1003
- FIT_SEGMENT_LAP_FIELD_NUM_NEC_LAT, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
1004
- FIT_SEGMENT_LAP_FIELD_NUM_NEC_LONG, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
1005
- FIT_SEGMENT_LAP_FIELD_NUM_SWC_LAT, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
1006
- FIT_SEGMENT_LAP_FIELD_NUM_SWC_LONG, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
1007
- FIT_SEGMENT_LAP_FIELD_NUM_NAME, (sizeof(FIT_STRING)*16), FIT_BASE_TYPE_STRING,
1008
- FIT_SEGMENT_LAP_FIELD_NUM_TOTAL_WORK, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1009
- FIT_SEGMENT_LAP_FIELD_NUM_TOTAL_MOVING_TIME, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1010
- FIT_SEGMENT_LAP_FIELD_NUM_TIME_IN_HR_ZONE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1011
- FIT_SEGMENT_LAP_FIELD_NUM_TIME_IN_SPEED_ZONE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1012
- FIT_SEGMENT_LAP_FIELD_NUM_TIME_IN_CADENCE_ZONE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1013
- FIT_SEGMENT_LAP_FIELD_NUM_TIME_IN_POWER_ZONE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1014
- FIT_SEGMENT_LAP_FIELD_NUM_ACTIVE_TIME, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1015
- FIT_SEGMENT_LAP_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
1016
- FIT_SEGMENT_LAP_FIELD_NUM_TOTAL_CALORIES, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1017
- FIT_SEGMENT_LAP_FIELD_NUM_TOTAL_FAT_CALORIES, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1018
- FIT_SEGMENT_LAP_FIELD_NUM_AVG_SPEED, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1019
- FIT_SEGMENT_LAP_FIELD_NUM_MAX_SPEED, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1020
- FIT_SEGMENT_LAP_FIELD_NUM_AVG_POWER, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1021
- FIT_SEGMENT_LAP_FIELD_NUM_MAX_POWER, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1022
- FIT_SEGMENT_LAP_FIELD_NUM_TOTAL_ASCENT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1023
- FIT_SEGMENT_LAP_FIELD_NUM_TOTAL_DESCENT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1024
- FIT_SEGMENT_LAP_FIELD_NUM_NORMALIZED_POWER, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1025
- FIT_SEGMENT_LAP_FIELD_NUM_LEFT_RIGHT_BALANCE, (sizeof(FIT_LEFT_RIGHT_BALANCE_100)*1), FIT_BASE_TYPE_UINT16,
1026
- FIT_SEGMENT_LAP_FIELD_NUM_AVG_ALTITUDE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1027
- FIT_SEGMENT_LAP_FIELD_NUM_MAX_ALTITUDE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1028
- FIT_SEGMENT_LAP_FIELD_NUM_AVG_GRADE, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
1029
- FIT_SEGMENT_LAP_FIELD_NUM_AVG_POS_GRADE, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
1030
- FIT_SEGMENT_LAP_FIELD_NUM_AVG_NEG_GRADE, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
1031
- FIT_SEGMENT_LAP_FIELD_NUM_MAX_POS_GRADE, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
1032
- FIT_SEGMENT_LAP_FIELD_NUM_MAX_NEG_GRADE, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
1033
- FIT_SEGMENT_LAP_FIELD_NUM_AVG_POS_VERTICAL_SPEED, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
1034
- FIT_SEGMENT_LAP_FIELD_NUM_AVG_NEG_VERTICAL_SPEED, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
1035
- FIT_SEGMENT_LAP_FIELD_NUM_MAX_POS_VERTICAL_SPEED, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
1036
- FIT_SEGMENT_LAP_FIELD_NUM_MAX_NEG_VERTICAL_SPEED, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
1037
- FIT_SEGMENT_LAP_FIELD_NUM_REPETITION_NUM, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1038
- FIT_SEGMENT_LAP_FIELD_NUM_MIN_ALTITUDE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1039
- FIT_SEGMENT_LAP_FIELD_NUM_WKT_STEP_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
1040
- FIT_SEGMENT_LAP_FIELD_NUM_FRONT_GEAR_SHIFT_COUNT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1041
- FIT_SEGMENT_LAP_FIELD_NUM_REAR_GEAR_SHIFT_COUNT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1042
- FIT_SEGMENT_LAP_FIELD_NUM_EVENT, (sizeof(FIT_EVENT)*1), FIT_BASE_TYPE_ENUM,
1043
- FIT_SEGMENT_LAP_FIELD_NUM_EVENT_TYPE, (sizeof(FIT_EVENT_TYPE)*1), FIT_BASE_TYPE_ENUM,
1044
- FIT_SEGMENT_LAP_FIELD_NUM_AVG_HEART_RATE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1045
- FIT_SEGMENT_LAP_FIELD_NUM_MAX_HEART_RATE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1046
- FIT_SEGMENT_LAP_FIELD_NUM_AVG_CADENCE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1047
- FIT_SEGMENT_LAP_FIELD_NUM_MAX_CADENCE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1048
- FIT_SEGMENT_LAP_FIELD_NUM_SPORT, (sizeof(FIT_SPORT)*1), FIT_BASE_TYPE_ENUM,
1049
- FIT_SEGMENT_LAP_FIELD_NUM_EVENT_GROUP, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1050
- FIT_SEGMENT_LAP_FIELD_NUM_SUB_SPORT, (sizeof(FIT_SUB_SPORT)*1), FIT_BASE_TYPE_ENUM,
1051
- FIT_SEGMENT_LAP_FIELD_NUM_GPS_ACCURACY, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1052
- FIT_SEGMENT_LAP_FIELD_NUM_AVG_TEMPERATURE, (sizeof(FIT_SINT8)*1), FIT_BASE_TYPE_SINT8,
1053
- FIT_SEGMENT_LAP_FIELD_NUM_MAX_TEMPERATURE, (sizeof(FIT_SINT8)*1), FIT_BASE_TYPE_SINT8,
1054
- FIT_SEGMENT_LAP_FIELD_NUM_MIN_HEART_RATE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1055
- FIT_SEGMENT_LAP_FIELD_NUM_SPORT_EVENT, (sizeof(FIT_SPORT_EVENT)*1), FIT_BASE_TYPE_ENUM,
1056
- FIT_SEGMENT_LAP_FIELD_NUM_AVG_LEFT_TORQUE_EFFECTIVENESS, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1057
- FIT_SEGMENT_LAP_FIELD_NUM_AVG_RIGHT_TORQUE_EFFECTIVENESS, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1058
- FIT_SEGMENT_LAP_FIELD_NUM_AVG_LEFT_PEDAL_SMOOTHNESS, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1059
- FIT_SEGMENT_LAP_FIELD_NUM_AVG_RIGHT_PEDAL_SMOOTHNESS, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1060
- FIT_SEGMENT_LAP_FIELD_NUM_AVG_COMBINED_PEDAL_SMOOTHNESS, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1061
- FIT_SEGMENT_LAP_FIELD_NUM_STATUS, (sizeof(FIT_SEGMENT_LAP_STATUS)*1), FIT_BASE_TYPE_ENUM,
1062
- FIT_SEGMENT_LAP_FIELD_NUM_UUID, (sizeof(FIT_STRING)*33), FIT_BASE_TYPE_STRING,
1063
- FIT_SEGMENT_LAP_FIELD_NUM_AVG_FRACTIONAL_CADENCE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1064
- FIT_SEGMENT_LAP_FIELD_NUM_MAX_FRACTIONAL_CADENCE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1065
- FIT_SEGMENT_LAP_FIELD_NUM_TOTAL_FRACTIONAL_CYCLES, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1066
- }
1067
- };
1068
-
1069
- const static FIT_SEGMENT_FILE_MESG_DEF segment_file_mesg_def =
1070
- {
1071
- 0, // reserved_1
1072
- FIT_ARCH_ENDIAN, // arch
1073
- FIT_MESG_NUM_SEGMENT_FILE, // global_mesg_num
1074
- 7, // num_fields
1075
- { // field_def_num, size, base_type
1076
- FIT_SEGMENT_FILE_FIELD_NUM_USER_PROFILE_PRIMARY_KEY, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1077
- FIT_SEGMENT_FILE_FIELD_NUM_LEADER_GROUP_PRIMARY_KEY, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1078
- FIT_SEGMENT_FILE_FIELD_NUM_LEADER_ACTIVITY_ID, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1079
- FIT_SEGMENT_FILE_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
1080
- FIT_SEGMENT_FILE_FIELD_NUM_FILE_UUID, (sizeof(FIT_STRING)*1), FIT_BASE_TYPE_STRING,
1081
- FIT_SEGMENT_FILE_FIELD_NUM_ENABLED, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
1082
- FIT_SEGMENT_FILE_FIELD_NUM_LEADER_TYPE, (sizeof(FIT_SEGMENT_LEADERBOARD_TYPE)*1), FIT_BASE_TYPE_ENUM,
1083
- }
1084
- };
1085
-
1086
- const static FIT_WORKOUT_MESG_DEF workout_mesg_def =
1087
- {
1088
- 0, // reserved_1
1089
- FIT_ARCH_ENDIAN, // arch
1090
- FIT_MESG_NUM_WORKOUT, // global_mesg_num
1091
- 4, // num_fields
1092
- { // field_def_num, size, base_type
1093
- FIT_WORKOUT_FIELD_NUM_CAPABILITIES, (sizeof(FIT_WORKOUT_CAPABILITIES)*1), FIT_BASE_TYPE_UINT32Z,
1094
- FIT_WORKOUT_FIELD_NUM_WKT_NAME, (sizeof(FIT_STRING)*16), FIT_BASE_TYPE_STRING,
1095
- FIT_WORKOUT_FIELD_NUM_NUM_VALID_STEPS, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1096
- FIT_WORKOUT_FIELD_NUM_SPORT, (sizeof(FIT_SPORT)*1), FIT_BASE_TYPE_ENUM,
1097
- }
1098
- };
1099
-
1100
- const static FIT_WORKOUT_STEP_MESG_DEF workout_step_mesg_def =
1101
- {
1102
- 0, // reserved_1
1103
- FIT_ARCH_ENDIAN, // arch
1104
- FIT_MESG_NUM_WORKOUT_STEP, // global_mesg_num
1105
- 9, // num_fields
1106
- { // field_def_num, size, base_type
1107
- FIT_WORKOUT_STEP_FIELD_NUM_WKT_STEP_NAME, (sizeof(FIT_STRING)*16), FIT_BASE_TYPE_STRING,
1108
- FIT_WORKOUT_STEP_FIELD_NUM_DURATION_VALUE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1109
- FIT_WORKOUT_STEP_FIELD_NUM_TARGET_VALUE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1110
- FIT_WORKOUT_STEP_FIELD_NUM_CUSTOM_TARGET_VALUE_LOW, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1111
- FIT_WORKOUT_STEP_FIELD_NUM_CUSTOM_TARGET_VALUE_HIGH, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1112
- FIT_WORKOUT_STEP_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
1113
- FIT_WORKOUT_STEP_FIELD_NUM_DURATION_TYPE, (sizeof(FIT_WKT_STEP_DURATION)*1), FIT_BASE_TYPE_ENUM,
1114
- FIT_WORKOUT_STEP_FIELD_NUM_TARGET_TYPE, (sizeof(FIT_WKT_STEP_TARGET)*1), FIT_BASE_TYPE_ENUM,
1115
- FIT_WORKOUT_STEP_FIELD_NUM_INTENSITY, (sizeof(FIT_INTENSITY)*1), FIT_BASE_TYPE_ENUM,
1116
- }
1117
- };
1118
-
1119
- const static FIT_SCHEDULE_MESG_DEF schedule_mesg_def =
1120
- {
1121
- 0, // reserved_1
1122
- FIT_ARCH_ENDIAN, // arch
1123
- FIT_MESG_NUM_SCHEDULE, // global_mesg_num
1124
- 7, // num_fields
1125
- { // field_def_num, size, base_type
1126
- FIT_SCHEDULE_FIELD_NUM_SERIAL_NUMBER, (sizeof(FIT_UINT32Z)*1), FIT_BASE_TYPE_UINT32Z,
1127
- FIT_SCHEDULE_FIELD_NUM_TIME_CREATED, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
1128
- FIT_SCHEDULE_FIELD_NUM_SCHEDULED_TIME, (sizeof(FIT_LOCAL_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
1129
- FIT_SCHEDULE_FIELD_NUM_MANUFACTURER, (sizeof(FIT_MANUFACTURER)*1), FIT_BASE_TYPE_UINT16,
1130
- FIT_SCHEDULE_FIELD_NUM_PRODUCT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1131
- FIT_SCHEDULE_FIELD_NUM_COMPLETED, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
1132
- FIT_SCHEDULE_FIELD_NUM_TYPE, (sizeof(FIT_SCHEDULE)*1), FIT_BASE_TYPE_ENUM,
1133
- }
1134
- };
1135
-
1136
- const static FIT_TOTALS_MESG_DEF totals_mesg_def =
1137
- {
1138
- 0, // reserved_1
1139
- FIT_ARCH_ENDIAN, // arch
1140
- FIT_MESG_NUM_TOTALS, // global_mesg_num
1141
- 9, // num_fields
1142
- { // field_def_num, size, base_type
1143
- FIT_TOTALS_FIELD_NUM_TIMESTAMP, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
1144
- FIT_TOTALS_FIELD_NUM_TIMER_TIME, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1145
- FIT_TOTALS_FIELD_NUM_DISTANCE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1146
- FIT_TOTALS_FIELD_NUM_CALORIES, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1147
- FIT_TOTALS_FIELD_NUM_ELAPSED_TIME, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1148
- FIT_TOTALS_FIELD_NUM_ACTIVE_TIME, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1149
- FIT_TOTALS_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
1150
- FIT_TOTALS_FIELD_NUM_SESSIONS, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1151
- FIT_TOTALS_FIELD_NUM_SPORT, (sizeof(FIT_SPORT)*1), FIT_BASE_TYPE_ENUM,
1152
- }
1153
- };
1154
-
1155
- const static FIT_WEIGHT_SCALE_MESG_DEF weight_scale_mesg_def =
1156
- {
1157
- 0, // reserved_1
1158
- FIT_ARCH_ENDIAN, // arch
1159
- FIT_MESG_NUM_WEIGHT_SCALE, // global_mesg_num
1160
- 13, // num_fields
1161
- { // field_def_num, size, base_type
1162
- FIT_WEIGHT_SCALE_FIELD_NUM_TIMESTAMP, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
1163
- FIT_WEIGHT_SCALE_FIELD_NUM_WEIGHT, (sizeof(FIT_WEIGHT)*1), FIT_BASE_TYPE_UINT16,
1164
- FIT_WEIGHT_SCALE_FIELD_NUM_PERCENT_FAT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1165
- FIT_WEIGHT_SCALE_FIELD_NUM_PERCENT_HYDRATION, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1166
- FIT_WEIGHT_SCALE_FIELD_NUM_VISCERAL_FAT_MASS, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1167
- FIT_WEIGHT_SCALE_FIELD_NUM_BONE_MASS, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1168
- FIT_WEIGHT_SCALE_FIELD_NUM_MUSCLE_MASS, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1169
- FIT_WEIGHT_SCALE_FIELD_NUM_BASAL_MET, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1170
- FIT_WEIGHT_SCALE_FIELD_NUM_ACTIVE_MET, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1171
- FIT_WEIGHT_SCALE_FIELD_NUM_USER_PROFILE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
1172
- FIT_WEIGHT_SCALE_FIELD_NUM_PHYSIQUE_RATING, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1173
- FIT_WEIGHT_SCALE_FIELD_NUM_METABOLIC_AGE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1174
- FIT_WEIGHT_SCALE_FIELD_NUM_VISCERAL_FAT_RATING, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1175
- }
1176
- };
1177
-
1178
- const static FIT_BLOOD_PRESSURE_MESG_DEF blood_pressure_mesg_def =
1179
- {
1180
- 0, // reserved_1
1181
- FIT_ARCH_ENDIAN, // arch
1182
- FIT_MESG_NUM_BLOOD_PRESSURE, // global_mesg_num
1183
- 11, // num_fields
1184
- { // field_def_num, size, base_type
1185
- FIT_BLOOD_PRESSURE_FIELD_NUM_TIMESTAMP, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
1186
- FIT_BLOOD_PRESSURE_FIELD_NUM_SYSTOLIC_PRESSURE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1187
- FIT_BLOOD_PRESSURE_FIELD_NUM_DIASTOLIC_PRESSURE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1188
- FIT_BLOOD_PRESSURE_FIELD_NUM_MEAN_ARTERIAL_PRESSURE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1189
- FIT_BLOOD_PRESSURE_FIELD_NUM_MAP_3_SAMPLE_MEAN, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1190
- FIT_BLOOD_PRESSURE_FIELD_NUM_MAP_MORNING_VALUES, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1191
- FIT_BLOOD_PRESSURE_FIELD_NUM_MAP_EVENING_VALUES, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1192
- FIT_BLOOD_PRESSURE_FIELD_NUM_USER_PROFILE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
1193
- FIT_BLOOD_PRESSURE_FIELD_NUM_HEART_RATE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1194
- FIT_BLOOD_PRESSURE_FIELD_NUM_HEART_RATE_TYPE, (sizeof(FIT_HR_TYPE)*1), FIT_BASE_TYPE_ENUM,
1195
- FIT_BLOOD_PRESSURE_FIELD_NUM_STATUS, (sizeof(FIT_BP_STATUS)*1), FIT_BASE_TYPE_ENUM,
1196
- }
1197
- };
1198
-
1199
- const static FIT_MONITORING_INFO_MESG_DEF monitoring_info_mesg_def =
1200
- {
1201
- 0, // reserved_1
1202
- FIT_ARCH_ENDIAN, // arch
1203
- FIT_MESG_NUM_MONITORING_INFO, // global_mesg_num
1204
- 2, // num_fields
1205
- { // field_def_num, size, base_type
1206
- FIT_MONITORING_INFO_FIELD_NUM_TIMESTAMP, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
1207
- FIT_MONITORING_INFO_FIELD_NUM_LOCAL_TIMESTAMP, (sizeof(FIT_LOCAL_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
1208
- }
1209
- };
1210
-
1211
- const static FIT_MONITORING_MESG_DEF monitoring_mesg_def =
1212
- {
1213
- 0, // reserved_1
1214
- FIT_ARCH_ENDIAN, // arch
1215
- FIT_MESG_NUM_MONITORING, // global_mesg_num
1216
- 12, // num_fields
1217
- { // field_def_num, size, base_type
1218
- FIT_MONITORING_FIELD_NUM_TIMESTAMP, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
1219
- FIT_MONITORING_FIELD_NUM_DISTANCE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1220
- FIT_MONITORING_FIELD_NUM_CYCLES, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1221
- FIT_MONITORING_FIELD_NUM_ACTIVE_TIME, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1222
- FIT_MONITORING_FIELD_NUM_LOCAL_TIMESTAMP, (sizeof(FIT_LOCAL_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
1223
- FIT_MONITORING_FIELD_NUM_CALORIES, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1224
- FIT_MONITORING_FIELD_NUM_DISTANCE_16, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1225
- FIT_MONITORING_FIELD_NUM_CYCLES_16, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1226
- FIT_MONITORING_FIELD_NUM_ACTIVE_TIME_16, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1227
- FIT_MONITORING_FIELD_NUM_DEVICE_INDEX, (sizeof(FIT_DEVICE_INDEX)*1), FIT_BASE_TYPE_UINT8,
1228
- FIT_MONITORING_FIELD_NUM_ACTIVITY_TYPE, (sizeof(FIT_ACTIVITY_TYPE)*1), FIT_BASE_TYPE_ENUM,
1229
- FIT_MONITORING_FIELD_NUM_ACTIVITY_SUBTYPE, (sizeof(FIT_ACTIVITY_SUBTYPE)*1), FIT_BASE_TYPE_ENUM,
1230
- }
1231
- };
1232
-
1233
- const static FIT_HR_MESG_DEF hr_mesg_def =
1234
- {
1235
- 0, // reserved_1
1236
- FIT_ARCH_ENDIAN, // arch
1237
- FIT_MESG_NUM_HR, // global_mesg_num
1238
- 6, // num_fields
1239
- { // field_def_num, size, base_type
1240
- FIT_HR_FIELD_NUM_TIMESTAMP, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
1241
- FIT_HR_FIELD_NUM_EVENT_TIMESTAMP, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1242
- FIT_HR_FIELD_NUM_FRACTIONAL_TIMESTAMP, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1243
- FIT_HR_FIELD_NUM_TIME256, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1244
- FIT_HR_FIELD_NUM_FILTERED_BPM, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1245
- FIT_HR_FIELD_NUM_EVENT_TIMESTAMP_12, (sizeof(FIT_BYTE)*1), FIT_BASE_TYPE_BYTE,
1246
- }
1247
- };
1248
-
1249
- const static FIT_ANT_RX_MESG_DEF ant_rx_mesg_def =
1250
- {
1251
- 0, // reserved_1
1252
- FIT_ARCH_ENDIAN, // arch
1253
- FIT_MESG_NUM_ANT_RX, // global_mesg_num
1254
- 6, // num_fields
1255
- { // field_def_num, size, base_type
1256
- FIT_ANT_RX_FIELD_NUM_TIMESTAMP, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
1257
- FIT_ANT_RX_FIELD_NUM_DATA, (sizeof(FIT_BYTE)*8), FIT_BASE_TYPE_BYTE,
1258
- FIT_ANT_RX_FIELD_NUM_FRACTIONAL_TIMESTAMP, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1259
- FIT_ANT_RX_FIELD_NUM_MESG_ID, (sizeof(FIT_BYTE)*1), FIT_BASE_TYPE_BYTE,
1260
- FIT_ANT_RX_FIELD_NUM_MESG_DATA, (sizeof(FIT_BYTE)*9), FIT_BASE_TYPE_BYTE,
1261
- FIT_ANT_RX_FIELD_NUM_CHANNEL_NUMBER, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1262
- }
1263
- };
1264
-
1265
- const static FIT_ANT_TX_MESG_DEF ant_tx_mesg_def =
1266
- {
1267
- 0, // reserved_1
1268
- FIT_ARCH_ENDIAN, // arch
1269
- FIT_MESG_NUM_ANT_TX, // global_mesg_num
1270
- 6, // num_fields
1271
- { // field_def_num, size, base_type
1272
- FIT_ANT_TX_FIELD_NUM_TIMESTAMP, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
1273
- FIT_ANT_TX_FIELD_NUM_DATA, (sizeof(FIT_BYTE)*8), FIT_BASE_TYPE_BYTE,
1274
- FIT_ANT_TX_FIELD_NUM_FRACTIONAL_TIMESTAMP, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1275
- FIT_ANT_TX_FIELD_NUM_MESG_ID, (sizeof(FIT_BYTE)*1), FIT_BASE_TYPE_BYTE,
1276
- FIT_ANT_TX_FIELD_NUM_MESG_DATA, (sizeof(FIT_BYTE)*9), FIT_BASE_TYPE_BYTE,
1277
- FIT_ANT_TX_FIELD_NUM_CHANNEL_NUMBER, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1278
- }
1279
- };
1280
-
1281
- const static FIT_EXD_SCREEN_CONFIGURATION_MESG_DEF exd_screen_configuration_mesg_def =
1282
- {
1283
- 0, // reserved_1
1284
- FIT_ARCH_ENDIAN, // arch
1285
- FIT_MESG_NUM_EXD_SCREEN_CONFIGURATION, // global_mesg_num
1286
- 4, // num_fields
1287
- { // field_def_num, size, base_type
1288
- FIT_EXD_SCREEN_CONFIGURATION_FIELD_NUM_SCREEN_INDEX, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1289
- FIT_EXD_SCREEN_CONFIGURATION_FIELD_NUM_FIELD_COUNT, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1290
- FIT_EXD_SCREEN_CONFIGURATION_FIELD_NUM_LAYOUT, (sizeof(FIT_EXD_LAYOUT)*1), FIT_BASE_TYPE_ENUM,
1291
- FIT_EXD_SCREEN_CONFIGURATION_FIELD_NUM_SCREEN_ENABLED, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
1292
- }
1293
- };
1294
-
1295
- const static FIT_EXD_DATA_FIELD_CONFIGURATION_MESG_DEF exd_data_field_configuration_mesg_def =
1296
- {
1297
- 0, // reserved_1
1298
- FIT_ARCH_ENDIAN, // arch
1299
- FIT_MESG_NUM_EXD_DATA_FIELD_CONFIGURATION, // global_mesg_num
1300
- 6, // num_fields
1301
- { // field_def_num, size, base_type
1302
- FIT_EXD_DATA_FIELD_CONFIGURATION_FIELD_NUM_SCREEN_INDEX, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1303
- FIT_EXD_DATA_FIELD_CONFIGURATION_FIELD_NUM_CONCEPT_FIELD, (sizeof(FIT_BYTE)*1), FIT_BASE_TYPE_BYTE,
1304
- FIT_EXD_DATA_FIELD_CONFIGURATION_FIELD_NUM_FIELD_ID, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1305
- FIT_EXD_DATA_FIELD_CONFIGURATION_FIELD_NUM_CONCEPT_COUNT, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1306
- FIT_EXD_DATA_FIELD_CONFIGURATION_FIELD_NUM_DISPLAY_TYPE, (sizeof(FIT_EXD_DISPLAY_TYPE)*1), FIT_BASE_TYPE_ENUM,
1307
- FIT_EXD_DATA_FIELD_CONFIGURATION_FIELD_NUM_TITLE, (sizeof(FIT_STRING)*1), FIT_BASE_TYPE_STRING,
1308
- }
1309
- };
1310
-
1311
- const static FIT_EXD_DATA_CONCEPT_CONFIGURATION_MESG_DEF exd_data_concept_configuration_mesg_def =
1312
- {
1313
- 0, // reserved_1
1314
- FIT_ARCH_ENDIAN, // arch
1315
- FIT_MESG_NUM_EXD_DATA_CONCEPT_CONFIGURATION, // global_mesg_num
1316
- 11, // num_fields
1317
- { // field_def_num, size, base_type
1318
- FIT_EXD_DATA_CONCEPT_CONFIGURATION_FIELD_NUM_SCREEN_INDEX, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1319
- FIT_EXD_DATA_CONCEPT_CONFIGURATION_FIELD_NUM_CONCEPT_FIELD, (sizeof(FIT_BYTE)*1), FIT_BASE_TYPE_BYTE,
1320
- FIT_EXD_DATA_CONCEPT_CONFIGURATION_FIELD_NUM_FIELD_ID, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1321
- FIT_EXD_DATA_CONCEPT_CONFIGURATION_FIELD_NUM_CONCEPT_INDEX, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1322
- FIT_EXD_DATA_CONCEPT_CONFIGURATION_FIELD_NUM_DATA_PAGE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1323
- FIT_EXD_DATA_CONCEPT_CONFIGURATION_FIELD_NUM_CONCEPT_KEY, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1324
- FIT_EXD_DATA_CONCEPT_CONFIGURATION_FIELD_NUM_SCALING, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1325
- FIT_EXD_DATA_CONCEPT_CONFIGURATION_FIELD_NUM_DATA_UNITS, (sizeof(FIT_EXD_DATA_UNITS)*1), FIT_BASE_TYPE_ENUM,
1326
- FIT_EXD_DATA_CONCEPT_CONFIGURATION_FIELD_NUM_QUALIFIER, (sizeof(FIT_EXD_QUALIFIERS)*1), FIT_BASE_TYPE_ENUM,
1327
- FIT_EXD_DATA_CONCEPT_CONFIGURATION_FIELD_NUM_DESCRIPTOR, (sizeof(FIT_EXD_DESCRIPTORS)*1), FIT_BASE_TYPE_ENUM,
1328
- FIT_EXD_DATA_CONCEPT_CONFIGURATION_FIELD_NUM_IS_SIGNED, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
1329
- }
1330
- };
1331
-
1332
- const static FIT_FIELD_DESCRIPTION_MESG_DEF field_description_mesg_def =
1333
- {
1334
- 0, // reserved_1
1335
- FIT_ARCH_ENDIAN, // arch
1336
- FIT_MESG_NUM_FIELD_DESCRIPTION, // global_mesg_num
1337
- 10, // num_fields
1338
- { // field_def_num, size, base_type
1339
- FIT_FIELD_DESCRIPTION_FIELD_NUM_FIELD_NAME, (sizeof(FIT_STRING)*64), FIT_BASE_TYPE_STRING,
1340
- FIT_FIELD_DESCRIPTION_FIELD_NUM_UNITS, (sizeof(FIT_STRING)*16), FIT_BASE_TYPE_STRING,
1341
- FIT_FIELD_DESCRIPTION_FIELD_NUM_FIT_BASE_UNIT_ID, (sizeof(FIT_FIT_BASE_UNIT)*1), FIT_BASE_TYPE_UINT16,
1342
- FIT_FIELD_DESCRIPTION_FIELD_NUM_NATIVE_MESG_NUM, (sizeof(FIT_MESG_NUM)*1), FIT_BASE_TYPE_UINT16,
1343
- FIT_FIELD_DESCRIPTION_FIELD_NUM_DEVELOPER_DATA_INDEX, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1344
- FIT_FIELD_DESCRIPTION_FIELD_NUM_FIELD_DEFINITION_NUMBER, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1345
- FIT_FIELD_DESCRIPTION_FIELD_NUM_FIT_BASE_TYPE_ID, (sizeof(FIT_FIT_BASE_TYPE)*1), FIT_BASE_TYPE_UINT8,
1346
- FIT_FIELD_DESCRIPTION_FIELD_NUM_SCALE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1347
- FIT_FIELD_DESCRIPTION_FIELD_NUM_OFFSET, (sizeof(FIT_SINT8)*1), FIT_BASE_TYPE_SINT8,
1348
- FIT_FIELD_DESCRIPTION_FIELD_NUM_NATIVE_FIELD_NUM, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1349
- }
1350
- };
1351
-
1352
- const static FIT_DEVELOPER_DATA_ID_MESG_DEF developer_data_id_mesg_def =
1353
- {
1354
- 0, // reserved_1
1355
- FIT_ARCH_ENDIAN, // arch
1356
- FIT_MESG_NUM_DEVELOPER_DATA_ID, // global_mesg_num
1357
- 5, // num_fields
1358
- { // field_def_num, size, base_type
1359
- FIT_DEVELOPER_DATA_ID_FIELD_NUM_DEVELOPER_ID, (sizeof(FIT_BYTE)*16), FIT_BASE_TYPE_BYTE,
1360
- FIT_DEVELOPER_DATA_ID_FIELD_NUM_APPLICATION_ID, (sizeof(FIT_BYTE)*16), FIT_BASE_TYPE_BYTE,
1361
- FIT_DEVELOPER_DATA_ID_FIELD_NUM_APPLICATION_VERSION, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1362
- FIT_DEVELOPER_DATA_ID_FIELD_NUM_MANUFACTURER_ID, (sizeof(FIT_MANUFACTURER)*1), FIT_BASE_TYPE_UINT16,
1363
- FIT_DEVELOPER_DATA_ID_FIELD_NUM_DEVELOPER_DATA_INDEX, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1364
- }
1365
- };
1366
-
1367
-
1368
- const FIT_CONST_MESG_DEF_PTR fit_mesg_defs[] =
1369
- {
1370
- (FIT_CONST_MESG_DEF_PTR) &pad_mesg_def,
1371
- (FIT_CONST_MESG_DEF_PTR) &file_id_mesg_def,
1372
- (FIT_CONST_MESG_DEF_PTR) &file_creator_mesg_def,
1373
- (FIT_CONST_MESG_DEF_PTR) &software_mesg_def,
1374
- (FIT_CONST_MESG_DEF_PTR) &slave_device_mesg_def,
1375
- (FIT_CONST_MESG_DEF_PTR) &capabilities_mesg_def,
1376
- (FIT_CONST_MESG_DEF_PTR) &file_capabilities_mesg_def,
1377
- (FIT_CONST_MESG_DEF_PTR) &mesg_capabilities_mesg_def,
1378
- (FIT_CONST_MESG_DEF_PTR) &field_capabilities_mesg_def,
1379
- (FIT_CONST_MESG_DEF_PTR) &device_settings_mesg_def,
1380
- (FIT_CONST_MESG_DEF_PTR) &user_profile_mesg_def,
1381
- (FIT_CONST_MESG_DEF_PTR) &hrm_profile_mesg_def,
1382
- (FIT_CONST_MESG_DEF_PTR) &sdm_profile_mesg_def,
1383
- (FIT_CONST_MESG_DEF_PTR) &bike_profile_mesg_def,
1384
- (FIT_CONST_MESG_DEF_PTR) &connectivity_mesg_def,
1385
- (FIT_CONST_MESG_DEF_PTR) &zones_target_mesg_def,
1386
- (FIT_CONST_MESG_DEF_PTR) &sport_mesg_def,
1387
- (FIT_CONST_MESG_DEF_PTR) &hr_zone_mesg_def,
1388
- (FIT_CONST_MESG_DEF_PTR) &speed_zone_mesg_def,
1389
- (FIT_CONST_MESG_DEF_PTR) &cadence_zone_mesg_def,
1390
- (FIT_CONST_MESG_DEF_PTR) &power_zone_mesg_def,
1391
- (FIT_CONST_MESG_DEF_PTR) &met_zone_mesg_def,
1392
- (FIT_CONST_MESG_DEF_PTR) &goal_mesg_def,
1393
- (FIT_CONST_MESG_DEF_PTR) &activity_mesg_def,
1394
- (FIT_CONST_MESG_DEF_PTR) &session_mesg_def,
1395
- (FIT_CONST_MESG_DEF_PTR) &lap_mesg_def,
1396
- (FIT_CONST_MESG_DEF_PTR) &length_mesg_def,
1397
- (FIT_CONST_MESG_DEF_PTR) &record_mesg_def,
1398
- (FIT_CONST_MESG_DEF_PTR) &event_mesg_def,
1399
- (FIT_CONST_MESG_DEF_PTR) &device_info_mesg_def,
1400
- (FIT_CONST_MESG_DEF_PTR) &training_file_mesg_def,
1401
- (FIT_CONST_MESG_DEF_PTR) &hrv_mesg_def,
1402
- (FIT_CONST_MESG_DEF_PTR) &weather_conditions_mesg_def,
1403
- (FIT_CONST_MESG_DEF_PTR) &weather_alert_mesg_def,
1404
- (FIT_CONST_MESG_DEF_PTR) &nmea_sentence_mesg_def,
1405
- (FIT_CONST_MESG_DEF_PTR) &aviation_attitude_mesg_def,
1406
- (FIT_CONST_MESG_DEF_PTR) &video_title_mesg_def,
1407
- (FIT_CONST_MESG_DEF_PTR) &video_description_mesg_def,
1408
- (FIT_CONST_MESG_DEF_PTR) &course_mesg_def,
1409
- (FIT_CONST_MESG_DEF_PTR) &course_point_mesg_def,
1410
- (FIT_CONST_MESG_DEF_PTR) &segment_id_mesg_def,
1411
- (FIT_CONST_MESG_DEF_PTR) &segment_leaderboard_entry_mesg_def,
1412
- (FIT_CONST_MESG_DEF_PTR) &segment_point_mesg_def,
1413
- (FIT_CONST_MESG_DEF_PTR) &segment_lap_mesg_def,
1414
- (FIT_CONST_MESG_DEF_PTR) &segment_file_mesg_def,
1415
- (FIT_CONST_MESG_DEF_PTR) &workout_mesg_def,
1416
- (FIT_CONST_MESG_DEF_PTR) &workout_step_mesg_def,
1417
- (FIT_CONST_MESG_DEF_PTR) &schedule_mesg_def,
1418
- (FIT_CONST_MESG_DEF_PTR) &totals_mesg_def,
1419
- (FIT_CONST_MESG_DEF_PTR) &weight_scale_mesg_def,
1420
- (FIT_CONST_MESG_DEF_PTR) &blood_pressure_mesg_def,
1421
- (FIT_CONST_MESG_DEF_PTR) &monitoring_info_mesg_def,
1422
- (FIT_CONST_MESG_DEF_PTR) &monitoring_mesg_def,
1423
- (FIT_CONST_MESG_DEF_PTR) &hr_mesg_def,
1424
- (FIT_CONST_MESG_DEF_PTR) &ant_rx_mesg_def,
1425
- (FIT_CONST_MESG_DEF_PTR) &ant_tx_mesg_def,
1426
- (FIT_CONST_MESG_DEF_PTR) &exd_screen_configuration_mesg_def,
1427
- (FIT_CONST_MESG_DEF_PTR) &exd_data_field_configuration_mesg_def,
1428
- (FIT_CONST_MESG_DEF_PTR) &exd_data_concept_configuration_mesg_def,
1429
- (FIT_CONST_MESG_DEF_PTR) &field_description_mesg_def,
1430
- (FIT_CONST_MESG_DEF_PTR) &developer_data_id_mesg_def,
1431
- };
1
+ ////////////////////////////////////////////////////////////////////////////////
2
+ // The following FIT Protocol software provided may be used with FIT protocol
3
+ // devices only and remains the copyrighted property of Garmin Canada 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 2020 Garmin Canada Inc.
11
+ ////////////////////////////////////////////////////////////////////////////////
12
+ // ****WARNING**** This file is auto-generated! Do NOT edit this file.
13
+ // Profile Version = 21.27Release
14
+ // Tag = production/akw/21.27.00-0-gef9575d
15
+ // Product = EXAMPLE
16
+ // Alignment = 4 bytes, padding disabled.
17
+ ////////////////////////////////////////////////////////////////////////////////
18
+
19
+
20
+ #include "string.h"
21
+ #include "fit_config.h"
22
+ #include "fit_example.h"
23
+
24
+
25
+ ///////////////////////////////////////////////////////////////////////
26
+ // Messages
27
+ ///////////////////////////////////////////////////////////////////////
28
+
29
+ static const FIT_PAD_MESG_DEF pad_mesg_def =
30
+ {
31
+ 0, // reserved_1
32
+ FIT_ARCH_ENDIAN, // arch
33
+ FIT_MESG_NUM_PAD, // global_mesg_num
34
+ 0 // num_fields
35
+ };
36
+
37
+
38
+ static const FIT_FILE_ID_MESG_DEF file_id_mesg_def =
39
+ {
40
+ 0, // reserved_1
41
+ FIT_ARCH_ENDIAN, // arch
42
+ FIT_MESG_NUM_FILE_ID, // global_mesg_num
43
+ 7, // num_fields
44
+ { // field_def_num, size, base_type
45
+ FIT_FILE_ID_FIELD_NUM_SERIAL_NUMBER, (sizeof(FIT_UINT32Z)*1), FIT_BASE_TYPE_UINT32Z,
46
+ FIT_FILE_ID_FIELD_NUM_TIME_CREATED, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
47
+ FIT_FILE_ID_FIELD_NUM_PRODUCT_NAME, (sizeof(FIT_STRING)*20), FIT_BASE_TYPE_STRING,
48
+ FIT_FILE_ID_FIELD_NUM_MANUFACTURER, (sizeof(FIT_MANUFACTURER)*1), FIT_BASE_TYPE_UINT16,
49
+ FIT_FILE_ID_FIELD_NUM_PRODUCT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
50
+ FIT_FILE_ID_FIELD_NUM_NUMBER, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
51
+ FIT_FILE_ID_FIELD_NUM_TYPE, (sizeof(FIT_FILE)*1), FIT_BASE_TYPE_ENUM,
52
+ }
53
+ };
54
+
55
+ static const FIT_FILE_CREATOR_MESG_DEF file_creator_mesg_def =
56
+ {
57
+ 0, // reserved_1
58
+ FIT_ARCH_ENDIAN, // arch
59
+ FIT_MESG_NUM_FILE_CREATOR, // global_mesg_num
60
+ 2, // num_fields
61
+ { // field_def_num, size, base_type
62
+ FIT_FILE_CREATOR_FIELD_NUM_SOFTWARE_VERSION, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
63
+ FIT_FILE_CREATOR_FIELD_NUM_HARDWARE_VERSION, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
64
+ }
65
+ };
66
+
67
+ static const FIT_SOFTWARE_MESG_DEF software_mesg_def =
68
+ {
69
+ 0, // reserved_1
70
+ FIT_ARCH_ENDIAN, // arch
71
+ FIT_MESG_NUM_SOFTWARE, // global_mesg_num
72
+ 3, // num_fields
73
+ { // field_def_num, size, base_type
74
+ FIT_SOFTWARE_FIELD_NUM_PART_NUMBER, (sizeof(FIT_STRING)*16), FIT_BASE_TYPE_STRING,
75
+ FIT_SOFTWARE_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
76
+ FIT_SOFTWARE_FIELD_NUM_VERSION, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
77
+ }
78
+ };
79
+
80
+ static const FIT_SLAVE_DEVICE_MESG_DEF slave_device_mesg_def =
81
+ {
82
+ 0, // reserved_1
83
+ FIT_ARCH_ENDIAN, // arch
84
+ FIT_MESG_NUM_SLAVE_DEVICE, // global_mesg_num
85
+ 2, // num_fields
86
+ { // field_def_num, size, base_type
87
+ FIT_SLAVE_DEVICE_FIELD_NUM_MANUFACTURER, (sizeof(FIT_MANUFACTURER)*1), FIT_BASE_TYPE_UINT16,
88
+ FIT_SLAVE_DEVICE_FIELD_NUM_PRODUCT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
89
+ }
90
+ };
91
+
92
+ static const FIT_CAPABILITIES_MESG_DEF capabilities_mesg_def =
93
+ {
94
+ 0, // reserved_1
95
+ FIT_ARCH_ENDIAN, // arch
96
+ FIT_MESG_NUM_CAPABILITIES, // global_mesg_num
97
+ 4, // num_fields
98
+ { // field_def_num, size, base_type
99
+ FIT_CAPABILITIES_FIELD_NUM_LANGUAGES, (sizeof(FIT_UINT8Z)*4), FIT_BASE_TYPE_UINT8Z,
100
+ FIT_CAPABILITIES_FIELD_NUM_WORKOUTS_SUPPORTED, (sizeof(FIT_WORKOUT_CAPABILITIES)*1), FIT_BASE_TYPE_UINT32Z,
101
+ FIT_CAPABILITIES_FIELD_NUM_CONNECTIVITY_SUPPORTED, (sizeof(FIT_CONNECTIVITY_CAPABILITIES)*1), FIT_BASE_TYPE_UINT32Z,
102
+ FIT_CAPABILITIES_FIELD_NUM_SPORTS, (sizeof(FIT_SPORT_BITS_0)*1), FIT_BASE_TYPE_UINT8Z,
103
+ }
104
+ };
105
+
106
+ static const FIT_FILE_CAPABILITIES_MESG_DEF file_capabilities_mesg_def =
107
+ {
108
+ 0, // reserved_1
109
+ FIT_ARCH_ENDIAN, // arch
110
+ FIT_MESG_NUM_FILE_CAPABILITIES, // global_mesg_num
111
+ 6, // num_fields
112
+ { // field_def_num, size, base_type
113
+ FIT_FILE_CAPABILITIES_FIELD_NUM_DIRECTORY, (sizeof(FIT_STRING)*16), FIT_BASE_TYPE_STRING,
114
+ FIT_FILE_CAPABILITIES_FIELD_NUM_MAX_SIZE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
115
+ FIT_FILE_CAPABILITIES_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
116
+ FIT_FILE_CAPABILITIES_FIELD_NUM_MAX_COUNT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
117
+ FIT_FILE_CAPABILITIES_FIELD_NUM_TYPE, (sizeof(FIT_FILE)*1), FIT_BASE_TYPE_ENUM,
118
+ FIT_FILE_CAPABILITIES_FIELD_NUM_FLAGS, (sizeof(FIT_FILE_FLAGS)*1), FIT_BASE_TYPE_UINT8Z,
119
+ }
120
+ };
121
+
122
+ static const FIT_MESG_CAPABILITIES_MESG_DEF mesg_capabilities_mesg_def =
123
+ {
124
+ 0, // reserved_1
125
+ FIT_ARCH_ENDIAN, // arch
126
+ FIT_MESG_NUM_MESG_CAPABILITIES, // global_mesg_num
127
+ 5, // num_fields
128
+ { // field_def_num, size, base_type
129
+ FIT_MESG_CAPABILITIES_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
130
+ FIT_MESG_CAPABILITIES_FIELD_NUM_MESG_NUM, (sizeof(FIT_MESG_NUM)*1), FIT_BASE_TYPE_UINT16,
131
+ FIT_MESG_CAPABILITIES_FIELD_NUM_COUNT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
132
+ FIT_MESG_CAPABILITIES_FIELD_NUM_FILE, (sizeof(FIT_FILE)*1), FIT_BASE_TYPE_ENUM,
133
+ FIT_MESG_CAPABILITIES_FIELD_NUM_COUNT_TYPE, (sizeof(FIT_MESG_COUNT)*1), FIT_BASE_TYPE_ENUM,
134
+ }
135
+ };
136
+
137
+ static const FIT_FIELD_CAPABILITIES_MESG_DEF field_capabilities_mesg_def =
138
+ {
139
+ 0, // reserved_1
140
+ FIT_ARCH_ENDIAN, // arch
141
+ FIT_MESG_NUM_FIELD_CAPABILITIES, // global_mesg_num
142
+ 5, // num_fields
143
+ { // field_def_num, size, base_type
144
+ FIT_FIELD_CAPABILITIES_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
145
+ FIT_FIELD_CAPABILITIES_FIELD_NUM_MESG_NUM, (sizeof(FIT_MESG_NUM)*1), FIT_BASE_TYPE_UINT16,
146
+ FIT_FIELD_CAPABILITIES_FIELD_NUM_COUNT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
147
+ FIT_FIELD_CAPABILITIES_FIELD_NUM_FILE, (sizeof(FIT_FILE)*1), FIT_BASE_TYPE_ENUM,
148
+ FIT_FIELD_CAPABILITIES_FIELD_NUM_FIELD_NUM, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
149
+ }
150
+ };
151
+
152
+ static const FIT_DEVICE_SETTINGS_MESG_DEF device_settings_mesg_def =
153
+ {
154
+ 0, // reserved_1
155
+ FIT_ARCH_ENDIAN, // arch
156
+ FIT_MESG_NUM_DEVICE_SETTINGS, // global_mesg_num
157
+ 17, // num_fields
158
+ { // field_def_num, size, base_type
159
+ FIT_DEVICE_SETTINGS_FIELD_NUM_UTC_OFFSET, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
160
+ FIT_DEVICE_SETTINGS_FIELD_NUM_TIME_OFFSET, (sizeof(FIT_UINT32)*2), FIT_BASE_TYPE_UINT32,
161
+ FIT_DEVICE_SETTINGS_FIELD_NUM_CLOCK_TIME, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
162
+ FIT_DEVICE_SETTINGS_FIELD_NUM_PAGES_ENABLED, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
163
+ FIT_DEVICE_SETTINGS_FIELD_NUM_DEFAULT_PAGE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
164
+ FIT_DEVICE_SETTINGS_FIELD_NUM_AUTOSYNC_MIN_STEPS, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
165
+ FIT_DEVICE_SETTINGS_FIELD_NUM_AUTOSYNC_MIN_TIME, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
166
+ FIT_DEVICE_SETTINGS_FIELD_NUM_ACTIVE_TIME_ZONE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
167
+ FIT_DEVICE_SETTINGS_FIELD_NUM_TIME_MODE, (sizeof(FIT_TIME_MODE)*2), FIT_BASE_TYPE_ENUM,
168
+ FIT_DEVICE_SETTINGS_FIELD_NUM_TIME_ZONE_OFFSET, (sizeof(FIT_SINT8)*2), FIT_BASE_TYPE_SINT8,
169
+ FIT_DEVICE_SETTINGS_FIELD_NUM_BACKLIGHT_MODE, (sizeof(FIT_BACKLIGHT_MODE)*1), FIT_BASE_TYPE_ENUM,
170
+ FIT_DEVICE_SETTINGS_FIELD_NUM_ACTIVITY_TRACKER_ENABLED, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
171
+ FIT_DEVICE_SETTINGS_FIELD_NUM_MOVE_ALERT_ENABLED, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
172
+ FIT_DEVICE_SETTINGS_FIELD_NUM_DATE_MODE, (sizeof(FIT_DATE_MODE)*1), FIT_BASE_TYPE_ENUM,
173
+ FIT_DEVICE_SETTINGS_FIELD_NUM_DISPLAY_ORIENTATION, (sizeof(FIT_DISPLAY_ORIENTATION)*1), FIT_BASE_TYPE_ENUM,
174
+ FIT_DEVICE_SETTINGS_FIELD_NUM_MOUNTING_SIDE, (sizeof(FIT_SIDE)*1), FIT_BASE_TYPE_ENUM,
175
+ FIT_DEVICE_SETTINGS_FIELD_NUM_TAP_SENSITIVITY, (sizeof(FIT_TAP_SENSITIVITY)*1), FIT_BASE_TYPE_ENUM,
176
+ }
177
+ };
178
+
179
+ static const FIT_USER_PROFILE_MESG_DEF user_profile_mesg_def =
180
+ {
181
+ 0, // reserved_1
182
+ FIT_ARCH_ENDIAN, // arch
183
+ FIT_MESG_NUM_USER_PROFILE, // global_mesg_num
184
+ 25, // num_fields
185
+ { // field_def_num, size, base_type
186
+ FIT_USER_PROFILE_FIELD_NUM_FRIENDLY_NAME, (sizeof(FIT_STRING)*16), FIT_BASE_TYPE_STRING,
187
+ FIT_USER_PROFILE_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
188
+ FIT_USER_PROFILE_FIELD_NUM_WEIGHT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
189
+ FIT_USER_PROFILE_FIELD_NUM_LOCAL_ID, (sizeof(FIT_USER_LOCAL_ID)*1), FIT_BASE_TYPE_UINT16,
190
+ FIT_USER_PROFILE_FIELD_NUM_USER_RUNNING_STEP_LENGTH, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
191
+ FIT_USER_PROFILE_FIELD_NUM_USER_WALKING_STEP_LENGTH, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
192
+ FIT_USER_PROFILE_FIELD_NUM_GENDER, (sizeof(FIT_GENDER)*1), FIT_BASE_TYPE_ENUM,
193
+ FIT_USER_PROFILE_FIELD_NUM_AGE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
194
+ FIT_USER_PROFILE_FIELD_NUM_HEIGHT, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
195
+ FIT_USER_PROFILE_FIELD_NUM_LANGUAGE, (sizeof(FIT_LANGUAGE)*1), FIT_BASE_TYPE_ENUM,
196
+ FIT_USER_PROFILE_FIELD_NUM_ELEV_SETTING, (sizeof(FIT_DISPLAY_MEASURE)*1), FIT_BASE_TYPE_ENUM,
197
+ FIT_USER_PROFILE_FIELD_NUM_WEIGHT_SETTING, (sizeof(FIT_DISPLAY_MEASURE)*1), FIT_BASE_TYPE_ENUM,
198
+ FIT_USER_PROFILE_FIELD_NUM_RESTING_HEART_RATE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
199
+ FIT_USER_PROFILE_FIELD_NUM_DEFAULT_MAX_RUNNING_HEART_RATE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
200
+ FIT_USER_PROFILE_FIELD_NUM_DEFAULT_MAX_BIKING_HEART_RATE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
201
+ FIT_USER_PROFILE_FIELD_NUM_DEFAULT_MAX_HEART_RATE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
202
+ FIT_USER_PROFILE_FIELD_NUM_HR_SETTING, (sizeof(FIT_DISPLAY_HEART)*1), FIT_BASE_TYPE_ENUM,
203
+ FIT_USER_PROFILE_FIELD_NUM_SPEED_SETTING, (sizeof(FIT_DISPLAY_MEASURE)*1), FIT_BASE_TYPE_ENUM,
204
+ FIT_USER_PROFILE_FIELD_NUM_DIST_SETTING, (sizeof(FIT_DISPLAY_MEASURE)*1), FIT_BASE_TYPE_ENUM,
205
+ FIT_USER_PROFILE_FIELD_NUM_POWER_SETTING, (sizeof(FIT_DISPLAY_POWER)*1), FIT_BASE_TYPE_ENUM,
206
+ FIT_USER_PROFILE_FIELD_NUM_ACTIVITY_CLASS, (sizeof(FIT_ACTIVITY_CLASS)*1), FIT_BASE_TYPE_ENUM,
207
+ FIT_USER_PROFILE_FIELD_NUM_POSITION_SETTING, (sizeof(FIT_DISPLAY_POSITION)*1), FIT_BASE_TYPE_ENUM,
208
+ FIT_USER_PROFILE_FIELD_NUM_TEMPERATURE_SETTING, (sizeof(FIT_DISPLAY_MEASURE)*1), FIT_BASE_TYPE_ENUM,
209
+ FIT_USER_PROFILE_FIELD_NUM_GLOBAL_ID, (sizeof(FIT_BYTE)*6), FIT_BASE_TYPE_BYTE,
210
+ FIT_USER_PROFILE_FIELD_NUM_HEIGHT_SETTING, (sizeof(FIT_DISPLAY_MEASURE)*1), FIT_BASE_TYPE_ENUM,
211
+ }
212
+ };
213
+
214
+ static const FIT_HRM_PROFILE_MESG_DEF hrm_profile_mesg_def =
215
+ {
216
+ 0, // reserved_1
217
+ FIT_ARCH_ENDIAN, // arch
218
+ FIT_MESG_NUM_HRM_PROFILE, // global_mesg_num
219
+ 5, // num_fields
220
+ { // field_def_num, size, base_type
221
+ FIT_HRM_PROFILE_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
222
+ FIT_HRM_PROFILE_FIELD_NUM_HRM_ANT_ID, (sizeof(FIT_UINT16Z)*1), FIT_BASE_TYPE_UINT16Z,
223
+ FIT_HRM_PROFILE_FIELD_NUM_ENABLED, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
224
+ FIT_HRM_PROFILE_FIELD_NUM_LOG_HRV, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
225
+ FIT_HRM_PROFILE_FIELD_NUM_HRM_ANT_ID_TRANS_TYPE, (sizeof(FIT_UINT8Z)*1), FIT_BASE_TYPE_UINT8Z,
226
+ }
227
+ };
228
+
229
+ static const FIT_SDM_PROFILE_MESG_DEF sdm_profile_mesg_def =
230
+ {
231
+ 0, // reserved_1
232
+ FIT_ARCH_ENDIAN, // arch
233
+ FIT_MESG_NUM_SDM_PROFILE, // global_mesg_num
234
+ 8, // num_fields
235
+ { // field_def_num, size, base_type
236
+ FIT_SDM_PROFILE_FIELD_NUM_ODOMETER, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
237
+ FIT_SDM_PROFILE_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
238
+ FIT_SDM_PROFILE_FIELD_NUM_SDM_ANT_ID, (sizeof(FIT_UINT16Z)*1), FIT_BASE_TYPE_UINT16Z,
239
+ FIT_SDM_PROFILE_FIELD_NUM_SDM_CAL_FACTOR, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
240
+ FIT_SDM_PROFILE_FIELD_NUM_ENABLED, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
241
+ FIT_SDM_PROFILE_FIELD_NUM_SPEED_SOURCE, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
242
+ FIT_SDM_PROFILE_FIELD_NUM_SDM_ANT_ID_TRANS_TYPE, (sizeof(FIT_UINT8Z)*1), FIT_BASE_TYPE_UINT8Z,
243
+ FIT_SDM_PROFILE_FIELD_NUM_ODOMETER_ROLLOVER, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
244
+ }
245
+ };
246
+
247
+ static const FIT_BIKE_PROFILE_MESG_DEF bike_profile_mesg_def =
248
+ {
249
+ 0, // reserved_1
250
+ FIT_ARCH_ENDIAN, // arch
251
+ FIT_MESG_NUM_BIKE_PROFILE, // global_mesg_num
252
+ 32, // num_fields
253
+ { // field_def_num, size, base_type
254
+ FIT_BIKE_PROFILE_FIELD_NUM_NAME, (sizeof(FIT_STRING)*16), FIT_BASE_TYPE_STRING,
255
+ FIT_BIKE_PROFILE_FIELD_NUM_ODOMETER, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
256
+ FIT_BIKE_PROFILE_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
257
+ FIT_BIKE_PROFILE_FIELD_NUM_BIKE_SPD_ANT_ID, (sizeof(FIT_UINT16Z)*1), FIT_BASE_TYPE_UINT16Z,
258
+ FIT_BIKE_PROFILE_FIELD_NUM_BIKE_CAD_ANT_ID, (sizeof(FIT_UINT16Z)*1), FIT_BASE_TYPE_UINT16Z,
259
+ FIT_BIKE_PROFILE_FIELD_NUM_BIKE_SPDCAD_ANT_ID, (sizeof(FIT_UINT16Z)*1), FIT_BASE_TYPE_UINT16Z,
260
+ FIT_BIKE_PROFILE_FIELD_NUM_BIKE_POWER_ANT_ID, (sizeof(FIT_UINT16Z)*1), FIT_BASE_TYPE_UINT16Z,
261
+ FIT_BIKE_PROFILE_FIELD_NUM_CUSTOM_WHEELSIZE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
262
+ FIT_BIKE_PROFILE_FIELD_NUM_AUTO_WHEELSIZE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
263
+ FIT_BIKE_PROFILE_FIELD_NUM_BIKE_WEIGHT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
264
+ FIT_BIKE_PROFILE_FIELD_NUM_POWER_CAL_FACTOR, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
265
+ FIT_BIKE_PROFILE_FIELD_NUM_SPORT, (sizeof(FIT_SPORT)*1), FIT_BASE_TYPE_ENUM,
266
+ FIT_BIKE_PROFILE_FIELD_NUM_SUB_SPORT, (sizeof(FIT_SUB_SPORT)*1), FIT_BASE_TYPE_ENUM,
267
+ FIT_BIKE_PROFILE_FIELD_NUM_AUTO_WHEEL_CAL, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
268
+ FIT_BIKE_PROFILE_FIELD_NUM_AUTO_POWER_ZERO, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
269
+ FIT_BIKE_PROFILE_FIELD_NUM_ID, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
270
+ FIT_BIKE_PROFILE_FIELD_NUM_SPD_ENABLED, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
271
+ FIT_BIKE_PROFILE_FIELD_NUM_CAD_ENABLED, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
272
+ FIT_BIKE_PROFILE_FIELD_NUM_SPDCAD_ENABLED, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
273
+ FIT_BIKE_PROFILE_FIELD_NUM_POWER_ENABLED, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
274
+ FIT_BIKE_PROFILE_FIELD_NUM_CRANK_LENGTH, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
275
+ FIT_BIKE_PROFILE_FIELD_NUM_ENABLED, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
276
+ FIT_BIKE_PROFILE_FIELD_NUM_BIKE_SPD_ANT_ID_TRANS_TYPE, (sizeof(FIT_UINT8Z)*1), FIT_BASE_TYPE_UINT8Z,
277
+ FIT_BIKE_PROFILE_FIELD_NUM_BIKE_CAD_ANT_ID_TRANS_TYPE, (sizeof(FIT_UINT8Z)*1), FIT_BASE_TYPE_UINT8Z,
278
+ FIT_BIKE_PROFILE_FIELD_NUM_BIKE_SPDCAD_ANT_ID_TRANS_TYPE, (sizeof(FIT_UINT8Z)*1), FIT_BASE_TYPE_UINT8Z,
279
+ FIT_BIKE_PROFILE_FIELD_NUM_BIKE_POWER_ANT_ID_TRANS_TYPE, (sizeof(FIT_UINT8Z)*1), FIT_BASE_TYPE_UINT8Z,
280
+ FIT_BIKE_PROFILE_FIELD_NUM_ODOMETER_ROLLOVER, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
281
+ FIT_BIKE_PROFILE_FIELD_NUM_FRONT_GEAR_NUM, (sizeof(FIT_UINT8Z)*1), FIT_BASE_TYPE_UINT8Z,
282
+ FIT_BIKE_PROFILE_FIELD_NUM_FRONT_GEAR, (sizeof(FIT_UINT8Z)*1), FIT_BASE_TYPE_UINT8Z,
283
+ FIT_BIKE_PROFILE_FIELD_NUM_REAR_GEAR_NUM, (sizeof(FIT_UINT8Z)*1), FIT_BASE_TYPE_UINT8Z,
284
+ FIT_BIKE_PROFILE_FIELD_NUM_REAR_GEAR, (sizeof(FIT_UINT8Z)*1), FIT_BASE_TYPE_UINT8Z,
285
+ FIT_BIKE_PROFILE_FIELD_NUM_SHIMANO_DI2_ENABLED, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
286
+ }
287
+ };
288
+
289
+ static const FIT_CONNECTIVITY_MESG_DEF connectivity_mesg_def =
290
+ {
291
+ 0, // reserved_1
292
+ FIT_ARCH_ENDIAN, // arch
293
+ FIT_MESG_NUM_CONNECTIVITY, // global_mesg_num
294
+ 13, // num_fields
295
+ { // field_def_num, size, base_type
296
+ FIT_CONNECTIVITY_FIELD_NUM_NAME, (sizeof(FIT_STRING)*24), FIT_BASE_TYPE_STRING,
297
+ FIT_CONNECTIVITY_FIELD_NUM_BLUETOOTH_ENABLED, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
298
+ FIT_CONNECTIVITY_FIELD_NUM_BLUETOOTH_LE_ENABLED, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
299
+ FIT_CONNECTIVITY_FIELD_NUM_ANT_ENABLED, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
300
+ FIT_CONNECTIVITY_FIELD_NUM_LIVE_TRACKING_ENABLED, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
301
+ FIT_CONNECTIVITY_FIELD_NUM_WEATHER_CONDITIONS_ENABLED, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
302
+ FIT_CONNECTIVITY_FIELD_NUM_WEATHER_ALERTS_ENABLED, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
303
+ FIT_CONNECTIVITY_FIELD_NUM_AUTO_ACTIVITY_UPLOAD_ENABLED, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
304
+ FIT_CONNECTIVITY_FIELD_NUM_COURSE_DOWNLOAD_ENABLED, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
305
+ FIT_CONNECTIVITY_FIELD_NUM_WORKOUT_DOWNLOAD_ENABLED, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
306
+ FIT_CONNECTIVITY_FIELD_NUM_GPS_EPHEMERIS_DOWNLOAD_ENABLED, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
307
+ FIT_CONNECTIVITY_FIELD_NUM_INCIDENT_DETECTION_ENABLED, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
308
+ FIT_CONNECTIVITY_FIELD_NUM_GROUPTRACK_ENABLED, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
309
+ }
310
+ };
311
+
312
+ static const FIT_ZONES_TARGET_MESG_DEF zones_target_mesg_def =
313
+ {
314
+ 0, // reserved_1
315
+ FIT_ARCH_ENDIAN, // arch
316
+ FIT_MESG_NUM_ZONES_TARGET, // global_mesg_num
317
+ 5, // num_fields
318
+ { // field_def_num, size, base_type
319
+ FIT_ZONES_TARGET_FIELD_NUM_FUNCTIONAL_THRESHOLD_POWER, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
320
+ FIT_ZONES_TARGET_FIELD_NUM_MAX_HEART_RATE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
321
+ FIT_ZONES_TARGET_FIELD_NUM_THRESHOLD_HEART_RATE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
322
+ FIT_ZONES_TARGET_FIELD_NUM_HR_CALC_TYPE, (sizeof(FIT_HR_ZONE_CALC)*1), FIT_BASE_TYPE_ENUM,
323
+ FIT_ZONES_TARGET_FIELD_NUM_PWR_CALC_TYPE, (sizeof(FIT_PWR_ZONE_CALC)*1), FIT_BASE_TYPE_ENUM,
324
+ }
325
+ };
326
+
327
+ static const FIT_SPORT_MESG_DEF sport_mesg_def =
328
+ {
329
+ 0, // reserved_1
330
+ FIT_ARCH_ENDIAN, // arch
331
+ FIT_MESG_NUM_SPORT, // global_mesg_num
332
+ 3, // num_fields
333
+ { // field_def_num, size, base_type
334
+ FIT_SPORT_FIELD_NUM_NAME, (sizeof(FIT_STRING)*16), FIT_BASE_TYPE_STRING,
335
+ FIT_SPORT_FIELD_NUM_SPORT, (sizeof(FIT_SPORT)*1), FIT_BASE_TYPE_ENUM,
336
+ FIT_SPORT_FIELD_NUM_SUB_SPORT, (sizeof(FIT_SUB_SPORT)*1), FIT_BASE_TYPE_ENUM,
337
+ }
338
+ };
339
+
340
+ static const FIT_HR_ZONE_MESG_DEF hr_zone_mesg_def =
341
+ {
342
+ 0, // reserved_1
343
+ FIT_ARCH_ENDIAN, // arch
344
+ FIT_MESG_NUM_HR_ZONE, // global_mesg_num
345
+ 3, // num_fields
346
+ { // field_def_num, size, base_type
347
+ FIT_HR_ZONE_FIELD_NUM_NAME, (sizeof(FIT_STRING)*16), FIT_BASE_TYPE_STRING,
348
+ FIT_HR_ZONE_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
349
+ FIT_HR_ZONE_FIELD_NUM_HIGH_BPM, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
350
+ }
351
+ };
352
+
353
+ static const FIT_SPEED_ZONE_MESG_DEF speed_zone_mesg_def =
354
+ {
355
+ 0, // reserved_1
356
+ FIT_ARCH_ENDIAN, // arch
357
+ FIT_MESG_NUM_SPEED_ZONE, // global_mesg_num
358
+ 3, // num_fields
359
+ { // field_def_num, size, base_type
360
+ FIT_SPEED_ZONE_FIELD_NUM_NAME, (sizeof(FIT_STRING)*16), FIT_BASE_TYPE_STRING,
361
+ FIT_SPEED_ZONE_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
362
+ FIT_SPEED_ZONE_FIELD_NUM_HIGH_VALUE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
363
+ }
364
+ };
365
+
366
+ static const FIT_CADENCE_ZONE_MESG_DEF cadence_zone_mesg_def =
367
+ {
368
+ 0, // reserved_1
369
+ FIT_ARCH_ENDIAN, // arch
370
+ FIT_MESG_NUM_CADENCE_ZONE, // global_mesg_num
371
+ 3, // num_fields
372
+ { // field_def_num, size, base_type
373
+ FIT_CADENCE_ZONE_FIELD_NUM_NAME, (sizeof(FIT_STRING)*16), FIT_BASE_TYPE_STRING,
374
+ FIT_CADENCE_ZONE_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
375
+ FIT_CADENCE_ZONE_FIELD_NUM_HIGH_VALUE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
376
+ }
377
+ };
378
+
379
+ static const FIT_POWER_ZONE_MESG_DEF power_zone_mesg_def =
380
+ {
381
+ 0, // reserved_1
382
+ FIT_ARCH_ENDIAN, // arch
383
+ FIT_MESG_NUM_POWER_ZONE, // global_mesg_num
384
+ 3, // num_fields
385
+ { // field_def_num, size, base_type
386
+ FIT_POWER_ZONE_FIELD_NUM_NAME, (sizeof(FIT_STRING)*16), FIT_BASE_TYPE_STRING,
387
+ FIT_POWER_ZONE_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
388
+ FIT_POWER_ZONE_FIELD_NUM_HIGH_VALUE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
389
+ }
390
+ };
391
+
392
+ static const FIT_MET_ZONE_MESG_DEF met_zone_mesg_def =
393
+ {
394
+ 0, // reserved_1
395
+ FIT_ARCH_ENDIAN, // arch
396
+ FIT_MESG_NUM_MET_ZONE, // global_mesg_num
397
+ 4, // num_fields
398
+ { // field_def_num, size, base_type
399
+ FIT_MET_ZONE_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
400
+ FIT_MET_ZONE_FIELD_NUM_CALORIES, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
401
+ FIT_MET_ZONE_FIELD_NUM_HIGH_BPM, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
402
+ FIT_MET_ZONE_FIELD_NUM_FAT_CALORIES, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
403
+ }
404
+ };
405
+
406
+ static const FIT_DIVE_SETTINGS_MESG_DEF dive_settings_mesg_def =
407
+ {
408
+ 0, // reserved_1
409
+ FIT_ARCH_ENDIAN, // arch
410
+ FIT_MESG_NUM_DIVE_SETTINGS, // global_mesg_num
411
+ 2, // num_fields
412
+ { // field_def_num, size, base_type
413
+ FIT_DIVE_SETTINGS_FIELD_NUM_NAME, (sizeof(FIT_STRING)*16), FIT_BASE_TYPE_STRING,
414
+ FIT_DIVE_SETTINGS_FIELD_NUM_HEART_RATE_SOURCE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
415
+ }
416
+ };
417
+
418
+ static const FIT_GOAL_MESG_DEF goal_mesg_def =
419
+ {
420
+ 0, // reserved_1
421
+ FIT_ARCH_ENDIAN, // arch
422
+ FIT_MESG_NUM_GOAL, // global_mesg_num
423
+ 13, // num_fields
424
+ { // field_def_num, size, base_type
425
+ FIT_GOAL_FIELD_NUM_START_DATE, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
426
+ FIT_GOAL_FIELD_NUM_END_DATE, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
427
+ FIT_GOAL_FIELD_NUM_VALUE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
428
+ FIT_GOAL_FIELD_NUM_TARGET_VALUE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
429
+ FIT_GOAL_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
430
+ FIT_GOAL_FIELD_NUM_RECURRENCE_VALUE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
431
+ FIT_GOAL_FIELD_NUM_SPORT, (sizeof(FIT_SPORT)*1), FIT_BASE_TYPE_ENUM,
432
+ FIT_GOAL_FIELD_NUM_SUB_SPORT, (sizeof(FIT_SUB_SPORT)*1), FIT_BASE_TYPE_ENUM,
433
+ FIT_GOAL_FIELD_NUM_TYPE, (sizeof(FIT_GOAL)*1), FIT_BASE_TYPE_ENUM,
434
+ FIT_GOAL_FIELD_NUM_REPEAT, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
435
+ FIT_GOAL_FIELD_NUM_RECURRENCE, (sizeof(FIT_GOAL_RECURRENCE)*1), FIT_BASE_TYPE_ENUM,
436
+ FIT_GOAL_FIELD_NUM_ENABLED, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
437
+ FIT_GOAL_FIELD_NUM_SOURCE, (sizeof(FIT_GOAL_SOURCE)*1), FIT_BASE_TYPE_ENUM,
438
+ }
439
+ };
440
+
441
+ static const FIT_ACTIVITY_MESG_DEF activity_mesg_def =
442
+ {
443
+ 0, // reserved_1
444
+ FIT_ARCH_ENDIAN, // arch
445
+ FIT_MESG_NUM_ACTIVITY, // global_mesg_num
446
+ 8, // num_fields
447
+ { // field_def_num, size, base_type
448
+ FIT_ACTIVITY_FIELD_NUM_TIMESTAMP, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
449
+ FIT_ACTIVITY_FIELD_NUM_TOTAL_TIMER_TIME, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
450
+ FIT_ACTIVITY_FIELD_NUM_LOCAL_TIMESTAMP, (sizeof(FIT_LOCAL_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
451
+ FIT_ACTIVITY_FIELD_NUM_NUM_SESSIONS, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
452
+ FIT_ACTIVITY_FIELD_NUM_TYPE, (sizeof(FIT_ACTIVITY)*1), FIT_BASE_TYPE_ENUM,
453
+ FIT_ACTIVITY_FIELD_NUM_EVENT, (sizeof(FIT_EVENT)*1), FIT_BASE_TYPE_ENUM,
454
+ FIT_ACTIVITY_FIELD_NUM_EVENT_TYPE, (sizeof(FIT_EVENT_TYPE)*1), FIT_BASE_TYPE_ENUM,
455
+ FIT_ACTIVITY_FIELD_NUM_EVENT_GROUP, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
456
+ }
457
+ };
458
+
459
+ static const FIT_SESSION_MESG_DEF session_mesg_def =
460
+ {
461
+ 0, // reserved_1
462
+ FIT_ARCH_ENDIAN, // arch
463
+ FIT_MESG_NUM_SESSION, // global_mesg_num
464
+ 90, // num_fields
465
+ { // field_def_num, size, base_type
466
+ FIT_SESSION_FIELD_NUM_TIMESTAMP, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
467
+ FIT_SESSION_FIELD_NUM_START_TIME, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
468
+ FIT_SESSION_FIELD_NUM_START_POSITION_LAT, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
469
+ FIT_SESSION_FIELD_NUM_START_POSITION_LONG, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
470
+ FIT_SESSION_FIELD_NUM_TOTAL_ELAPSED_TIME, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
471
+ FIT_SESSION_FIELD_NUM_TOTAL_TIMER_TIME, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
472
+ FIT_SESSION_FIELD_NUM_TOTAL_DISTANCE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
473
+ FIT_SESSION_FIELD_NUM_TOTAL_CYCLES, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
474
+ FIT_SESSION_FIELD_NUM_NEC_LAT, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
475
+ FIT_SESSION_FIELD_NUM_NEC_LONG, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
476
+ FIT_SESSION_FIELD_NUM_SWC_LAT, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
477
+ FIT_SESSION_FIELD_NUM_SWC_LONG, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
478
+ FIT_SESSION_FIELD_NUM_AVG_STROKE_COUNT, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
479
+ FIT_SESSION_FIELD_NUM_TOTAL_WORK, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
480
+ FIT_SESSION_FIELD_NUM_TOTAL_MOVING_TIME, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
481
+ FIT_SESSION_FIELD_NUM_TIME_IN_HR_ZONE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
482
+ FIT_SESSION_FIELD_NUM_TIME_IN_SPEED_ZONE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
483
+ FIT_SESSION_FIELD_NUM_TIME_IN_CADENCE_ZONE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
484
+ FIT_SESSION_FIELD_NUM_TIME_IN_POWER_ZONE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
485
+ FIT_SESSION_FIELD_NUM_AVG_LAP_TIME, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
486
+ FIT_SESSION_FIELD_NUM_ENHANCED_AVG_SPEED, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
487
+ FIT_SESSION_FIELD_NUM_ENHANCED_MAX_SPEED, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
488
+ FIT_SESSION_FIELD_NUM_ENHANCED_AVG_ALTITUDE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
489
+ FIT_SESSION_FIELD_NUM_ENHANCED_MIN_ALTITUDE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
490
+ FIT_SESSION_FIELD_NUM_ENHANCED_MAX_ALTITUDE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
491
+ FIT_SESSION_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
492
+ FIT_SESSION_FIELD_NUM_TOTAL_CALORIES, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
493
+ FIT_SESSION_FIELD_NUM_TOTAL_FAT_CALORIES, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
494
+ FIT_SESSION_FIELD_NUM_AVG_SPEED, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
495
+ FIT_SESSION_FIELD_NUM_MAX_SPEED, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
496
+ FIT_SESSION_FIELD_NUM_AVG_POWER, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
497
+ FIT_SESSION_FIELD_NUM_MAX_POWER, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
498
+ FIT_SESSION_FIELD_NUM_TOTAL_ASCENT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
499
+ FIT_SESSION_FIELD_NUM_TOTAL_DESCENT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
500
+ FIT_SESSION_FIELD_NUM_FIRST_LAP_INDEX, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
501
+ FIT_SESSION_FIELD_NUM_NUM_LAPS, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
502
+ FIT_SESSION_FIELD_NUM_NORMALIZED_POWER, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
503
+ FIT_SESSION_FIELD_NUM_TRAINING_STRESS_SCORE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
504
+ FIT_SESSION_FIELD_NUM_INTENSITY_FACTOR, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
505
+ FIT_SESSION_FIELD_NUM_LEFT_RIGHT_BALANCE, (sizeof(FIT_LEFT_RIGHT_BALANCE_100)*1), FIT_BASE_TYPE_UINT16,
506
+ FIT_SESSION_FIELD_NUM_AVG_STROKE_DISTANCE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
507
+ FIT_SESSION_FIELD_NUM_POOL_LENGTH, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
508
+ FIT_SESSION_FIELD_NUM_THRESHOLD_POWER, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
509
+ FIT_SESSION_FIELD_NUM_NUM_ACTIVE_LENGTHS, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
510
+ FIT_SESSION_FIELD_NUM_AVG_ALTITUDE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
511
+ FIT_SESSION_FIELD_NUM_MAX_ALTITUDE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
512
+ FIT_SESSION_FIELD_NUM_AVG_GRADE, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
513
+ FIT_SESSION_FIELD_NUM_AVG_POS_GRADE, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
514
+ FIT_SESSION_FIELD_NUM_AVG_NEG_GRADE, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
515
+ FIT_SESSION_FIELD_NUM_MAX_POS_GRADE, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
516
+ FIT_SESSION_FIELD_NUM_MAX_NEG_GRADE, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
517
+ FIT_SESSION_FIELD_NUM_AVG_POS_VERTICAL_SPEED, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
518
+ FIT_SESSION_FIELD_NUM_AVG_NEG_VERTICAL_SPEED, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
519
+ FIT_SESSION_FIELD_NUM_MAX_POS_VERTICAL_SPEED, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
520
+ FIT_SESSION_FIELD_NUM_MAX_NEG_VERTICAL_SPEED, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
521
+ FIT_SESSION_FIELD_NUM_BEST_LAP_INDEX, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
522
+ FIT_SESSION_FIELD_NUM_MIN_ALTITUDE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
523
+ FIT_SESSION_FIELD_NUM_PLAYER_SCORE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
524
+ FIT_SESSION_FIELD_NUM_OPPONENT_SCORE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
525
+ FIT_SESSION_FIELD_NUM_STROKE_COUNT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
526
+ FIT_SESSION_FIELD_NUM_ZONE_COUNT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
527
+ FIT_SESSION_FIELD_NUM_MAX_BALL_SPEED, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
528
+ FIT_SESSION_FIELD_NUM_AVG_BALL_SPEED, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
529
+ FIT_SESSION_FIELD_NUM_AVG_VERTICAL_OSCILLATION, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
530
+ FIT_SESSION_FIELD_NUM_AVG_STANCE_TIME_PERCENT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
531
+ FIT_SESSION_FIELD_NUM_AVG_STANCE_TIME, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
532
+ FIT_SESSION_FIELD_NUM_AVG_VAM, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
533
+ FIT_SESSION_FIELD_NUM_EVENT, (sizeof(FIT_EVENT)*1), FIT_BASE_TYPE_ENUM,
534
+ FIT_SESSION_FIELD_NUM_EVENT_TYPE, (sizeof(FIT_EVENT_TYPE)*1), FIT_BASE_TYPE_ENUM,
535
+ FIT_SESSION_FIELD_NUM_SPORT, (sizeof(FIT_SPORT)*1), FIT_BASE_TYPE_ENUM,
536
+ FIT_SESSION_FIELD_NUM_SUB_SPORT, (sizeof(FIT_SUB_SPORT)*1), FIT_BASE_TYPE_ENUM,
537
+ FIT_SESSION_FIELD_NUM_AVG_HEART_RATE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
538
+ FIT_SESSION_FIELD_NUM_MAX_HEART_RATE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
539
+ FIT_SESSION_FIELD_NUM_AVG_CADENCE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
540
+ FIT_SESSION_FIELD_NUM_MAX_CADENCE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
541
+ FIT_SESSION_FIELD_NUM_TOTAL_TRAINING_EFFECT, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
542
+ FIT_SESSION_FIELD_NUM_EVENT_GROUP, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
543
+ FIT_SESSION_FIELD_NUM_TRIGGER, (sizeof(FIT_SESSION_TRIGGER)*1), FIT_BASE_TYPE_ENUM,
544
+ FIT_SESSION_FIELD_NUM_SWIM_STROKE, (sizeof(FIT_SWIM_STROKE)*1), FIT_BASE_TYPE_ENUM,
545
+ FIT_SESSION_FIELD_NUM_POOL_LENGTH_UNIT, (sizeof(FIT_DISPLAY_MEASURE)*1), FIT_BASE_TYPE_ENUM,
546
+ FIT_SESSION_FIELD_NUM_GPS_ACCURACY, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
547
+ FIT_SESSION_FIELD_NUM_AVG_TEMPERATURE, (sizeof(FIT_SINT8)*1), FIT_BASE_TYPE_SINT8,
548
+ FIT_SESSION_FIELD_NUM_MAX_TEMPERATURE, (sizeof(FIT_SINT8)*1), FIT_BASE_TYPE_SINT8,
549
+ FIT_SESSION_FIELD_NUM_MIN_HEART_RATE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
550
+ FIT_SESSION_FIELD_NUM_OPPONENT_NAME, (sizeof(FIT_STRING)*1), FIT_BASE_TYPE_STRING,
551
+ FIT_SESSION_FIELD_NUM_AVG_FRACTIONAL_CADENCE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
552
+ FIT_SESSION_FIELD_NUM_MAX_FRACTIONAL_CADENCE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
553
+ FIT_SESSION_FIELD_NUM_TOTAL_FRACTIONAL_CYCLES, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
554
+ FIT_SESSION_FIELD_NUM_SPORT_INDEX, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
555
+ FIT_SESSION_FIELD_NUM_TOTAL_ANAEROBIC_TRAINING_EFFECT, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
556
+ }
557
+ };
558
+
559
+ static const FIT_LAP_MESG_DEF lap_mesg_def =
560
+ {
561
+ 0, // reserved_1
562
+ FIT_ARCH_ENDIAN, // arch
563
+ FIT_MESG_NUM_LAP, // global_mesg_num
564
+ 83, // num_fields
565
+ { // field_def_num, size, base_type
566
+ FIT_LAP_FIELD_NUM_TIMESTAMP, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
567
+ FIT_LAP_FIELD_NUM_START_TIME, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
568
+ FIT_LAP_FIELD_NUM_START_POSITION_LAT, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
569
+ FIT_LAP_FIELD_NUM_START_POSITION_LONG, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
570
+ FIT_LAP_FIELD_NUM_END_POSITION_LAT, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
571
+ FIT_LAP_FIELD_NUM_END_POSITION_LONG, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
572
+ FIT_LAP_FIELD_NUM_TOTAL_ELAPSED_TIME, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
573
+ FIT_LAP_FIELD_NUM_TOTAL_TIMER_TIME, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
574
+ FIT_LAP_FIELD_NUM_TOTAL_DISTANCE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
575
+ FIT_LAP_FIELD_NUM_TOTAL_CYCLES, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
576
+ FIT_LAP_FIELD_NUM_TOTAL_WORK, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
577
+ FIT_LAP_FIELD_NUM_TOTAL_MOVING_TIME, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
578
+ FIT_LAP_FIELD_NUM_TIME_IN_HR_ZONE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
579
+ FIT_LAP_FIELD_NUM_TIME_IN_SPEED_ZONE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
580
+ FIT_LAP_FIELD_NUM_TIME_IN_CADENCE_ZONE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
581
+ FIT_LAP_FIELD_NUM_TIME_IN_POWER_ZONE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
582
+ FIT_LAP_FIELD_NUM_ENHANCED_AVG_SPEED, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
583
+ FIT_LAP_FIELD_NUM_ENHANCED_MAX_SPEED, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
584
+ FIT_LAP_FIELD_NUM_ENHANCED_AVG_ALTITUDE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
585
+ FIT_LAP_FIELD_NUM_ENHANCED_MIN_ALTITUDE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
586
+ FIT_LAP_FIELD_NUM_ENHANCED_MAX_ALTITUDE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
587
+ FIT_LAP_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
588
+ FIT_LAP_FIELD_NUM_TOTAL_CALORIES, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
589
+ FIT_LAP_FIELD_NUM_TOTAL_FAT_CALORIES, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
590
+ FIT_LAP_FIELD_NUM_AVG_SPEED, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
591
+ FIT_LAP_FIELD_NUM_MAX_SPEED, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
592
+ FIT_LAP_FIELD_NUM_AVG_POWER, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
593
+ FIT_LAP_FIELD_NUM_MAX_POWER, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
594
+ FIT_LAP_FIELD_NUM_TOTAL_ASCENT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
595
+ FIT_LAP_FIELD_NUM_TOTAL_DESCENT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
596
+ FIT_LAP_FIELD_NUM_NUM_LENGTHS, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
597
+ FIT_LAP_FIELD_NUM_NORMALIZED_POWER, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
598
+ FIT_LAP_FIELD_NUM_LEFT_RIGHT_BALANCE, (sizeof(FIT_LEFT_RIGHT_BALANCE_100)*1), FIT_BASE_TYPE_UINT16,
599
+ FIT_LAP_FIELD_NUM_FIRST_LENGTH_INDEX, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
600
+ FIT_LAP_FIELD_NUM_AVG_STROKE_DISTANCE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
601
+ FIT_LAP_FIELD_NUM_NUM_ACTIVE_LENGTHS, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
602
+ FIT_LAP_FIELD_NUM_AVG_ALTITUDE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
603
+ FIT_LAP_FIELD_NUM_MAX_ALTITUDE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
604
+ FIT_LAP_FIELD_NUM_AVG_GRADE, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
605
+ FIT_LAP_FIELD_NUM_AVG_POS_GRADE, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
606
+ FIT_LAP_FIELD_NUM_AVG_NEG_GRADE, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
607
+ FIT_LAP_FIELD_NUM_MAX_POS_GRADE, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
608
+ FIT_LAP_FIELD_NUM_MAX_NEG_GRADE, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
609
+ FIT_LAP_FIELD_NUM_AVG_POS_VERTICAL_SPEED, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
610
+ FIT_LAP_FIELD_NUM_AVG_NEG_VERTICAL_SPEED, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
611
+ FIT_LAP_FIELD_NUM_MAX_POS_VERTICAL_SPEED, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
612
+ FIT_LAP_FIELD_NUM_MAX_NEG_VERTICAL_SPEED, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
613
+ FIT_LAP_FIELD_NUM_REPETITION_NUM, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
614
+ FIT_LAP_FIELD_NUM_MIN_ALTITUDE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
615
+ FIT_LAP_FIELD_NUM_WKT_STEP_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
616
+ FIT_LAP_FIELD_NUM_OPPONENT_SCORE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
617
+ FIT_LAP_FIELD_NUM_STROKE_COUNT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
618
+ FIT_LAP_FIELD_NUM_ZONE_COUNT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
619
+ FIT_LAP_FIELD_NUM_AVG_VERTICAL_OSCILLATION, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
620
+ FIT_LAP_FIELD_NUM_AVG_STANCE_TIME_PERCENT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
621
+ FIT_LAP_FIELD_NUM_AVG_STANCE_TIME, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
622
+ FIT_LAP_FIELD_NUM_PLAYER_SCORE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
623
+ FIT_LAP_FIELD_NUM_AVG_TOTAL_HEMOGLOBIN_CONC, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
624
+ FIT_LAP_FIELD_NUM_MIN_TOTAL_HEMOGLOBIN_CONC, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
625
+ FIT_LAP_FIELD_NUM_MAX_TOTAL_HEMOGLOBIN_CONC, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
626
+ FIT_LAP_FIELD_NUM_AVG_SATURATED_HEMOGLOBIN_PERCENT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
627
+ FIT_LAP_FIELD_NUM_MIN_SATURATED_HEMOGLOBIN_PERCENT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
628
+ FIT_LAP_FIELD_NUM_MAX_SATURATED_HEMOGLOBIN_PERCENT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
629
+ FIT_LAP_FIELD_NUM_AVG_VAM, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
630
+ FIT_LAP_FIELD_NUM_EVENT, (sizeof(FIT_EVENT)*1), FIT_BASE_TYPE_ENUM,
631
+ FIT_LAP_FIELD_NUM_EVENT_TYPE, (sizeof(FIT_EVENT_TYPE)*1), FIT_BASE_TYPE_ENUM,
632
+ FIT_LAP_FIELD_NUM_AVG_HEART_RATE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
633
+ FIT_LAP_FIELD_NUM_MAX_HEART_RATE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
634
+ FIT_LAP_FIELD_NUM_AVG_CADENCE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
635
+ FIT_LAP_FIELD_NUM_MAX_CADENCE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
636
+ FIT_LAP_FIELD_NUM_INTENSITY, (sizeof(FIT_INTENSITY)*1), FIT_BASE_TYPE_ENUM,
637
+ FIT_LAP_FIELD_NUM_LAP_TRIGGER, (sizeof(FIT_LAP_TRIGGER)*1), FIT_BASE_TYPE_ENUM,
638
+ FIT_LAP_FIELD_NUM_SPORT, (sizeof(FIT_SPORT)*1), FIT_BASE_TYPE_ENUM,
639
+ FIT_LAP_FIELD_NUM_EVENT_GROUP, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
640
+ FIT_LAP_FIELD_NUM_SWIM_STROKE, (sizeof(FIT_SWIM_STROKE)*1), FIT_BASE_TYPE_ENUM,
641
+ FIT_LAP_FIELD_NUM_SUB_SPORT, (sizeof(FIT_SUB_SPORT)*1), FIT_BASE_TYPE_ENUM,
642
+ FIT_LAP_FIELD_NUM_GPS_ACCURACY, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
643
+ FIT_LAP_FIELD_NUM_AVG_TEMPERATURE, (sizeof(FIT_SINT8)*1), FIT_BASE_TYPE_SINT8,
644
+ FIT_LAP_FIELD_NUM_MAX_TEMPERATURE, (sizeof(FIT_SINT8)*1), FIT_BASE_TYPE_SINT8,
645
+ FIT_LAP_FIELD_NUM_MIN_HEART_RATE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
646
+ FIT_LAP_FIELD_NUM_AVG_FRACTIONAL_CADENCE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
647
+ FIT_LAP_FIELD_NUM_MAX_FRACTIONAL_CADENCE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
648
+ FIT_LAP_FIELD_NUM_TOTAL_FRACTIONAL_CYCLES, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
649
+ }
650
+ };
651
+
652
+ static const FIT_LENGTH_MESG_DEF length_mesg_def =
653
+ {
654
+ 0, // reserved_1
655
+ FIT_ARCH_ENDIAN, // arch
656
+ FIT_MESG_NUM_LENGTH, // global_mesg_num
657
+ 18, // num_fields
658
+ { // field_def_num, size, base_type
659
+ FIT_LENGTH_FIELD_NUM_TIMESTAMP, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
660
+ FIT_LENGTH_FIELD_NUM_START_TIME, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
661
+ FIT_LENGTH_FIELD_NUM_TOTAL_ELAPSED_TIME, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
662
+ FIT_LENGTH_FIELD_NUM_TOTAL_TIMER_TIME, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
663
+ FIT_LENGTH_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
664
+ FIT_LENGTH_FIELD_NUM_TOTAL_STROKES, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
665
+ FIT_LENGTH_FIELD_NUM_AVG_SPEED, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
666
+ FIT_LENGTH_FIELD_NUM_TOTAL_CALORIES, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
667
+ FIT_LENGTH_FIELD_NUM_PLAYER_SCORE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
668
+ FIT_LENGTH_FIELD_NUM_OPPONENT_SCORE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
669
+ FIT_LENGTH_FIELD_NUM_STROKE_COUNT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
670
+ FIT_LENGTH_FIELD_NUM_ZONE_COUNT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
671
+ FIT_LENGTH_FIELD_NUM_EVENT, (sizeof(FIT_EVENT)*1), FIT_BASE_TYPE_ENUM,
672
+ FIT_LENGTH_FIELD_NUM_EVENT_TYPE, (sizeof(FIT_EVENT_TYPE)*1), FIT_BASE_TYPE_ENUM,
673
+ FIT_LENGTH_FIELD_NUM_SWIM_STROKE, (sizeof(FIT_SWIM_STROKE)*1), FIT_BASE_TYPE_ENUM,
674
+ FIT_LENGTH_FIELD_NUM_AVG_SWIMMING_CADENCE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
675
+ FIT_LENGTH_FIELD_NUM_EVENT_GROUP, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
676
+ FIT_LENGTH_FIELD_NUM_LENGTH_TYPE, (sizeof(FIT_LENGTH_TYPE)*1), FIT_BASE_TYPE_ENUM,
677
+ }
678
+ };
679
+
680
+ static const FIT_RECORD_MESG_DEF record_mesg_def =
681
+ {
682
+ 0, // reserved_1
683
+ FIT_ARCH_ENDIAN, // arch
684
+ FIT_MESG_NUM_RECORD, // global_mesg_num
685
+ 48, // num_fields
686
+ { // field_def_num, size, base_type
687
+ FIT_RECORD_FIELD_NUM_TIMESTAMP, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
688
+ FIT_RECORD_FIELD_NUM_POSITION_LAT, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
689
+ FIT_RECORD_FIELD_NUM_POSITION_LONG, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
690
+ FIT_RECORD_FIELD_NUM_DISTANCE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
691
+ FIT_RECORD_FIELD_NUM_TIME_FROM_COURSE, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
692
+ FIT_RECORD_FIELD_NUM_TOTAL_CYCLES, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
693
+ FIT_RECORD_FIELD_NUM_ACCUMULATED_POWER, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
694
+ FIT_RECORD_FIELD_NUM_ENHANCED_SPEED, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
695
+ FIT_RECORD_FIELD_NUM_ENHANCED_ALTITUDE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
696
+ FIT_RECORD_FIELD_NUM_ALTITUDE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
697
+ FIT_RECORD_FIELD_NUM_SPEED, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
698
+ FIT_RECORD_FIELD_NUM_POWER, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
699
+ FIT_RECORD_FIELD_NUM_GRADE, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
700
+ FIT_RECORD_FIELD_NUM_COMPRESSED_ACCUMULATED_POWER, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
701
+ FIT_RECORD_FIELD_NUM_VERTICAL_SPEED, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
702
+ FIT_RECORD_FIELD_NUM_CALORIES, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
703
+ FIT_RECORD_FIELD_NUM_VERTICAL_OSCILLATION, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
704
+ FIT_RECORD_FIELD_NUM_STANCE_TIME_PERCENT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
705
+ FIT_RECORD_FIELD_NUM_STANCE_TIME, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
706
+ FIT_RECORD_FIELD_NUM_BALL_SPEED, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
707
+ FIT_RECORD_FIELD_NUM_CADENCE256, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
708
+ FIT_RECORD_FIELD_NUM_TOTAL_HEMOGLOBIN_CONC, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
709
+ FIT_RECORD_FIELD_NUM_TOTAL_HEMOGLOBIN_CONC_MIN, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
710
+ FIT_RECORD_FIELD_NUM_TOTAL_HEMOGLOBIN_CONC_MAX, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
711
+ FIT_RECORD_FIELD_NUM_SATURATED_HEMOGLOBIN_PERCENT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
712
+ FIT_RECORD_FIELD_NUM_SATURATED_HEMOGLOBIN_PERCENT_MIN, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
713
+ FIT_RECORD_FIELD_NUM_SATURATED_HEMOGLOBIN_PERCENT_MAX, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
714
+ FIT_RECORD_FIELD_NUM_HEART_RATE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
715
+ FIT_RECORD_FIELD_NUM_CADENCE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
716
+ FIT_RECORD_FIELD_NUM_COMPRESSED_SPEED_DISTANCE, (sizeof(FIT_BYTE)*3), FIT_BASE_TYPE_BYTE,
717
+ FIT_RECORD_FIELD_NUM_RESISTANCE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
718
+ FIT_RECORD_FIELD_NUM_CYCLE_LENGTH, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
719
+ FIT_RECORD_FIELD_NUM_TEMPERATURE, (sizeof(FIT_SINT8)*1), FIT_BASE_TYPE_SINT8,
720
+ FIT_RECORD_FIELD_NUM_SPEED_1S, (sizeof(FIT_UINT8)*5), FIT_BASE_TYPE_UINT8,
721
+ FIT_RECORD_FIELD_NUM_CYCLES, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
722
+ FIT_RECORD_FIELD_NUM_LEFT_RIGHT_BALANCE, (sizeof(FIT_LEFT_RIGHT_BALANCE)*1), FIT_BASE_TYPE_UINT8,
723
+ FIT_RECORD_FIELD_NUM_GPS_ACCURACY, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
724
+ FIT_RECORD_FIELD_NUM_ACTIVITY_TYPE, (sizeof(FIT_ACTIVITY_TYPE)*1), FIT_BASE_TYPE_ENUM,
725
+ FIT_RECORD_FIELD_NUM_LEFT_TORQUE_EFFECTIVENESS, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
726
+ FIT_RECORD_FIELD_NUM_RIGHT_TORQUE_EFFECTIVENESS, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
727
+ FIT_RECORD_FIELD_NUM_LEFT_PEDAL_SMOOTHNESS, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
728
+ FIT_RECORD_FIELD_NUM_RIGHT_PEDAL_SMOOTHNESS, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
729
+ FIT_RECORD_FIELD_NUM_COMBINED_PEDAL_SMOOTHNESS, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
730
+ FIT_RECORD_FIELD_NUM_TIME128, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
731
+ FIT_RECORD_FIELD_NUM_STROKE_TYPE, (sizeof(FIT_STROKE_TYPE)*1), FIT_BASE_TYPE_ENUM,
732
+ FIT_RECORD_FIELD_NUM_ZONE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
733
+ FIT_RECORD_FIELD_NUM_FRACTIONAL_CADENCE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
734
+ FIT_RECORD_FIELD_NUM_DEVICE_INDEX, (sizeof(FIT_DEVICE_INDEX)*1), FIT_BASE_TYPE_UINT8,
735
+ }
736
+ };
737
+
738
+ static const FIT_EVENT_MESG_DEF event_mesg_def =
739
+ {
740
+ 0, // reserved_1
741
+ FIT_ARCH_ENDIAN, // arch
742
+ FIT_MESG_NUM_EVENT, // global_mesg_num
743
+ 12, // num_fields
744
+ { // field_def_num, size, base_type
745
+ FIT_EVENT_FIELD_NUM_TIMESTAMP, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
746
+ FIT_EVENT_FIELD_NUM_DATA, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
747
+ FIT_EVENT_FIELD_NUM_DATA16, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
748
+ FIT_EVENT_FIELD_NUM_SCORE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
749
+ FIT_EVENT_FIELD_NUM_OPPONENT_SCORE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
750
+ FIT_EVENT_FIELD_NUM_EVENT, (sizeof(FIT_EVENT)*1), FIT_BASE_TYPE_ENUM,
751
+ FIT_EVENT_FIELD_NUM_EVENT_TYPE, (sizeof(FIT_EVENT_TYPE)*1), FIT_BASE_TYPE_ENUM,
752
+ FIT_EVENT_FIELD_NUM_EVENT_GROUP, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
753
+ FIT_EVENT_FIELD_NUM_FRONT_GEAR_NUM, (sizeof(FIT_UINT8Z)*1), FIT_BASE_TYPE_UINT8Z,
754
+ FIT_EVENT_FIELD_NUM_FRONT_GEAR, (sizeof(FIT_UINT8Z)*1), FIT_BASE_TYPE_UINT8Z,
755
+ FIT_EVENT_FIELD_NUM_REAR_GEAR_NUM, (sizeof(FIT_UINT8Z)*1), FIT_BASE_TYPE_UINT8Z,
756
+ FIT_EVENT_FIELD_NUM_REAR_GEAR, (sizeof(FIT_UINT8Z)*1), FIT_BASE_TYPE_UINT8Z,
757
+ }
758
+ };
759
+
760
+ static const FIT_DEVICE_INFO_MESG_DEF device_info_mesg_def =
761
+ {
762
+ 0, // reserved_1
763
+ FIT_ARCH_ENDIAN, // arch
764
+ FIT_MESG_NUM_DEVICE_INFO, // global_mesg_num
765
+ 18, // num_fields
766
+ { // field_def_num, size, base_type
767
+ FIT_DEVICE_INFO_FIELD_NUM_TIMESTAMP, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
768
+ FIT_DEVICE_INFO_FIELD_NUM_SERIAL_NUMBER, (sizeof(FIT_UINT32Z)*1), FIT_BASE_TYPE_UINT32Z,
769
+ FIT_DEVICE_INFO_FIELD_NUM_CUM_OPERATING_TIME, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
770
+ FIT_DEVICE_INFO_FIELD_NUM_PRODUCT_NAME, (sizeof(FIT_STRING)*20), FIT_BASE_TYPE_STRING,
771
+ FIT_DEVICE_INFO_FIELD_NUM_MANUFACTURER, (sizeof(FIT_MANUFACTURER)*1), FIT_BASE_TYPE_UINT16,
772
+ FIT_DEVICE_INFO_FIELD_NUM_PRODUCT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
773
+ FIT_DEVICE_INFO_FIELD_NUM_SOFTWARE_VERSION, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
774
+ FIT_DEVICE_INFO_FIELD_NUM_BATTERY_VOLTAGE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
775
+ FIT_DEVICE_INFO_FIELD_NUM_ANT_DEVICE_NUMBER, (sizeof(FIT_UINT16Z)*1), FIT_BASE_TYPE_UINT16Z,
776
+ FIT_DEVICE_INFO_FIELD_NUM_DEVICE_INDEX, (sizeof(FIT_DEVICE_INDEX)*1), FIT_BASE_TYPE_UINT8,
777
+ FIT_DEVICE_INFO_FIELD_NUM_DEVICE_TYPE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
778
+ FIT_DEVICE_INFO_FIELD_NUM_HARDWARE_VERSION, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
779
+ FIT_DEVICE_INFO_FIELD_NUM_BATTERY_STATUS, (sizeof(FIT_BATTERY_STATUS)*1), FIT_BASE_TYPE_UINT8,
780
+ FIT_DEVICE_INFO_FIELD_NUM_SENSOR_POSITION, (sizeof(FIT_BODY_LOCATION)*1), FIT_BASE_TYPE_ENUM,
781
+ FIT_DEVICE_INFO_FIELD_NUM_DESCRIPTOR, (sizeof(FIT_STRING)*1), FIT_BASE_TYPE_STRING,
782
+ FIT_DEVICE_INFO_FIELD_NUM_ANT_TRANSMISSION_TYPE, (sizeof(FIT_UINT8Z)*1), FIT_BASE_TYPE_UINT8Z,
783
+ FIT_DEVICE_INFO_FIELD_NUM_ANT_NETWORK, (sizeof(FIT_ANT_NETWORK)*1), FIT_BASE_TYPE_ENUM,
784
+ FIT_DEVICE_INFO_FIELD_NUM_SOURCE_TYPE, (sizeof(FIT_SOURCE_TYPE)*1), FIT_BASE_TYPE_ENUM,
785
+ }
786
+ };
787
+
788
+ static const FIT_TRAINING_FILE_MESG_DEF training_file_mesg_def =
789
+ {
790
+ 0, // reserved_1
791
+ FIT_ARCH_ENDIAN, // arch
792
+ FIT_MESG_NUM_TRAINING_FILE, // global_mesg_num
793
+ 6, // num_fields
794
+ { // field_def_num, size, base_type
795
+ FIT_TRAINING_FILE_FIELD_NUM_TIMESTAMP, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
796
+ FIT_TRAINING_FILE_FIELD_NUM_SERIAL_NUMBER, (sizeof(FIT_UINT32Z)*1), FIT_BASE_TYPE_UINT32Z,
797
+ FIT_TRAINING_FILE_FIELD_NUM_TIME_CREATED, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
798
+ FIT_TRAINING_FILE_FIELD_NUM_MANUFACTURER, (sizeof(FIT_MANUFACTURER)*1), FIT_BASE_TYPE_UINT16,
799
+ FIT_TRAINING_FILE_FIELD_NUM_PRODUCT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
800
+ FIT_TRAINING_FILE_FIELD_NUM_TYPE, (sizeof(FIT_FILE)*1), FIT_BASE_TYPE_ENUM,
801
+ }
802
+ };
803
+
804
+ static const FIT_HRV_MESG_DEF hrv_mesg_def =
805
+ {
806
+ 0, // reserved_1
807
+ FIT_ARCH_ENDIAN, // arch
808
+ FIT_MESG_NUM_HRV, // global_mesg_num
809
+ 1, // num_fields
810
+ { // field_def_num, size, base_type
811
+ FIT_HRV_FIELD_NUM_TIME, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
812
+ }
813
+ };
814
+
815
+ static const FIT_WEATHER_CONDITIONS_MESG_DEF weather_conditions_mesg_def =
816
+ {
817
+ 0, // reserved_1
818
+ FIT_ARCH_ENDIAN, // arch
819
+ FIT_MESG_NUM_WEATHER_CONDITIONS, // global_mesg_num
820
+ 16, // num_fields
821
+ { // field_def_num, size, base_type
822
+ FIT_WEATHER_CONDITIONS_FIELD_NUM_TIMESTAMP, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
823
+ FIT_WEATHER_CONDITIONS_FIELD_NUM_LOCATION, (sizeof(FIT_STRING)*64), FIT_BASE_TYPE_STRING,
824
+ FIT_WEATHER_CONDITIONS_FIELD_NUM_OBSERVED_AT_TIME, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
825
+ FIT_WEATHER_CONDITIONS_FIELD_NUM_OBSERVED_LOCATION_LAT, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
826
+ FIT_WEATHER_CONDITIONS_FIELD_NUM_OBSERVED_LOCATION_LONG, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
827
+ FIT_WEATHER_CONDITIONS_FIELD_NUM_WIND_DIRECTION, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
828
+ FIT_WEATHER_CONDITIONS_FIELD_NUM_WIND_SPEED, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
829
+ FIT_WEATHER_CONDITIONS_FIELD_NUM_WEATHER_REPORT, (sizeof(FIT_WEATHER_REPORT)*1), FIT_BASE_TYPE_ENUM,
830
+ FIT_WEATHER_CONDITIONS_FIELD_NUM_TEMPERATURE, (sizeof(FIT_SINT8)*1), FIT_BASE_TYPE_SINT8,
831
+ FIT_WEATHER_CONDITIONS_FIELD_NUM_CONDITION, (sizeof(FIT_WEATHER_STATUS)*1), FIT_BASE_TYPE_ENUM,
832
+ FIT_WEATHER_CONDITIONS_FIELD_NUM_PRECIPITATION_PROBABILITY, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
833
+ FIT_WEATHER_CONDITIONS_FIELD_NUM_TEMPERATURE_FEELS_LIKE, (sizeof(FIT_SINT8)*1), FIT_BASE_TYPE_SINT8,
834
+ FIT_WEATHER_CONDITIONS_FIELD_NUM_RELATIVE_HUMIDITY, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
835
+ FIT_WEATHER_CONDITIONS_FIELD_NUM_DAY_OF_WEEK, (sizeof(FIT_DAY_OF_WEEK)*1), FIT_BASE_TYPE_ENUM,
836
+ FIT_WEATHER_CONDITIONS_FIELD_NUM_HIGH_TEMPERATURE, (sizeof(FIT_SINT8)*1), FIT_BASE_TYPE_SINT8,
837
+ FIT_WEATHER_CONDITIONS_FIELD_NUM_LOW_TEMPERATURE, (sizeof(FIT_SINT8)*1), FIT_BASE_TYPE_SINT8,
838
+ }
839
+ };
840
+
841
+ static const FIT_WEATHER_ALERT_MESG_DEF weather_alert_mesg_def =
842
+ {
843
+ 0, // reserved_1
844
+ FIT_ARCH_ENDIAN, // arch
845
+ FIT_MESG_NUM_WEATHER_ALERT, // global_mesg_num
846
+ 6, // num_fields
847
+ { // field_def_num, size, base_type
848
+ FIT_WEATHER_ALERT_FIELD_NUM_TIMESTAMP, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
849
+ FIT_WEATHER_ALERT_FIELD_NUM_REPORT_ID, (sizeof(FIT_STRING)*12), FIT_BASE_TYPE_STRING,
850
+ FIT_WEATHER_ALERT_FIELD_NUM_ISSUE_TIME, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
851
+ FIT_WEATHER_ALERT_FIELD_NUM_EXPIRE_TIME, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
852
+ FIT_WEATHER_ALERT_FIELD_NUM_SEVERITY, (sizeof(FIT_WEATHER_SEVERITY)*1), FIT_BASE_TYPE_ENUM,
853
+ FIT_WEATHER_ALERT_FIELD_NUM_TYPE, (sizeof(FIT_WEATHER_SEVERE_TYPE)*1), FIT_BASE_TYPE_ENUM,
854
+ }
855
+ };
856
+
857
+ static const FIT_NMEA_SENTENCE_MESG_DEF nmea_sentence_mesg_def =
858
+ {
859
+ 0, // reserved_1
860
+ FIT_ARCH_ENDIAN, // arch
861
+ FIT_MESG_NUM_NMEA_SENTENCE, // global_mesg_num
862
+ 3, // num_fields
863
+ { // field_def_num, size, base_type
864
+ FIT_NMEA_SENTENCE_FIELD_NUM_TIMESTAMP, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
865
+ FIT_NMEA_SENTENCE_FIELD_NUM_TIMESTAMP_MS, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
866
+ FIT_NMEA_SENTENCE_FIELD_NUM_SENTENCE, (sizeof(FIT_STRING)*83), FIT_BASE_TYPE_STRING,
867
+ }
868
+ };
869
+
870
+ static const FIT_AVIATION_ATTITUDE_MESG_DEF aviation_attitude_mesg_def =
871
+ {
872
+ 0, // reserved_1
873
+ FIT_ARCH_ENDIAN, // arch
874
+ FIT_MESG_NUM_AVIATION_ATTITUDE, // global_mesg_num
875
+ 12, // num_fields
876
+ { // field_def_num, size, base_type
877
+ FIT_AVIATION_ATTITUDE_FIELD_NUM_TIMESTAMP, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
878
+ FIT_AVIATION_ATTITUDE_FIELD_NUM_SYSTEM_TIME, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
879
+ FIT_AVIATION_ATTITUDE_FIELD_NUM_TIMESTAMP_MS, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
880
+ FIT_AVIATION_ATTITUDE_FIELD_NUM_PITCH, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
881
+ FIT_AVIATION_ATTITUDE_FIELD_NUM_ROLL, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
882
+ FIT_AVIATION_ATTITUDE_FIELD_NUM_ACCEL_LATERAL, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
883
+ FIT_AVIATION_ATTITUDE_FIELD_NUM_ACCEL_NORMAL, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
884
+ FIT_AVIATION_ATTITUDE_FIELD_NUM_TURN_RATE, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
885
+ FIT_AVIATION_ATTITUDE_FIELD_NUM_TRACK, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
886
+ FIT_AVIATION_ATTITUDE_FIELD_NUM_VALIDITY, (sizeof(FIT_ATTITUDE_VALIDITY)*1), FIT_BASE_TYPE_UINT16,
887
+ FIT_AVIATION_ATTITUDE_FIELD_NUM_STAGE, (sizeof(FIT_ATTITUDE_STAGE)*1), FIT_BASE_TYPE_ENUM,
888
+ FIT_AVIATION_ATTITUDE_FIELD_NUM_ATTITUDE_STAGE_COMPLETE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
889
+ }
890
+ };
891
+
892
+ static const FIT_VIDEO_TITLE_MESG_DEF video_title_mesg_def =
893
+ {
894
+ 0, // reserved_1
895
+ FIT_ARCH_ENDIAN, // arch
896
+ FIT_MESG_NUM_VIDEO_TITLE, // global_mesg_num
897
+ 3, // num_fields
898
+ { // field_def_num, size, base_type
899
+ FIT_VIDEO_TITLE_FIELD_NUM_TEXT, (sizeof(FIT_STRING)*80), FIT_BASE_TYPE_STRING,
900
+ FIT_VIDEO_TITLE_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
901
+ FIT_VIDEO_TITLE_FIELD_NUM_MESSAGE_COUNT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
902
+ }
903
+ };
904
+
905
+ static const FIT_VIDEO_DESCRIPTION_MESG_DEF video_description_mesg_def =
906
+ {
907
+ 0, // reserved_1
908
+ FIT_ARCH_ENDIAN, // arch
909
+ FIT_MESG_NUM_VIDEO_DESCRIPTION, // global_mesg_num
910
+ 3, // num_fields
911
+ { // field_def_num, size, base_type
912
+ FIT_VIDEO_DESCRIPTION_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
913
+ FIT_VIDEO_DESCRIPTION_FIELD_NUM_MESSAGE_COUNT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
914
+ FIT_VIDEO_DESCRIPTION_FIELD_NUM_TEXT, (sizeof(FIT_STRING)*250), FIT_BASE_TYPE_STRING,
915
+ }
916
+ };
917
+
918
+ static const FIT_SET_MESG_DEF set_mesg_def =
919
+ {
920
+ 0, // reserved_1
921
+ FIT_ARCH_ENDIAN, // arch
922
+ FIT_MESG_NUM_SET, // global_mesg_num
923
+ 1, // num_fields
924
+ { // field_def_num, size, base_type
925
+ FIT_SET_FIELD_NUM_WEIGHT_DISPLAY_UNIT, (sizeof(FIT_FIT_BASE_UNIT)*1), FIT_BASE_TYPE_UINT16,
926
+ }
927
+ };
928
+
929
+ static const FIT_COURSE_MESG_DEF course_mesg_def =
930
+ {
931
+ 0, // reserved_1
932
+ FIT_ARCH_ENDIAN, // arch
933
+ FIT_MESG_NUM_COURSE, // global_mesg_num
934
+ 4, // num_fields
935
+ { // field_def_num, size, base_type
936
+ FIT_COURSE_FIELD_NUM_NAME, (sizeof(FIT_STRING)*16), FIT_BASE_TYPE_STRING,
937
+ FIT_COURSE_FIELD_NUM_CAPABILITIES, (sizeof(FIT_COURSE_CAPABILITIES)*1), FIT_BASE_TYPE_UINT32Z,
938
+ FIT_COURSE_FIELD_NUM_SPORT, (sizeof(FIT_SPORT)*1), FIT_BASE_TYPE_ENUM,
939
+ FIT_COURSE_FIELD_NUM_SUB_SPORT, (sizeof(FIT_SUB_SPORT)*1), FIT_BASE_TYPE_ENUM,
940
+ }
941
+ };
942
+
943
+ static const FIT_COURSE_POINT_MESG_DEF course_point_mesg_def =
944
+ {
945
+ 0, // reserved_1
946
+ FIT_ARCH_ENDIAN, // arch
947
+ FIT_MESG_NUM_COURSE_POINT, // global_mesg_num
948
+ 8, // num_fields
949
+ { // field_def_num, size, base_type
950
+ FIT_COURSE_POINT_FIELD_NUM_TIMESTAMP, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
951
+ FIT_COURSE_POINT_FIELD_NUM_POSITION_LAT, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
952
+ FIT_COURSE_POINT_FIELD_NUM_POSITION_LONG, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
953
+ FIT_COURSE_POINT_FIELD_NUM_DISTANCE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
954
+ FIT_COURSE_POINT_FIELD_NUM_NAME, (sizeof(FIT_STRING)*16), FIT_BASE_TYPE_STRING,
955
+ FIT_COURSE_POINT_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
956
+ FIT_COURSE_POINT_FIELD_NUM_TYPE, (sizeof(FIT_COURSE_POINT)*1), FIT_BASE_TYPE_ENUM,
957
+ FIT_COURSE_POINT_FIELD_NUM_FAVORITE, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
958
+ }
959
+ };
960
+
961
+ static const FIT_SEGMENT_ID_MESG_DEF segment_id_mesg_def =
962
+ {
963
+ 0, // reserved_1
964
+ FIT_ARCH_ENDIAN, // arch
965
+ FIT_MESG_NUM_SEGMENT_ID, // global_mesg_num
966
+ 9, // num_fields
967
+ { // field_def_num, size, base_type
968
+ FIT_SEGMENT_ID_FIELD_NUM_USER_PROFILE_PRIMARY_KEY, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
969
+ FIT_SEGMENT_ID_FIELD_NUM_DEVICE_ID, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
970
+ FIT_SEGMENT_ID_FIELD_NUM_NAME, (sizeof(FIT_STRING)*1), FIT_BASE_TYPE_STRING,
971
+ FIT_SEGMENT_ID_FIELD_NUM_UUID, (sizeof(FIT_STRING)*1), FIT_BASE_TYPE_STRING,
972
+ FIT_SEGMENT_ID_FIELD_NUM_SPORT, (sizeof(FIT_SPORT)*1), FIT_BASE_TYPE_ENUM,
973
+ FIT_SEGMENT_ID_FIELD_NUM_ENABLED, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
974
+ FIT_SEGMENT_ID_FIELD_NUM_DEFAULT_RACE_LEADER, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
975
+ FIT_SEGMENT_ID_FIELD_NUM_DELETE_STATUS, (sizeof(FIT_SEGMENT_DELETE_STATUS)*1), FIT_BASE_TYPE_ENUM,
976
+ FIT_SEGMENT_ID_FIELD_NUM_SELECTION_TYPE, (sizeof(FIT_SEGMENT_SELECTION_TYPE)*1), FIT_BASE_TYPE_ENUM,
977
+ }
978
+ };
979
+
980
+ static const FIT_SEGMENT_LEADERBOARD_ENTRY_MESG_DEF segment_leaderboard_entry_mesg_def =
981
+ {
982
+ 0, // reserved_1
983
+ FIT_ARCH_ENDIAN, // arch
984
+ FIT_MESG_NUM_SEGMENT_LEADERBOARD_ENTRY, // global_mesg_num
985
+ 6, // num_fields
986
+ { // field_def_num, size, base_type
987
+ FIT_SEGMENT_LEADERBOARD_ENTRY_FIELD_NUM_GROUP_PRIMARY_KEY, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
988
+ FIT_SEGMENT_LEADERBOARD_ENTRY_FIELD_NUM_ACTIVITY_ID, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
989
+ FIT_SEGMENT_LEADERBOARD_ENTRY_FIELD_NUM_SEGMENT_TIME, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
990
+ FIT_SEGMENT_LEADERBOARD_ENTRY_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
991
+ FIT_SEGMENT_LEADERBOARD_ENTRY_FIELD_NUM_NAME, (sizeof(FIT_STRING)*1), FIT_BASE_TYPE_STRING,
992
+ FIT_SEGMENT_LEADERBOARD_ENTRY_FIELD_NUM_TYPE, (sizeof(FIT_SEGMENT_LEADERBOARD_TYPE)*1), FIT_BASE_TYPE_ENUM,
993
+ }
994
+ };
995
+
996
+ static const FIT_SEGMENT_POINT_MESG_DEF segment_point_mesg_def =
997
+ {
998
+ 0, // reserved_1
999
+ FIT_ARCH_ENDIAN, // arch
1000
+ FIT_MESG_NUM_SEGMENT_POINT, // global_mesg_num
1001
+ 6, // num_fields
1002
+ { // field_def_num, size, base_type
1003
+ FIT_SEGMENT_POINT_FIELD_NUM_POSITION_LAT, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
1004
+ FIT_SEGMENT_POINT_FIELD_NUM_POSITION_LONG, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
1005
+ FIT_SEGMENT_POINT_FIELD_NUM_DISTANCE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1006
+ FIT_SEGMENT_POINT_FIELD_NUM_LEADER_TIME, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1007
+ FIT_SEGMENT_POINT_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
1008
+ FIT_SEGMENT_POINT_FIELD_NUM_ALTITUDE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1009
+ }
1010
+ };
1011
+
1012
+ static const FIT_SEGMENT_LAP_MESG_DEF segment_lap_mesg_def =
1013
+ {
1014
+ 0, // reserved_1
1015
+ FIT_ARCH_ENDIAN, // arch
1016
+ FIT_MESG_NUM_SEGMENT_LAP, // global_mesg_num
1017
+ 73, // num_fields
1018
+ { // field_def_num, size, base_type
1019
+ FIT_SEGMENT_LAP_FIELD_NUM_TIMESTAMP, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
1020
+ FIT_SEGMENT_LAP_FIELD_NUM_START_TIME, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
1021
+ FIT_SEGMENT_LAP_FIELD_NUM_START_POSITION_LAT, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
1022
+ FIT_SEGMENT_LAP_FIELD_NUM_START_POSITION_LONG, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
1023
+ FIT_SEGMENT_LAP_FIELD_NUM_END_POSITION_LAT, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
1024
+ FIT_SEGMENT_LAP_FIELD_NUM_END_POSITION_LONG, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
1025
+ FIT_SEGMENT_LAP_FIELD_NUM_TOTAL_ELAPSED_TIME, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1026
+ FIT_SEGMENT_LAP_FIELD_NUM_TOTAL_TIMER_TIME, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1027
+ FIT_SEGMENT_LAP_FIELD_NUM_TOTAL_DISTANCE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1028
+ FIT_SEGMENT_LAP_FIELD_NUM_TOTAL_CYCLES, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1029
+ FIT_SEGMENT_LAP_FIELD_NUM_NEC_LAT, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
1030
+ FIT_SEGMENT_LAP_FIELD_NUM_NEC_LONG, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
1031
+ FIT_SEGMENT_LAP_FIELD_NUM_SWC_LAT, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
1032
+ FIT_SEGMENT_LAP_FIELD_NUM_SWC_LONG, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
1033
+ FIT_SEGMENT_LAP_FIELD_NUM_NAME, (sizeof(FIT_STRING)*16), FIT_BASE_TYPE_STRING,
1034
+ FIT_SEGMENT_LAP_FIELD_NUM_TOTAL_WORK, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1035
+ FIT_SEGMENT_LAP_FIELD_NUM_TOTAL_MOVING_TIME, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1036
+ FIT_SEGMENT_LAP_FIELD_NUM_TIME_IN_HR_ZONE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1037
+ FIT_SEGMENT_LAP_FIELD_NUM_TIME_IN_SPEED_ZONE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1038
+ FIT_SEGMENT_LAP_FIELD_NUM_TIME_IN_CADENCE_ZONE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1039
+ FIT_SEGMENT_LAP_FIELD_NUM_TIME_IN_POWER_ZONE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1040
+ FIT_SEGMENT_LAP_FIELD_NUM_ACTIVE_TIME, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1041
+ FIT_SEGMENT_LAP_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
1042
+ FIT_SEGMENT_LAP_FIELD_NUM_TOTAL_CALORIES, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1043
+ FIT_SEGMENT_LAP_FIELD_NUM_TOTAL_FAT_CALORIES, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1044
+ FIT_SEGMENT_LAP_FIELD_NUM_AVG_SPEED, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1045
+ FIT_SEGMENT_LAP_FIELD_NUM_MAX_SPEED, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1046
+ FIT_SEGMENT_LAP_FIELD_NUM_AVG_POWER, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1047
+ FIT_SEGMENT_LAP_FIELD_NUM_MAX_POWER, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1048
+ FIT_SEGMENT_LAP_FIELD_NUM_TOTAL_ASCENT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1049
+ FIT_SEGMENT_LAP_FIELD_NUM_TOTAL_DESCENT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1050
+ FIT_SEGMENT_LAP_FIELD_NUM_NORMALIZED_POWER, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1051
+ FIT_SEGMENT_LAP_FIELD_NUM_LEFT_RIGHT_BALANCE, (sizeof(FIT_LEFT_RIGHT_BALANCE_100)*1), FIT_BASE_TYPE_UINT16,
1052
+ FIT_SEGMENT_LAP_FIELD_NUM_AVG_ALTITUDE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1053
+ FIT_SEGMENT_LAP_FIELD_NUM_MAX_ALTITUDE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1054
+ FIT_SEGMENT_LAP_FIELD_NUM_AVG_GRADE, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
1055
+ FIT_SEGMENT_LAP_FIELD_NUM_AVG_POS_GRADE, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
1056
+ FIT_SEGMENT_LAP_FIELD_NUM_AVG_NEG_GRADE, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
1057
+ FIT_SEGMENT_LAP_FIELD_NUM_MAX_POS_GRADE, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
1058
+ FIT_SEGMENT_LAP_FIELD_NUM_MAX_NEG_GRADE, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
1059
+ FIT_SEGMENT_LAP_FIELD_NUM_AVG_POS_VERTICAL_SPEED, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
1060
+ FIT_SEGMENT_LAP_FIELD_NUM_AVG_NEG_VERTICAL_SPEED, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
1061
+ FIT_SEGMENT_LAP_FIELD_NUM_MAX_POS_VERTICAL_SPEED, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
1062
+ FIT_SEGMENT_LAP_FIELD_NUM_MAX_NEG_VERTICAL_SPEED, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
1063
+ FIT_SEGMENT_LAP_FIELD_NUM_REPETITION_NUM, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1064
+ FIT_SEGMENT_LAP_FIELD_NUM_MIN_ALTITUDE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1065
+ FIT_SEGMENT_LAP_FIELD_NUM_WKT_STEP_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
1066
+ FIT_SEGMENT_LAP_FIELD_NUM_FRONT_GEAR_SHIFT_COUNT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1067
+ FIT_SEGMENT_LAP_FIELD_NUM_REAR_GEAR_SHIFT_COUNT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1068
+ FIT_SEGMENT_LAP_FIELD_NUM_EVENT, (sizeof(FIT_EVENT)*1), FIT_BASE_TYPE_ENUM,
1069
+ FIT_SEGMENT_LAP_FIELD_NUM_EVENT_TYPE, (sizeof(FIT_EVENT_TYPE)*1), FIT_BASE_TYPE_ENUM,
1070
+ FIT_SEGMENT_LAP_FIELD_NUM_AVG_HEART_RATE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1071
+ FIT_SEGMENT_LAP_FIELD_NUM_MAX_HEART_RATE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1072
+ FIT_SEGMENT_LAP_FIELD_NUM_AVG_CADENCE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1073
+ FIT_SEGMENT_LAP_FIELD_NUM_MAX_CADENCE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1074
+ FIT_SEGMENT_LAP_FIELD_NUM_SPORT, (sizeof(FIT_SPORT)*1), FIT_BASE_TYPE_ENUM,
1075
+ FIT_SEGMENT_LAP_FIELD_NUM_EVENT_GROUP, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1076
+ FIT_SEGMENT_LAP_FIELD_NUM_SUB_SPORT, (sizeof(FIT_SUB_SPORT)*1), FIT_BASE_TYPE_ENUM,
1077
+ FIT_SEGMENT_LAP_FIELD_NUM_GPS_ACCURACY, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1078
+ FIT_SEGMENT_LAP_FIELD_NUM_AVG_TEMPERATURE, (sizeof(FIT_SINT8)*1), FIT_BASE_TYPE_SINT8,
1079
+ FIT_SEGMENT_LAP_FIELD_NUM_MAX_TEMPERATURE, (sizeof(FIT_SINT8)*1), FIT_BASE_TYPE_SINT8,
1080
+ FIT_SEGMENT_LAP_FIELD_NUM_MIN_HEART_RATE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1081
+ FIT_SEGMENT_LAP_FIELD_NUM_SPORT_EVENT, (sizeof(FIT_SPORT_EVENT)*1), FIT_BASE_TYPE_ENUM,
1082
+ FIT_SEGMENT_LAP_FIELD_NUM_AVG_LEFT_TORQUE_EFFECTIVENESS, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1083
+ FIT_SEGMENT_LAP_FIELD_NUM_AVG_RIGHT_TORQUE_EFFECTIVENESS, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1084
+ FIT_SEGMENT_LAP_FIELD_NUM_AVG_LEFT_PEDAL_SMOOTHNESS, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1085
+ FIT_SEGMENT_LAP_FIELD_NUM_AVG_RIGHT_PEDAL_SMOOTHNESS, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1086
+ FIT_SEGMENT_LAP_FIELD_NUM_AVG_COMBINED_PEDAL_SMOOTHNESS, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1087
+ FIT_SEGMENT_LAP_FIELD_NUM_STATUS, (sizeof(FIT_SEGMENT_LAP_STATUS)*1), FIT_BASE_TYPE_ENUM,
1088
+ FIT_SEGMENT_LAP_FIELD_NUM_UUID, (sizeof(FIT_STRING)*33), FIT_BASE_TYPE_STRING,
1089
+ FIT_SEGMENT_LAP_FIELD_NUM_AVG_FRACTIONAL_CADENCE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1090
+ FIT_SEGMENT_LAP_FIELD_NUM_MAX_FRACTIONAL_CADENCE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1091
+ FIT_SEGMENT_LAP_FIELD_NUM_TOTAL_FRACTIONAL_CYCLES, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1092
+ }
1093
+ };
1094
+
1095
+ static const FIT_SEGMENT_FILE_MESG_DEF segment_file_mesg_def =
1096
+ {
1097
+ 0, // reserved_1
1098
+ FIT_ARCH_ENDIAN, // arch
1099
+ FIT_MESG_NUM_SEGMENT_FILE, // global_mesg_num
1100
+ 7, // num_fields
1101
+ { // field_def_num, size, base_type
1102
+ FIT_SEGMENT_FILE_FIELD_NUM_USER_PROFILE_PRIMARY_KEY, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1103
+ FIT_SEGMENT_FILE_FIELD_NUM_LEADER_GROUP_PRIMARY_KEY, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1104
+ FIT_SEGMENT_FILE_FIELD_NUM_LEADER_ACTIVITY_ID, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1105
+ FIT_SEGMENT_FILE_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
1106
+ FIT_SEGMENT_FILE_FIELD_NUM_FILE_UUID, (sizeof(FIT_STRING)*1), FIT_BASE_TYPE_STRING,
1107
+ FIT_SEGMENT_FILE_FIELD_NUM_ENABLED, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
1108
+ FIT_SEGMENT_FILE_FIELD_NUM_LEADER_TYPE, (sizeof(FIT_SEGMENT_LEADERBOARD_TYPE)*1), FIT_BASE_TYPE_ENUM,
1109
+ }
1110
+ };
1111
+
1112
+ static const FIT_WORKOUT_MESG_DEF workout_mesg_def =
1113
+ {
1114
+ 0, // reserved_1
1115
+ FIT_ARCH_ENDIAN, // arch
1116
+ FIT_MESG_NUM_WORKOUT, // global_mesg_num
1117
+ 7, // num_fields
1118
+ { // field_def_num, size, base_type
1119
+ FIT_WORKOUT_FIELD_NUM_CAPABILITIES, (sizeof(FIT_WORKOUT_CAPABILITIES)*1), FIT_BASE_TYPE_UINT32Z,
1120
+ FIT_WORKOUT_FIELD_NUM_WKT_NAME, (sizeof(FIT_STRING)*16), FIT_BASE_TYPE_STRING,
1121
+ FIT_WORKOUT_FIELD_NUM_NUM_VALID_STEPS, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1122
+ FIT_WORKOUT_FIELD_NUM_POOL_LENGTH, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1123
+ FIT_WORKOUT_FIELD_NUM_SPORT, (sizeof(FIT_SPORT)*1), FIT_BASE_TYPE_ENUM,
1124
+ FIT_WORKOUT_FIELD_NUM_SUB_SPORT, (sizeof(FIT_SUB_SPORT)*1), FIT_BASE_TYPE_ENUM,
1125
+ FIT_WORKOUT_FIELD_NUM_POOL_LENGTH_UNIT, (sizeof(FIT_DISPLAY_MEASURE)*1), FIT_BASE_TYPE_ENUM,
1126
+ }
1127
+ };
1128
+
1129
+ static const FIT_WORKOUT_SESSION_MESG_DEF workout_session_mesg_def =
1130
+ {
1131
+ 0, // reserved_1
1132
+ FIT_ARCH_ENDIAN, // arch
1133
+ FIT_MESG_NUM_WORKOUT_SESSION, // global_mesg_num
1134
+ 7, // num_fields
1135
+ { // field_def_num, size, base_type
1136
+ FIT_WORKOUT_SESSION_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
1137
+ FIT_WORKOUT_SESSION_FIELD_NUM_NUM_VALID_STEPS, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1138
+ FIT_WORKOUT_SESSION_FIELD_NUM_FIRST_STEP_INDEX, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1139
+ FIT_WORKOUT_SESSION_FIELD_NUM_POOL_LENGTH, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1140
+ FIT_WORKOUT_SESSION_FIELD_NUM_SPORT, (sizeof(FIT_SPORT)*1), FIT_BASE_TYPE_ENUM,
1141
+ FIT_WORKOUT_SESSION_FIELD_NUM_SUB_SPORT, (sizeof(FIT_SUB_SPORT)*1), FIT_BASE_TYPE_ENUM,
1142
+ FIT_WORKOUT_SESSION_FIELD_NUM_POOL_LENGTH_UNIT, (sizeof(FIT_DISPLAY_MEASURE)*1), FIT_BASE_TYPE_ENUM,
1143
+ }
1144
+ };
1145
+
1146
+ static const FIT_WORKOUT_STEP_MESG_DEF workout_step_mesg_def =
1147
+ {
1148
+ 0, // reserved_1
1149
+ FIT_ARCH_ENDIAN, // arch
1150
+ FIT_MESG_NUM_WORKOUT_STEP, // global_mesg_num
1151
+ 12, // num_fields
1152
+ { // field_def_num, size, base_type
1153
+ FIT_WORKOUT_STEP_FIELD_NUM_WKT_STEP_NAME, (sizeof(FIT_STRING)*16), FIT_BASE_TYPE_STRING,
1154
+ FIT_WORKOUT_STEP_FIELD_NUM_DURATION_VALUE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1155
+ FIT_WORKOUT_STEP_FIELD_NUM_TARGET_VALUE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1156
+ FIT_WORKOUT_STEP_FIELD_NUM_CUSTOM_TARGET_VALUE_LOW, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1157
+ FIT_WORKOUT_STEP_FIELD_NUM_CUSTOM_TARGET_VALUE_HIGH, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1158
+ FIT_WORKOUT_STEP_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
1159
+ FIT_WORKOUT_STEP_FIELD_NUM_EXERCISE_CATEGORY, (sizeof(FIT_EXERCISE_CATEGORY)*1), FIT_BASE_TYPE_UINT16,
1160
+ FIT_WORKOUT_STEP_FIELD_NUM_DURATION_TYPE, (sizeof(FIT_WKT_STEP_DURATION)*1), FIT_BASE_TYPE_ENUM,
1161
+ FIT_WORKOUT_STEP_FIELD_NUM_TARGET_TYPE, (sizeof(FIT_WKT_STEP_TARGET)*1), FIT_BASE_TYPE_ENUM,
1162
+ FIT_WORKOUT_STEP_FIELD_NUM_INTENSITY, (sizeof(FIT_INTENSITY)*1), FIT_BASE_TYPE_ENUM,
1163
+ FIT_WORKOUT_STEP_FIELD_NUM_NOTES, (sizeof(FIT_STRING)*50), FIT_BASE_TYPE_STRING,
1164
+ FIT_WORKOUT_STEP_FIELD_NUM_EQUIPMENT, (sizeof(FIT_WORKOUT_EQUIPMENT)*1), FIT_BASE_TYPE_ENUM,
1165
+ }
1166
+ };
1167
+
1168
+ static const FIT_EXERCISE_TITLE_MESG_DEF exercise_title_mesg_def =
1169
+ {
1170
+ 0, // reserved_1
1171
+ FIT_ARCH_ENDIAN, // arch
1172
+ FIT_MESG_NUM_EXERCISE_TITLE, // global_mesg_num
1173
+ 4, // num_fields
1174
+ { // field_def_num, size, base_type
1175
+ FIT_EXERCISE_TITLE_FIELD_NUM_WKT_STEP_NAME, (sizeof(FIT_STRING)*200), FIT_BASE_TYPE_STRING,
1176
+ FIT_EXERCISE_TITLE_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
1177
+ FIT_EXERCISE_TITLE_FIELD_NUM_EXERCISE_CATEGORY, (sizeof(FIT_EXERCISE_CATEGORY)*1), FIT_BASE_TYPE_UINT16,
1178
+ FIT_EXERCISE_TITLE_FIELD_NUM_EXERCISE_NAME, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1179
+ }
1180
+ };
1181
+
1182
+ static const FIT_SCHEDULE_MESG_DEF schedule_mesg_def =
1183
+ {
1184
+ 0, // reserved_1
1185
+ FIT_ARCH_ENDIAN, // arch
1186
+ FIT_MESG_NUM_SCHEDULE, // global_mesg_num
1187
+ 7, // num_fields
1188
+ { // field_def_num, size, base_type
1189
+ FIT_SCHEDULE_FIELD_NUM_SERIAL_NUMBER, (sizeof(FIT_UINT32Z)*1), FIT_BASE_TYPE_UINT32Z,
1190
+ FIT_SCHEDULE_FIELD_NUM_TIME_CREATED, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
1191
+ FIT_SCHEDULE_FIELD_NUM_SCHEDULED_TIME, (sizeof(FIT_LOCAL_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
1192
+ FIT_SCHEDULE_FIELD_NUM_MANUFACTURER, (sizeof(FIT_MANUFACTURER)*1), FIT_BASE_TYPE_UINT16,
1193
+ FIT_SCHEDULE_FIELD_NUM_PRODUCT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1194
+ FIT_SCHEDULE_FIELD_NUM_COMPLETED, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
1195
+ FIT_SCHEDULE_FIELD_NUM_TYPE, (sizeof(FIT_SCHEDULE)*1), FIT_BASE_TYPE_ENUM,
1196
+ }
1197
+ };
1198
+
1199
+ static const FIT_TOTALS_MESG_DEF totals_mesg_def =
1200
+ {
1201
+ 0, // reserved_1
1202
+ FIT_ARCH_ENDIAN, // arch
1203
+ FIT_MESG_NUM_TOTALS, // global_mesg_num
1204
+ 9, // num_fields
1205
+ { // field_def_num, size, base_type
1206
+ FIT_TOTALS_FIELD_NUM_TIMESTAMP, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
1207
+ FIT_TOTALS_FIELD_NUM_TIMER_TIME, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1208
+ FIT_TOTALS_FIELD_NUM_DISTANCE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1209
+ FIT_TOTALS_FIELD_NUM_CALORIES, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1210
+ FIT_TOTALS_FIELD_NUM_ELAPSED_TIME, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1211
+ FIT_TOTALS_FIELD_NUM_ACTIVE_TIME, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1212
+ FIT_TOTALS_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
1213
+ FIT_TOTALS_FIELD_NUM_SESSIONS, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1214
+ FIT_TOTALS_FIELD_NUM_SPORT, (sizeof(FIT_SPORT)*1), FIT_BASE_TYPE_ENUM,
1215
+ }
1216
+ };
1217
+
1218
+ static const FIT_WEIGHT_SCALE_MESG_DEF weight_scale_mesg_def =
1219
+ {
1220
+ 0, // reserved_1
1221
+ FIT_ARCH_ENDIAN, // arch
1222
+ FIT_MESG_NUM_WEIGHT_SCALE, // global_mesg_num
1223
+ 13, // num_fields
1224
+ { // field_def_num, size, base_type
1225
+ FIT_WEIGHT_SCALE_FIELD_NUM_TIMESTAMP, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
1226
+ FIT_WEIGHT_SCALE_FIELD_NUM_WEIGHT, (sizeof(FIT_WEIGHT)*1), FIT_BASE_TYPE_UINT16,
1227
+ FIT_WEIGHT_SCALE_FIELD_NUM_PERCENT_FAT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1228
+ FIT_WEIGHT_SCALE_FIELD_NUM_PERCENT_HYDRATION, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1229
+ FIT_WEIGHT_SCALE_FIELD_NUM_VISCERAL_FAT_MASS, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1230
+ FIT_WEIGHT_SCALE_FIELD_NUM_BONE_MASS, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1231
+ FIT_WEIGHT_SCALE_FIELD_NUM_MUSCLE_MASS, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1232
+ FIT_WEIGHT_SCALE_FIELD_NUM_BASAL_MET, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1233
+ FIT_WEIGHT_SCALE_FIELD_NUM_ACTIVE_MET, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1234
+ FIT_WEIGHT_SCALE_FIELD_NUM_USER_PROFILE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
1235
+ FIT_WEIGHT_SCALE_FIELD_NUM_PHYSIQUE_RATING, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1236
+ FIT_WEIGHT_SCALE_FIELD_NUM_METABOLIC_AGE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1237
+ FIT_WEIGHT_SCALE_FIELD_NUM_VISCERAL_FAT_RATING, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1238
+ }
1239
+ };
1240
+
1241
+ static const FIT_BLOOD_PRESSURE_MESG_DEF blood_pressure_mesg_def =
1242
+ {
1243
+ 0, // reserved_1
1244
+ FIT_ARCH_ENDIAN, // arch
1245
+ FIT_MESG_NUM_BLOOD_PRESSURE, // global_mesg_num
1246
+ 11, // num_fields
1247
+ { // field_def_num, size, base_type
1248
+ FIT_BLOOD_PRESSURE_FIELD_NUM_TIMESTAMP, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
1249
+ FIT_BLOOD_PRESSURE_FIELD_NUM_SYSTOLIC_PRESSURE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1250
+ FIT_BLOOD_PRESSURE_FIELD_NUM_DIASTOLIC_PRESSURE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1251
+ FIT_BLOOD_PRESSURE_FIELD_NUM_MEAN_ARTERIAL_PRESSURE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1252
+ FIT_BLOOD_PRESSURE_FIELD_NUM_MAP_3_SAMPLE_MEAN, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1253
+ FIT_BLOOD_PRESSURE_FIELD_NUM_MAP_MORNING_VALUES, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1254
+ FIT_BLOOD_PRESSURE_FIELD_NUM_MAP_EVENING_VALUES, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1255
+ FIT_BLOOD_PRESSURE_FIELD_NUM_USER_PROFILE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
1256
+ FIT_BLOOD_PRESSURE_FIELD_NUM_HEART_RATE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1257
+ FIT_BLOOD_PRESSURE_FIELD_NUM_HEART_RATE_TYPE, (sizeof(FIT_HR_TYPE)*1), FIT_BASE_TYPE_ENUM,
1258
+ FIT_BLOOD_PRESSURE_FIELD_NUM_STATUS, (sizeof(FIT_BP_STATUS)*1), FIT_BASE_TYPE_ENUM,
1259
+ }
1260
+ };
1261
+
1262
+ static const FIT_MONITORING_INFO_MESG_DEF monitoring_info_mesg_def =
1263
+ {
1264
+ 0, // reserved_1
1265
+ FIT_ARCH_ENDIAN, // arch
1266
+ FIT_MESG_NUM_MONITORING_INFO, // global_mesg_num
1267
+ 2, // num_fields
1268
+ { // field_def_num, size, base_type
1269
+ FIT_MONITORING_INFO_FIELD_NUM_TIMESTAMP, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
1270
+ FIT_MONITORING_INFO_FIELD_NUM_LOCAL_TIMESTAMP, (sizeof(FIT_LOCAL_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
1271
+ }
1272
+ };
1273
+
1274
+ static const FIT_MONITORING_MESG_DEF monitoring_mesg_def =
1275
+ {
1276
+ 0, // reserved_1
1277
+ FIT_ARCH_ENDIAN, // arch
1278
+ FIT_MESG_NUM_MONITORING, // global_mesg_num
1279
+ 12, // num_fields
1280
+ { // field_def_num, size, base_type
1281
+ FIT_MONITORING_FIELD_NUM_TIMESTAMP, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
1282
+ FIT_MONITORING_FIELD_NUM_DISTANCE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1283
+ FIT_MONITORING_FIELD_NUM_CYCLES, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1284
+ FIT_MONITORING_FIELD_NUM_ACTIVE_TIME, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1285
+ FIT_MONITORING_FIELD_NUM_LOCAL_TIMESTAMP, (sizeof(FIT_LOCAL_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
1286
+ FIT_MONITORING_FIELD_NUM_CALORIES, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1287
+ FIT_MONITORING_FIELD_NUM_DISTANCE_16, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1288
+ FIT_MONITORING_FIELD_NUM_CYCLES_16, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1289
+ FIT_MONITORING_FIELD_NUM_ACTIVE_TIME_16, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1290
+ FIT_MONITORING_FIELD_NUM_DEVICE_INDEX, (sizeof(FIT_DEVICE_INDEX)*1), FIT_BASE_TYPE_UINT8,
1291
+ FIT_MONITORING_FIELD_NUM_ACTIVITY_TYPE, (sizeof(FIT_ACTIVITY_TYPE)*1), FIT_BASE_TYPE_ENUM,
1292
+ FIT_MONITORING_FIELD_NUM_ACTIVITY_SUBTYPE, (sizeof(FIT_ACTIVITY_SUBTYPE)*1), FIT_BASE_TYPE_ENUM,
1293
+ }
1294
+ };
1295
+
1296
+ static const FIT_HR_MESG_DEF hr_mesg_def =
1297
+ {
1298
+ 0, // reserved_1
1299
+ FIT_ARCH_ENDIAN, // arch
1300
+ FIT_MESG_NUM_HR, // global_mesg_num
1301
+ 6, // num_fields
1302
+ { // field_def_num, size, base_type
1303
+ FIT_HR_FIELD_NUM_TIMESTAMP, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
1304
+ FIT_HR_FIELD_NUM_EVENT_TIMESTAMP, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1305
+ FIT_HR_FIELD_NUM_FRACTIONAL_TIMESTAMP, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1306
+ FIT_HR_FIELD_NUM_TIME256, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1307
+ FIT_HR_FIELD_NUM_FILTERED_BPM, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1308
+ FIT_HR_FIELD_NUM_EVENT_TIMESTAMP_12, (sizeof(FIT_BYTE)*1), FIT_BASE_TYPE_BYTE,
1309
+ }
1310
+ };
1311
+
1312
+ static const FIT_ANT_RX_MESG_DEF ant_rx_mesg_def =
1313
+ {
1314
+ 0, // reserved_1
1315
+ FIT_ARCH_ENDIAN, // arch
1316
+ FIT_MESG_NUM_ANT_RX, // global_mesg_num
1317
+ 6, // num_fields
1318
+ { // field_def_num, size, base_type
1319
+ FIT_ANT_RX_FIELD_NUM_TIMESTAMP, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
1320
+ FIT_ANT_RX_FIELD_NUM_DATA, (sizeof(FIT_BYTE)*8), FIT_BASE_TYPE_BYTE,
1321
+ FIT_ANT_RX_FIELD_NUM_FRACTIONAL_TIMESTAMP, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1322
+ FIT_ANT_RX_FIELD_NUM_MESG_ID, (sizeof(FIT_BYTE)*1), FIT_BASE_TYPE_BYTE,
1323
+ FIT_ANT_RX_FIELD_NUM_MESG_DATA, (sizeof(FIT_BYTE)*9), FIT_BASE_TYPE_BYTE,
1324
+ FIT_ANT_RX_FIELD_NUM_CHANNEL_NUMBER, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1325
+ }
1326
+ };
1327
+
1328
+ static const FIT_ANT_TX_MESG_DEF ant_tx_mesg_def =
1329
+ {
1330
+ 0, // reserved_1
1331
+ FIT_ARCH_ENDIAN, // arch
1332
+ FIT_MESG_NUM_ANT_TX, // global_mesg_num
1333
+ 6, // num_fields
1334
+ { // field_def_num, size, base_type
1335
+ FIT_ANT_TX_FIELD_NUM_TIMESTAMP, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
1336
+ FIT_ANT_TX_FIELD_NUM_DATA, (sizeof(FIT_BYTE)*8), FIT_BASE_TYPE_BYTE,
1337
+ FIT_ANT_TX_FIELD_NUM_FRACTIONAL_TIMESTAMP, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
1338
+ FIT_ANT_TX_FIELD_NUM_MESG_ID, (sizeof(FIT_BYTE)*1), FIT_BASE_TYPE_BYTE,
1339
+ FIT_ANT_TX_FIELD_NUM_MESG_DATA, (sizeof(FIT_BYTE)*9), FIT_BASE_TYPE_BYTE,
1340
+ FIT_ANT_TX_FIELD_NUM_CHANNEL_NUMBER, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1341
+ }
1342
+ };
1343
+
1344
+ static const FIT_EXD_SCREEN_CONFIGURATION_MESG_DEF exd_screen_configuration_mesg_def =
1345
+ {
1346
+ 0, // reserved_1
1347
+ FIT_ARCH_ENDIAN, // arch
1348
+ FIT_MESG_NUM_EXD_SCREEN_CONFIGURATION, // global_mesg_num
1349
+ 4, // num_fields
1350
+ { // field_def_num, size, base_type
1351
+ FIT_EXD_SCREEN_CONFIGURATION_FIELD_NUM_SCREEN_INDEX, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1352
+ FIT_EXD_SCREEN_CONFIGURATION_FIELD_NUM_FIELD_COUNT, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1353
+ FIT_EXD_SCREEN_CONFIGURATION_FIELD_NUM_LAYOUT, (sizeof(FIT_EXD_LAYOUT)*1), FIT_BASE_TYPE_ENUM,
1354
+ FIT_EXD_SCREEN_CONFIGURATION_FIELD_NUM_SCREEN_ENABLED, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
1355
+ }
1356
+ };
1357
+
1358
+ static const FIT_EXD_DATA_FIELD_CONFIGURATION_MESG_DEF exd_data_field_configuration_mesg_def =
1359
+ {
1360
+ 0, // reserved_1
1361
+ FIT_ARCH_ENDIAN, // arch
1362
+ FIT_MESG_NUM_EXD_DATA_FIELD_CONFIGURATION, // global_mesg_num
1363
+ 6, // num_fields
1364
+ { // field_def_num, size, base_type
1365
+ FIT_EXD_DATA_FIELD_CONFIGURATION_FIELD_NUM_SCREEN_INDEX, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1366
+ FIT_EXD_DATA_FIELD_CONFIGURATION_FIELD_NUM_CONCEPT_FIELD, (sizeof(FIT_BYTE)*1), FIT_BASE_TYPE_BYTE,
1367
+ FIT_EXD_DATA_FIELD_CONFIGURATION_FIELD_NUM_FIELD_ID, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1368
+ FIT_EXD_DATA_FIELD_CONFIGURATION_FIELD_NUM_CONCEPT_COUNT, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1369
+ FIT_EXD_DATA_FIELD_CONFIGURATION_FIELD_NUM_DISPLAY_TYPE, (sizeof(FIT_EXD_DISPLAY_TYPE)*1), FIT_BASE_TYPE_ENUM,
1370
+ FIT_EXD_DATA_FIELD_CONFIGURATION_FIELD_NUM_TITLE, (sizeof(FIT_STRING)*1), FIT_BASE_TYPE_STRING,
1371
+ }
1372
+ };
1373
+
1374
+ static const FIT_EXD_DATA_CONCEPT_CONFIGURATION_MESG_DEF exd_data_concept_configuration_mesg_def =
1375
+ {
1376
+ 0, // reserved_1
1377
+ FIT_ARCH_ENDIAN, // arch
1378
+ FIT_MESG_NUM_EXD_DATA_CONCEPT_CONFIGURATION, // global_mesg_num
1379
+ 11, // num_fields
1380
+ { // field_def_num, size, base_type
1381
+ FIT_EXD_DATA_CONCEPT_CONFIGURATION_FIELD_NUM_SCREEN_INDEX, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1382
+ FIT_EXD_DATA_CONCEPT_CONFIGURATION_FIELD_NUM_CONCEPT_FIELD, (sizeof(FIT_BYTE)*1), FIT_BASE_TYPE_BYTE,
1383
+ FIT_EXD_DATA_CONCEPT_CONFIGURATION_FIELD_NUM_FIELD_ID, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1384
+ FIT_EXD_DATA_CONCEPT_CONFIGURATION_FIELD_NUM_CONCEPT_INDEX, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1385
+ FIT_EXD_DATA_CONCEPT_CONFIGURATION_FIELD_NUM_DATA_PAGE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1386
+ FIT_EXD_DATA_CONCEPT_CONFIGURATION_FIELD_NUM_CONCEPT_KEY, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1387
+ FIT_EXD_DATA_CONCEPT_CONFIGURATION_FIELD_NUM_SCALING, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1388
+ FIT_EXD_DATA_CONCEPT_CONFIGURATION_FIELD_NUM_DATA_UNITS, (sizeof(FIT_EXD_DATA_UNITS)*1), FIT_BASE_TYPE_ENUM,
1389
+ FIT_EXD_DATA_CONCEPT_CONFIGURATION_FIELD_NUM_QUALIFIER, (sizeof(FIT_EXD_QUALIFIERS)*1), FIT_BASE_TYPE_ENUM,
1390
+ FIT_EXD_DATA_CONCEPT_CONFIGURATION_FIELD_NUM_DESCRIPTOR, (sizeof(FIT_EXD_DESCRIPTORS)*1), FIT_BASE_TYPE_ENUM,
1391
+ FIT_EXD_DATA_CONCEPT_CONFIGURATION_FIELD_NUM_IS_SIGNED, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
1392
+ }
1393
+ };
1394
+
1395
+ static const FIT_FIELD_DESCRIPTION_MESG_DEF field_description_mesg_def =
1396
+ {
1397
+ 0, // reserved_1
1398
+ FIT_ARCH_ENDIAN, // arch
1399
+ FIT_MESG_NUM_FIELD_DESCRIPTION, // global_mesg_num
1400
+ 10, // num_fields
1401
+ { // field_def_num, size, base_type
1402
+ FIT_FIELD_DESCRIPTION_FIELD_NUM_FIELD_NAME, (sizeof(FIT_STRING)*64), FIT_BASE_TYPE_STRING,
1403
+ FIT_FIELD_DESCRIPTION_FIELD_NUM_UNITS, (sizeof(FIT_STRING)*16), FIT_BASE_TYPE_STRING,
1404
+ FIT_FIELD_DESCRIPTION_FIELD_NUM_FIT_BASE_UNIT_ID, (sizeof(FIT_FIT_BASE_UNIT)*1), FIT_BASE_TYPE_UINT16,
1405
+ FIT_FIELD_DESCRIPTION_FIELD_NUM_NATIVE_MESG_NUM, (sizeof(FIT_MESG_NUM)*1), FIT_BASE_TYPE_UINT16,
1406
+ FIT_FIELD_DESCRIPTION_FIELD_NUM_DEVELOPER_DATA_INDEX, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1407
+ FIT_FIELD_DESCRIPTION_FIELD_NUM_FIELD_DEFINITION_NUMBER, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1408
+ FIT_FIELD_DESCRIPTION_FIELD_NUM_FIT_BASE_TYPE_ID, (sizeof(FIT_FIT_BASE_TYPE)*1), FIT_BASE_TYPE_UINT8,
1409
+ FIT_FIELD_DESCRIPTION_FIELD_NUM_SCALE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1410
+ FIT_FIELD_DESCRIPTION_FIELD_NUM_OFFSET, (sizeof(FIT_SINT8)*1), FIT_BASE_TYPE_SINT8,
1411
+ FIT_FIELD_DESCRIPTION_FIELD_NUM_NATIVE_FIELD_NUM, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1412
+ }
1413
+ };
1414
+
1415
+ static const FIT_DEVELOPER_DATA_ID_MESG_DEF developer_data_id_mesg_def =
1416
+ {
1417
+ 0, // reserved_1
1418
+ FIT_ARCH_ENDIAN, // arch
1419
+ FIT_MESG_NUM_DEVELOPER_DATA_ID, // global_mesg_num
1420
+ 5, // num_fields
1421
+ { // field_def_num, size, base_type
1422
+ FIT_DEVELOPER_DATA_ID_FIELD_NUM_DEVELOPER_ID, (sizeof(FIT_BYTE)*16), FIT_BASE_TYPE_BYTE,
1423
+ FIT_DEVELOPER_DATA_ID_FIELD_NUM_APPLICATION_ID, (sizeof(FIT_BYTE)*16), FIT_BASE_TYPE_BYTE,
1424
+ FIT_DEVELOPER_DATA_ID_FIELD_NUM_APPLICATION_VERSION, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
1425
+ FIT_DEVELOPER_DATA_ID_FIELD_NUM_MANUFACTURER_ID, (sizeof(FIT_MANUFACTURER)*1), FIT_BASE_TYPE_UINT16,
1426
+ FIT_DEVELOPER_DATA_ID_FIELD_NUM_DEVELOPER_DATA_INDEX, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
1427
+ }
1428
+ };
1429
+
1430
+
1431
+ const FIT_CONST_MESG_DEF_PTR fit_mesg_defs[] =
1432
+ {
1433
+ (FIT_CONST_MESG_DEF_PTR) &pad_mesg_def,
1434
+ (FIT_CONST_MESG_DEF_PTR) &file_id_mesg_def,
1435
+ (FIT_CONST_MESG_DEF_PTR) &file_creator_mesg_def,
1436
+ (FIT_CONST_MESG_DEF_PTR) &software_mesg_def,
1437
+ (FIT_CONST_MESG_DEF_PTR) &slave_device_mesg_def,
1438
+ (FIT_CONST_MESG_DEF_PTR) &capabilities_mesg_def,
1439
+ (FIT_CONST_MESG_DEF_PTR) &file_capabilities_mesg_def,
1440
+ (FIT_CONST_MESG_DEF_PTR) &mesg_capabilities_mesg_def,
1441
+ (FIT_CONST_MESG_DEF_PTR) &field_capabilities_mesg_def,
1442
+ (FIT_CONST_MESG_DEF_PTR) &device_settings_mesg_def,
1443
+ (FIT_CONST_MESG_DEF_PTR) &user_profile_mesg_def,
1444
+ (FIT_CONST_MESG_DEF_PTR) &hrm_profile_mesg_def,
1445
+ (FIT_CONST_MESG_DEF_PTR) &sdm_profile_mesg_def,
1446
+ (FIT_CONST_MESG_DEF_PTR) &bike_profile_mesg_def,
1447
+ (FIT_CONST_MESG_DEF_PTR) &connectivity_mesg_def,
1448
+ (FIT_CONST_MESG_DEF_PTR) &zones_target_mesg_def,
1449
+ (FIT_CONST_MESG_DEF_PTR) &sport_mesg_def,
1450
+ (FIT_CONST_MESG_DEF_PTR) &hr_zone_mesg_def,
1451
+ (FIT_CONST_MESG_DEF_PTR) &speed_zone_mesg_def,
1452
+ (FIT_CONST_MESG_DEF_PTR) &cadence_zone_mesg_def,
1453
+ (FIT_CONST_MESG_DEF_PTR) &power_zone_mesg_def,
1454
+ (FIT_CONST_MESG_DEF_PTR) &met_zone_mesg_def,
1455
+ (FIT_CONST_MESG_DEF_PTR) &dive_settings_mesg_def,
1456
+ (FIT_CONST_MESG_DEF_PTR) &goal_mesg_def,
1457
+ (FIT_CONST_MESG_DEF_PTR) &activity_mesg_def,
1458
+ (FIT_CONST_MESG_DEF_PTR) &session_mesg_def,
1459
+ (FIT_CONST_MESG_DEF_PTR) &lap_mesg_def,
1460
+ (FIT_CONST_MESG_DEF_PTR) &length_mesg_def,
1461
+ (FIT_CONST_MESG_DEF_PTR) &record_mesg_def,
1462
+ (FIT_CONST_MESG_DEF_PTR) &event_mesg_def,
1463
+ (FIT_CONST_MESG_DEF_PTR) &device_info_mesg_def,
1464
+ (FIT_CONST_MESG_DEF_PTR) &training_file_mesg_def,
1465
+ (FIT_CONST_MESG_DEF_PTR) &hrv_mesg_def,
1466
+ (FIT_CONST_MESG_DEF_PTR) &weather_conditions_mesg_def,
1467
+ (FIT_CONST_MESG_DEF_PTR) &weather_alert_mesg_def,
1468
+ (FIT_CONST_MESG_DEF_PTR) &nmea_sentence_mesg_def,
1469
+ (FIT_CONST_MESG_DEF_PTR) &aviation_attitude_mesg_def,
1470
+ (FIT_CONST_MESG_DEF_PTR) &video_title_mesg_def,
1471
+ (FIT_CONST_MESG_DEF_PTR) &video_description_mesg_def,
1472
+ (FIT_CONST_MESG_DEF_PTR) &set_mesg_def,
1473
+ (FIT_CONST_MESG_DEF_PTR) &course_mesg_def,
1474
+ (FIT_CONST_MESG_DEF_PTR) &course_point_mesg_def,
1475
+ (FIT_CONST_MESG_DEF_PTR) &segment_id_mesg_def,
1476
+ (FIT_CONST_MESG_DEF_PTR) &segment_leaderboard_entry_mesg_def,
1477
+ (FIT_CONST_MESG_DEF_PTR) &segment_point_mesg_def,
1478
+ (FIT_CONST_MESG_DEF_PTR) &segment_lap_mesg_def,
1479
+ (FIT_CONST_MESG_DEF_PTR) &segment_file_mesg_def,
1480
+ (FIT_CONST_MESG_DEF_PTR) &workout_mesg_def,
1481
+ (FIT_CONST_MESG_DEF_PTR) &workout_session_mesg_def,
1482
+ (FIT_CONST_MESG_DEF_PTR) &workout_step_mesg_def,
1483
+ (FIT_CONST_MESG_DEF_PTR) &exercise_title_mesg_def,
1484
+ (FIT_CONST_MESG_DEF_PTR) &schedule_mesg_def,
1485
+ (FIT_CONST_MESG_DEF_PTR) &totals_mesg_def,
1486
+ (FIT_CONST_MESG_DEF_PTR) &weight_scale_mesg_def,
1487
+ (FIT_CONST_MESG_DEF_PTR) &blood_pressure_mesg_def,
1488
+ (FIT_CONST_MESG_DEF_PTR) &monitoring_info_mesg_def,
1489
+ (FIT_CONST_MESG_DEF_PTR) &monitoring_mesg_def,
1490
+ (FIT_CONST_MESG_DEF_PTR) &hr_mesg_def,
1491
+ (FIT_CONST_MESG_DEF_PTR) &ant_rx_mesg_def,
1492
+ (FIT_CONST_MESG_DEF_PTR) &ant_tx_mesg_def,
1493
+ (FIT_CONST_MESG_DEF_PTR) &exd_screen_configuration_mesg_def,
1494
+ (FIT_CONST_MESG_DEF_PTR) &exd_data_field_configuration_mesg_def,
1495
+ (FIT_CONST_MESG_DEF_PTR) &exd_data_concept_configuration_mesg_def,
1496
+ (FIT_CONST_MESG_DEF_PTR) &field_description_mesg_def,
1497
+ (FIT_CONST_MESG_DEF_PTR) &developer_data_id_mesg_def,
1498
+ };
1499
+
1500
+ ///////////////////////////////////////////////////////////////////////
1501
+ // Files
1502
+ ///////////////////////////////////////////////////////////////////////
1503
+
1504
+ const FIT_FILE_MESG device_file_mesgs[] =
1505
+ {
1506
+ { FIT_STRUCT_OFFSET(file_id_mesg_def, FIT_DEVICE_FILE), FIT_STRUCT_OFFSET(file_id_mesg, FIT_DEVICE_FILE) + FIT_HDR_SIZE, FIT_MESG_NUM_FILE_ID, FIT_DEVICE_FILE_FILE_ID_MESGS, FIT_MESG_FILE_ID},
1507
+ };
1508
+
1509
+ const FIT_FILE_DEF fit_file_defs[] =
1510
+ {
1511
+ { FIT_DEVICE_FILE_DATA_SIZE, (FIT_FILE_MESG *) &device_file_mesgs, FIT_DEVICE_FILE_MESG_COUNT, FIT_FILE_DEVICE, FIT_DEVICE_FILE_COUNT},
1512
+ };