rubyfit 0.0.5 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/ext/rubyfit/fit.c +82 -22
- data/ext/rubyfit/fit.h +75 -31
- data/ext/rubyfit/fit_config.h +3 -3
- data/ext/rubyfit/fit_convert.c +122 -18
- data/ext/rubyfit/fit_convert.h +49 -5
- data/ext/rubyfit/fit_crc.c +5 -5
- data/ext/rubyfit/fit_crc.h +5 -5
- data/ext/rubyfit/fit_example.c +501 -14
- data/ext/rubyfit/fit_example.h +3030 -485
- data/ext/rubyfit/fit_include.h +19 -0
- data/ext/rubyfit/fit_ram.c +3 -3
- data/ext/rubyfit/fit_ram.h +3 -3
- data/lib/rubyfit/version.rb +1 -1
- metadata +4 -3
data/ext/rubyfit/fit_convert.h
CHANGED
@@ -7,11 +7,11 @@
|
|
7
7
|
// warranties of merchantability, non-infringement, or fitness for a particular
|
8
8
|
// purpose, are specifically disclaimed.
|
9
9
|
//
|
10
|
-
// Copyright
|
10
|
+
// Copyright 2016 Dynastream Innovations Inc.
|
11
11
|
////////////////////////////////////////////////////////////////////////////////
|
12
12
|
// ****WARNING**** This file is auto-generated! Do NOT edit this file.
|
13
|
-
// Profile Version =
|
14
|
-
// Tag =
|
13
|
+
// Profile Version = 20.16Release
|
14
|
+
// Tag = production/akw/20.16.00-0-gce20b51
|
15
15
|
// Product = EXAMPLE
|
16
16
|
// Alignment = 4 bytes, padding disabled.
|
17
17
|
////////////////////////////////////////////////////////////////////////////////
|
@@ -34,7 +34,8 @@ typedef enum
|
|
34
34
|
FIT_CONVERT_ERROR,
|
35
35
|
FIT_CONVERT_END_OF_FILE,
|
36
36
|
FIT_CONVERT_PROTOCOL_VERSION_NOT_SUPPORTED,
|
37
|
-
FIT_CONVERT_DATA_TYPE_NOT_SUPPORTED
|
37
|
+
FIT_CONVERT_DATA_TYPE_NOT_SUPPORTED,
|
38
|
+
FIT_CONVERT_MESSAGE_NUMBER_FOUND
|
38
39
|
} FIT_CONVERT_RETURN;
|
39
40
|
|
40
41
|
typedef enum
|
@@ -49,7 +50,12 @@ typedef enum
|
|
49
50
|
FIT_CONVERT_DECODE_FIELD_DEF,
|
50
51
|
FIT_CONVERT_DECODE_FIELD_DEF_SIZE,
|
51
52
|
FIT_CONVERT_DECODE_FIELD_BASE_TYPE,
|
52
|
-
|
53
|
+
FIT_CONVERT_DECODE_NUM_DEV_FIELDS,
|
54
|
+
FIT_CONVERT_DECODE_DEV_FIELD_DEF,
|
55
|
+
FIT_CONVERT_DECODE_DEV_FIELD_SIZE,
|
56
|
+
FIT_CONVERT_DECODE_DEV_FIELD_INDEX,
|
57
|
+
FIT_CONVERT_DECODE_FIELD_DATA,
|
58
|
+
FIT_CONVERT_DECODE_DEV_FIELD_DATA
|
53
59
|
} FIT_CONVERT_DECODE_STATE;
|
54
60
|
|
55
61
|
typedef struct
|
@@ -70,8 +76,10 @@ typedef struct
|
|
70
76
|
FIT_UINT16 crc;
|
71
77
|
#endif
|
72
78
|
FIT_CONVERT_DECODE_STATE decode_state;
|
79
|
+
FIT_BOOL has_dev_data;
|
73
80
|
FIT_UINT8 mesg_index;
|
74
81
|
FIT_UINT8 mesg_sizes[FIT_MAX_LOCAL_MESGS];
|
82
|
+
FIT_UINT8 dev_data_sizes[FIT_MAX_LOCAL_MESGS];
|
75
83
|
FIT_UINT8 mesg_offset;
|
76
84
|
FIT_UINT8 num_fields;
|
77
85
|
FIT_UINT8 field_num;
|
@@ -122,6 +130,42 @@ typedef struct
|
|
122
130
|
FIT_CONVERT_RETURN FitConvert_Read(const void *data, FIT_UINT32 size);
|
123
131
|
#endif
|
124
132
|
|
133
|
+
///////////////////////////////////////////////////////////////////////
|
134
|
+
// Convert a stream of bytes.
|
135
|
+
// Parameters:
|
136
|
+
// state Pointer to converter state.
|
137
|
+
// data Pointer to a buffer containing bytes from the file stream.
|
138
|
+
// size Number of bytes in the data buffer.
|
139
|
+
// return_message_numbers Returns when a message number has been found in a message definition
|
140
|
+
// This is useful when needing to force fit_convert to use an alternate message definition
|
141
|
+
//
|
142
|
+
// Returns FIT_CONVERT_CONTINUE when the all bytes in data have
|
143
|
+
// been decoded successfully and ready to accept next bytes in the
|
144
|
+
// file stream. No message is available yet.
|
145
|
+
// Returns FIT_CONVERT_MESSAGE_AVAILABLE when a message is
|
146
|
+
// complete. The message is valid until this function is called
|
147
|
+
// again.
|
148
|
+
// Returns FIT_CONVERT_MESSAGE_NUMBER_FOUND when a new message number
|
149
|
+
// has been found in a message definition.
|
150
|
+
// Returns FIT_CONVERT_ERROR if a decoding error occurs.
|
151
|
+
// Returns FIT_CONVERT_END_OF_FILE when the file has been decoded successfully.
|
152
|
+
///////////////////////////////////////////////////////////////////////
|
153
|
+
#if defined(FIT_CONVERT_MULTI_THREAD)
|
154
|
+
FIT_CONVERT_RETURN FitConvert_ReadExt(FIT_CONVERT_STATE *state, const void *data, FIT_UINT32 size, FIT_BOOL return_message_numbers);
|
155
|
+
#else
|
156
|
+
FIT_CONVERT_RETURN FitConvert_ReadExt(const void *data, FIT_UINT32 size, FIT_BOOL return_message_numbers);
|
157
|
+
#endif
|
158
|
+
|
159
|
+
///////////////////////////////////////////////////////////////////////
|
160
|
+
// Overrides the message definition to be used when
|
161
|
+
// decoding the message.
|
162
|
+
// In a multithreaded environment, you can set the state directly
|
163
|
+
// in FitConvert_ReadExt().
|
164
|
+
///////////////////////////////////////////////////////////////////////
|
165
|
+
#if !defined(FIT_CONVERT_MULTI_THREAD)
|
166
|
+
void FitConvert_SetMessageDefinition(FIT_MESG_DEF *mesg_def);
|
167
|
+
#endif
|
168
|
+
|
125
169
|
///////////////////////////////////////////////////////////////////////
|
126
170
|
// Returns the global message number of the decoded message.
|
127
171
|
///////////////////////////////////////////////////////////////////////
|
data/ext/rubyfit/fit_crc.c
CHANGED
@@ -7,11 +7,11 @@
|
|
7
7
|
// warranties of merchantability, non-infringement, or fitness for a particular
|
8
8
|
// purpose, are specifically disclaimed.
|
9
9
|
//
|
10
|
-
// Copyright
|
10
|
+
// Copyright 2016 Dynastream Innovations Inc.
|
11
11
|
////////////////////////////////////////////////////////////////////////////////
|
12
12
|
// ****WARNING**** This file is auto-generated! Do NOT edit this file.
|
13
|
-
// Profile Version =
|
14
|
-
// Tag =
|
13
|
+
// Profile Version = 20.16Release
|
14
|
+
// Tag = production/akw/20.16.00-0-gce20b51
|
15
15
|
// Product = EXAMPLE
|
16
16
|
// Alignment = 4 bytes, padding disabled.
|
17
17
|
////////////////////////////////////////////////////////////////////////////////
|
@@ -46,7 +46,7 @@ FIT_UINT16 FitCRC_Get16(FIT_UINT16 crc, FIT_UINT8 byte)
|
|
46
46
|
return crc;
|
47
47
|
}
|
48
48
|
|
49
|
-
FIT_UINT16 FitCRC_Update16(FIT_UINT16 crc, const volatile void *data,
|
49
|
+
FIT_UINT16 FitCRC_Update16(FIT_UINT16 crc, const volatile void *data, FIT_UINT32 size)
|
50
50
|
{
|
51
51
|
FIT_BYTE *data_ptr = (FIT_BYTE *)data;
|
52
52
|
|
@@ -60,7 +60,7 @@ FIT_UINT16 FitCRC_Update16(FIT_UINT16 crc, const volatile void *data, FIT_UINT8
|
|
60
60
|
return crc;
|
61
61
|
}
|
62
62
|
|
63
|
-
FIT_UINT16 FitCRC_Calc16(const volatile void *data,
|
63
|
+
FIT_UINT16 FitCRC_Calc16(const volatile void *data, FIT_UINT32 size)
|
64
64
|
{
|
65
65
|
return FitCRC_Update16(0, data, size);
|
66
66
|
}
|
data/ext/rubyfit/fit_crc.h
CHANGED
@@ -7,11 +7,11 @@
|
|
7
7
|
// warranties of merchantability, non-infringement, or fitness for a particular
|
8
8
|
// purpose, are specifically disclaimed.
|
9
9
|
//
|
10
|
-
// Copyright
|
10
|
+
// Copyright 2016 Dynastream Innovations Inc.
|
11
11
|
////////////////////////////////////////////////////////////////////////////////
|
12
12
|
// ****WARNING**** This file is auto-generated! Do NOT edit this file.
|
13
|
-
// Profile Version =
|
14
|
-
// Tag =
|
13
|
+
// Profile Version = 20.16Release
|
14
|
+
// Tag = production/akw/20.16.00-0-gce20b51
|
15
15
|
// Product = EXAMPLE
|
16
16
|
// Alignment = 4 bytes, padding disabled.
|
17
17
|
////////////////////////////////////////////////////////////////////////////////
|
@@ -32,8 +32,8 @@
|
|
32
32
|
#endif
|
33
33
|
|
34
34
|
FIT_UINT16 FitCRC_Get16(FIT_UINT16 crc, FIT_UINT8 byte);
|
35
|
-
FIT_UINT16 FitCRC_Update16(FIT_UINT16 crc, const volatile void *data,
|
36
|
-
FIT_UINT16 FitCRC_Calc16(const volatile void *data,
|
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
37
|
|
38
38
|
#if defined(__cplusplus)
|
39
39
|
}
|
data/ext/rubyfit/fit_example.c
CHANGED
@@ -7,11 +7,11 @@
|
|
7
7
|
// warranties of merchantability, non-infringement, or fitness for a particular
|
8
8
|
// purpose, are specifically disclaimed.
|
9
9
|
//
|
10
|
-
// Copyright
|
10
|
+
// Copyright 2016 Dynastream Innovations Inc.
|
11
11
|
////////////////////////////////////////////////////////////////////////////////
|
12
12
|
// ****WARNING**** This file is auto-generated! Do NOT edit this file.
|
13
|
-
// Profile Version =
|
14
|
-
// Tag =
|
13
|
+
// Profile Version = 20.16Release
|
14
|
+
// Tag = production/akw/20.16.00-0-gce20b51
|
15
15
|
// Product = EXAMPLE
|
16
16
|
// Alignment = 4 bytes, padding disabled.
|
17
17
|
////////////////////////////////////////////////////////////////////////////////
|
@@ -40,10 +40,11 @@ const static FIT_FILE_ID_MESG_DEF file_id_mesg_def =
|
|
40
40
|
0, // reserved_1
|
41
41
|
FIT_ARCH_ENDIAN, // arch
|
42
42
|
FIT_MESG_NUM_FILE_ID, // global_mesg_num
|
43
|
-
|
43
|
+
7, // num_fields
|
44
44
|
{ // field_def_num, size, base_type
|
45
45
|
FIT_FILE_ID_FIELD_NUM_SERIAL_NUMBER, (sizeof(FIT_UINT32Z)*1), FIT_BASE_TYPE_UINT32Z,
|
46
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,
|
47
48
|
FIT_FILE_ID_FIELD_NUM_MANUFACTURER, (sizeof(FIT_MANUFACTURER)*1), FIT_BASE_TYPE_UINT16,
|
48
49
|
FIT_FILE_ID_FIELD_NUM_PRODUCT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
|
49
50
|
FIT_FILE_ID_FIELD_NUM_NUMBER, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
|
@@ -153,9 +154,24 @@ const static FIT_DEVICE_SETTINGS_MESG_DEF device_settings_mesg_def =
|
|
153
154
|
0, // reserved_1
|
154
155
|
FIT_ARCH_ENDIAN, // arch
|
155
156
|
FIT_MESG_NUM_DEVICE_SETTINGS, // global_mesg_num
|
156
|
-
|
157
|
+
16, // num_fields
|
157
158
|
{ // field_def_num, size, base_type
|
158
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,
|
159
175
|
}
|
160
176
|
};
|
161
177
|
|
@@ -164,12 +180,14 @@ const static FIT_USER_PROFILE_MESG_DEF user_profile_mesg_def =
|
|
164
180
|
0, // reserved_1
|
165
181
|
FIT_ARCH_ENDIAN, // arch
|
166
182
|
FIT_MESG_NUM_USER_PROFILE, // global_mesg_num
|
167
|
-
|
183
|
+
25, // num_fields
|
168
184
|
{ // field_def_num, size, base_type
|
169
185
|
FIT_USER_PROFILE_FIELD_NUM_FRIENDLY_NAME, (sizeof(FIT_STRING)*16), FIT_BASE_TYPE_STRING,
|
170
186
|
FIT_USER_PROFILE_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
|
171
187
|
FIT_USER_PROFILE_FIELD_NUM_WEIGHT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
|
172
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,
|
173
191
|
FIT_USER_PROFILE_FIELD_NUM_GENDER, (sizeof(FIT_GENDER)*1), FIT_BASE_TYPE_ENUM,
|
174
192
|
FIT_USER_PROFILE_FIELD_NUM_AGE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
|
175
193
|
FIT_USER_PROFILE_FIELD_NUM_HEIGHT, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
|
@@ -230,7 +248,7 @@ const static FIT_BIKE_PROFILE_MESG_DEF bike_profile_mesg_def =
|
|
230
248
|
0, // reserved_1
|
231
249
|
FIT_ARCH_ENDIAN, // arch
|
232
250
|
FIT_MESG_NUM_BIKE_PROFILE, // global_mesg_num
|
233
|
-
|
251
|
+
32, // num_fields
|
234
252
|
{ // field_def_num, size, base_type
|
235
253
|
FIT_BIKE_PROFILE_FIELD_NUM_NAME, (sizeof(FIT_STRING)*16), FIT_BASE_TYPE_STRING,
|
236
254
|
FIT_BIKE_PROFILE_FIELD_NUM_ODOMETER, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
|
@@ -263,6 +281,30 @@ const static FIT_BIKE_PROFILE_MESG_DEF bike_profile_mesg_def =
|
|
263
281
|
FIT_BIKE_PROFILE_FIELD_NUM_FRONT_GEAR, (sizeof(FIT_UINT8Z)*1), FIT_BASE_TYPE_UINT8Z,
|
264
282
|
FIT_BIKE_PROFILE_FIELD_NUM_REAR_GEAR_NUM, (sizeof(FIT_UINT8Z)*1), FIT_BASE_TYPE_UINT8Z,
|
265
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,
|
266
308
|
}
|
267
309
|
};
|
268
310
|
|
@@ -365,7 +407,7 @@ const static FIT_GOAL_MESG_DEF goal_mesg_def =
|
|
365
407
|
0, // reserved_1
|
366
408
|
FIT_ARCH_ENDIAN, // arch
|
367
409
|
FIT_MESG_NUM_GOAL, // global_mesg_num
|
368
|
-
|
410
|
+
13, // num_fields
|
369
411
|
{ // field_def_num, size, base_type
|
370
412
|
FIT_GOAL_FIELD_NUM_START_DATE, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
|
371
413
|
FIT_GOAL_FIELD_NUM_END_DATE, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
|
@@ -379,6 +421,7 @@ const static FIT_GOAL_MESG_DEF goal_mesg_def =
|
|
379
421
|
FIT_GOAL_FIELD_NUM_REPEAT, (sizeof(FIT_BOOL)*1), FIT_BASE_TYPE_ENUM,
|
380
422
|
FIT_GOAL_FIELD_NUM_RECURRENCE, (sizeof(FIT_GOAL_RECURRENCE)*1), FIT_BASE_TYPE_ENUM,
|
381
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,
|
382
425
|
}
|
383
426
|
};
|
384
427
|
|
@@ -405,7 +448,7 @@ const static FIT_SESSION_MESG_DEF session_mesg_def =
|
|
405
448
|
0, // reserved_1
|
406
449
|
FIT_ARCH_ENDIAN, // arch
|
407
450
|
FIT_MESG_NUM_SESSION, // global_mesg_num
|
408
|
-
|
451
|
+
89, // num_fields
|
409
452
|
{ // field_def_num, size, base_type
|
410
453
|
FIT_SESSION_FIELD_NUM_TIMESTAMP, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
|
411
454
|
FIT_SESSION_FIELD_NUM_START_TIME, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
|
@@ -427,6 +470,11 @@ const static FIT_SESSION_MESG_DEF session_mesg_def =
|
|
427
470
|
FIT_SESSION_FIELD_NUM_TIME_IN_CADENCE_ZONE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
|
428
471
|
FIT_SESSION_FIELD_NUM_TIME_IN_POWER_ZONE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
|
429
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,
|
430
478
|
FIT_SESSION_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
|
431
479
|
FIT_SESSION_FIELD_NUM_TOTAL_CALORIES, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
|
432
480
|
FIT_SESSION_FIELD_NUM_TOTAL_FAT_CALORIES, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
|
@@ -444,6 +492,7 @@ const static FIT_SESSION_MESG_DEF session_mesg_def =
|
|
444
492
|
FIT_SESSION_FIELD_NUM_LEFT_RIGHT_BALANCE, (sizeof(FIT_LEFT_RIGHT_BALANCE_100)*1), FIT_BASE_TYPE_UINT16,
|
445
493
|
FIT_SESSION_FIELD_NUM_AVG_STROKE_DISTANCE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
|
446
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,
|
447
496
|
FIT_SESSION_FIELD_NUM_NUM_ACTIVE_LENGTHS, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
|
448
497
|
FIT_SESSION_FIELD_NUM_AVG_ALTITUDE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
|
449
498
|
FIT_SESSION_FIELD_NUM_MAX_ALTITUDE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
|
@@ -488,6 +537,8 @@ const static FIT_SESSION_MESG_DEF session_mesg_def =
|
|
488
537
|
FIT_SESSION_FIELD_NUM_AVG_FRACTIONAL_CADENCE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
|
489
538
|
FIT_SESSION_FIELD_NUM_MAX_FRACTIONAL_CADENCE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
|
490
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,
|
491
542
|
}
|
492
543
|
};
|
493
544
|
|
@@ -496,7 +547,7 @@ const static FIT_LAP_MESG_DEF lap_mesg_def =
|
|
496
547
|
0, // reserved_1
|
497
548
|
FIT_ARCH_ENDIAN, // arch
|
498
549
|
FIT_MESG_NUM_LAP, // global_mesg_num
|
499
|
-
|
550
|
+
82, // num_fields
|
500
551
|
{ // field_def_num, size, base_type
|
501
552
|
FIT_LAP_FIELD_NUM_TIMESTAMP, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
|
502
553
|
FIT_LAP_FIELD_NUM_START_TIME, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
|
@@ -514,6 +565,11 @@ const static FIT_LAP_MESG_DEF lap_mesg_def =
|
|
514
565
|
FIT_LAP_FIELD_NUM_TIME_IN_SPEED_ZONE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
|
515
566
|
FIT_LAP_FIELD_NUM_TIME_IN_CADENCE_ZONE, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
|
516
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,
|
517
573
|
FIT_LAP_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
|
518
574
|
FIT_LAP_FIELD_NUM_TOTAL_CALORIES, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
|
519
575
|
FIT_LAP_FIELD_NUM_TOTAL_FAT_CALORIES, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
|
@@ -611,7 +667,7 @@ const static FIT_RECORD_MESG_DEF record_mesg_def =
|
|
611
667
|
0, // reserved_1
|
612
668
|
FIT_ARCH_ENDIAN, // arch
|
613
669
|
FIT_MESG_NUM_RECORD, // global_mesg_num
|
614
|
-
|
670
|
+
48, // num_fields
|
615
671
|
{ // field_def_num, size, base_type
|
616
672
|
FIT_RECORD_FIELD_NUM_TIMESTAMP, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
|
617
673
|
FIT_RECORD_FIELD_NUM_POSITION_LAT, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
|
@@ -620,6 +676,8 @@ const static FIT_RECORD_MESG_DEF record_mesg_def =
|
|
620
676
|
FIT_RECORD_FIELD_NUM_TIME_FROM_COURSE, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
|
621
677
|
FIT_RECORD_FIELD_NUM_TOTAL_CYCLES, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
|
622
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,
|
623
681
|
FIT_RECORD_FIELD_NUM_ALTITUDE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
|
624
682
|
FIT_RECORD_FIELD_NUM_SPEED, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
|
625
683
|
FIT_RECORD_FIELD_NUM_POWER, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
|
@@ -657,6 +715,7 @@ const static FIT_RECORD_MESG_DEF record_mesg_def =
|
|
657
715
|
FIT_RECORD_FIELD_NUM_TIME128, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
|
658
716
|
FIT_RECORD_FIELD_NUM_STROKE_TYPE, (sizeof(FIT_STROKE_TYPE)*1), FIT_BASE_TYPE_ENUM,
|
659
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,
|
660
719
|
FIT_RECORD_FIELD_NUM_DEVICE_INDEX, (sizeof(FIT_DEVICE_INDEX)*1), FIT_BASE_TYPE_UINT8,
|
661
720
|
}
|
662
721
|
};
|
@@ -688,11 +747,12 @@ const static FIT_DEVICE_INFO_MESG_DEF device_info_mesg_def =
|
|
688
747
|
0, // reserved_1
|
689
748
|
FIT_ARCH_ENDIAN, // arch
|
690
749
|
FIT_MESG_NUM_DEVICE_INFO, // global_mesg_num
|
691
|
-
|
750
|
+
18, // num_fields
|
692
751
|
{ // field_def_num, size, base_type
|
693
752
|
FIT_DEVICE_INFO_FIELD_NUM_TIMESTAMP, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
|
694
753
|
FIT_DEVICE_INFO_FIELD_NUM_SERIAL_NUMBER, (sizeof(FIT_UINT32Z)*1), FIT_BASE_TYPE_UINT32Z,
|
695
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,
|
696
756
|
FIT_DEVICE_INFO_FIELD_NUM_MANUFACTURER, (sizeof(FIT_MANUFACTURER)*1), FIT_BASE_TYPE_UINT16,
|
697
757
|
FIT_DEVICE_INFO_FIELD_NUM_PRODUCT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
|
698
758
|
FIT_DEVICE_INFO_FIELD_NUM_SOFTWARE_VERSION, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
|
@@ -710,6 +770,22 @@ const static FIT_DEVICE_INFO_MESG_DEF device_info_mesg_def =
|
|
710
770
|
}
|
711
771
|
};
|
712
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
|
+
|
713
789
|
const static FIT_HRV_MESG_DEF hrv_mesg_def =
|
714
790
|
{
|
715
791
|
0, // reserved_1
|
@@ -721,16 +797,120 @@ const static FIT_HRV_MESG_DEF hrv_mesg_def =
|
|
721
797
|
}
|
722
798
|
};
|
723
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
|
+
|
724
903
|
const static FIT_COURSE_MESG_DEF course_mesg_def =
|
725
904
|
{
|
726
905
|
0, // reserved_1
|
727
906
|
FIT_ARCH_ENDIAN, // arch
|
728
907
|
FIT_MESG_NUM_COURSE, // global_mesg_num
|
729
|
-
|
908
|
+
4, // num_fields
|
730
909
|
{ // field_def_num, size, base_type
|
731
910
|
FIT_COURSE_FIELD_NUM_NAME, (sizeof(FIT_STRING)*16), FIT_BASE_TYPE_STRING,
|
732
911
|
FIT_COURSE_FIELD_NUM_CAPABILITIES, (sizeof(FIT_COURSE_CAPABILITIES)*1), FIT_BASE_TYPE_UINT32Z,
|
733
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,
|
734
914
|
}
|
735
915
|
};
|
736
916
|
|
@@ -739,7 +919,7 @@ const static FIT_COURSE_POINT_MESG_DEF course_point_mesg_def =
|
|
739
919
|
0, // reserved_1
|
740
920
|
FIT_ARCH_ENDIAN, // arch
|
741
921
|
FIT_MESG_NUM_COURSE_POINT, // global_mesg_num
|
742
|
-
|
922
|
+
8, // num_fields
|
743
923
|
{ // field_def_num, size, base_type
|
744
924
|
FIT_COURSE_POINT_FIELD_NUM_TIMESTAMP, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
|
745
925
|
FIT_COURSE_POINT_FIELD_NUM_POSITION_LAT, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
|
@@ -748,6 +928,158 @@ const static FIT_COURSE_POINT_MESG_DEF course_point_mesg_def =
|
|
748
928
|
FIT_COURSE_POINT_FIELD_NUM_NAME, (sizeof(FIT_STRING)*16), FIT_BASE_TYPE_STRING,
|
749
929
|
FIT_COURSE_POINT_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
|
750
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,
|
751
1083
|
}
|
752
1084
|
};
|
753
1085
|
|
@@ -898,6 +1230,140 @@ const static FIT_MONITORING_MESG_DEF monitoring_mesg_def =
|
|
898
1230
|
}
|
899
1231
|
};
|
900
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
|
+
|
901
1367
|
|
902
1368
|
const FIT_CONST_MESG_DEF_PTR fit_mesg_defs[] =
|
903
1369
|
{
|
@@ -915,6 +1381,7 @@ const FIT_CONST_MESG_DEF_PTR fit_mesg_defs[] =
|
|
915
1381
|
(FIT_CONST_MESG_DEF_PTR) &hrm_profile_mesg_def,
|
916
1382
|
(FIT_CONST_MESG_DEF_PTR) &sdm_profile_mesg_def,
|
917
1383
|
(FIT_CONST_MESG_DEF_PTR) &bike_profile_mesg_def,
|
1384
|
+
(FIT_CONST_MESG_DEF_PTR) &connectivity_mesg_def,
|
918
1385
|
(FIT_CONST_MESG_DEF_PTR) &zones_target_mesg_def,
|
919
1386
|
(FIT_CONST_MESG_DEF_PTR) &sport_mesg_def,
|
920
1387
|
(FIT_CONST_MESG_DEF_PTR) &hr_zone_mesg_def,
|
@@ -930,9 +1397,21 @@ const FIT_CONST_MESG_DEF_PTR fit_mesg_defs[] =
|
|
930
1397
|
(FIT_CONST_MESG_DEF_PTR) &record_mesg_def,
|
931
1398
|
(FIT_CONST_MESG_DEF_PTR) &event_mesg_def,
|
932
1399
|
(FIT_CONST_MESG_DEF_PTR) &device_info_mesg_def,
|
1400
|
+
(FIT_CONST_MESG_DEF_PTR) &training_file_mesg_def,
|
933
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,
|
934
1408
|
(FIT_CONST_MESG_DEF_PTR) &course_mesg_def,
|
935
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,
|
936
1415
|
(FIT_CONST_MESG_DEF_PTR) &workout_mesg_def,
|
937
1416
|
(FIT_CONST_MESG_DEF_PTR) &workout_step_mesg_def,
|
938
1417
|
(FIT_CONST_MESG_DEF_PTR) &schedule_mesg_def,
|
@@ -941,4 +1420,12 @@ const FIT_CONST_MESG_DEF_PTR fit_mesg_defs[] =
|
|
941
1420
|
(FIT_CONST_MESG_DEF_PTR) &blood_pressure_mesg_def,
|
942
1421
|
(FIT_CONST_MESG_DEF_PTR) &monitoring_info_mesg_def,
|
943
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,
|
944
1431
|
};
|