rubyfit 0.0.3 → 0.0.4
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 +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,
|