rubyfit 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/ext/rubyfit/fit.c +3 -3
- data/ext/rubyfit/fit.h +5 -5
- data/ext/rubyfit/fit_config.h +1 -1
- data/ext/rubyfit/fit_convert.c +3 -3
- data/ext/rubyfit/fit_convert.h +3 -3
- data/ext/rubyfit/fit_crc.c +3 -3
- data/ext/rubyfit/fit_crc.h +3 -3
- data/ext/rubyfit/fit_example.c +60 -15
- data/ext/rubyfit/fit_example.h +382 -79
- data/ext/rubyfit/fit_ram.c +3 -3
- data/ext/rubyfit/fit_ram.h +3 -3
- data/ext/rubyfit/rubyfit.c +20 -58
- data/lib/rubyfit/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5b7e58e246809936ef8b652f8d7bf6a522cb3022
|
4
|
+
data.tar.gz: 3e81273865fffc740a8c1decf1fa21613d787ce9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1f6e7095ecc182971e7f6efc4b2f6dd18957b9103206f7c599be3d42607af4160c868199c7b5ace644f3e893d49e4f8480693fd0cda1dfa9983a82db2ad79321
|
7
|
+
data.tar.gz: cd8998f093db89a10d4b56bf56df15ed42839ceff3e987b11fc56774064300b3382126fecc5033b94abdfa4674177b82eea9b3c5c6d538c22683e773163be4d0
|
data/ext/rubyfit/fit.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 2014 Dynastream Innovations Inc.
|
11
11
|
////////////////////////////////////////////////////////////////////////////////
|
12
12
|
// ****WARNING**** This file is auto-generated! Do NOT edit this file.
|
13
|
-
// Profile Version =
|
14
|
-
// Tag = $Name:
|
13
|
+
// Profile Version = 11.0Release
|
14
|
+
// Tag = $Name: AKW11_000 $
|
15
15
|
// Product = EXAMPLE
|
16
16
|
// Alignment = 4 bytes, padding disabled.
|
17
17
|
////////////////////////////////////////////////////////////////////////////////
|
data/ext/rubyfit/fit.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 2014 Dynastream Innovations Inc.
|
11
11
|
////////////////////////////////////////////////////////////////////////////////
|
12
12
|
// ****WARNING**** This file is auto-generated! Do NOT edit this file.
|
13
|
-
// Profile Version =
|
14
|
-
// Tag = $Name:
|
13
|
+
// Profile Version = 11.0Release
|
14
|
+
// Tag = $Name: AKW11_000 $
|
15
15
|
// Product = EXAMPLE
|
16
16
|
// Alignment = 4 bytes, padding disabled.
|
17
17
|
////////////////////////////////////////////////////////////////////////////////
|
@@ -49,8 +49,8 @@
|
|
49
49
|
#define FIT_PROTOCOL_VERSION_MINOR_MASK ((FIT_UINT8) 0x0F)
|
50
50
|
#define FIT_PROTOCOL_VERSION ((FIT_UINT8) (FIT_PROTOCOL_VERSION_MAJOR << FIT_PROTOCOL_VERSION_MAJOR_SHIFT) | FIT_PROTOCOL_VERSION_MINOR)
|
51
51
|
|
52
|
-
#define FIT_PROFILE_VERSION_MAJOR
|
53
|
-
#define FIT_PROFILE_VERSION_MINOR
|
52
|
+
#define FIT_PROFILE_VERSION_MAJOR 11
|
53
|
+
#define FIT_PROFILE_VERSION_MINOR 0
|
54
54
|
#define FIT_PROFILE_VERSION_SCALE 100
|
55
55
|
#define FIT_PROFILE_VERSION ((FIT_UINT16) (FIT_PROFILE_VERSION_MAJOR * 100 + FIT_PROFILE_VERSION_MINOR))
|
56
56
|
|
data/ext/rubyfit/fit_config.h
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
// warranties of merchantability, non-infringement, or fitness for a particular
|
8
8
|
// purpose, are specifically disclaimed.
|
9
9
|
//
|
10
|
-
// Copyright
|
10
|
+
// Copyright 2014 Dynastream Innovations Inc.
|
11
11
|
////////////////////////////////////////////////////////////////////////////////
|
12
12
|
|
13
13
|
|
data/ext/rubyfit/fit_convert.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 2014 Dynastream Innovations Inc.
|
11
11
|
////////////////////////////////////////////////////////////////////////////////
|
12
12
|
// ****WARNING**** This file is auto-generated! Do NOT edit this file.
|
13
|
-
// Profile Version =
|
14
|
-
// Tag = $Name:
|
13
|
+
// Profile Version = 11.0Release
|
14
|
+
// Tag = $Name: AKW11_000 $
|
15
15
|
// Product = EXAMPLE
|
16
16
|
// Alignment = 4 bytes, padding disabled.
|
17
17
|
////////////////////////////////////////////////////////////////////////////////
|
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 2014 Dynastream Innovations Inc.
|
11
11
|
////////////////////////////////////////////////////////////////////////////////
|
12
12
|
// ****WARNING**** This file is auto-generated! Do NOT edit this file.
|
13
|
-
// Profile Version =
|
14
|
-
// Tag = $Name:
|
13
|
+
// Profile Version = 11.0Release
|
14
|
+
// Tag = $Name: AKW11_000 $
|
15
15
|
// Product = EXAMPLE
|
16
16
|
// Alignment = 4 bytes, padding disabled.
|
17
17
|
////////////////////////////////////////////////////////////////////////////////
|
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 2014 Dynastream Innovations Inc.
|
11
11
|
////////////////////////////////////////////////////////////////////////////////
|
12
12
|
// ****WARNING**** This file is auto-generated! Do NOT edit this file.
|
13
|
-
// Profile Version =
|
14
|
-
// Tag = $Name:
|
13
|
+
// Profile Version = 11.0Release
|
14
|
+
// Tag = $Name: AKW11_000 $
|
15
15
|
// Product = EXAMPLE
|
16
16
|
// Alignment = 4 bytes, padding disabled.
|
17
17
|
////////////////////////////////////////////////////////////////////////////////
|
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 2014 Dynastream Innovations Inc.
|
11
11
|
////////////////////////////////////////////////////////////////////////////////
|
12
12
|
// ****WARNING**** This file is auto-generated! Do NOT edit this file.
|
13
|
-
// Profile Version =
|
14
|
-
// Tag = $Name:
|
13
|
+
// Profile Version = 11.0Release
|
14
|
+
// Tag = $Name: AKW11_000 $
|
15
15
|
// Product = EXAMPLE
|
16
16
|
// Alignment = 4 bytes, padding disabled.
|
17
17
|
////////////////////////////////////////////////////////////////////////////////
|
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 2014 Dynastream Innovations Inc.
|
11
11
|
////////////////////////////////////////////////////////////////////////////////
|
12
12
|
// ****WARNING**** This file is auto-generated! Do NOT edit this file.
|
13
|
-
// Profile Version =
|
14
|
-
// Tag = $Name:
|
13
|
+
// Profile Version = 11.0Release
|
14
|
+
// Tag = $Name: AKW11_000 $
|
15
15
|
// Product = EXAMPLE
|
16
16
|
// Alignment = 4 bytes, padding disabled.
|
17
17
|
////////////////////////////////////////////////////////////////////////////////
|
@@ -93,10 +93,11 @@ const static FIT_CAPABILITIES_MESG_DEF capabilities_mesg_def =
|
|
93
93
|
0, // reserved_1
|
94
94
|
FIT_ARCH_ENDIAN, // arch
|
95
95
|
FIT_MESG_NUM_CAPABILITIES, // global_mesg_num
|
96
|
-
|
96
|
+
4, // num_fields
|
97
97
|
{ // field_def_num, size, base_type
|
98
98
|
FIT_CAPABILITIES_FIELD_NUM_LANGUAGES, (sizeof(FIT_UINT8Z)*4), FIT_BASE_TYPE_UINT8Z,
|
99
99
|
FIT_CAPABILITIES_FIELD_NUM_WORKOUTS_SUPPORTED, (sizeof(FIT_WORKOUT_CAPABILITIES)*1), FIT_BASE_TYPE_UINT32Z,
|
100
|
+
FIT_CAPABILITIES_FIELD_NUM_CONNECTIVITY_SUPPORTED, (sizeof(FIT_CONNECTIVITY_CAPABILITIES)*1), FIT_BASE_TYPE_UINT32Z,
|
100
101
|
FIT_CAPABILITIES_FIELD_NUM_SPORTS, (sizeof(FIT_SPORT_BITS_0)*1), FIT_BASE_TYPE_UINT8Z,
|
101
102
|
}
|
102
103
|
};
|
@@ -163,7 +164,7 @@ const static FIT_USER_PROFILE_MESG_DEF user_profile_mesg_def =
|
|
163
164
|
0, // reserved_1
|
164
165
|
FIT_ARCH_ENDIAN, // arch
|
165
166
|
FIT_MESG_NUM_USER_PROFILE, // global_mesg_num
|
166
|
-
|
167
|
+
23, // num_fields
|
167
168
|
{ // field_def_num, size, base_type
|
168
169
|
FIT_USER_PROFILE_FIELD_NUM_FRIENDLY_NAME, (sizeof(FIT_STRING)*16), FIT_BASE_TYPE_STRING,
|
169
170
|
FIT_USER_PROFILE_FIELD_NUM_MESSAGE_INDEX, (sizeof(FIT_MESSAGE_INDEX)*1), FIT_BASE_TYPE_UINT16,
|
@@ -187,6 +188,7 @@ const static FIT_USER_PROFILE_MESG_DEF user_profile_mesg_def =
|
|
187
188
|
FIT_USER_PROFILE_FIELD_NUM_POSITION_SETTING, (sizeof(FIT_DISPLAY_POSITION)*1), FIT_BASE_TYPE_ENUM,
|
188
189
|
FIT_USER_PROFILE_FIELD_NUM_TEMPERATURE_SETTING, (sizeof(FIT_DISPLAY_MEASURE)*1), FIT_BASE_TYPE_ENUM,
|
189
190
|
FIT_USER_PROFILE_FIELD_NUM_GLOBAL_ID, (sizeof(FIT_BYTE)*6), FIT_BASE_TYPE_BYTE,
|
191
|
+
FIT_USER_PROFILE_FIELD_NUM_HEIGHT_SETTING, (sizeof(FIT_DISPLAY_MEASURE)*1), FIT_BASE_TYPE_ENUM,
|
190
192
|
}
|
191
193
|
};
|
192
194
|
|
@@ -228,7 +230,7 @@ const static FIT_BIKE_PROFILE_MESG_DEF bike_profile_mesg_def =
|
|
228
230
|
0, // reserved_1
|
229
231
|
FIT_ARCH_ENDIAN, // arch
|
230
232
|
FIT_MESG_NUM_BIKE_PROFILE, // global_mesg_num
|
231
|
-
|
233
|
+
31, // num_fields
|
232
234
|
{ // field_def_num, size, base_type
|
233
235
|
FIT_BIKE_PROFILE_FIELD_NUM_NAME, (sizeof(FIT_STRING)*16), FIT_BASE_TYPE_STRING,
|
234
236
|
FIT_BIKE_PROFILE_FIELD_NUM_ODOMETER, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
|
@@ -257,6 +259,10 @@ const static FIT_BIKE_PROFILE_MESG_DEF bike_profile_mesg_def =
|
|
257
259
|
FIT_BIKE_PROFILE_FIELD_NUM_BIKE_SPDCAD_ANT_ID_TRANS_TYPE, (sizeof(FIT_UINT8Z)*1), FIT_BASE_TYPE_UINT8Z,
|
258
260
|
FIT_BIKE_PROFILE_FIELD_NUM_BIKE_POWER_ANT_ID_TRANS_TYPE, (sizeof(FIT_UINT8Z)*1), FIT_BASE_TYPE_UINT8Z,
|
259
261
|
FIT_BIKE_PROFILE_FIELD_NUM_ODOMETER_ROLLOVER, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
|
262
|
+
FIT_BIKE_PROFILE_FIELD_NUM_FRONT_GEAR_NUM, (sizeof(FIT_UINT8Z)*1), FIT_BASE_TYPE_UINT8Z,
|
263
|
+
FIT_BIKE_PROFILE_FIELD_NUM_FRONT_GEAR, (sizeof(FIT_UINT8Z)*1), FIT_BASE_TYPE_UINT8Z,
|
264
|
+
FIT_BIKE_PROFILE_FIELD_NUM_REAR_GEAR_NUM, (sizeof(FIT_UINT8Z)*1), FIT_BASE_TYPE_UINT8Z,
|
265
|
+
FIT_BIKE_PROFILE_FIELD_NUM_REAR_GEAR, (sizeof(FIT_UINT8Z)*1), FIT_BASE_TYPE_UINT8Z,
|
260
266
|
}
|
261
267
|
};
|
262
268
|
|
@@ -399,7 +405,7 @@ const static FIT_SESSION_MESG_DEF session_mesg_def =
|
|
399
405
|
0, // reserved_1
|
400
406
|
FIT_ARCH_ENDIAN, // arch
|
401
407
|
FIT_MESG_NUM_SESSION, // global_mesg_num
|
402
|
-
|
408
|
+
81, // num_fields
|
403
409
|
{ // field_def_num, size, base_type
|
404
410
|
FIT_SESSION_FIELD_NUM_TIMESTAMP, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
|
405
411
|
FIT_SESSION_FIELD_NUM_START_TIME, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
|
@@ -458,6 +464,9 @@ const static FIT_SESSION_MESG_DEF session_mesg_def =
|
|
458
464
|
FIT_SESSION_FIELD_NUM_ZONE_COUNT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
|
459
465
|
FIT_SESSION_FIELD_NUM_MAX_BALL_SPEED, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
|
460
466
|
FIT_SESSION_FIELD_NUM_AVG_BALL_SPEED, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
|
467
|
+
FIT_SESSION_FIELD_NUM_AVG_VERTICAL_OSCILLATION, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
|
468
|
+
FIT_SESSION_FIELD_NUM_AVG_STANCE_TIME_PERCENT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
|
469
|
+
FIT_SESSION_FIELD_NUM_AVG_STANCE_TIME, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
|
461
470
|
FIT_SESSION_FIELD_NUM_EVENT, (sizeof(FIT_EVENT)*1), FIT_BASE_TYPE_ENUM,
|
462
471
|
FIT_SESSION_FIELD_NUM_EVENT_TYPE, (sizeof(FIT_EVENT_TYPE)*1), FIT_BASE_TYPE_ENUM,
|
463
472
|
FIT_SESSION_FIELD_NUM_SPORT, (sizeof(FIT_SPORT)*1), FIT_BASE_TYPE_ENUM,
|
@@ -476,6 +485,9 @@ const static FIT_SESSION_MESG_DEF session_mesg_def =
|
|
476
485
|
FIT_SESSION_FIELD_NUM_MAX_TEMPERATURE, (sizeof(FIT_SINT8)*1), FIT_BASE_TYPE_SINT8,
|
477
486
|
FIT_SESSION_FIELD_NUM_MIN_HEART_RATE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
|
478
487
|
FIT_SESSION_FIELD_NUM_OPPONENT_NAME, (sizeof(FIT_STRING)*1), FIT_BASE_TYPE_STRING,
|
488
|
+
FIT_SESSION_FIELD_NUM_AVG_FRACTIONAL_CADENCE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
|
489
|
+
FIT_SESSION_FIELD_NUM_MAX_FRACTIONAL_CADENCE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
|
490
|
+
FIT_SESSION_FIELD_NUM_TOTAL_FRACTIONAL_CYCLES, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
|
479
491
|
}
|
480
492
|
};
|
481
493
|
|
@@ -484,7 +496,7 @@ const static FIT_LAP_MESG_DEF lap_mesg_def =
|
|
484
496
|
0, // reserved_1
|
485
497
|
FIT_ARCH_ENDIAN, // arch
|
486
498
|
FIT_MESG_NUM_LAP, // global_mesg_num
|
487
|
-
|
499
|
+
77, // num_fields
|
488
500
|
{ // field_def_num, size, base_type
|
489
501
|
FIT_LAP_FIELD_NUM_TIMESTAMP, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
|
490
502
|
FIT_LAP_FIELD_NUM_START_TIME, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
|
@@ -534,7 +546,16 @@ const static FIT_LAP_MESG_DEF lap_mesg_def =
|
|
534
546
|
FIT_LAP_FIELD_NUM_OPPONENT_SCORE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
|
535
547
|
FIT_LAP_FIELD_NUM_STROKE_COUNT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
|
536
548
|
FIT_LAP_FIELD_NUM_ZONE_COUNT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
|
549
|
+
FIT_LAP_FIELD_NUM_AVG_VERTICAL_OSCILLATION, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
|
550
|
+
FIT_LAP_FIELD_NUM_AVG_STANCE_TIME_PERCENT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
|
551
|
+
FIT_LAP_FIELD_NUM_AVG_STANCE_TIME, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
|
537
552
|
FIT_LAP_FIELD_NUM_PLAYER_SCORE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
|
553
|
+
FIT_LAP_FIELD_NUM_AVG_TOTAL_HEMOGLOBIN_CONC, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
|
554
|
+
FIT_LAP_FIELD_NUM_MIN_TOTAL_HEMOGLOBIN_CONC, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
|
555
|
+
FIT_LAP_FIELD_NUM_MAX_TOTAL_HEMOGLOBIN_CONC, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
|
556
|
+
FIT_LAP_FIELD_NUM_AVG_SATURATED_HEMOGLOBIN_PERCENT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
|
557
|
+
FIT_LAP_FIELD_NUM_MIN_SATURATED_HEMOGLOBIN_PERCENT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
|
558
|
+
FIT_LAP_FIELD_NUM_MAX_SATURATED_HEMOGLOBIN_PERCENT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
|
538
559
|
FIT_LAP_FIELD_NUM_EVENT, (sizeof(FIT_EVENT)*1), FIT_BASE_TYPE_ENUM,
|
539
560
|
FIT_LAP_FIELD_NUM_EVENT_TYPE, (sizeof(FIT_EVENT_TYPE)*1), FIT_BASE_TYPE_ENUM,
|
540
561
|
FIT_LAP_FIELD_NUM_AVG_HEART_RATE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
|
@@ -551,6 +572,9 @@ const static FIT_LAP_MESG_DEF lap_mesg_def =
|
|
551
572
|
FIT_LAP_FIELD_NUM_AVG_TEMPERATURE, (sizeof(FIT_SINT8)*1), FIT_BASE_TYPE_SINT8,
|
552
573
|
FIT_LAP_FIELD_NUM_MAX_TEMPERATURE, (sizeof(FIT_SINT8)*1), FIT_BASE_TYPE_SINT8,
|
553
574
|
FIT_LAP_FIELD_NUM_MIN_HEART_RATE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
|
575
|
+
FIT_LAP_FIELD_NUM_AVG_FRACTIONAL_CADENCE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
|
576
|
+
FIT_LAP_FIELD_NUM_MAX_FRACTIONAL_CADENCE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
|
577
|
+
FIT_LAP_FIELD_NUM_TOTAL_FRACTIONAL_CYCLES, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
|
554
578
|
}
|
555
579
|
};
|
556
580
|
|
@@ -587,7 +611,7 @@ const static FIT_RECORD_MESG_DEF record_mesg_def =
|
|
587
611
|
0, // reserved_1
|
588
612
|
FIT_ARCH_ENDIAN, // arch
|
589
613
|
FIT_MESG_NUM_RECORD, // global_mesg_num
|
590
|
-
|
614
|
+
45, // num_fields
|
591
615
|
{ // field_def_num, size, base_type
|
592
616
|
FIT_RECORD_FIELD_NUM_TIMESTAMP, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
|
593
617
|
FIT_RECORD_FIELD_NUM_POSITION_LAT, (sizeof(FIT_SINT32)*1), FIT_BASE_TYPE_SINT32,
|
@@ -603,8 +627,17 @@ const static FIT_RECORD_MESG_DEF record_mesg_def =
|
|
603
627
|
FIT_RECORD_FIELD_NUM_COMPRESSED_ACCUMULATED_POWER, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
|
604
628
|
FIT_RECORD_FIELD_NUM_VERTICAL_SPEED, (sizeof(FIT_SINT16)*1), FIT_BASE_TYPE_SINT16,
|
605
629
|
FIT_RECORD_FIELD_NUM_CALORIES, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
|
630
|
+
FIT_RECORD_FIELD_NUM_VERTICAL_OSCILLATION, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
|
631
|
+
FIT_RECORD_FIELD_NUM_STANCE_TIME_PERCENT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
|
632
|
+
FIT_RECORD_FIELD_NUM_STANCE_TIME, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
|
606
633
|
FIT_RECORD_FIELD_NUM_BALL_SPEED, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
|
607
634
|
FIT_RECORD_FIELD_NUM_CADENCE256, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
|
635
|
+
FIT_RECORD_FIELD_NUM_TOTAL_HEMOGLOBIN_CONC, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
|
636
|
+
FIT_RECORD_FIELD_NUM_TOTAL_HEMOGLOBIN_CONC_MIN, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
|
637
|
+
FIT_RECORD_FIELD_NUM_TOTAL_HEMOGLOBIN_CONC_MAX, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
|
638
|
+
FIT_RECORD_FIELD_NUM_SATURATED_HEMOGLOBIN_PERCENT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
|
639
|
+
FIT_RECORD_FIELD_NUM_SATURATED_HEMOGLOBIN_PERCENT_MIN, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
|
640
|
+
FIT_RECORD_FIELD_NUM_SATURATED_HEMOGLOBIN_PERCENT_MAX, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
|
608
641
|
FIT_RECORD_FIELD_NUM_HEART_RATE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
|
609
642
|
FIT_RECORD_FIELD_NUM_CADENCE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
|
610
643
|
FIT_RECORD_FIELD_NUM_COMPRESSED_SPEED_DISTANCE, (sizeof(FIT_BYTE)*3), FIT_BASE_TYPE_BYTE,
|
@@ -615,6 +648,7 @@ const static FIT_RECORD_MESG_DEF record_mesg_def =
|
|
615
648
|
FIT_RECORD_FIELD_NUM_CYCLES, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
|
616
649
|
FIT_RECORD_FIELD_NUM_LEFT_RIGHT_BALANCE, (sizeof(FIT_LEFT_RIGHT_BALANCE)*1), FIT_BASE_TYPE_UINT8,
|
617
650
|
FIT_RECORD_FIELD_NUM_GPS_ACCURACY, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
|
651
|
+
FIT_RECORD_FIELD_NUM_ACTIVITY_TYPE, (sizeof(FIT_ACTIVITY_TYPE)*1), FIT_BASE_TYPE_ENUM,
|
618
652
|
FIT_RECORD_FIELD_NUM_LEFT_TORQUE_EFFECTIVENESS, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
|
619
653
|
FIT_RECORD_FIELD_NUM_RIGHT_TORQUE_EFFECTIVENESS, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
|
620
654
|
FIT_RECORD_FIELD_NUM_LEFT_PEDAL_SMOOTHNESS, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
|
@@ -623,6 +657,7 @@ const static FIT_RECORD_MESG_DEF record_mesg_def =
|
|
623
657
|
FIT_RECORD_FIELD_NUM_TIME128, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
|
624
658
|
FIT_RECORD_FIELD_NUM_STROKE_TYPE, (sizeof(FIT_STROKE_TYPE)*1), FIT_BASE_TYPE_ENUM,
|
625
659
|
FIT_RECORD_FIELD_NUM_ZONE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
|
660
|
+
FIT_RECORD_FIELD_NUM_DEVICE_INDEX, (sizeof(FIT_DEVICE_INDEX)*1), FIT_BASE_TYPE_UINT8,
|
626
661
|
}
|
627
662
|
};
|
628
663
|
|
@@ -631,7 +666,7 @@ const static FIT_EVENT_MESG_DEF event_mesg_def =
|
|
631
666
|
0, // reserved_1
|
632
667
|
FIT_ARCH_ENDIAN, // arch
|
633
668
|
FIT_MESG_NUM_EVENT, // global_mesg_num
|
634
|
-
|
669
|
+
12, // num_fields
|
635
670
|
{ // field_def_num, size, base_type
|
636
671
|
FIT_EVENT_FIELD_NUM_TIMESTAMP, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
|
637
672
|
FIT_EVENT_FIELD_NUM_DATA, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
|
@@ -641,6 +676,10 @@ const static FIT_EVENT_MESG_DEF event_mesg_def =
|
|
641
676
|
FIT_EVENT_FIELD_NUM_EVENT, (sizeof(FIT_EVENT)*1), FIT_BASE_TYPE_ENUM,
|
642
677
|
FIT_EVENT_FIELD_NUM_EVENT_TYPE, (sizeof(FIT_EVENT_TYPE)*1), FIT_BASE_TYPE_ENUM,
|
643
678
|
FIT_EVENT_FIELD_NUM_EVENT_GROUP, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
|
679
|
+
FIT_EVENT_FIELD_NUM_FRONT_GEAR_NUM, (sizeof(FIT_UINT8Z)*1), FIT_BASE_TYPE_UINT8Z,
|
680
|
+
FIT_EVENT_FIELD_NUM_FRONT_GEAR, (sizeof(FIT_UINT8Z)*1), FIT_BASE_TYPE_UINT8Z,
|
681
|
+
FIT_EVENT_FIELD_NUM_REAR_GEAR_NUM, (sizeof(FIT_UINT8Z)*1), FIT_BASE_TYPE_UINT8Z,
|
682
|
+
FIT_EVENT_FIELD_NUM_REAR_GEAR, (sizeof(FIT_UINT8Z)*1), FIT_BASE_TYPE_UINT8Z,
|
644
683
|
}
|
645
684
|
};
|
646
685
|
|
@@ -649,7 +688,7 @@ const static FIT_DEVICE_INFO_MESG_DEF device_info_mesg_def =
|
|
649
688
|
0, // reserved_1
|
650
689
|
FIT_ARCH_ENDIAN, // arch
|
651
690
|
FIT_MESG_NUM_DEVICE_INFO, // global_mesg_num
|
652
|
-
|
691
|
+
17, // num_fields
|
653
692
|
{ // field_def_num, size, base_type
|
654
693
|
FIT_DEVICE_INFO_FIELD_NUM_TIMESTAMP, (sizeof(FIT_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
|
655
694
|
FIT_DEVICE_INFO_FIELD_NUM_SERIAL_NUMBER, (sizeof(FIT_UINT32Z)*1), FIT_BASE_TYPE_UINT32Z,
|
@@ -658,10 +697,16 @@ const static FIT_DEVICE_INFO_MESG_DEF device_info_mesg_def =
|
|
658
697
|
FIT_DEVICE_INFO_FIELD_NUM_PRODUCT, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
|
659
698
|
FIT_DEVICE_INFO_FIELD_NUM_SOFTWARE_VERSION, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
|
660
699
|
FIT_DEVICE_INFO_FIELD_NUM_BATTERY_VOLTAGE, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
|
700
|
+
FIT_DEVICE_INFO_FIELD_NUM_ANT_DEVICE_NUMBER, (sizeof(FIT_UINT16Z)*1), FIT_BASE_TYPE_UINT16Z,
|
661
701
|
FIT_DEVICE_INFO_FIELD_NUM_DEVICE_INDEX, (sizeof(FIT_DEVICE_INDEX)*1), FIT_BASE_TYPE_UINT8,
|
662
|
-
FIT_DEVICE_INFO_FIELD_NUM_DEVICE_TYPE, (sizeof(
|
702
|
+
FIT_DEVICE_INFO_FIELD_NUM_DEVICE_TYPE, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
|
663
703
|
FIT_DEVICE_INFO_FIELD_NUM_HARDWARE_VERSION, (sizeof(FIT_UINT8)*1), FIT_BASE_TYPE_UINT8,
|
664
704
|
FIT_DEVICE_INFO_FIELD_NUM_BATTERY_STATUS, (sizeof(FIT_BATTERY_STATUS)*1), FIT_BASE_TYPE_UINT8,
|
705
|
+
FIT_DEVICE_INFO_FIELD_NUM_SENSOR_POSITION, (sizeof(FIT_BODY_LOCATION)*1), FIT_BASE_TYPE_ENUM,
|
706
|
+
FIT_DEVICE_INFO_FIELD_NUM_DESCRIPTOR, (sizeof(FIT_STRING)*1), FIT_BASE_TYPE_STRING,
|
707
|
+
FIT_DEVICE_INFO_FIELD_NUM_ANT_TRANSMISSION_TYPE, (sizeof(FIT_UINT8Z)*1), FIT_BASE_TYPE_UINT8Z,
|
708
|
+
FIT_DEVICE_INFO_FIELD_NUM_ANT_NETWORK, (sizeof(FIT_ANT_NETWORK)*1), FIT_BASE_TYPE_ENUM,
|
709
|
+
FIT_DEVICE_INFO_FIELD_NUM_SOURCE_TYPE, (sizeof(FIT_SOURCE_TYPE)*1), FIT_BASE_TYPE_ENUM,
|
665
710
|
}
|
666
711
|
};
|
667
712
|
|
@@ -844,9 +889,9 @@ const static FIT_MONITORING_MESG_DEF monitoring_mesg_def =
|
|
844
889
|
FIT_MONITORING_FIELD_NUM_ACTIVE_TIME, (sizeof(FIT_UINT32)*1), FIT_BASE_TYPE_UINT32,
|
845
890
|
FIT_MONITORING_FIELD_NUM_LOCAL_TIMESTAMP, (sizeof(FIT_LOCAL_DATE_TIME)*1), FIT_BASE_TYPE_UINT32,
|
846
891
|
FIT_MONITORING_FIELD_NUM_CALORIES, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
|
847
|
-
|
848
|
-
|
849
|
-
|
892
|
+
FIT_MONITORING_FIELD_NUM_DISTANCE_16, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
|
893
|
+
FIT_MONITORING_FIELD_NUM_CYCLES_16, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
|
894
|
+
FIT_MONITORING_FIELD_NUM_ACTIVE_TIME_16, (sizeof(FIT_UINT16)*1), FIT_BASE_TYPE_UINT16,
|
850
895
|
FIT_MONITORING_FIELD_NUM_DEVICE_INDEX, (sizeof(FIT_DEVICE_INDEX)*1), FIT_BASE_TYPE_UINT8,
|
851
896
|
FIT_MONITORING_FIELD_NUM_ACTIVITY_TYPE, (sizeof(FIT_ACTIVITY_TYPE)*1), FIT_BASE_TYPE_ENUM,
|
852
897
|
FIT_MONITORING_FIELD_NUM_ACTIVITY_SUBTYPE, (sizeof(FIT_ACTIVITY_SUBTYPE)*1), FIT_BASE_TYPE_ENUM,
|
data/ext/rubyfit/fit_example.h
CHANGED
@@ -7,11 +7,11 @@
|
|
7
7
|
// warranties of merchantability, non-infringement, or fitness for a particular
|
8
8
|
// purpose, are specifically disclaimed.
|
9
9
|
//
|
10
|
-
// Copyright
|
10
|
+
// Copyright 2014 Dynastream Innovations Inc.
|
11
11
|
////////////////////////////////////////////////////////////////////////////////
|
12
12
|
// ****WARNING**** This file is auto-generated! Do NOT edit this file.
|
13
|
-
// Profile Version =
|
14
|
-
// Tag = $Name:
|
13
|
+
// Profile Version = 11.0Release
|
14
|
+
// Tag = $Name: AKW11_000 $
|
15
15
|
// Product = EXAMPLE
|
16
16
|
// Alignment = 4 bytes, padding disabled.
|
17
17
|
////////////////////////////////////////////////////////////////////////////////
|
@@ -51,10 +51,11 @@ typedef FIT_ENUM FIT_FILE;
|
|
51
51
|
#define FIT_FILE_TOTALS ((FIT_FILE)10) // Read only, single file. Directory=Totals
|
52
52
|
#define FIT_FILE_GOALS ((FIT_FILE)11) // Read/write, single file. Directory=Goals
|
53
53
|
#define FIT_FILE_BLOOD_PRESSURE ((FIT_FILE)14) // Read only. Directory=Blood Pressure
|
54
|
-
#define
|
54
|
+
#define FIT_FILE_MONITORING_A ((FIT_FILE)15) // Read only. Directory=Monitoring. File number=sub type.
|
55
55
|
#define FIT_FILE_ACTIVITY_SUMMARY ((FIT_FILE)20) // Read/erase, multiple files. Directory=Activities
|
56
56
|
#define FIT_FILE_MONITORING_DAILY ((FIT_FILE)28)
|
57
|
-
#define
|
57
|
+
#define FIT_FILE_MONITORING_B ((FIT_FILE)32) // Read only. Directory=Monitoring. File number=identifier
|
58
|
+
#define FIT_FILE_COUNT 15
|
58
59
|
|
59
60
|
typedef FIT_UINT16 FIT_MESG_NUM;
|
60
61
|
#define FIT_MESG_NUM_INVALID FIT_UINT16_INVALID
|
@@ -98,9 +99,10 @@ typedef FIT_UINT16 FIT_MESG_NUM;
|
|
98
99
|
#define FIT_MESG_NUM_PAD ((FIT_MESG_NUM)105)
|
99
100
|
#define FIT_MESG_NUM_SLAVE_DEVICE ((FIT_MESG_NUM)106)
|
100
101
|
#define FIT_MESG_NUM_CADENCE_ZONE ((FIT_MESG_NUM)131)
|
102
|
+
#define FIT_MESG_NUM_MEMO_GLOB ((FIT_MESG_NUM)145)
|
101
103
|
#define FIT_MESG_NUM_MFG_RANGE_MIN ((FIT_MESG_NUM)0xFF00) // 0xFF00 - 0xFFFE reserved for manufacturer specific messages
|
102
104
|
#define FIT_MESG_NUM_MFG_RANGE_MAX ((FIT_MESG_NUM)0xFFFE) // 0xFF00 - 0xFFFE reserved for manufacturer specific messages
|
103
|
-
#define FIT_MESG_NUM_COUNT
|
105
|
+
#define FIT_MESG_NUM_COUNT 43
|
104
106
|
|
105
107
|
typedef FIT_UINT8 FIT_CHECKSUM;
|
106
108
|
#define FIT_CHECKSUM_INVALID FIT_UINT8_INVALID
|
@@ -129,7 +131,8 @@ typedef FIT_UINT32 FIT_DATE_TIME; // seconds since UTC 00:00 Dec 31 1989
|
|
129
131
|
|
130
132
|
typedef FIT_UINT32 FIT_LOCAL_DATE_TIME; // seconds since 00:00 Dec 31 1989 in local time zone
|
131
133
|
#define FIT_LOCAL_DATE_TIME_INVALID FIT_UINT32_INVALID
|
132
|
-
#define
|
134
|
+
#define FIT_LOCAL_DATE_TIME_MIN ((FIT_LOCAL_DATE_TIME)0x10000000) // if date_time is < 0x10000000 then it is system time (seconds from device power on)
|
135
|
+
#define FIT_LOCAL_DATE_TIME_COUNT 1
|
133
136
|
|
134
137
|
typedef FIT_UINT16 FIT_MESSAGE_INDEX;
|
135
138
|
#define FIT_MESSAGE_INDEX_INVALID FIT_UINT16_INVALID
|
@@ -258,8 +261,17 @@ typedef FIT_ENUM FIT_SPORT;
|
|
258
261
|
#define FIT_SPORT_TENNIS ((FIT_SPORT)8)
|
259
262
|
#define FIT_SPORT_AMERICAN_FOOTBALL ((FIT_SPORT)9)
|
260
263
|
#define FIT_SPORT_TRAINING ((FIT_SPORT)10)
|
264
|
+
#define FIT_SPORT_WALKING ((FIT_SPORT)11)
|
265
|
+
#define FIT_SPORT_CROSS_COUNTRY_SKIING ((FIT_SPORT)12)
|
266
|
+
#define FIT_SPORT_ALPINE_SKIING ((FIT_SPORT)13)
|
267
|
+
#define FIT_SPORT_SNOWBOARDING ((FIT_SPORT)14)
|
268
|
+
#define FIT_SPORT_ROWING ((FIT_SPORT)15)
|
269
|
+
#define FIT_SPORT_MOUNTAINEERING ((FIT_SPORT)16)
|
270
|
+
#define FIT_SPORT_HIKING ((FIT_SPORT)17)
|
271
|
+
#define FIT_SPORT_MULTISPORT ((FIT_SPORT)18)
|
272
|
+
#define FIT_SPORT_PADDLING ((FIT_SPORT)19)
|
261
273
|
#define FIT_SPORT_ALL ((FIT_SPORT)254) // All is for goals only to include all sports.
|
262
|
-
#define FIT_SPORT_COUNT
|
274
|
+
#define FIT_SPORT_COUNT 21
|
263
275
|
|
264
276
|
typedef FIT_UINT8Z FIT_SPORT_BITS_0; // Bit field corresponding to sport enum type (1 << sport).
|
265
277
|
#define FIT_SPORT_BITS_0_INVALID FIT_UINT8Z_INVALID
|
@@ -278,17 +290,30 @@ typedef FIT_UINT8Z FIT_SPORT_BITS_1; // Bit field corresponding to sport enum ty
|
|
278
290
|
#define FIT_SPORT_BITS_1_TENNIS ((FIT_SPORT_BITS_1)0x01)
|
279
291
|
#define FIT_SPORT_BITS_1_AMERICAN_FOOTBALL ((FIT_SPORT_BITS_1)0x02)
|
280
292
|
#define FIT_SPORT_BITS_1_TRAINING ((FIT_SPORT_BITS_1)0x04)
|
281
|
-
#define
|
293
|
+
#define FIT_SPORT_BITS_1_WALKING ((FIT_SPORT_BITS_1)0x08)
|
294
|
+
#define FIT_SPORT_BITS_1_CROSS_COUNTRY_SKIING ((FIT_SPORT_BITS_1)0x10)
|
295
|
+
#define FIT_SPORT_BITS_1_ALPINE_SKIING ((FIT_SPORT_BITS_1)0x20)
|
296
|
+
#define FIT_SPORT_BITS_1_SNOWBOARDING ((FIT_SPORT_BITS_1)0x40)
|
297
|
+
#define FIT_SPORT_BITS_1_ROWING ((FIT_SPORT_BITS_1)0x80)
|
298
|
+
#define FIT_SPORT_BITS_1_COUNT 8
|
299
|
+
|
300
|
+
typedef FIT_UINT8Z FIT_SPORT_BITS_2; // Bit field corresponding to sport enum type (1 << (sport-16)).
|
301
|
+
#define FIT_SPORT_BITS_2_INVALID FIT_UINT8Z_INVALID
|
302
|
+
#define FIT_SPORT_BITS_2_MOUNTAINEERING ((FIT_SPORT_BITS_2)0x01)
|
303
|
+
#define FIT_SPORT_BITS_2_HIKING ((FIT_SPORT_BITS_2)0x02)
|
304
|
+
#define FIT_SPORT_BITS_2_MULTISPORT ((FIT_SPORT_BITS_2)0x04)
|
305
|
+
#define FIT_SPORT_BITS_2_PADDLING ((FIT_SPORT_BITS_2)0x08)
|
306
|
+
#define FIT_SPORT_BITS_2_COUNT 4
|
282
307
|
|
283
308
|
typedef FIT_ENUM FIT_SUB_SPORT;
|
284
309
|
#define FIT_SUB_SPORT_INVALID FIT_ENUM_INVALID
|
285
310
|
#define FIT_SUB_SPORT_GENERIC ((FIT_SUB_SPORT)0)
|
286
|
-
#define FIT_SUB_SPORT_TREADMILL ((FIT_SUB_SPORT)1) // Run
|
311
|
+
#define FIT_SUB_SPORT_TREADMILL ((FIT_SUB_SPORT)1) // Run/Fitness Equipment
|
287
312
|
#define FIT_SUB_SPORT_STREET ((FIT_SUB_SPORT)2) // Run
|
288
313
|
#define FIT_SUB_SPORT_TRAIL ((FIT_SUB_SPORT)3) // Run
|
289
314
|
#define FIT_SUB_SPORT_TRACK ((FIT_SUB_SPORT)4) // Run
|
290
315
|
#define FIT_SUB_SPORT_SPIN ((FIT_SUB_SPORT)5) // Cycling
|
291
|
-
#define FIT_SUB_SPORT_INDOOR_CYCLING ((FIT_SUB_SPORT)6) // Cycling
|
316
|
+
#define FIT_SUB_SPORT_INDOOR_CYCLING ((FIT_SUB_SPORT)6) // Cycling/Fitness Equipment
|
292
317
|
#define FIT_SUB_SPORT_ROAD ((FIT_SUB_SPORT)7) // Cycling
|
293
318
|
#define FIT_SUB_SPORT_MOUNTAIN ((FIT_SUB_SPORT)8) // Cycling
|
294
319
|
#define FIT_SUB_SPORT_DOWNHILL ((FIT_SUB_SPORT)9) // Cycling
|
@@ -307,8 +332,10 @@ typedef FIT_ENUM FIT_SUB_SPORT;
|
|
307
332
|
#define FIT_SUB_SPORT_MATCH ((FIT_SUB_SPORT)22) // Tennis
|
308
333
|
#define FIT_SUB_SPORT_EXERCISE ((FIT_SUB_SPORT)23) // Tennis
|
309
334
|
#define FIT_SUB_SPORT_CHALLENGE ((FIT_SUB_SPORT)24) // Tennis
|
335
|
+
#define FIT_SUB_SPORT_INDOOR_SKIING ((FIT_SUB_SPORT)25) // Fitness Equipment
|
336
|
+
#define FIT_SUB_SPORT_CARDIO_TRAINING ((FIT_SUB_SPORT)26) // Training
|
310
337
|
#define FIT_SUB_SPORT_ALL ((FIT_SUB_SPORT)254)
|
311
|
-
#define FIT_SUB_SPORT_COUNT
|
338
|
+
#define FIT_SUB_SPORT_COUNT 28
|
312
339
|
|
313
340
|
typedef FIT_ENUM FIT_ACTIVITY;
|
314
341
|
#define FIT_ACTIVITY_INVALID FIT_ENUM_INVALID
|
@@ -388,7 +415,9 @@ typedef FIT_ENUM FIT_EVENT;
|
|
388
415
|
#define FIT_EVENT_USER_MARKER ((FIT_EVENT)32) // marker
|
389
416
|
#define FIT_EVENT_SPORT_POINT ((FIT_EVENT)33) // marker
|
390
417
|
#define FIT_EVENT_CALIBRATION ((FIT_EVENT)36) // start/stop/marker
|
391
|
-
#define
|
418
|
+
#define FIT_EVENT_FRONT_GEAR_CHANGE ((FIT_EVENT)42) // marker
|
419
|
+
#define FIT_EVENT_REAR_GEAR_CHANGE ((FIT_EVENT)43) // marker
|
420
|
+
#define FIT_EVENT_COUNT 32
|
392
421
|
|
393
422
|
typedef FIT_ENUM FIT_EVENT_TYPE;
|
394
423
|
#define FIT_EVENT_TYPE_INVALID FIT_ENUM_INVALID
|
@@ -596,10 +625,21 @@ typedef FIT_UINT16 FIT_MANUFACTURER;
|
|
596
625
|
#define FIT_MANUFACTURER_SIGMASPORT ((FIT_MANUFACTURER)70)
|
597
626
|
#define FIT_MANUFACTURER_TOMTOM ((FIT_MANUFACTURER)71)
|
598
627
|
#define FIT_MANUFACTURER_PERIPEDAL ((FIT_MANUFACTURER)72)
|
628
|
+
#define FIT_MANUFACTURER_WATTBIKE ((FIT_MANUFACTURER)73)
|
599
629
|
#define FIT_MANUFACTURER_MOXY ((FIT_MANUFACTURER)76)
|
630
|
+
#define FIT_MANUFACTURER_CICLOSPORT ((FIT_MANUFACTURER)77)
|
631
|
+
#define FIT_MANUFACTURER_POWERBAHN ((FIT_MANUFACTURER)78)
|
632
|
+
#define FIT_MANUFACTURER_ACORN_PROJECTS_APS ((FIT_MANUFACTURER)79)
|
633
|
+
#define FIT_MANUFACTURER_LIFEBEAM ((FIT_MANUFACTURER)80)
|
634
|
+
#define FIT_MANUFACTURER_BONTRAGER ((FIT_MANUFACTURER)81)
|
635
|
+
#define FIT_MANUFACTURER_WELLGO ((FIT_MANUFACTURER)82)
|
636
|
+
#define FIT_MANUFACTURER_SCOSCHE ((FIT_MANUFACTURER)83)
|
637
|
+
#define FIT_MANUFACTURER_MAGURA ((FIT_MANUFACTURER)84)
|
638
|
+
#define FIT_MANUFACTURER_WOODWAY ((FIT_MANUFACTURER)85)
|
639
|
+
#define FIT_MANUFACTURER_ELITE ((FIT_MANUFACTURER)86)
|
600
640
|
#define FIT_MANUFACTURER_DEVELOPMENT ((FIT_MANUFACTURER)255)
|
601
641
|
#define FIT_MANUFACTURER_ACTIGRAPHCORP ((FIT_MANUFACTURER)5759)
|
602
|
-
#define FIT_MANUFACTURER_COUNT
|
642
|
+
#define FIT_MANUFACTURER_COUNT 85
|
603
643
|
|
604
644
|
typedef FIT_UINT16 FIT_GARMIN_PRODUCT;
|
605
645
|
#define FIT_GARMIN_PRODUCT_INVALID FIT_UINT16_INVALID
|
@@ -609,56 +649,109 @@ typedef FIT_UINT16 FIT_GARMIN_PRODUCT;
|
|
609
649
|
#define FIT_GARMIN_PRODUCT_AXB02 ((FIT_GARMIN_PRODUCT)4)
|
610
650
|
#define FIT_GARMIN_PRODUCT_HRM2SS ((FIT_GARMIN_PRODUCT)5)
|
611
651
|
#define FIT_GARMIN_PRODUCT_DSI_ALF02 ((FIT_GARMIN_PRODUCT)6)
|
652
|
+
#define FIT_GARMIN_PRODUCT_HRM3SS ((FIT_GARMIN_PRODUCT)7)
|
653
|
+
#define FIT_GARMIN_PRODUCT_HRM_RUN_SINGLE_BYTE_PRODUCT_ID ((FIT_GARMIN_PRODUCT)8) // hrm_run model for HRM ANT+ messaging
|
654
|
+
#define FIT_GARMIN_PRODUCT_BSM ((FIT_GARMIN_PRODUCT)9) // BSM model for ANT+ messaging
|
655
|
+
#define FIT_GARMIN_PRODUCT_BCM ((FIT_GARMIN_PRODUCT)10) // BCM model for ANT+ messaging
|
656
|
+
#define FIT_GARMIN_PRODUCT_FR301_CHINA ((FIT_GARMIN_PRODUCT)473)
|
657
|
+
#define FIT_GARMIN_PRODUCT_FR301_JAPAN ((FIT_GARMIN_PRODUCT)474)
|
658
|
+
#define FIT_GARMIN_PRODUCT_FR301_KOREA ((FIT_GARMIN_PRODUCT)475)
|
659
|
+
#define FIT_GARMIN_PRODUCT_FR301_TAIWAN ((FIT_GARMIN_PRODUCT)494)
|
612
660
|
#define FIT_GARMIN_PRODUCT_FR405 ((FIT_GARMIN_PRODUCT)717) // Forerunner 405
|
613
661
|
#define FIT_GARMIN_PRODUCT_FR50 ((FIT_GARMIN_PRODUCT)782) // Forerunner 50
|
662
|
+
#define FIT_GARMIN_PRODUCT_FR405_JAPAN ((FIT_GARMIN_PRODUCT)987)
|
614
663
|
#define FIT_GARMIN_PRODUCT_FR60 ((FIT_GARMIN_PRODUCT)988) // Forerunner 60
|
615
664
|
#define FIT_GARMIN_PRODUCT_DSI_ALF01 ((FIT_GARMIN_PRODUCT)1011)
|
616
665
|
#define FIT_GARMIN_PRODUCT_FR310XT ((FIT_GARMIN_PRODUCT)1018) // Forerunner 310
|
617
666
|
#define FIT_GARMIN_PRODUCT_EDGE500 ((FIT_GARMIN_PRODUCT)1036)
|
618
667
|
#define FIT_GARMIN_PRODUCT_FR110 ((FIT_GARMIN_PRODUCT)1124) // Forerunner 110
|
619
668
|
#define FIT_GARMIN_PRODUCT_EDGE800 ((FIT_GARMIN_PRODUCT)1169)
|
669
|
+
#define FIT_GARMIN_PRODUCT_EDGE500_TAIWAN ((FIT_GARMIN_PRODUCT)1199)
|
670
|
+
#define FIT_GARMIN_PRODUCT_EDGE500_JAPAN ((FIT_GARMIN_PRODUCT)1213)
|
620
671
|
#define FIT_GARMIN_PRODUCT_CHIRP ((FIT_GARMIN_PRODUCT)1253)
|
672
|
+
#define FIT_GARMIN_PRODUCT_FR110_JAPAN ((FIT_GARMIN_PRODUCT)1274)
|
621
673
|
#define FIT_GARMIN_PRODUCT_EDGE200 ((FIT_GARMIN_PRODUCT)1325)
|
622
674
|
#define FIT_GARMIN_PRODUCT_FR910XT ((FIT_GARMIN_PRODUCT)1328)
|
675
|
+
#define FIT_GARMIN_PRODUCT_EDGE800_TAIWAN ((FIT_GARMIN_PRODUCT)1333)
|
676
|
+
#define FIT_GARMIN_PRODUCT_EDGE800_JAPAN ((FIT_GARMIN_PRODUCT)1334)
|
623
677
|
#define FIT_GARMIN_PRODUCT_ALF04 ((FIT_GARMIN_PRODUCT)1341)
|
624
678
|
#define FIT_GARMIN_PRODUCT_FR610 ((FIT_GARMIN_PRODUCT)1345)
|
679
|
+
#define FIT_GARMIN_PRODUCT_FR210_JAPAN ((FIT_GARMIN_PRODUCT)1360)
|
680
|
+
#define FIT_GARMIN_PRODUCT_VECTOR_SS ((FIT_GARMIN_PRODUCT)1380)
|
681
|
+
#define FIT_GARMIN_PRODUCT_VECTOR_CP ((FIT_GARMIN_PRODUCT)1381)
|
682
|
+
#define FIT_GARMIN_PRODUCT_EDGE800_CHINA ((FIT_GARMIN_PRODUCT)1386)
|
683
|
+
#define FIT_GARMIN_PRODUCT_EDGE500_CHINA ((FIT_GARMIN_PRODUCT)1387)
|
684
|
+
#define FIT_GARMIN_PRODUCT_FR610_JAPAN ((FIT_GARMIN_PRODUCT)1410)
|
685
|
+
#define FIT_GARMIN_PRODUCT_EDGE500_KOREA ((FIT_GARMIN_PRODUCT)1422)
|
625
686
|
#define FIT_GARMIN_PRODUCT_FR70 ((FIT_GARMIN_PRODUCT)1436)
|
626
687
|
#define FIT_GARMIN_PRODUCT_FR310XT_4T ((FIT_GARMIN_PRODUCT)1446)
|
627
688
|
#define FIT_GARMIN_PRODUCT_AMX ((FIT_GARMIN_PRODUCT)1461)
|
628
689
|
#define FIT_GARMIN_PRODUCT_FR10 ((FIT_GARMIN_PRODUCT)1482)
|
690
|
+
#define FIT_GARMIN_PRODUCT_EDGE800_KOREA ((FIT_GARMIN_PRODUCT)1497)
|
629
691
|
#define FIT_GARMIN_PRODUCT_SWIM ((FIT_GARMIN_PRODUCT)1499)
|
692
|
+
#define FIT_GARMIN_PRODUCT_FR910XT_CHINA ((FIT_GARMIN_PRODUCT)1537)
|
630
693
|
#define FIT_GARMIN_PRODUCT_FENIX ((FIT_GARMIN_PRODUCT)1551)
|
694
|
+
#define FIT_GARMIN_PRODUCT_EDGE200_TAIWAN ((FIT_GARMIN_PRODUCT)1555)
|
631
695
|
#define FIT_GARMIN_PRODUCT_EDGE510 ((FIT_GARMIN_PRODUCT)1561)
|
632
696
|
#define FIT_GARMIN_PRODUCT_EDGE810 ((FIT_GARMIN_PRODUCT)1567)
|
633
697
|
#define FIT_GARMIN_PRODUCT_TEMPE ((FIT_GARMIN_PRODUCT)1570)
|
698
|
+
#define FIT_GARMIN_PRODUCT_FR910XT_JAPAN ((FIT_GARMIN_PRODUCT)1600)
|
699
|
+
#define FIT_GARMIN_PRODUCT_FR620 ((FIT_GARMIN_PRODUCT)1623)
|
700
|
+
#define FIT_GARMIN_PRODUCT_FR220 ((FIT_GARMIN_PRODUCT)1632)
|
701
|
+
#define FIT_GARMIN_PRODUCT_FR910XT_KOREA ((FIT_GARMIN_PRODUCT)1664)
|
702
|
+
#define FIT_GARMIN_PRODUCT_FR10_JAPAN ((FIT_GARMIN_PRODUCT)1688)
|
703
|
+
#define FIT_GARMIN_PRODUCT_EDGE810_JAPAN ((FIT_GARMIN_PRODUCT)1721)
|
634
704
|
#define FIT_GARMIN_PRODUCT_VIRB_ELITE ((FIT_GARMIN_PRODUCT)1735)
|
635
|
-
#define FIT_GARMIN_PRODUCT_EDGE_TOURING ((FIT_GARMIN_PRODUCT)1736)
|
705
|
+
#define FIT_GARMIN_PRODUCT_EDGE_TOURING ((FIT_GARMIN_PRODUCT)1736) // Also Edge Touring Plus
|
706
|
+
#define FIT_GARMIN_PRODUCT_EDGE510_JAPAN ((FIT_GARMIN_PRODUCT)1742)
|
707
|
+
#define FIT_GARMIN_PRODUCT_HRM_RUN ((FIT_GARMIN_PRODUCT)1752)
|
708
|
+
#define FIT_GARMIN_PRODUCT_EDGE510_ASIA ((FIT_GARMIN_PRODUCT)1821)
|
709
|
+
#define FIT_GARMIN_PRODUCT_EDGE810_CHINA ((FIT_GARMIN_PRODUCT)1822)
|
710
|
+
#define FIT_GARMIN_PRODUCT_EDGE810_TAIWAN ((FIT_GARMIN_PRODUCT)1823)
|
711
|
+
#define FIT_GARMIN_PRODUCT_EDGE1000 ((FIT_GARMIN_PRODUCT)1836)
|
712
|
+
#define FIT_GARMIN_PRODUCT_VIVO_FIT ((FIT_GARMIN_PRODUCT)1837)
|
713
|
+
#define FIT_GARMIN_PRODUCT_VIRB_REMOTE ((FIT_GARMIN_PRODUCT)1853)
|
714
|
+
#define FIT_GARMIN_PRODUCT_VIVO_KI ((FIT_GARMIN_PRODUCT)1885)
|
715
|
+
#define FIT_GARMIN_PRODUCT_EDGE510_KOREA ((FIT_GARMIN_PRODUCT)1918)
|
716
|
+
#define FIT_GARMIN_PRODUCT_FR620_JAPAN ((FIT_GARMIN_PRODUCT)1928)
|
717
|
+
#define FIT_GARMIN_PRODUCT_FR620_CHINA ((FIT_GARMIN_PRODUCT)1929)
|
718
|
+
#define FIT_GARMIN_PRODUCT_FR220_JAPAN ((FIT_GARMIN_PRODUCT)1930)
|
719
|
+
#define FIT_GARMIN_PRODUCT_FR220_CHINA ((FIT_GARMIN_PRODUCT)1931)
|
636
720
|
#define FIT_GARMIN_PRODUCT_SDM4 ((FIT_GARMIN_PRODUCT)10007) // SDM4 footpod
|
721
|
+
#define FIT_GARMIN_PRODUCT_EDGE_REMOTE ((FIT_GARMIN_PRODUCT)10014)
|
637
722
|
#define FIT_GARMIN_PRODUCT_TRAINING_CENTER ((FIT_GARMIN_PRODUCT)20119)
|
638
723
|
#define FIT_GARMIN_PRODUCT_ANDROID_ANTPLUS_PLUGIN ((FIT_GARMIN_PRODUCT)65532)
|
639
724
|
#define FIT_GARMIN_PRODUCT_CONNECT ((FIT_GARMIN_PRODUCT)65534) // Garmin Connect website
|
640
|
-
#define FIT_GARMIN_PRODUCT_COUNT
|
641
|
-
|
642
|
-
typedef FIT_UINT8
|
643
|
-
#define
|
644
|
-
#define
|
645
|
-
#define
|
646
|
-
#define
|
647
|
-
#define
|
648
|
-
#define
|
649
|
-
#define
|
650
|
-
#define
|
651
|
-
#define
|
652
|
-
#define
|
653
|
-
#define
|
654
|
-
#define
|
655
|
-
#define
|
656
|
-
#define
|
657
|
-
#define
|
658
|
-
#define
|
659
|
-
#define
|
660
|
-
#define
|
661
|
-
#define
|
725
|
+
#define FIT_GARMIN_PRODUCT_COUNT 79
|
726
|
+
|
727
|
+
typedef FIT_UINT8 FIT_ANTPLUS_DEVICE_TYPE;
|
728
|
+
#define FIT_ANTPLUS_DEVICE_TYPE_INVALID FIT_UINT8_INVALID
|
729
|
+
#define FIT_ANTPLUS_DEVICE_TYPE_ANTFS ((FIT_ANTPLUS_DEVICE_TYPE)1)
|
730
|
+
#define FIT_ANTPLUS_DEVICE_TYPE_BIKE_POWER ((FIT_ANTPLUS_DEVICE_TYPE)11)
|
731
|
+
#define FIT_ANTPLUS_DEVICE_TYPE_ENVIRONMENT_SENSOR_LEGACY ((FIT_ANTPLUS_DEVICE_TYPE)12)
|
732
|
+
#define FIT_ANTPLUS_DEVICE_TYPE_MULTI_SPORT_SPEED_DISTANCE ((FIT_ANTPLUS_DEVICE_TYPE)15)
|
733
|
+
#define FIT_ANTPLUS_DEVICE_TYPE_CONTROL ((FIT_ANTPLUS_DEVICE_TYPE)16)
|
734
|
+
#define FIT_ANTPLUS_DEVICE_TYPE_FITNESS_EQUIPMENT ((FIT_ANTPLUS_DEVICE_TYPE)17)
|
735
|
+
#define FIT_ANTPLUS_DEVICE_TYPE_BLOOD_PRESSURE ((FIT_ANTPLUS_DEVICE_TYPE)18)
|
736
|
+
#define FIT_ANTPLUS_DEVICE_TYPE_GEOCACHE_NODE ((FIT_ANTPLUS_DEVICE_TYPE)19)
|
737
|
+
#define FIT_ANTPLUS_DEVICE_TYPE_LIGHT_ELECTRIC_VEHICLE ((FIT_ANTPLUS_DEVICE_TYPE)20)
|
738
|
+
#define FIT_ANTPLUS_DEVICE_TYPE_ENV_SENSOR ((FIT_ANTPLUS_DEVICE_TYPE)25)
|
739
|
+
#define FIT_ANTPLUS_DEVICE_TYPE_RACQUET ((FIT_ANTPLUS_DEVICE_TYPE)26)
|
740
|
+
#define FIT_ANTPLUS_DEVICE_TYPE_WEIGHT_SCALE ((FIT_ANTPLUS_DEVICE_TYPE)119)
|
741
|
+
#define FIT_ANTPLUS_DEVICE_TYPE_HEART_RATE ((FIT_ANTPLUS_DEVICE_TYPE)120)
|
742
|
+
#define FIT_ANTPLUS_DEVICE_TYPE_BIKE_SPEED_CADENCE ((FIT_ANTPLUS_DEVICE_TYPE)121)
|
743
|
+
#define FIT_ANTPLUS_DEVICE_TYPE_BIKE_CADENCE ((FIT_ANTPLUS_DEVICE_TYPE)122)
|
744
|
+
#define FIT_ANTPLUS_DEVICE_TYPE_BIKE_SPEED ((FIT_ANTPLUS_DEVICE_TYPE)123)
|
745
|
+
#define FIT_ANTPLUS_DEVICE_TYPE_STRIDE_SPEED_DISTANCE ((FIT_ANTPLUS_DEVICE_TYPE)124)
|
746
|
+
#define FIT_ANTPLUS_DEVICE_TYPE_COUNT 17
|
747
|
+
|
748
|
+
typedef FIT_ENUM FIT_ANT_NETWORK;
|
749
|
+
#define FIT_ANT_NETWORK_INVALID FIT_ENUM_INVALID
|
750
|
+
#define FIT_ANT_NETWORK_PUBLIC ((FIT_ANT_NETWORK)0)
|
751
|
+
#define FIT_ANT_NETWORK_ANTPLUS ((FIT_ANT_NETWORK)1)
|
752
|
+
#define FIT_ANT_NETWORK_ANTFS ((FIT_ANT_NETWORK)2)
|
753
|
+
#define FIT_ANT_NETWORK_PRIVATE ((FIT_ANT_NETWORK)3)
|
754
|
+
#define FIT_ANT_NETWORK_COUNT 4
|
662
755
|
|
663
756
|
typedef FIT_UINT32Z FIT_WORKOUT_CAPABILITIES;
|
664
757
|
#define FIT_WORKOUT_CAPABILITIES_INVALID FIT_UINT32Z_INVALID
|
@@ -733,7 +826,7 @@ typedef FIT_ENUM FIT_BP_STATUS;
|
|
733
826
|
|
734
827
|
typedef FIT_UINT16 FIT_USER_LOCAL_ID;
|
735
828
|
#define FIT_USER_LOCAL_ID_INVALID FIT_UINT16_INVALID
|
736
|
-
#define FIT_USER_LOCAL_ID_LOCAL_MIN ((FIT_USER_LOCAL_ID)
|
829
|
+
#define FIT_USER_LOCAL_ID_LOCAL_MIN ((FIT_USER_LOCAL_ID)0x0000)
|
737
830
|
#define FIT_USER_LOCAL_ID_LOCAL_MAX ((FIT_USER_LOCAL_ID)0x000F)
|
738
831
|
#define FIT_USER_LOCAL_ID_STATIONARY_MIN ((FIT_USER_LOCAL_ID)0x0010)
|
739
832
|
#define FIT_USER_LOCAL_ID_STATIONARY_MAX ((FIT_USER_LOCAL_ID)0x00FF)
|
@@ -813,6 +906,22 @@ typedef FIT_ENUM FIT_LENGTH_TYPE;
|
|
813
906
|
#define FIT_LENGTH_TYPE_ACTIVE ((FIT_LENGTH_TYPE)1) // Length with strokes.
|
814
907
|
#define FIT_LENGTH_TYPE_COUNT 2
|
815
908
|
|
909
|
+
typedef FIT_UINT32Z FIT_CONNECTIVITY_CAPABILITIES;
|
910
|
+
#define FIT_CONNECTIVITY_CAPABILITIES_INVALID FIT_UINT32Z_INVALID
|
911
|
+
#define FIT_CONNECTIVITY_CAPABILITIES_BLUETOOTH ((FIT_CONNECTIVITY_CAPABILITIES)0x00000001)
|
912
|
+
#define FIT_CONNECTIVITY_CAPABILITIES_BLUETOOTH_LE ((FIT_CONNECTIVITY_CAPABILITIES)0x00000002)
|
913
|
+
#define FIT_CONNECTIVITY_CAPABILITIES_ANT ((FIT_CONNECTIVITY_CAPABILITIES)0x00000004)
|
914
|
+
#define FIT_CONNECTIVITY_CAPABILITIES_ACTIVITY_UPLOAD ((FIT_CONNECTIVITY_CAPABILITIES)0x00000008)
|
915
|
+
#define FIT_CONNECTIVITY_CAPABILITIES_COURSE_DOWNLOAD ((FIT_CONNECTIVITY_CAPABILITIES)0x00000010)
|
916
|
+
#define FIT_CONNECTIVITY_CAPABILITIES_WORKOUT_DOWNLOAD ((FIT_CONNECTIVITY_CAPABILITIES)0x00000020)
|
917
|
+
#define FIT_CONNECTIVITY_CAPABILITIES_LIVE_TRACK ((FIT_CONNECTIVITY_CAPABILITIES)0x00000040)
|
918
|
+
#define FIT_CONNECTIVITY_CAPABILITIES_WEATHER_CONDITIONS ((FIT_CONNECTIVITY_CAPABILITIES)0x00000080)
|
919
|
+
#define FIT_CONNECTIVITY_CAPABILITIES_WEATHER_ALERTS ((FIT_CONNECTIVITY_CAPABILITIES)0x00000100)
|
920
|
+
#define FIT_CONNECTIVITY_CAPABILITIES_GPS_EPHEMERIS_DOWNLOAD ((FIT_CONNECTIVITY_CAPABILITIES)0x00000200)
|
921
|
+
#define FIT_CONNECTIVITY_CAPABILITIES_EXPLICIT_ARCHIVE ((FIT_CONNECTIVITY_CAPABILITIES)0x00000400)
|
922
|
+
#define FIT_CONNECTIVITY_CAPABILITIES_SETUP_INCOMPLETE ((FIT_CONNECTIVITY_CAPABILITIES)0x00000800)
|
923
|
+
#define FIT_CONNECTIVITY_CAPABILITIES_COUNT 12
|
924
|
+
|
816
925
|
typedef FIT_ENUM FIT_STROKE_TYPE;
|
817
926
|
#define FIT_STROKE_TYPE_INVALID FIT_ENUM_INVALID
|
818
927
|
#define FIT_STROKE_TYPE_NO_EVENT ((FIT_STROKE_TYPE)0)
|
@@ -823,6 +932,56 @@ typedef FIT_ENUM FIT_STROKE_TYPE;
|
|
823
932
|
#define FIT_STROKE_TYPE_SMASH ((FIT_STROKE_TYPE)5)
|
824
933
|
#define FIT_STROKE_TYPE_COUNT 6
|
825
934
|
|
935
|
+
typedef FIT_ENUM FIT_BODY_LOCATION;
|
936
|
+
#define FIT_BODY_LOCATION_INVALID FIT_ENUM_INVALID
|
937
|
+
#define FIT_BODY_LOCATION_LEFT_LEG ((FIT_BODY_LOCATION)0)
|
938
|
+
#define FIT_BODY_LOCATION_LEFT_CALF ((FIT_BODY_LOCATION)1)
|
939
|
+
#define FIT_BODY_LOCATION_LEFT_SHIN ((FIT_BODY_LOCATION)2)
|
940
|
+
#define FIT_BODY_LOCATION_LEFT_HAMSTRING ((FIT_BODY_LOCATION)3)
|
941
|
+
#define FIT_BODY_LOCATION_LEFT_QUAD ((FIT_BODY_LOCATION)4)
|
942
|
+
#define FIT_BODY_LOCATION_LEFT_GLUTE ((FIT_BODY_LOCATION)5)
|
943
|
+
#define FIT_BODY_LOCATION_RIGHT_LEG ((FIT_BODY_LOCATION)6)
|
944
|
+
#define FIT_BODY_LOCATION_RIGHT_CALF ((FIT_BODY_LOCATION)7)
|
945
|
+
#define FIT_BODY_LOCATION_RIGHT_SHIN ((FIT_BODY_LOCATION)8)
|
946
|
+
#define FIT_BODY_LOCATION_RIGHT_HAMSTRING ((FIT_BODY_LOCATION)9)
|
947
|
+
#define FIT_BODY_LOCATION_RIGHT_QUAD ((FIT_BODY_LOCATION)10)
|
948
|
+
#define FIT_BODY_LOCATION_RIGHT_GLUTE ((FIT_BODY_LOCATION)11)
|
949
|
+
#define FIT_BODY_LOCATION_TORSO_BACK ((FIT_BODY_LOCATION)12)
|
950
|
+
#define FIT_BODY_LOCATION_LEFT_LOWER_BACK ((FIT_BODY_LOCATION)13)
|
951
|
+
#define FIT_BODY_LOCATION_LEFT_UPPER_BACK ((FIT_BODY_LOCATION)14)
|
952
|
+
#define FIT_BODY_LOCATION_RIGHT_LOWER_BACK ((FIT_BODY_LOCATION)15)
|
953
|
+
#define FIT_BODY_LOCATION_RIGHT_UPPER_BACK ((FIT_BODY_LOCATION)16)
|
954
|
+
#define FIT_BODY_LOCATION_TORSO_FRONT ((FIT_BODY_LOCATION)17)
|
955
|
+
#define FIT_BODY_LOCATION_LEFT_ABDOMEN ((FIT_BODY_LOCATION)18)
|
956
|
+
#define FIT_BODY_LOCATION_LEFT_CHEST ((FIT_BODY_LOCATION)19)
|
957
|
+
#define FIT_BODY_LOCATION_RIGHT_ABDOMEN ((FIT_BODY_LOCATION)20)
|
958
|
+
#define FIT_BODY_LOCATION_RIGHT_CHEST ((FIT_BODY_LOCATION)21)
|
959
|
+
#define FIT_BODY_LOCATION_LEFT_ARM ((FIT_BODY_LOCATION)22)
|
960
|
+
#define FIT_BODY_LOCATION_LEFT_SHOULDER ((FIT_BODY_LOCATION)23)
|
961
|
+
#define FIT_BODY_LOCATION_LEFT_BICEP ((FIT_BODY_LOCATION)24)
|
962
|
+
#define FIT_BODY_LOCATION_LEFT_TRICEP ((FIT_BODY_LOCATION)25)
|
963
|
+
#define FIT_BODY_LOCATION_LEFT_BRACHIORADIALIS ((FIT_BODY_LOCATION)26) // Left anterior forearm
|
964
|
+
#define FIT_BODY_LOCATION_LEFT_FOREARM_EXTENSORS ((FIT_BODY_LOCATION)27) // Left posterior forearm
|
965
|
+
#define FIT_BODY_LOCATION_RIGHT_ARM ((FIT_BODY_LOCATION)28)
|
966
|
+
#define FIT_BODY_LOCATION_RIGHT_SHOULDER ((FIT_BODY_LOCATION)29)
|
967
|
+
#define FIT_BODY_LOCATION_RIGHT_BICEP ((FIT_BODY_LOCATION)30)
|
968
|
+
#define FIT_BODY_LOCATION_RIGHT_TRICEP ((FIT_BODY_LOCATION)31)
|
969
|
+
#define FIT_BODY_LOCATION_RIGHT_BRACHIORADIALIS ((FIT_BODY_LOCATION)32) // Right anterior forearm
|
970
|
+
#define FIT_BODY_LOCATION_RIGHT_FOREARM_EXTENSORS ((FIT_BODY_LOCATION)33) // Right posterior forearm
|
971
|
+
#define FIT_BODY_LOCATION_NECK ((FIT_BODY_LOCATION)34)
|
972
|
+
#define FIT_BODY_LOCATION_THROAT ((FIT_BODY_LOCATION)35)
|
973
|
+
#define FIT_BODY_LOCATION_COUNT 36
|
974
|
+
|
975
|
+
typedef FIT_ENUM FIT_SOURCE_TYPE;
|
976
|
+
#define FIT_SOURCE_TYPE_INVALID FIT_ENUM_INVALID
|
977
|
+
#define FIT_SOURCE_TYPE_ANT ((FIT_SOURCE_TYPE)0) // External device connected with ANT
|
978
|
+
#define FIT_SOURCE_TYPE_ANTPLUS ((FIT_SOURCE_TYPE)1) // External device connected with ANT+
|
979
|
+
#define FIT_SOURCE_TYPE_BLUETOOTH ((FIT_SOURCE_TYPE)2) // External device connected with BT
|
980
|
+
#define FIT_SOURCE_TYPE_BLUETOOTH_LOW_ENERGY ((FIT_SOURCE_TYPE)3) // External device connected with BLE
|
981
|
+
#define FIT_SOURCE_TYPE_WIFI ((FIT_SOURCE_TYPE)4) // External device connected with Wifi
|
982
|
+
#define FIT_SOURCE_TYPE_LOCAL ((FIT_SOURCE_TYPE)5) // Onboard device
|
983
|
+
#define FIT_SOURCE_TYPE_COUNT 6
|
984
|
+
|
826
985
|
|
827
986
|
///////////////////////////////////////////////////////////////////////
|
828
987
|
// Message Conversion Structures
|
@@ -842,7 +1001,7 @@ typedef struct
|
|
842
1001
|
FIT_UINT8 arch;
|
843
1002
|
FIT_MESG_NUM global_mesg_num;
|
844
1003
|
FIT_UINT8 num_fields;
|
845
|
-
FIT_FIELD_CONVERT fields[
|
1004
|
+
FIT_FIELD_CONVERT fields[81];
|
846
1005
|
} FIT_MESG_CONVERT;
|
847
1006
|
|
848
1007
|
|
@@ -850,8 +1009,8 @@ typedef struct
|
|
850
1009
|
// Messages
|
851
1010
|
///////////////////////////////////////////////////////////////////////
|
852
1011
|
|
853
|
-
#define FIT_MESG_SIZE
|
854
|
-
#define FIT_MESG_DEF_SIZE
|
1012
|
+
#define FIT_MESG_SIZE 181
|
1013
|
+
#define FIT_MESG_DEF_SIZE 248
|
855
1014
|
|
856
1015
|
// pad message
|
857
1016
|
|
@@ -1016,8 +1175,8 @@ typedef struct
|
|
1016
1175
|
|
1017
1176
|
// capabilities message
|
1018
1177
|
|
1019
|
-
#define FIT_CAPABILITIES_MESG_SIZE
|
1020
|
-
#define FIT_CAPABILITIES_MESG_DEF_SIZE
|
1178
|
+
#define FIT_CAPABILITIES_MESG_SIZE 13
|
1179
|
+
#define FIT_CAPABILITIES_MESG_DEF_SIZE 17
|
1021
1180
|
#define FIT_CAPABILITIES_MESG_LANGUAGES_COUNT 4
|
1022
1181
|
#define FIT_CAPABILITIES_MESG_SPORTS_COUNT 1
|
1023
1182
|
|
@@ -1025,6 +1184,7 @@ typedef struct
|
|
1025
1184
|
{
|
1026
1185
|
FIT_UINT8Z languages[FIT_CAPABILITIES_MESG_LANGUAGES_COUNT]; // Use language_bits_x types where x is index of array.
|
1027
1186
|
FIT_WORKOUT_CAPABILITIES workouts_supported; //
|
1187
|
+
FIT_CONNECTIVITY_CAPABILITIES connectivity_supported; //
|
1028
1188
|
FIT_SPORT_BITS_0 sports[FIT_CAPABILITIES_MESG_SPORTS_COUNT]; // Use sport_bits_x types where x is index of array.
|
1029
1189
|
} FIT_CAPABILITIES_MESG;
|
1030
1190
|
|
@@ -1032,6 +1192,7 @@ typedef enum
|
|
1032
1192
|
{
|
1033
1193
|
FIT_CAPABILITIES_FIELD_NUM_LANGUAGES = 0,
|
1034
1194
|
FIT_CAPABILITIES_FIELD_NUM_WORKOUTS_SUPPORTED = 21,
|
1195
|
+
FIT_CAPABILITIES_FIELD_NUM_CONNECTIVITY_SUPPORTED = 23,
|
1035
1196
|
FIT_CAPABILITIES_FIELD_NUM_SPORTS = 1
|
1036
1197
|
} FIT_CAPABILITIES_FIELD_NUM;
|
1037
1198
|
|
@@ -1039,6 +1200,7 @@ typedef enum
|
|
1039
1200
|
{
|
1040
1201
|
FIT_CAPABILITIES_MESG_LANGUAGES,
|
1041
1202
|
FIT_CAPABILITIES_MESG_WORKOUTS_SUPPORTED,
|
1203
|
+
FIT_CAPABILITIES_MESG_CONNECTIVITY_SUPPORTED,
|
1042
1204
|
FIT_CAPABILITIES_MESG_SPORTS,
|
1043
1205
|
FIT_CAPABILITIES_MESG_FIELDS
|
1044
1206
|
} FIT_CAPABILITIES_MESG_FIELD;
|
@@ -1214,8 +1376,8 @@ typedef struct
|
|
1214
1376
|
|
1215
1377
|
// user_profile message
|
1216
1378
|
|
1217
|
-
#define FIT_USER_PROFILE_MESG_SIZE
|
1218
|
-
#define FIT_USER_PROFILE_MESG_DEF_SIZE
|
1379
|
+
#define FIT_USER_PROFILE_MESG_SIZE 46
|
1380
|
+
#define FIT_USER_PROFILE_MESG_DEF_SIZE 74
|
1219
1381
|
#define FIT_USER_PROFILE_MESG_FRIENDLY_NAME_COUNT 16
|
1220
1382
|
#define FIT_USER_PROFILE_MESG_GLOBAL_ID_COUNT 6
|
1221
1383
|
|
@@ -1243,6 +1405,7 @@ typedef struct
|
|
1243
1405
|
FIT_DISPLAY_POSITION position_setting; //
|
1244
1406
|
FIT_DISPLAY_MEASURE temperature_setting; //
|
1245
1407
|
FIT_BYTE global_id[FIT_USER_PROFILE_MESG_GLOBAL_ID_COUNT]; //
|
1408
|
+
FIT_DISPLAY_MEASURE height_setting; //
|
1246
1409
|
} FIT_USER_PROFILE_MESG;
|
1247
1410
|
|
1248
1411
|
typedef enum
|
@@ -1268,7 +1431,8 @@ typedef enum
|
|
1268
1431
|
FIT_USER_PROFILE_FIELD_NUM_ACTIVITY_CLASS = 17,
|
1269
1432
|
FIT_USER_PROFILE_FIELD_NUM_POSITION_SETTING = 18,
|
1270
1433
|
FIT_USER_PROFILE_FIELD_NUM_TEMPERATURE_SETTING = 21,
|
1271
|
-
FIT_USER_PROFILE_FIELD_NUM_GLOBAL_ID = 23
|
1434
|
+
FIT_USER_PROFILE_FIELD_NUM_GLOBAL_ID = 23,
|
1435
|
+
FIT_USER_PROFILE_FIELD_NUM_HEIGHT_SETTING = 30
|
1272
1436
|
} FIT_USER_PROFILE_FIELD_NUM;
|
1273
1437
|
|
1274
1438
|
typedef enum
|
@@ -1295,6 +1459,7 @@ typedef enum
|
|
1295
1459
|
FIT_USER_PROFILE_MESG_POSITION_SETTING,
|
1296
1460
|
FIT_USER_PROFILE_MESG_TEMPERATURE_SETTING,
|
1297
1461
|
FIT_USER_PROFILE_MESG_GLOBAL_ID,
|
1462
|
+
FIT_USER_PROFILE_MESG_HEIGHT_SETTING,
|
1298
1463
|
FIT_USER_PROFILE_MESG_FIELDS
|
1299
1464
|
} FIT_USER_PROFILE_MESG_FIELD;
|
1300
1465
|
|
@@ -1402,9 +1567,11 @@ typedef struct
|
|
1402
1567
|
|
1403
1568
|
// bike_profile message
|
1404
1569
|
|
1405
|
-
#define FIT_BIKE_PROFILE_MESG_SIZE
|
1406
|
-
#define FIT_BIKE_PROFILE_MESG_DEF_SIZE
|
1570
|
+
#define FIT_BIKE_PROFILE_MESG_SIZE 58
|
1571
|
+
#define FIT_BIKE_PROFILE_MESG_DEF_SIZE 98
|
1407
1572
|
#define FIT_BIKE_PROFILE_MESG_NAME_COUNT 16
|
1573
|
+
#define FIT_BIKE_PROFILE_MESG_FRONT_GEAR_COUNT 1
|
1574
|
+
#define FIT_BIKE_PROFILE_MESG_REAR_GEAR_COUNT 1
|
1408
1575
|
|
1409
1576
|
typedef struct
|
1410
1577
|
{
|
@@ -1435,6 +1602,10 @@ typedef struct
|
|
1435
1602
|
FIT_UINT8Z bike_spdcad_ant_id_trans_type; //
|
1436
1603
|
FIT_UINT8Z bike_power_ant_id_trans_type; //
|
1437
1604
|
FIT_UINT8 odometer_rollover; // Rollover counter that can be used to extend the odometer
|
1605
|
+
FIT_UINT8Z front_gear_num; // Number of front gears
|
1606
|
+
FIT_UINT8Z front_gear[FIT_BIKE_PROFILE_MESG_FRONT_GEAR_COUNT]; // Number of teeth on each gear 0 is innermost
|
1607
|
+
FIT_UINT8Z rear_gear_num; // Number of rear gears
|
1608
|
+
FIT_UINT8Z rear_gear[FIT_BIKE_PROFILE_MESG_REAR_GEAR_COUNT]; // Number of teeth on each gear 0 is innermost
|
1438
1609
|
} FIT_BIKE_PROFILE_MESG;
|
1439
1610
|
|
1440
1611
|
typedef enum
|
@@ -1465,7 +1636,11 @@ typedef enum
|
|
1465
1636
|
FIT_BIKE_PROFILE_FIELD_NUM_BIKE_CAD_ANT_ID_TRANS_TYPE = 22,
|
1466
1637
|
FIT_BIKE_PROFILE_FIELD_NUM_BIKE_SPDCAD_ANT_ID_TRANS_TYPE = 23,
|
1467
1638
|
FIT_BIKE_PROFILE_FIELD_NUM_BIKE_POWER_ANT_ID_TRANS_TYPE = 24,
|
1468
|
-
FIT_BIKE_PROFILE_FIELD_NUM_ODOMETER_ROLLOVER = 37
|
1639
|
+
FIT_BIKE_PROFILE_FIELD_NUM_ODOMETER_ROLLOVER = 37,
|
1640
|
+
FIT_BIKE_PROFILE_FIELD_NUM_FRONT_GEAR_NUM = 38,
|
1641
|
+
FIT_BIKE_PROFILE_FIELD_NUM_FRONT_GEAR = 39,
|
1642
|
+
FIT_BIKE_PROFILE_FIELD_NUM_REAR_GEAR_NUM = 40,
|
1643
|
+
FIT_BIKE_PROFILE_FIELD_NUM_REAR_GEAR = 41
|
1469
1644
|
} FIT_BIKE_PROFILE_FIELD_NUM;
|
1470
1645
|
|
1471
1646
|
typedef enum
|
@@ -1497,6 +1672,10 @@ typedef enum
|
|
1497
1672
|
FIT_BIKE_PROFILE_MESG_BIKE_SPDCAD_ANT_ID_TRANS_TYPE,
|
1498
1673
|
FIT_BIKE_PROFILE_MESG_BIKE_POWER_ANT_ID_TRANS_TYPE,
|
1499
1674
|
FIT_BIKE_PROFILE_MESG_ODOMETER_ROLLOVER,
|
1675
|
+
FIT_BIKE_PROFILE_MESG_FRONT_GEAR_NUM,
|
1676
|
+
FIT_BIKE_PROFILE_MESG_FRONT_GEAR,
|
1677
|
+
FIT_BIKE_PROFILE_MESG_REAR_GEAR_NUM,
|
1678
|
+
FIT_BIKE_PROFILE_MESG_REAR_GEAR,
|
1500
1679
|
FIT_BIKE_PROFILE_MESG_FIELDS
|
1501
1680
|
} FIT_BIKE_PROFILE_MESG_FIELD;
|
1502
1681
|
|
@@ -1891,8 +2070,8 @@ typedef struct
|
|
1891
2070
|
|
1892
2071
|
// session message
|
1893
2072
|
|
1894
|
-
#define FIT_SESSION_MESG_SIZE
|
1895
|
-
#define FIT_SESSION_MESG_DEF_SIZE
|
2073
|
+
#define FIT_SESSION_MESG_SIZE 181
|
2074
|
+
#define FIT_SESSION_MESG_DEF_SIZE 248
|
1896
2075
|
#define FIT_SESSION_MESG_TIME_IN_HR_ZONE_COUNT 1
|
1897
2076
|
#define FIT_SESSION_MESG_TIME_IN_SPEED_ZONE_COUNT 1
|
1898
2077
|
#define FIT_SESSION_MESG_TIME_IN_CADENCE_ZONE_COUNT 1
|
@@ -1960,6 +2139,9 @@ typedef struct
|
|
1960
2139
|
FIT_UINT16 zone_count[FIT_SESSION_MESG_ZONE_COUNT_COUNT]; // counts,zone number used as the index
|
1961
2140
|
FIT_UINT16 max_ball_speed; // 100 * m/s,
|
1962
2141
|
FIT_UINT16 avg_ball_speed; // 100 * m/s,
|
2142
|
+
FIT_UINT16 avg_vertical_oscillation; // 10 * mm,
|
2143
|
+
FIT_UINT16 avg_stance_time_percent; // 100 * percent,
|
2144
|
+
FIT_UINT16 avg_stance_time; // 10 * ms,
|
1963
2145
|
FIT_EVENT event; // session
|
1964
2146
|
FIT_EVENT_TYPE event_type; // stop
|
1965
2147
|
FIT_SPORT sport; //
|
@@ -1978,6 +2160,9 @@ typedef struct
|
|
1978
2160
|
FIT_SINT8 max_temperature; // C,
|
1979
2161
|
FIT_UINT8 min_heart_rate; // bpm,
|
1980
2162
|
FIT_STRING opponent_name[FIT_SESSION_MESG_OPPONENT_NAME_COUNT]; //
|
2163
|
+
FIT_UINT8 avg_fractional_cadence; // 128 * rpm,fractional part of the avg_cadence
|
2164
|
+
FIT_UINT8 max_fractional_cadence; // 128 * rpm,fractional part of the max_cadence
|
2165
|
+
FIT_UINT8 total_fractional_cycles; // 128 * cycles,fractional part of the total_cycles
|
1981
2166
|
} FIT_SESSION_MESG;
|
1982
2167
|
|
1983
2168
|
typedef enum
|
@@ -2039,6 +2224,9 @@ typedef enum
|
|
2039
2224
|
FIT_SESSION_FIELD_NUM_ZONE_COUNT = 86,
|
2040
2225
|
FIT_SESSION_FIELD_NUM_MAX_BALL_SPEED = 87,
|
2041
2226
|
FIT_SESSION_FIELD_NUM_AVG_BALL_SPEED = 88,
|
2227
|
+
FIT_SESSION_FIELD_NUM_AVG_VERTICAL_OSCILLATION = 89,
|
2228
|
+
FIT_SESSION_FIELD_NUM_AVG_STANCE_TIME_PERCENT = 90,
|
2229
|
+
FIT_SESSION_FIELD_NUM_AVG_STANCE_TIME = 91,
|
2042
2230
|
FIT_SESSION_FIELD_NUM_EVENT = 0,
|
2043
2231
|
FIT_SESSION_FIELD_NUM_EVENT_TYPE = 1,
|
2044
2232
|
FIT_SESSION_FIELD_NUM_SPORT = 5,
|
@@ -2056,7 +2244,10 @@ typedef enum
|
|
2056
2244
|
FIT_SESSION_FIELD_NUM_AVG_TEMPERATURE = 57,
|
2057
2245
|
FIT_SESSION_FIELD_NUM_MAX_TEMPERATURE = 58,
|
2058
2246
|
FIT_SESSION_FIELD_NUM_MIN_HEART_RATE = 64,
|
2059
|
-
FIT_SESSION_FIELD_NUM_OPPONENT_NAME = 84
|
2247
|
+
FIT_SESSION_FIELD_NUM_OPPONENT_NAME = 84,
|
2248
|
+
FIT_SESSION_FIELD_NUM_AVG_FRACTIONAL_CADENCE = 92,
|
2249
|
+
FIT_SESSION_FIELD_NUM_MAX_FRACTIONAL_CADENCE = 93,
|
2250
|
+
FIT_SESSION_FIELD_NUM_TOTAL_FRACTIONAL_CYCLES = 94
|
2060
2251
|
} FIT_SESSION_FIELD_NUM;
|
2061
2252
|
|
2062
2253
|
typedef enum
|
@@ -2118,6 +2309,9 @@ typedef enum
|
|
2118
2309
|
FIT_SESSION_MESG_ZONE_COUNT,
|
2119
2310
|
FIT_SESSION_MESG_MAX_BALL_SPEED,
|
2120
2311
|
FIT_SESSION_MESG_AVG_BALL_SPEED,
|
2312
|
+
FIT_SESSION_MESG_AVG_VERTICAL_OSCILLATION,
|
2313
|
+
FIT_SESSION_MESG_AVG_STANCE_TIME_PERCENT,
|
2314
|
+
FIT_SESSION_MESG_AVG_STANCE_TIME,
|
2121
2315
|
FIT_SESSION_MESG_EVENT,
|
2122
2316
|
FIT_SESSION_MESG_EVENT_TYPE,
|
2123
2317
|
FIT_SESSION_MESG_SPORT,
|
@@ -2136,6 +2330,9 @@ typedef enum
|
|
2136
2330
|
FIT_SESSION_MESG_MAX_TEMPERATURE,
|
2137
2331
|
FIT_SESSION_MESG_MIN_HEART_RATE,
|
2138
2332
|
FIT_SESSION_MESG_OPPONENT_NAME,
|
2333
|
+
FIT_SESSION_MESG_AVG_FRACTIONAL_CADENCE,
|
2334
|
+
FIT_SESSION_MESG_MAX_FRACTIONAL_CADENCE,
|
2335
|
+
FIT_SESSION_MESG_TOTAL_FRACTIONAL_CYCLES,
|
2139
2336
|
FIT_SESSION_MESG_FIELDS
|
2140
2337
|
} FIT_SESSION_MESG_FIELD;
|
2141
2338
|
|
@@ -2150,14 +2347,20 @@ typedef struct
|
|
2150
2347
|
|
2151
2348
|
// lap message
|
2152
2349
|
|
2153
|
-
#define FIT_LAP_MESG_SIZE
|
2154
|
-
#define FIT_LAP_MESG_DEF_SIZE
|
2350
|
+
#define FIT_LAP_MESG_SIZE 167
|
2351
|
+
#define FIT_LAP_MESG_DEF_SIZE 236
|
2155
2352
|
#define FIT_LAP_MESG_TIME_IN_HR_ZONE_COUNT 1
|
2156
2353
|
#define FIT_LAP_MESG_TIME_IN_SPEED_ZONE_COUNT 1
|
2157
2354
|
#define FIT_LAP_MESG_TIME_IN_CADENCE_ZONE_COUNT 1
|
2158
2355
|
#define FIT_LAP_MESG_TIME_IN_POWER_ZONE_COUNT 1
|
2159
2356
|
#define FIT_LAP_MESG_STROKE_COUNT_COUNT 1
|
2160
2357
|
#define FIT_LAP_MESG_ZONE_COUNT_COUNT 1
|
2358
|
+
#define FIT_LAP_MESG_AVG_TOTAL_HEMOGLOBIN_CONC_COUNT 1
|
2359
|
+
#define FIT_LAP_MESG_MIN_TOTAL_HEMOGLOBIN_CONC_COUNT 1
|
2360
|
+
#define FIT_LAP_MESG_MAX_TOTAL_HEMOGLOBIN_CONC_COUNT 1
|
2361
|
+
#define FIT_LAP_MESG_AVG_SATURATED_HEMOGLOBIN_PERCENT_COUNT 1
|
2362
|
+
#define FIT_LAP_MESG_MIN_SATURATED_HEMOGLOBIN_PERCENT_COUNT 1
|
2363
|
+
#define FIT_LAP_MESG_MAX_SATURATED_HEMOGLOBIN_PERCENT_COUNT 1
|
2161
2364
|
|
2162
2365
|
typedef struct
|
2163
2366
|
{
|
@@ -2209,7 +2412,16 @@ typedef struct
|
|
2209
2412
|
FIT_UINT16 opponent_score; //
|
2210
2413
|
FIT_UINT16 stroke_count[FIT_LAP_MESG_STROKE_COUNT_COUNT]; // counts,stroke_type enum used as the index
|
2211
2414
|
FIT_UINT16 zone_count[FIT_LAP_MESG_ZONE_COUNT_COUNT]; // counts,zone number used as the index
|
2415
|
+
FIT_UINT16 avg_vertical_oscillation; // 10 * mm,
|
2416
|
+
FIT_UINT16 avg_stance_time_percent; // 100 * percent,
|
2417
|
+
FIT_UINT16 avg_stance_time; // 10 * ms,
|
2212
2418
|
FIT_UINT16 player_score; //
|
2419
|
+
FIT_UINT16 avg_total_hemoglobin_conc[FIT_LAP_MESG_AVG_TOTAL_HEMOGLOBIN_CONC_COUNT]; // 100 * g/dL,Avg saturated and unsaturated hemoglobin
|
2420
|
+
FIT_UINT16 min_total_hemoglobin_conc[FIT_LAP_MESG_MIN_TOTAL_HEMOGLOBIN_CONC_COUNT]; // 100 * g/dL,Min saturated and unsaturated hemoglobin
|
2421
|
+
FIT_UINT16 max_total_hemoglobin_conc[FIT_LAP_MESG_MAX_TOTAL_HEMOGLOBIN_CONC_COUNT]; // 100 * g/dL,Max saturated and unsaturated hemoglobin
|
2422
|
+
FIT_UINT16 avg_saturated_hemoglobin_percent[FIT_LAP_MESG_AVG_SATURATED_HEMOGLOBIN_PERCENT_COUNT]; // 10 * %,Avg percentage of hemoglobin saturated with oxygen
|
2423
|
+
FIT_UINT16 min_saturated_hemoglobin_percent[FIT_LAP_MESG_MIN_SATURATED_HEMOGLOBIN_PERCENT_COUNT]; // 10 * %,Min percentage of hemoglobin saturated with oxygen
|
2424
|
+
FIT_UINT16 max_saturated_hemoglobin_percent[FIT_LAP_MESG_MAX_SATURATED_HEMOGLOBIN_PERCENT_COUNT]; // 10 * %,Max percentage of hemoglobin saturated with oxygen
|
2213
2425
|
FIT_EVENT event; //
|
2214
2426
|
FIT_EVENT_TYPE event_type; //
|
2215
2427
|
FIT_UINT8 avg_heart_rate; // bpm,
|
@@ -2226,6 +2438,9 @@ typedef struct
|
|
2226
2438
|
FIT_SINT8 avg_temperature; // C,
|
2227
2439
|
FIT_SINT8 max_temperature; // C,
|
2228
2440
|
FIT_UINT8 min_heart_rate; // bpm,
|
2441
|
+
FIT_UINT8 avg_fractional_cadence; // 128 * rpm,fractional part of the avg_cadence
|
2442
|
+
FIT_UINT8 max_fractional_cadence; // 128 * rpm,fractional part of the max_cadence
|
2443
|
+
FIT_UINT8 total_fractional_cycles; // 128 * cycles,fractional part of the total_cycles
|
2229
2444
|
} FIT_LAP_MESG;
|
2230
2445
|
|
2231
2446
|
typedef enum
|
@@ -2278,7 +2493,16 @@ typedef enum
|
|
2278
2493
|
FIT_LAP_FIELD_NUM_OPPONENT_SCORE = 74,
|
2279
2494
|
FIT_LAP_FIELD_NUM_STROKE_COUNT = 75,
|
2280
2495
|
FIT_LAP_FIELD_NUM_ZONE_COUNT = 76,
|
2496
|
+
FIT_LAP_FIELD_NUM_AVG_VERTICAL_OSCILLATION = 77,
|
2497
|
+
FIT_LAP_FIELD_NUM_AVG_STANCE_TIME_PERCENT = 78,
|
2498
|
+
FIT_LAP_FIELD_NUM_AVG_STANCE_TIME = 79,
|
2281
2499
|
FIT_LAP_FIELD_NUM_PLAYER_SCORE = 83,
|
2500
|
+
FIT_LAP_FIELD_NUM_AVG_TOTAL_HEMOGLOBIN_CONC = 84,
|
2501
|
+
FIT_LAP_FIELD_NUM_MIN_TOTAL_HEMOGLOBIN_CONC = 85,
|
2502
|
+
FIT_LAP_FIELD_NUM_MAX_TOTAL_HEMOGLOBIN_CONC = 86,
|
2503
|
+
FIT_LAP_FIELD_NUM_AVG_SATURATED_HEMOGLOBIN_PERCENT = 87,
|
2504
|
+
FIT_LAP_FIELD_NUM_MIN_SATURATED_HEMOGLOBIN_PERCENT = 88,
|
2505
|
+
FIT_LAP_FIELD_NUM_MAX_SATURATED_HEMOGLOBIN_PERCENT = 89,
|
2282
2506
|
FIT_LAP_FIELD_NUM_EVENT = 0,
|
2283
2507
|
FIT_LAP_FIELD_NUM_EVENT_TYPE = 1,
|
2284
2508
|
FIT_LAP_FIELD_NUM_AVG_HEART_RATE = 15,
|
@@ -2294,7 +2518,10 @@ typedef enum
|
|
2294
2518
|
FIT_LAP_FIELD_NUM_GPS_ACCURACY = 44,
|
2295
2519
|
FIT_LAP_FIELD_NUM_AVG_TEMPERATURE = 50,
|
2296
2520
|
FIT_LAP_FIELD_NUM_MAX_TEMPERATURE = 51,
|
2297
|
-
FIT_LAP_FIELD_NUM_MIN_HEART_RATE = 63
|
2521
|
+
FIT_LAP_FIELD_NUM_MIN_HEART_RATE = 63,
|
2522
|
+
FIT_LAP_FIELD_NUM_AVG_FRACTIONAL_CADENCE = 80,
|
2523
|
+
FIT_LAP_FIELD_NUM_MAX_FRACTIONAL_CADENCE = 81,
|
2524
|
+
FIT_LAP_FIELD_NUM_TOTAL_FRACTIONAL_CYCLES = 82
|
2298
2525
|
} FIT_LAP_FIELD_NUM;
|
2299
2526
|
|
2300
2527
|
typedef enum
|
@@ -2347,7 +2574,16 @@ typedef enum
|
|
2347
2574
|
FIT_LAP_MESG_OPPONENT_SCORE,
|
2348
2575
|
FIT_LAP_MESG_STROKE_COUNT,
|
2349
2576
|
FIT_LAP_MESG_ZONE_COUNT,
|
2577
|
+
FIT_LAP_MESG_AVG_VERTICAL_OSCILLATION,
|
2578
|
+
FIT_LAP_MESG_AVG_STANCE_TIME_PERCENT,
|
2579
|
+
FIT_LAP_MESG_AVG_STANCE_TIME,
|
2350
2580
|
FIT_LAP_MESG_PLAYER_SCORE,
|
2581
|
+
FIT_LAP_MESG_AVG_TOTAL_HEMOGLOBIN_CONC,
|
2582
|
+
FIT_LAP_MESG_MIN_TOTAL_HEMOGLOBIN_CONC,
|
2583
|
+
FIT_LAP_MESG_MAX_TOTAL_HEMOGLOBIN_CONC,
|
2584
|
+
FIT_LAP_MESG_AVG_SATURATED_HEMOGLOBIN_PERCENT,
|
2585
|
+
FIT_LAP_MESG_MIN_SATURATED_HEMOGLOBIN_PERCENT,
|
2586
|
+
FIT_LAP_MESG_MAX_SATURATED_HEMOGLOBIN_PERCENT,
|
2351
2587
|
FIT_LAP_MESG_EVENT,
|
2352
2588
|
FIT_LAP_MESG_EVENT_TYPE,
|
2353
2589
|
FIT_LAP_MESG_AVG_HEART_RATE,
|
@@ -2364,6 +2600,9 @@ typedef enum
|
|
2364
2600
|
FIT_LAP_MESG_AVG_TEMPERATURE,
|
2365
2601
|
FIT_LAP_MESG_MAX_TEMPERATURE,
|
2366
2602
|
FIT_LAP_MESG_MIN_HEART_RATE,
|
2603
|
+
FIT_LAP_MESG_AVG_FRACTIONAL_CADENCE,
|
2604
|
+
FIT_LAP_MESG_MAX_FRACTIONAL_CADENCE,
|
2605
|
+
FIT_LAP_MESG_TOTAL_FRACTIONAL_CYCLES,
|
2367
2606
|
FIT_LAP_MESG_FIELDS
|
2368
2607
|
} FIT_LAP_MESG_FIELD;
|
2369
2608
|
|
@@ -2461,8 +2700,8 @@ typedef struct
|
|
2461
2700
|
|
2462
2701
|
// record message
|
2463
2702
|
|
2464
|
-
#define FIT_RECORD_MESG_SIZE
|
2465
|
-
#define FIT_RECORD_MESG_DEF_SIZE
|
2703
|
+
#define FIT_RECORD_MESG_SIZE 90
|
2704
|
+
#define FIT_RECORD_MESG_DEF_SIZE 140
|
2466
2705
|
#define FIT_RECORD_MESG_COMPRESSED_SPEED_DISTANCE_COUNT 3
|
2467
2706
|
#define FIT_RECORD_MESG_SPEED_1S_COUNT 5
|
2468
2707
|
|
@@ -2482,8 +2721,17 @@ typedef struct
|
|
2482
2721
|
FIT_UINT16 compressed_accumulated_power; //
|
2483
2722
|
FIT_SINT16 vertical_speed; // 1000 * m/s,
|
2484
2723
|
FIT_UINT16 calories; // kcal,
|
2724
|
+
FIT_UINT16 vertical_oscillation; // 10 * mm,
|
2725
|
+
FIT_UINT16 stance_time_percent; // 100 * percent,
|
2726
|
+
FIT_UINT16 stance_time; // 10 * ms,
|
2485
2727
|
FIT_UINT16 ball_speed; // 100 * m/s,
|
2486
2728
|
FIT_UINT16 cadence256; // 256 * rpm,Log cadence and fractional cadence for backwards compatability
|
2729
|
+
FIT_UINT16 total_hemoglobin_conc; // 100 * g/dL,Total saturated and unsaturated hemoglobin
|
2730
|
+
FIT_UINT16 total_hemoglobin_conc_min; // 100 * g/dL,Min saturated and unsaturated hemoglobin
|
2731
|
+
FIT_UINT16 total_hemoglobin_conc_max; // 100 * g/dL,Max saturated and unsaturated hemoglobin
|
2732
|
+
FIT_UINT16 saturated_hemoglobin_percent; // 10 * %,Percentage of hemoglobin saturated with oxygen
|
2733
|
+
FIT_UINT16 saturated_hemoglobin_percent_min; // 10 * %,Min percentage of hemoglobin saturated with oxygen
|
2734
|
+
FIT_UINT16 saturated_hemoglobin_percent_max; // 10 * %,Max percentage of hemoglobin saturated with oxygen
|
2487
2735
|
FIT_UINT8 heart_rate; // bpm,
|
2488
2736
|
FIT_UINT8 cadence; // rpm,
|
2489
2737
|
FIT_BYTE compressed_speed_distance[FIT_RECORD_MESG_COMPRESSED_SPEED_DISTANCE_COUNT]; //
|
@@ -2494,6 +2742,7 @@ typedef struct
|
|
2494
2742
|
FIT_UINT8 cycles; //
|
2495
2743
|
FIT_LEFT_RIGHT_BALANCE left_right_balance; //
|
2496
2744
|
FIT_UINT8 gps_accuracy; // m,
|
2745
|
+
FIT_ACTIVITY_TYPE activity_type; //
|
2497
2746
|
FIT_UINT8 left_torque_effectiveness; // 2 * percent,
|
2498
2747
|
FIT_UINT8 right_torque_effectiveness; // 2 * percent,
|
2499
2748
|
FIT_UINT8 left_pedal_smoothness; // 2 * percent,
|
@@ -2502,6 +2751,7 @@ typedef struct
|
|
2502
2751
|
FIT_UINT8 time128; // 128 * s,
|
2503
2752
|
FIT_STROKE_TYPE stroke_type; //
|
2504
2753
|
FIT_UINT8 zone; //
|
2754
|
+
FIT_DEVICE_INDEX device_index; //
|
2505
2755
|
} FIT_RECORD_MESG;
|
2506
2756
|
|
2507
2757
|
typedef enum
|
@@ -2520,8 +2770,17 @@ typedef enum
|
|
2520
2770
|
FIT_RECORD_FIELD_NUM_COMPRESSED_ACCUMULATED_POWER = 28,
|
2521
2771
|
FIT_RECORD_FIELD_NUM_VERTICAL_SPEED = 32,
|
2522
2772
|
FIT_RECORD_FIELD_NUM_CALORIES = 33,
|
2773
|
+
FIT_RECORD_FIELD_NUM_VERTICAL_OSCILLATION = 39,
|
2774
|
+
FIT_RECORD_FIELD_NUM_STANCE_TIME_PERCENT = 40,
|
2775
|
+
FIT_RECORD_FIELD_NUM_STANCE_TIME = 41,
|
2523
2776
|
FIT_RECORD_FIELD_NUM_BALL_SPEED = 51,
|
2524
2777
|
FIT_RECORD_FIELD_NUM_CADENCE256 = 52,
|
2778
|
+
FIT_RECORD_FIELD_NUM_TOTAL_HEMOGLOBIN_CONC = 54,
|
2779
|
+
FIT_RECORD_FIELD_NUM_TOTAL_HEMOGLOBIN_CONC_MIN = 55,
|
2780
|
+
FIT_RECORD_FIELD_NUM_TOTAL_HEMOGLOBIN_CONC_MAX = 56,
|
2781
|
+
FIT_RECORD_FIELD_NUM_SATURATED_HEMOGLOBIN_PERCENT = 57,
|
2782
|
+
FIT_RECORD_FIELD_NUM_SATURATED_HEMOGLOBIN_PERCENT_MIN = 58,
|
2783
|
+
FIT_RECORD_FIELD_NUM_SATURATED_HEMOGLOBIN_PERCENT_MAX = 59,
|
2525
2784
|
FIT_RECORD_FIELD_NUM_HEART_RATE = 3,
|
2526
2785
|
FIT_RECORD_FIELD_NUM_CADENCE = 4,
|
2527
2786
|
FIT_RECORD_FIELD_NUM_COMPRESSED_SPEED_DISTANCE = 8,
|
@@ -2532,6 +2791,7 @@ typedef enum
|
|
2532
2791
|
FIT_RECORD_FIELD_NUM_CYCLES = 18,
|
2533
2792
|
FIT_RECORD_FIELD_NUM_LEFT_RIGHT_BALANCE = 30,
|
2534
2793
|
FIT_RECORD_FIELD_NUM_GPS_ACCURACY = 31,
|
2794
|
+
FIT_RECORD_FIELD_NUM_ACTIVITY_TYPE = 42,
|
2535
2795
|
FIT_RECORD_FIELD_NUM_LEFT_TORQUE_EFFECTIVENESS = 43,
|
2536
2796
|
FIT_RECORD_FIELD_NUM_RIGHT_TORQUE_EFFECTIVENESS = 44,
|
2537
2797
|
FIT_RECORD_FIELD_NUM_LEFT_PEDAL_SMOOTHNESS = 45,
|
@@ -2539,7 +2799,8 @@ typedef enum
|
|
2539
2799
|
FIT_RECORD_FIELD_NUM_COMBINED_PEDAL_SMOOTHNESS = 47,
|
2540
2800
|
FIT_RECORD_FIELD_NUM_TIME128 = 48,
|
2541
2801
|
FIT_RECORD_FIELD_NUM_STROKE_TYPE = 49,
|
2542
|
-
FIT_RECORD_FIELD_NUM_ZONE = 50
|
2802
|
+
FIT_RECORD_FIELD_NUM_ZONE = 50,
|
2803
|
+
FIT_RECORD_FIELD_NUM_DEVICE_INDEX = 62
|
2543
2804
|
} FIT_RECORD_FIELD_NUM;
|
2544
2805
|
|
2545
2806
|
typedef enum
|
@@ -2558,8 +2819,17 @@ typedef enum
|
|
2558
2819
|
FIT_RECORD_MESG_COMPRESSED_ACCUMULATED_POWER,
|
2559
2820
|
FIT_RECORD_MESG_VERTICAL_SPEED,
|
2560
2821
|
FIT_RECORD_MESG_CALORIES,
|
2822
|
+
FIT_RECORD_MESG_VERTICAL_OSCILLATION,
|
2823
|
+
FIT_RECORD_MESG_STANCE_TIME_PERCENT,
|
2824
|
+
FIT_RECORD_MESG_STANCE_TIME,
|
2561
2825
|
FIT_RECORD_MESG_BALL_SPEED,
|
2562
2826
|
FIT_RECORD_MESG_CADENCE256,
|
2827
|
+
FIT_RECORD_MESG_TOTAL_HEMOGLOBIN_CONC,
|
2828
|
+
FIT_RECORD_MESG_TOTAL_HEMOGLOBIN_CONC_MIN,
|
2829
|
+
FIT_RECORD_MESG_TOTAL_HEMOGLOBIN_CONC_MAX,
|
2830
|
+
FIT_RECORD_MESG_SATURATED_HEMOGLOBIN_PERCENT,
|
2831
|
+
FIT_RECORD_MESG_SATURATED_HEMOGLOBIN_PERCENT_MIN,
|
2832
|
+
FIT_RECORD_MESG_SATURATED_HEMOGLOBIN_PERCENT_MAX,
|
2563
2833
|
FIT_RECORD_MESG_HEART_RATE,
|
2564
2834
|
FIT_RECORD_MESG_CADENCE,
|
2565
2835
|
FIT_RECORD_MESG_COMPRESSED_SPEED_DISTANCE,
|
@@ -2570,6 +2840,7 @@ typedef enum
|
|
2570
2840
|
FIT_RECORD_MESG_CYCLES,
|
2571
2841
|
FIT_RECORD_MESG_LEFT_RIGHT_BALANCE,
|
2572
2842
|
FIT_RECORD_MESG_GPS_ACCURACY,
|
2843
|
+
FIT_RECORD_MESG_ACTIVITY_TYPE,
|
2573
2844
|
FIT_RECORD_MESG_LEFT_TORQUE_EFFECTIVENESS,
|
2574
2845
|
FIT_RECORD_MESG_RIGHT_TORQUE_EFFECTIVENESS,
|
2575
2846
|
FIT_RECORD_MESG_LEFT_PEDAL_SMOOTHNESS,
|
@@ -2578,6 +2849,7 @@ typedef enum
|
|
2578
2849
|
FIT_RECORD_MESG_TIME128,
|
2579
2850
|
FIT_RECORD_MESG_STROKE_TYPE,
|
2580
2851
|
FIT_RECORD_MESG_ZONE,
|
2852
|
+
FIT_RECORD_MESG_DEVICE_INDEX,
|
2581
2853
|
FIT_RECORD_MESG_FIELDS
|
2582
2854
|
} FIT_RECORD_MESG_FIELD;
|
2583
2855
|
|
@@ -2592,19 +2864,23 @@ typedef struct
|
|
2592
2864
|
|
2593
2865
|
// event message
|
2594
2866
|
|
2595
|
-
#define FIT_EVENT_MESG_SIZE
|
2596
|
-
#define FIT_EVENT_MESG_DEF_SIZE
|
2867
|
+
#define FIT_EVENT_MESG_SIZE 21
|
2868
|
+
#define FIT_EVENT_MESG_DEF_SIZE 41
|
2597
2869
|
|
2598
2870
|
typedef struct
|
2599
2871
|
{
|
2600
2872
|
FIT_DATE_TIME timestamp; // s,
|
2601
2873
|
FIT_UINT32 data; //
|
2602
2874
|
FIT_UINT16 data16; //
|
2603
|
-
FIT_UINT16 score; // Do not
|
2604
|
-
FIT_UINT16 opponent_score; // Do not
|
2875
|
+
FIT_UINT16 score; // Do not populate directly. Autogenerated by decoder for sport_point subfield components
|
2876
|
+
FIT_UINT16 opponent_score; // Do not populate directly. Autogenerated by decoder for sport_point subfield components
|
2605
2877
|
FIT_EVENT event; //
|
2606
2878
|
FIT_EVENT_TYPE event_type; //
|
2607
2879
|
FIT_UINT8 event_group; //
|
2880
|
+
FIT_UINT8Z front_gear_num; // Do not populate directly. Autogenerated by decoder for gear_change subfield components. Front gear number. 1 is innermost.
|
2881
|
+
FIT_UINT8Z front_gear; // Do not populate directly. Autogenerated by decoder for gear_change subfield components. Number of front teeth.
|
2882
|
+
FIT_UINT8Z rear_gear_num; // Do not populate directly. Autogenerated by decoder for gear_change subfield components. Rear gear number. 1 is innermost.
|
2883
|
+
FIT_UINT8Z rear_gear; // Do not populate directly. Autogenerated by decoder for gear_change subfield components. Number of rear teeth.
|
2608
2884
|
} FIT_EVENT_MESG;
|
2609
2885
|
|
2610
2886
|
typedef enum
|
@@ -2616,7 +2892,11 @@ typedef enum
|
|
2616
2892
|
FIT_EVENT_FIELD_NUM_OPPONENT_SCORE = 8,
|
2617
2893
|
FIT_EVENT_FIELD_NUM_EVENT = 0,
|
2618
2894
|
FIT_EVENT_FIELD_NUM_EVENT_TYPE = 1,
|
2619
|
-
FIT_EVENT_FIELD_NUM_EVENT_GROUP = 4
|
2895
|
+
FIT_EVENT_FIELD_NUM_EVENT_GROUP = 4,
|
2896
|
+
FIT_EVENT_FIELD_NUM_FRONT_GEAR_NUM = 9,
|
2897
|
+
FIT_EVENT_FIELD_NUM_FRONT_GEAR = 10,
|
2898
|
+
FIT_EVENT_FIELD_NUM_REAR_GEAR_NUM = 11,
|
2899
|
+
FIT_EVENT_FIELD_NUM_REAR_GEAR = 12
|
2620
2900
|
} FIT_EVENT_FIELD_NUM;
|
2621
2901
|
|
2622
2902
|
typedef enum
|
@@ -2629,6 +2909,10 @@ typedef enum
|
|
2629
2909
|
FIT_EVENT_MESG_EVENT,
|
2630
2910
|
FIT_EVENT_MESG_EVENT_TYPE,
|
2631
2911
|
FIT_EVENT_MESG_EVENT_GROUP,
|
2912
|
+
FIT_EVENT_MESG_FRONT_GEAR_NUM,
|
2913
|
+
FIT_EVENT_MESG_FRONT_GEAR,
|
2914
|
+
FIT_EVENT_MESG_REAR_GEAR_NUM,
|
2915
|
+
FIT_EVENT_MESG_REAR_GEAR,
|
2632
2916
|
FIT_EVENT_MESG_FIELDS
|
2633
2917
|
} FIT_EVENT_MESG_FIELD;
|
2634
2918
|
|
@@ -2643,8 +2927,9 @@ typedef struct
|
|
2643
2927
|
|
2644
2928
|
// device_info message
|
2645
2929
|
|
2646
|
-
#define FIT_DEVICE_INFO_MESG_SIZE
|
2647
|
-
#define FIT_DEVICE_INFO_MESG_DEF_SIZE
|
2930
|
+
#define FIT_DEVICE_INFO_MESG_SIZE 31
|
2931
|
+
#define FIT_DEVICE_INFO_MESG_DEF_SIZE 56
|
2932
|
+
#define FIT_DEVICE_INFO_MESG_DESCRIPTOR_COUNT 1
|
2648
2933
|
|
2649
2934
|
typedef struct
|
2650
2935
|
{
|
@@ -2655,10 +2940,16 @@ typedef struct
|
|
2655
2940
|
FIT_UINT16 product; //
|
2656
2941
|
FIT_UINT16 software_version; //
|
2657
2942
|
FIT_UINT16 battery_voltage; // 256 * V,
|
2943
|
+
FIT_UINT16Z ant_device_number; //
|
2658
2944
|
FIT_DEVICE_INDEX device_index; //
|
2659
|
-
|
2945
|
+
FIT_UINT8 device_type; //
|
2660
2946
|
FIT_UINT8 hardware_version; //
|
2661
2947
|
FIT_BATTERY_STATUS battery_status; //
|
2948
|
+
FIT_BODY_LOCATION sensor_position; // Indicates the location of the sensor
|
2949
|
+
FIT_STRING descriptor[FIT_DEVICE_INFO_MESG_DESCRIPTOR_COUNT]; // Used to describe the sensor or location
|
2950
|
+
FIT_UINT8Z ant_transmission_type; //
|
2951
|
+
FIT_ANT_NETWORK ant_network; //
|
2952
|
+
FIT_SOURCE_TYPE source_type; //
|
2662
2953
|
} FIT_DEVICE_INFO_MESG;
|
2663
2954
|
|
2664
2955
|
typedef enum
|
@@ -2670,10 +2961,16 @@ typedef enum
|
|
2670
2961
|
FIT_DEVICE_INFO_FIELD_NUM_PRODUCT = 4,
|
2671
2962
|
FIT_DEVICE_INFO_FIELD_NUM_SOFTWARE_VERSION = 5,
|
2672
2963
|
FIT_DEVICE_INFO_FIELD_NUM_BATTERY_VOLTAGE = 10,
|
2964
|
+
FIT_DEVICE_INFO_FIELD_NUM_ANT_DEVICE_NUMBER = 21,
|
2673
2965
|
FIT_DEVICE_INFO_FIELD_NUM_DEVICE_INDEX = 0,
|
2674
2966
|
FIT_DEVICE_INFO_FIELD_NUM_DEVICE_TYPE = 1,
|
2675
2967
|
FIT_DEVICE_INFO_FIELD_NUM_HARDWARE_VERSION = 6,
|
2676
|
-
FIT_DEVICE_INFO_FIELD_NUM_BATTERY_STATUS = 11
|
2968
|
+
FIT_DEVICE_INFO_FIELD_NUM_BATTERY_STATUS = 11,
|
2969
|
+
FIT_DEVICE_INFO_FIELD_NUM_SENSOR_POSITION = 18,
|
2970
|
+
FIT_DEVICE_INFO_FIELD_NUM_DESCRIPTOR = 19,
|
2971
|
+
FIT_DEVICE_INFO_FIELD_NUM_ANT_TRANSMISSION_TYPE = 20,
|
2972
|
+
FIT_DEVICE_INFO_FIELD_NUM_ANT_NETWORK = 22,
|
2973
|
+
FIT_DEVICE_INFO_FIELD_NUM_SOURCE_TYPE = 25
|
2677
2974
|
} FIT_DEVICE_INFO_FIELD_NUM;
|
2678
2975
|
|
2679
2976
|
typedef enum
|
@@ -2685,10 +2982,16 @@ typedef enum
|
|
2685
2982
|
FIT_DEVICE_INFO_MESG_PRODUCT,
|
2686
2983
|
FIT_DEVICE_INFO_MESG_SOFTWARE_VERSION,
|
2687
2984
|
FIT_DEVICE_INFO_MESG_BATTERY_VOLTAGE,
|
2985
|
+
FIT_DEVICE_INFO_MESG_ANT_DEVICE_NUMBER,
|
2688
2986
|
FIT_DEVICE_INFO_MESG_DEVICE_INDEX,
|
2689
2987
|
FIT_DEVICE_INFO_MESG_DEVICE_TYPE,
|
2690
2988
|
FIT_DEVICE_INFO_MESG_HARDWARE_VERSION,
|
2691
2989
|
FIT_DEVICE_INFO_MESG_BATTERY_STATUS,
|
2990
|
+
FIT_DEVICE_INFO_MESG_SENSOR_POSITION,
|
2991
|
+
FIT_DEVICE_INFO_MESG_DESCRIPTOR,
|
2992
|
+
FIT_DEVICE_INFO_MESG_ANT_TRANSMISSION_TYPE,
|
2993
|
+
FIT_DEVICE_INFO_MESG_ANT_NETWORK,
|
2994
|
+
FIT_DEVICE_INFO_MESG_SOURCE_TYPE,
|
2692
2995
|
FIT_DEVICE_INFO_MESG_FIELDS
|
2693
2996
|
} FIT_DEVICE_INFO_MESG_FIELD;
|
2694
2997
|
|
@@ -3182,14 +3485,14 @@ typedef struct
|
|
3182
3485
|
typedef struct
|
3183
3486
|
{
|
3184
3487
|
FIT_DATE_TIME timestamp; // s,Must align to logging interval, for example, time must be 00:00:00 for daily log.
|
3185
|
-
FIT_UINT32 distance; // 100 * m,
|
3186
|
-
FIT_UINT32 cycles; // cycles,
|
3488
|
+
FIT_UINT32 distance; // 100 * m,Accumulated distance. Maintained by MonitoringReader for each activity_type. See SDK documentation.
|
3489
|
+
FIT_UINT32 cycles; // 2 * cycles,Accumulated cycles. Maintained by MonitoringReader for each activity_type. See SDK documentation.
|
3187
3490
|
FIT_UINT32 active_time; // 1000 * s,
|
3188
3491
|
FIT_LOCAL_DATE_TIME local_timestamp; // Must align to logging interval, for example, time must be 00:00:00 for daily log.
|
3189
|
-
FIT_UINT16 calories; // kcal,total calories
|
3190
|
-
FIT_UINT16
|
3191
|
-
FIT_UINT16
|
3192
|
-
FIT_UINT16
|
3492
|
+
FIT_UINT16 calories; // kcal,Accumulated total calories. Maintained by MonitoringReader for each activity_type. See SDK documentation
|
3493
|
+
FIT_UINT16 distance_16; // 100 * m,
|
3494
|
+
FIT_UINT16 cycles_16; // 2 * cycles (steps),
|
3495
|
+
FIT_UINT16 active_time_16; // s,
|
3193
3496
|
FIT_DEVICE_INDEX device_index; // Associates this data to device_info message. Not required for file with single device (sensor).
|
3194
3497
|
FIT_ACTIVITY_TYPE activity_type; //
|
3195
3498
|
FIT_ACTIVITY_SUBTYPE activity_subtype; //
|
@@ -3203,9 +3506,9 @@ typedef enum
|
|
3203
3506
|
FIT_MONITORING_FIELD_NUM_ACTIVE_TIME = 4,
|
3204
3507
|
FIT_MONITORING_FIELD_NUM_LOCAL_TIMESTAMP = 11,
|
3205
3508
|
FIT_MONITORING_FIELD_NUM_CALORIES = 1,
|
3206
|
-
|
3207
|
-
|
3208
|
-
|
3509
|
+
FIT_MONITORING_FIELD_NUM_DISTANCE_16 = 8,
|
3510
|
+
FIT_MONITORING_FIELD_NUM_CYCLES_16 = 9,
|
3511
|
+
FIT_MONITORING_FIELD_NUM_ACTIVE_TIME_16 = 10,
|
3209
3512
|
FIT_MONITORING_FIELD_NUM_DEVICE_INDEX = 0,
|
3210
3513
|
FIT_MONITORING_FIELD_NUM_ACTIVITY_TYPE = 5,
|
3211
3514
|
FIT_MONITORING_FIELD_NUM_ACTIVITY_SUBTYPE = 6
|
@@ -3219,9 +3522,9 @@ typedef enum
|
|
3219
3522
|
FIT_MONITORING_MESG_ACTIVE_TIME,
|
3220
3523
|
FIT_MONITORING_MESG_LOCAL_TIMESTAMP,
|
3221
3524
|
FIT_MONITORING_MESG_CALORIES,
|
3222
|
-
|
3223
|
-
|
3224
|
-
|
3525
|
+
FIT_MONITORING_MESG_DISTANCE_16,
|
3526
|
+
FIT_MONITORING_MESG_CYCLES_16,
|
3527
|
+
FIT_MONITORING_MESG_ACTIVE_TIME_16,
|
3225
3528
|
FIT_MONITORING_MESG_DEVICE_INDEX,
|
3226
3529
|
FIT_MONITORING_MESG_ACTIVITY_TYPE,
|
3227
3530
|
FIT_MONITORING_MESG_ACTIVITY_SUBTYPE,
|