python-fitparse 2.5.0__py3-none-any.whl → 2.7.0__py3-none-any.whl

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.
fitparse/profile.py CHANGED
@@ -1,7 +1,7 @@
1
1
  # ***************** BEGIN AUTOMATICALLY GENERATED FIT PROFILE ******************
2
2
  # *************************** DO NOT EDIT THIS FILE ****************************
3
- # *********** EXPORTED PROFILE FROM SDK VERSION 21.214 ON 2026-08-26 ***********
4
- # ********* PARSED 201 TYPES (4419 VALUES), 124 MESSAGES (1413 FIELDS) *********
3
+ # *********** EXPORTED PROFILE FROM SDK VERSION 21.218 ON 2026-10-06 ***********
4
+ # ********* PARSED 216 TYPES (4761 VALUES), 125 MESSAGES (1572 FIELDS) *********
5
5
  # ***************************** APPLIED 2 PATCHES ******************************
6
6
 
7
7
  from fitparse.records import (
@@ -147,6 +147,23 @@ FIELD_TYPES = {
147
147
  124: 'stride_speed_distance',
148
148
  },
149
149
  ),
150
+ 'apnea_discipline': FieldType(
151
+ name='apnea_discipline',
152
+ base_type=BASE_TYPES[0x00], # enum
153
+ values={
154
+ 0: 'constant_weight_with_fins',
155
+ 1: 'constant_weight_with_bifins',
156
+ 2: 'constant_weight_without_fins',
157
+ 3: 'dynamic_with_fins',
158
+ 4: 'dynamic_with_bifins',
159
+ 5: 'dynamic_without_fins',
160
+ 6: 'free_immersion',
161
+ 7: 'no_limit',
162
+ 8: 'speed_endurance_apnea',
163
+ 9: 'static_apnea',
164
+ 10: 'variable_weight',
165
+ },
166
+ ),
150
167
  'attitude_stage': FieldType(
151
168
  name='attitude_stage',
152
169
  base_type=BASE_TYPES[0x00], # enum
@@ -499,6 +516,87 @@ FIELD_TYPES = {
499
516
  4: 'error_irregular_heart_rate',
500
517
  },
501
518
  ),
519
+ 'brazilian_grading_scale': FieldType(
520
+ name='brazilian_grading_scale',
521
+ base_type=BASE_TYPES[0x00], # enum
522
+ values={
523
+ 0: '2', # 2
524
+ 1: '3', # 3
525
+ 2: '3c', # 3c
526
+ 3: '4', # 4
527
+ 4: '5a', # 5a
528
+ 5: '5b', # 5b
529
+ 6: '5c', # 5c
530
+ 7: '6a', # 6a
531
+ 8: '6b', # 6b
532
+ 9: '6c', # 6c
533
+ 10: '7a', # 7a
534
+ 11: '7b', # 7b
535
+ 12: '7c', # 7c
536
+ 13: '8a', # 8a
537
+ 14: '8b', # 8b
538
+ 15: '8c', # 8c
539
+ 16: '9a', # 9a
540
+ 17: '9b', # 9b
541
+ 18: '9c', # 9c
542
+ 19: '10a', # 10a
543
+ 20: '10b', # 10b
544
+ 21: '10c', # 10c
545
+ 22: '11a', # 11a
546
+ 23: '11b', # 11b
547
+ 24: '11c', # 11c
548
+ 25: '12a', # 12a
549
+ 26: '12b', # 12b
550
+ },
551
+ ),
552
+ 'british_adjectival_grading_scale': FieldType(
553
+ name='british_adjectival_grading_scale',
554
+ base_type=BASE_TYPES[0x00], # enum
555
+ values={
556
+ 0: 'M', # M
557
+ 1: 'D', # D
558
+ 2: 'HD', # HD
559
+ 3: 'VD', # VD
560
+ 4: 'MS', # MS
561
+ 5: 'S', # S
562
+ 6: 'HS', # HS
563
+ 7: 'MVS', # MVS
564
+ 8: 'VS', # VS
565
+ 9: 'HVS', # HVS
566
+ 10: 'E1', # E1
567
+ 11: 'E2', # E2
568
+ 12: 'E3', # E3
569
+ 13: 'E4', # E4
570
+ 14: 'E5', # E5
571
+ 15: 'E6', # E6
572
+ 16: 'E7', # E7
573
+ 17: 'E8', # E8
574
+ 18: 'E9', # E9
575
+ 19: 'E10', # E10
576
+ 20: 'E11', # E11
577
+ },
578
+ ),
579
+ 'british_technical_grading_scale': FieldType(
580
+ name='british_technical_grading_scale',
581
+ base_type=BASE_TYPES[0x00], # enum
582
+ values={
583
+ 0: '1', # 1
584
+ 1: '2', # 2
585
+ 2: '3', # 3
586
+ 3: '4a', # 4a
587
+ 4: '4b', # 4b
588
+ 5: '4c', # 4c
589
+ 6: '5a', # 5a
590
+ 7: '5b', # 5b
591
+ 8: '5c', # 5c
592
+ 9: '6a', # 6a
593
+ 10: '6b', # 6b
594
+ 11: '6c', # 6c
595
+ 12: '7a', # 7a
596
+ 13: '7b', # 7b
597
+ 14: '7c', # 7c
598
+ },
599
+ ),
502
600
  'calf_raise_exercise_name': FieldType(
503
601
  name='calf_raise_exercise_name',
504
602
  base_type=BASE_TYPES[0x84], # uint16
@@ -664,6 +762,24 @@ FIELD_TYPES = {
664
762
  22: 'standing_stability_reverse_chop',
665
763
  },
666
764
  ),
765
+ 'climb_grading_scale': FieldType(
766
+ name='climb_grading_scale',
767
+ base_type=BASE_TYPES[0x00], # enum
768
+ values={
769
+ 0: 'yds',
770
+ 1: 'uiaa',
771
+ 2: 'french',
772
+ 3: 'british_adjectival',
773
+ 4: 'british_technical',
774
+ 5: 'ewbank',
775
+ 6: 'brazilian',
776
+ 7: 'saxon',
777
+ 8: 'vermin',
778
+ 9: 'font',
779
+ 10: 'dankyu',
780
+ 11: 'yds_pm', # YDS Plus Minus Grading Scale
781
+ },
782
+ ),
667
783
  'climb_pro_event': FieldType(
668
784
  name='climb_pro_event',
669
785
  base_type=BASE_TYPES[0x00], # enum
@@ -1047,6 +1163,24 @@ FIELD_TYPES = {
1047
1163
  50: 'seated_bottle_curl',
1048
1164
  },
1049
1165
  ),
1166
+ 'dankyu_grading_scale': FieldType(
1167
+ name='dankyu_grading_scale',
1168
+ base_type=BASE_TYPES[0x00], # enum
1169
+ values={
1170
+ 0: '7_kyuu', # 7 kyuu
1171
+ 1: '6_kyuu', # 6 kyuu
1172
+ 2: '5_kyuu', # 5 kyuu
1173
+ 3: '4_kyuu', # 4 kyuu
1174
+ 4: '3_kyuu', # 3 kyuu
1175
+ 5: '2_kyuu', # 2 kyuu
1176
+ 6: '1_kyuu', # 1 kyuu
1177
+ 7: '1_dan', # 1 dan
1178
+ 8: '2_dan', # 2 dan
1179
+ 9: '3_dan', # 3 dan
1180
+ 10: '4_dan', # 4 dan
1181
+ 11: '5_dan', # 5 dan
1182
+ },
1183
+ ),
1050
1184
  'date_mode': FieldType(
1051
1185
  name='date_mode',
1052
1186
  base_type=BASE_TYPES[0x00], # enum
@@ -1282,6 +1416,15 @@ FIELD_TYPES = {
1282
1416
  2: 'backup_only',
1283
1417
  },
1284
1418
  ),
1419
+ 'dive_section_type': FieldType(
1420
+ name='dive_section_type',
1421
+ base_type=BASE_TYPES[0x00], # enum
1422
+ values={
1423
+ 0: 'ascent',
1424
+ 1: 'descent',
1425
+ 2: 'hang',
1426
+ },
1427
+ ),
1285
1428
  'elliptical_exercise_name': FieldType(
1286
1429
  name='elliptical_exercise_name',
1287
1430
  base_type=BASE_TYPES[0x84], # uint16
@@ -1357,6 +1500,47 @@ FIELD_TYPES = {
1357
1500
  9: 'stop_disable_all',
1358
1501
  },
1359
1502
  ),
1503
+ 'ewbank_grading_scale': FieldType(
1504
+ name='ewbank_grading_scale',
1505
+ base_type=BASE_TYPES[0x00], # enum
1506
+ values={
1507
+ 0: '4', # 4
1508
+ 1: '5', # 5
1509
+ 2: '6', # 6
1510
+ 3: '7', # 7
1511
+ 4: '8', # 8
1512
+ 5: '9', # 9
1513
+ 6: '10', # 10
1514
+ 7: '11', # 11
1515
+ 8: '12', # 12
1516
+ 9: '13', # 13
1517
+ 10: '14', # 14
1518
+ 11: '15', # 15
1519
+ 12: '16', # 16
1520
+ 13: '17', # 17
1521
+ 14: '18', # 18
1522
+ 15: '19', # 19
1523
+ 16: '20', # 20
1524
+ 17: '21', # 21
1525
+ 18: '22', # 22
1526
+ 19: '23', # 23
1527
+ 20: '24', # 24
1528
+ 21: '25', # 25
1529
+ 22: '26', # 26
1530
+ 23: '27', # 27
1531
+ 24: '28', # 28
1532
+ 25: '29', # 29
1533
+ 26: '30', # 30
1534
+ 27: '31', # 31
1535
+ 28: '32', # 32
1536
+ 29: '33', # 33
1537
+ 30: '34', # 34
1538
+ 31: '35', # 35
1539
+ 32: '36', # 36
1540
+ 33: '37', # 37
1541
+ 34: '38', # 38
1542
+ },
1543
+ ),
1360
1544
  'exd_data_units': FieldType(
1361
1545
  name='exd_data_units',
1362
1546
  base_type=BASE_TYPES[0x00], # enum
@@ -1768,6 +1952,74 @@ FIELD_TYPES = {
1768
1952
  12: 'rear_delt_fly_wheelchair',
1769
1953
  },
1770
1954
  ),
1955
+ 'font_grading_scale': FieldType(
1956
+ name='font_grading_scale',
1957
+ base_type=BASE_TYPES[0x00], # enum
1958
+ values={
1959
+ 0: '1', # 1
1960
+ 1: '2', # 2
1961
+ 2: '3', # 3
1962
+ 3: '4', # 4
1963
+ 4: '4_plus', # 4+
1964
+ 5: '5', # 5
1965
+ 6: '5_plus', # 5+
1966
+ 7: '6a', # 6A
1967
+ 8: '6a_plus', # 6A+
1968
+ 9: '6b', # 6B
1969
+ 10: '6b_plus', # 6B+
1970
+ 11: '6c', # 6C
1971
+ 12: '6c_plus', # 6C+
1972
+ 13: '7a', # 7A
1973
+ 14: '7a_plus', # 7A+
1974
+ 15: '7b', # 7B
1975
+ 16: '7b_plus', # 7B+
1976
+ 17: '7c', # 7C
1977
+ 18: '7c_plus', # 7C+
1978
+ 19: '8a', # 8A
1979
+ 20: '8a_plus', # 8A+
1980
+ 21: '8b', # 8B
1981
+ 22: '8b_plus', # 8B+
1982
+ 23: '8c', # 8C
1983
+ 24: '8c_plus', # 8C+
1984
+ 25: '9a', # 9A
1985
+ },
1986
+ ),
1987
+ 'french_grading_scale': FieldType(
1988
+ name='french_grading_scale',
1989
+ base_type=BASE_TYPES[0x00], # enum
1990
+ values={
1991
+ 0: '1', # 1
1992
+ 1: '2', # 2
1993
+ 2: '3', # 3
1994
+ 3: '4a', # 4a
1995
+ 4: '4b', # 4b
1996
+ 5: '4c', # 4c
1997
+ 6: '5a', # 5a
1998
+ 7: '5b', # 5b
1999
+ 8: '5c', # 5c
2000
+ 9: '6a', # 6a
2001
+ 10: '6a_plus', # 6a+
2002
+ 11: '6b', # 6b
2003
+ 12: '6b_plus', # 6b+
2004
+ 13: '6c', # 6c
2005
+ 14: '6c_plus', # 6c+
2006
+ 15: '7a', # 7a
2007
+ 16: '7a_plus', # 7a+
2008
+ 17: '7b', # 7b
2009
+ 18: '7b_plus', # 7b+
2010
+ 19: '7c', # 7c
2011
+ 20: '7c_plus', # 7c+
2012
+ 21: '8a', # 8a
2013
+ 22: '8a_plus', # 8a+
2014
+ 23: '8b', # 8b
2015
+ 24: '8b_plus', # 8b+
2016
+ 25: '8c', # 8c
2017
+ 26: '8c_plus', # 8c+
2018
+ 27: '9a', # 9a
2019
+ 28: '9a_plus', # 9a+
2020
+ 29: '9b', # 9b
2021
+ },
2022
+ ),
1771
2023
  'garmin_product': FieldType(
1772
2024
  name='garmin_product',
1773
2025
  base_type=BASE_TYPES[0x84], # uint16
@@ -2239,6 +2491,8 @@ FIELD_TYPES = {
2239
2491
  4814: 'fr170_music',
2240
2492
  4815: 'fr170',
2241
2493
  4825: 'approach_j1',
2494
+ 4874: 'approach_s72_43mm',
2495
+ 4875: 'approach_s72_47mm',
2242
2496
  4879: 'd2_mach2',
2243
2497
  4916: 'fr70_2026',
2244
2498
  4944: 'd2_air_x15',
@@ -2251,6 +2505,7 @@ FIELD_TYPES = {
2251
2505
  5056: 'd2_mach2_pro',
2252
2506
  5133: 'fenix9_43mm',
2253
2507
  5134: 'fenix9', # 47mm & 57mm
2508
+ 5169: 'enduro4',
2254
2509
  10007: 'sdm4', # SDM4 footpod
2255
2510
  10014: 'edge_remote',
2256
2511
  20119: 'training_center',
@@ -3157,6 +3412,8 @@ FIELD_TYPES = {
3157
3412
  350: 'cadence_app',
3158
3413
  351: 'una_watch',
3159
3414
  352: 'tymewear',
3415
+ 353: 'exposure_lights',
3416
+ 354: 'forto_cycling',
3160
3417
  5759: 'actigraphcorp',
3161
3418
  },
3162
3419
  ),
@@ -3240,6 +3497,7 @@ FIELD_TYPES = {
3240
3497
  82: 'ant_channel_id',
3241
3498
  101: 'length',
3242
3499
  103: 'monitoring_info',
3500
+ 104: 'battery',
3243
3501
  105: 'pad',
3244
3502
  106: 'slave_device',
3245
3503
  127: 'connectivity',
@@ -4113,6 +4371,36 @@ FIELD_TYPES = {
4113
4371
  19: 'zercher_squat',
4114
4372
  },
4115
4373
  ),
4374
+ 'saxon_grading_scale': FieldType(
4375
+ name='saxon_grading_scale',
4376
+ base_type=BASE_TYPES[0x00], # enum
4377
+ values={
4378
+ 0: 'I', # I
4379
+ 1: 'II', # II
4380
+ 2: 'III', # III
4381
+ 3: 'IV', # IV
4382
+ 4: 'V', # V
4383
+ 5: 'VI', # VI
4384
+ 6: 'VII_a', # VIIa
4385
+ 7: 'VII_b', # VIIb
4386
+ 8: 'VII_c', # VIIc
4387
+ 9: 'VIII_a', # VIIIa
4388
+ 10: 'VIII_b', # VIIIb
4389
+ 11: 'VIII_c', # VIIIc
4390
+ 12: 'IX_a', # IXa
4391
+ 13: 'IX_b', # IXb
4392
+ 14: 'IX_c', # IXc
4393
+ 15: 'X_a', # Xa
4394
+ 16: 'X_b', # Xb
4395
+ 17: 'X_c', # Xc
4396
+ 18: 'XI_a', # XIa
4397
+ 19: 'XI_b', # XIb
4398
+ 20: 'XI_c', # XIc
4399
+ 21: 'XII_a', # XIIa
4400
+ 22: 'XII_b', # XIIb
4401
+ 23: 'XII_c', # XIIc
4402
+ },
4403
+ ),
4116
4404
  'schedule': FieldType(
4117
4405
  name='schedule',
4118
4406
  base_type=BASE_TYPES[0x00], # enum
@@ -4413,6 +4701,16 @@ FIELD_TYPES = {
4413
4701
  5: 'local', # Onboard device
4414
4702
  },
4415
4703
  ),
4704
+ 'split_status': FieldType( # Use with indoor climbing activities only
4705
+ name='split_status',
4706
+ base_type=BASE_TYPES[0x00], # enum
4707
+ values={
4708
+ 0: 'failure',
4709
+ 1: 'success',
4710
+ 2: 'climb_attempted',
4711
+ 3: 'climb_completed',
4712
+ },
4713
+ ),
4416
4714
  'split_type': FieldType(
4417
4715
  name='split_type',
4418
4716
  base_type=BASE_TYPES[0x00], # enum
@@ -5258,6 +5556,40 @@ FIELD_TYPES = {
5258
5556
  37: 'icon_idx_cnt',
5259
5557
  },
5260
5558
  ),
5559
+ 'uiaa_grading_scale': FieldType(
5560
+ name='uiaa_grading_scale',
5561
+ base_type=BASE_TYPES[0x00], # enum
5562
+ values={
5563
+ 0: 'I', # I
5564
+ 1: 'II', # II
5565
+ 2: 'III', # III
5566
+ 3: 'IV_minus', # IV-
5567
+ 4: 'IV', # IV
5568
+ 5: 'IV_plus', # IV+
5569
+ 6: 'V_minus', # V-
5570
+ 7: 'V', # V
5571
+ 8: 'V_plus', # V+
5572
+ 9: 'VI_minus', # VI-
5573
+ 10: 'VI', # VI
5574
+ 11: 'VI_plus', # VI+
5575
+ 12: 'VII_minus', # VII-
5576
+ 13: 'VII', # VII
5577
+ 14: 'VII_plus', # VII+
5578
+ 15: 'VIII_minus', # VIII-
5579
+ 16: 'VIII', # VIII
5580
+ 17: 'VIII_plus', # VIII+
5581
+ 18: 'IX_minus', # IX-
5582
+ 19: 'IX', # IX
5583
+ 20: 'IX_plus', # IX+
5584
+ 21: 'X_minus', # X-
5585
+ 22: 'X', # X
5586
+ 23: 'X_plus', # X+
5587
+ 24: 'XI_minus', # XI-
5588
+ 25: 'XI', # XI
5589
+ 26: 'XI_plus', # XI+
5590
+ 27: 'XII_minus', # XII-
5591
+ },
5592
+ ),
5261
5593
  'user_local_id': FieldType(
5262
5594
  name='user_local_id',
5263
5595
  base_type=BASE_TYPES[0x84], # uint16
@@ -5270,6 +5602,31 @@ FIELD_TYPES = {
5270
5602
  0xFFFE: 'portable_max',
5271
5603
  },
5272
5604
  ),
5605
+ 'vermin_grading_scale': FieldType(
5606
+ name='vermin_grading_scale',
5607
+ base_type=BASE_TYPES[0x00], # enum
5608
+ values={
5609
+ 0: 'vb', # VB
5610
+ 1: 'v0', # V0
5611
+ 2: 'v1', # V1
5612
+ 3: 'v2', # V2
5613
+ 4: 'v3', # V3
5614
+ 5: 'v4', # V4
5615
+ 6: 'v5', # V5
5616
+ 7: 'v6', # V6
5617
+ 8: 'v7', # V7
5618
+ 9: 'v8', # V8
5619
+ 10: 'v9', # V9
5620
+ 11: 'v10', # V10
5621
+ 12: 'v11', # V11
5622
+ 13: 'v12', # V12
5623
+ 14: 'v13', # V13
5624
+ 15: 'v14', # V14
5625
+ 16: 'v15', # V15
5626
+ 17: 'v16', # V16
5627
+ 18: 'v17', # V17
5628
+ },
5629
+ ),
5273
5630
  'warm_up_exercise_name': FieldType(
5274
5631
  name='warm_up_exercise_name',
5275
5632
  base_type=BASE_TYPES[0x84], # uint16
@@ -5636,6 +5993,81 @@ FIELD_TYPES = {
5636
5993
  1000: 'watts_offset',
5637
5994
  },
5638
5995
  ),
5996
+ 'yds_grading_scale': FieldType(
5997
+ name='yds_grading_scale',
5998
+ base_type=BASE_TYPES[0x00], # enum
5999
+ values={
6000
+ 0: '5_1', # 5.1
6001
+ 1: '5_2', # 5.2
6002
+ 2: '5_3', # 5.3
6003
+ 3: '5_4', # 5.4
6004
+ 4: '5_5', # 5.5
6005
+ 5: '5_6', # 5.6
6006
+ 6: '5_7', # 5.7
6007
+ 7: '5_8', # 5.8
6008
+ 8: '5_9', # 5.9
6009
+ 9: '5_10', # 5.1
6010
+ 10: '5_10a', # 5.10a
6011
+ 11: '5_10b', # 5.10b
6012
+ 12: '5_10c', # 5.10c
6013
+ 13: '5_10d', # 5.10d
6014
+ 14: '5_11', # 5.11
6015
+ 15: '5_11a', # 5.11a
6016
+ 16: '5_11b', # 5.11b
6017
+ 17: '5_11c', # 5.11c
6018
+ 18: '5_11d', # 5.11d
6019
+ 19: '5_12', # 5.12
6020
+ 20: '5_12a', # 5.12a
6021
+ 21: '5_12b', # 5.12b
6022
+ 22: '5_12c', # 5.12c
6023
+ 23: '5_12d', # 5.12d
6024
+ 24: '5_13', # 5.13
6025
+ 25: '5_13a', # 5.13a
6026
+ 26: '5_13b', # 5.13b
6027
+ 27: '5_13c', # 5.13c
6028
+ 28: '5_13d', # 5.13d
6029
+ 29: '5_14', # 5.14
6030
+ 30: '5_14a', # 5.14a
6031
+ 31: '5_14b', # 5.14b
6032
+ 32: '5_14c', # 5.14c
6033
+ 33: '5_14d', # 5.14d
6034
+ 34: '5_15', # 5.15
6035
+ 35: '5_15a', # 5.15a
6036
+ 36: '5_15b', # 5.15b
6037
+ 37: '5_15c', # 5.15c
6038
+ 38: '5_15d', # 5.15d
6039
+ 39: '5_1_minus', # 5.1-
6040
+ 40: '5_1_plus', # 5.1+
6041
+ 41: '5_2_minus', # 5.2-
6042
+ 42: '5_2_plus', # 5.2+
6043
+ 43: '5_3_minus', # 5.3-
6044
+ 44: '5_3_plus', # 5.3+
6045
+ 45: '5_4_minus', # 5.4-
6046
+ 46: '5_4_plus', # 5.4+
6047
+ 47: '5_5_minus', # 5.5-
6048
+ 48: '5_5_plus', # 5.5+
6049
+ 49: '5_6_minus', # 5.6-
6050
+ 50: '5_6_plus', # 5.6+
6051
+ 51: '5_7_minus', # 5.7-
6052
+ 52: '5_7_plus', # 5.7+
6053
+ 53: '5_8_minus', # 5.8-
6054
+ 54: '5_8_plus', # 5.8+
6055
+ 55: '5_9_minus', # 5.9-
6056
+ 56: '5_9_plus', # 5.9+
6057
+ 57: '5_10_minus', # 5.10-
6058
+ 58: '5_10_plus', # 5.10+
6059
+ 59: '5_11_minus', # 5.11-
6060
+ 60: '5_11_plus', # 5.11+
6061
+ 61: '5_12_minus', # 5.12-
6062
+ 62: '5_12_plus', # 5.12+
6063
+ 63: '5_13_minus', # 5.13-
6064
+ 64: '5_13_plus', # 5.13+
6065
+ 65: '5_14_minus', # 5.14-
6066
+ 66: '5_14_plus', # 5.14+
6067
+ 67: '5_15_minus', # 5.15-
6068
+ 68: '5_15_plus', # 5.15+
6069
+ },
6070
+ ),
5639
6071
  }
5640
6072
 
5641
6073
 
@@ -6057,6 +6489,46 @@ MESSAGE_TYPES = {
6057
6489
  def_num=18,
6058
6490
  units='rpm',
6059
6491
  subfields=(
6492
+ SubField(
6493
+ name='avg_paddlesport_cadence',
6494
+ def_num=18,
6495
+ type=BASE_TYPES[0x02], # uint8
6496
+ units='strokes/min',
6497
+ ref_fields=(
6498
+ ReferenceField(
6499
+ name='sport',
6500
+ def_num=5,
6501
+ value='rowing',
6502
+ raw_value=15,
6503
+ ),
6504
+ ReferenceField(
6505
+ name='sport',
6506
+ def_num=5,
6507
+ value='stand_up_paddleboarding',
6508
+ raw_value=37,
6509
+ ),
6510
+ ),
6511
+ ),
6512
+ SubField( # average pushes per minute in a session
6513
+ name='avg_push_cadence',
6514
+ def_num=18,
6515
+ type=BASE_TYPES[0x02], # uint8
6516
+ units='pushes/min',
6517
+ ref_fields=(
6518
+ ReferenceField(
6519
+ name='sport',
6520
+ def_num=5,
6521
+ value='wheelchair_push_run',
6522
+ raw_value=66,
6523
+ ),
6524
+ ReferenceField(
6525
+ name='sport',
6526
+ def_num=5,
6527
+ value='wheelchair_push_walk',
6528
+ raw_value=65,
6529
+ ),
6530
+ ),
6531
+ ),
6060
6532
  SubField(
6061
6533
  name='avg_running_cadence',
6062
6534
  def_num=18,
@@ -6071,6 +6543,20 @@ MESSAGE_TYPES = {
6071
6543
  ),
6072
6544
  ),
6073
6545
  ),
6546
+ SubField(
6547
+ name='avg_swimming_cadence',
6548
+ def_num=18,
6549
+ type=BASE_TYPES[0x02], # uint8
6550
+ units='strokes/min',
6551
+ ref_fields=(
6552
+ ReferenceField(
6553
+ name='sport',
6554
+ def_num=5,
6555
+ value='swimming',
6556
+ raw_value=5,
6557
+ ),
6558
+ ),
6559
+ ),
6074
6560
  ),
6075
6561
  ),
6076
6562
  19: Field(
@@ -6079,6 +6565,46 @@ MESSAGE_TYPES = {
6079
6565
  def_num=19,
6080
6566
  units='rpm',
6081
6567
  subfields=(
6568
+ SubField(
6569
+ name='max_paddlesport_cadence',
6570
+ def_num=19,
6571
+ type=BASE_TYPES[0x02], # uint8
6572
+ units='strokes/min',
6573
+ ref_fields=(
6574
+ ReferenceField(
6575
+ name='sport',
6576
+ def_num=5,
6577
+ value='rowing',
6578
+ raw_value=15,
6579
+ ),
6580
+ ReferenceField(
6581
+ name='sport',
6582
+ def_num=5,
6583
+ value='stand_up_paddleboarding',
6584
+ raw_value=37,
6585
+ ),
6586
+ ),
6587
+ ),
6588
+ SubField( # max pushes per minute in a session
6589
+ name='max_push_cadence',
6590
+ def_num=19,
6591
+ type=BASE_TYPES[0x02], # uint8
6592
+ units='pushes/min',
6593
+ ref_fields=(
6594
+ ReferenceField(
6595
+ name='sport',
6596
+ def_num=5,
6597
+ value='wheelchair_push_run',
6598
+ raw_value=66,
6599
+ ),
6600
+ ReferenceField(
6601
+ name='sport',
6602
+ def_num=5,
6603
+ value='wheelchair_push_walk',
6604
+ raw_value=65,
6605
+ ),
6606
+ ),
6607
+ ),
6082
6608
  SubField(
6083
6609
  name='max_running_cadence',
6084
6610
  def_num=19,
@@ -6093,6 +6619,20 @@ MESSAGE_TYPES = {
6093
6619
  ),
6094
6620
  ),
6095
6621
  ),
6622
+ SubField(
6623
+ name='max_swimming_cadence',
6624
+ def_num=19,
6625
+ type=BASE_TYPES[0x02], # uint8
6626
+ units='strokes/min',
6627
+ ref_fields=(
6628
+ ReferenceField(
6629
+ name='sport',
6630
+ def_num=5,
6631
+ value='swimming',
6632
+ raw_value=5,
6633
+ ),
6634
+ ),
6635
+ ),
6096
6636
  ),
6097
6637
  ),
6098
6638
  20: Field( # total_power / total_timer_time if non_zero_avg_power otherwise total_power / total_elapsed_time
@@ -6463,6 +7003,18 @@ MESSAGE_TYPES = {
6463
7003
  scale=1000,
6464
7004
  units='s',
6465
7005
  ),
7006
+ 79: Field(
7007
+ name='avg_strokes_per_length',
7008
+ type=BASE_TYPES[0x84], # uint16
7009
+ def_num=79,
7010
+ scale=10,
7011
+ units='strokes/length',
7012
+ ),
7013
+ 80: Field(
7014
+ name='avg_swolf',
7015
+ type=BASE_TYPES[0x84], # uint16
7016
+ def_num=80,
7017
+ ),
6466
7018
  82: Field(
6467
7019
  name='player_score',
6468
7020
  type=BASE_TYPES[0x84], # uint16
@@ -6623,6 +7175,21 @@ MESSAGE_TYPES = {
6623
7175
  scale=2,
6624
7176
  units='percent',
6625
7177
  ),
7178
+ 106: Field(
7179
+ name='num_segment_laps',
7180
+ type=BASE_TYPES[0x84], # uint16
7181
+ def_num=106,
7182
+ ),
7183
+ 107: Field(
7184
+ name='front_gear_shift_count',
7185
+ type=BASE_TYPES[0x84], # uint16
7186
+ def_num=107,
7187
+ ),
7188
+ 108: Field(
7189
+ name='rear_gear_shift_count',
7190
+ type=BASE_TYPES[0x84], # uint16
7191
+ def_num=108,
7192
+ ),
6626
7193
  110: Field( # Sport name from associated sport mesg
6627
7194
  name='sport_profile_name',
6628
7195
  type=BASE_TYPES[0x07], # string
@@ -7038,6 +7605,13 @@ MESSAGE_TYPES = {
7038
7605
  scale=100,
7039
7606
  units='C',
7040
7607
  ),
7608
+ 211: Field(
7609
+ name='avg_grade_adjusted_speed',
7610
+ type=BASE_TYPES[0x86], # uint32
7611
+ def_num=211,
7612
+ scale=1000,
7613
+ units='m/s',
7614
+ ),
7041
7615
  253: FIELD_TYPE_TIMESTAMP,
7042
7616
  254: Field( # Selected bit is set for the current session.
7043
7617
  name='message_index',
@@ -7116,6 +7690,26 @@ MESSAGE_TYPES = {
7116
7690
  def_num=10,
7117
7691
  units='cycles',
7118
7692
  subfields=(
7693
+ SubField( # total number of pushes in a lap
7694
+ name='total_pushes',
7695
+ def_num=10,
7696
+ type=BASE_TYPES[0x86], # uint32
7697
+ units='pushes',
7698
+ ref_fields=(
7699
+ ReferenceField(
7700
+ name='sport',
7701
+ def_num=25,
7702
+ value='wheelchair_push_run',
7703
+ raw_value=66,
7704
+ ),
7705
+ ReferenceField(
7706
+ name='sport',
7707
+ def_num=25,
7708
+ value='wheelchair_push_walk',
7709
+ raw_value=65,
7710
+ ),
7711
+ ),
7712
+ ),
7119
7713
  SubField(
7120
7714
  name='total_strides',
7121
7715
  def_num=10,
@@ -7236,6 +7830,46 @@ MESSAGE_TYPES = {
7236
7830
  def_num=17,
7237
7831
  units='rpm',
7238
7832
  subfields=(
7833
+ SubField(
7834
+ name='avg_paddlesport_cadence',
7835
+ def_num=17,
7836
+ type=BASE_TYPES[0x02], # uint8
7837
+ units='strokes/min',
7838
+ ref_fields=(
7839
+ ReferenceField(
7840
+ name='sport',
7841
+ def_num=25,
7842
+ value='rowing',
7843
+ raw_value=15,
7844
+ ),
7845
+ ReferenceField(
7846
+ name='sport',
7847
+ def_num=25,
7848
+ value='stand_up_paddleboarding',
7849
+ raw_value=37,
7850
+ ),
7851
+ ),
7852
+ ),
7853
+ SubField( # average pushes per minute in a lap
7854
+ name='avg_push_cadence',
7855
+ def_num=17,
7856
+ type=BASE_TYPES[0x02], # uint8
7857
+ units='pushes/min',
7858
+ ref_fields=(
7859
+ ReferenceField(
7860
+ name='sport',
7861
+ def_num=25,
7862
+ value='wheelchair_push_run',
7863
+ raw_value=66,
7864
+ ),
7865
+ ReferenceField(
7866
+ name='sport',
7867
+ def_num=25,
7868
+ value='wheelchair_push_walk',
7869
+ raw_value=65,
7870
+ ),
7871
+ ),
7872
+ ),
7239
7873
  SubField(
7240
7874
  name='avg_running_cadence',
7241
7875
  def_num=17,
@@ -7250,6 +7884,20 @@ MESSAGE_TYPES = {
7250
7884
  ),
7251
7885
  ),
7252
7886
  ),
7887
+ SubField(
7888
+ name='avg_swimming_cadence',
7889
+ def_num=17,
7890
+ type=BASE_TYPES[0x02], # uint8
7891
+ units='strokes/min',
7892
+ ref_fields=(
7893
+ ReferenceField(
7894
+ name='sport',
7895
+ def_num=25,
7896
+ value='swimming',
7897
+ raw_value=5,
7898
+ ),
7899
+ ),
7900
+ ),
7253
7901
  ),
7254
7902
  ),
7255
7903
  18: Field(
@@ -7259,25 +7907,79 @@ MESSAGE_TYPES = {
7259
7907
  units='rpm',
7260
7908
  subfields=(
7261
7909
  SubField(
7262
- name='max_running_cadence',
7910
+ name='max_paddlesport_cadence',
7263
7911
  def_num=18,
7264
7912
  type=BASE_TYPES[0x02], # uint8
7265
- units='strides/min',
7913
+ units='strokes/min',
7266
7914
  ref_fields=(
7267
7915
  ReferenceField(
7268
7916
  name='sport',
7269
7917
  def_num=25,
7270
- value='running',
7271
- raw_value=1,
7918
+ value='rowing',
7919
+ raw_value=15,
7920
+ ),
7921
+ ReferenceField(
7922
+ name='sport',
7923
+ def_num=25,
7924
+ value='stand_up_paddleboarding',
7925
+ raw_value=37,
7272
7926
  ),
7273
7927
  ),
7274
7928
  ),
7275
- ),
7276
- ),
7277
- 19: Field( # total_power / total_timer_time if non_zero_avg_power otherwise total_power / total_elapsed_time
7278
- name='avg_power',
7279
- type=BASE_TYPES[0x84], # uint16
7280
- def_num=19,
7929
+ SubField( # max pushes per minute in a lap
7930
+ name='max_push_cadence',
7931
+ def_num=18,
7932
+ type=BASE_TYPES[0x02], # uint8
7933
+ units='pushes/min',
7934
+ ref_fields=(
7935
+ ReferenceField(
7936
+ name='sport',
7937
+ def_num=25,
7938
+ value='wheelchair_push_run',
7939
+ raw_value=66,
7940
+ ),
7941
+ ReferenceField(
7942
+ name='sport',
7943
+ def_num=25,
7944
+ value='wheelchair_push_walk',
7945
+ raw_value=65,
7946
+ ),
7947
+ ),
7948
+ ),
7949
+ SubField(
7950
+ name='max_running_cadence',
7951
+ def_num=18,
7952
+ type=BASE_TYPES[0x02], # uint8
7953
+ units='strides/min',
7954
+ ref_fields=(
7955
+ ReferenceField(
7956
+ name='sport',
7957
+ def_num=25,
7958
+ value='running',
7959
+ raw_value=1,
7960
+ ),
7961
+ ),
7962
+ ),
7963
+ SubField(
7964
+ name='max_swimming_cadence',
7965
+ def_num=18,
7966
+ type=BASE_TYPES[0x02], # uint8
7967
+ units='strokes/min',
7968
+ ref_fields=(
7969
+ ReferenceField(
7970
+ name='sport',
7971
+ def_num=25,
7972
+ value='swimming',
7973
+ raw_value=5,
7974
+ ),
7975
+ ),
7976
+ ),
7977
+ ),
7978
+ ),
7979
+ 19: Field( # total_power / total_timer_time if non_zero_avg_power otherwise total_power / total_elapsed_time
7980
+ name='avg_power',
7981
+ type=BASE_TYPES[0x84], # uint16
7982
+ def_num=19,
7281
7983
  units='watts',
7282
7984
  ),
7283
7985
  20: Field(
@@ -7318,6 +8020,30 @@ MESSAGE_TYPES = {
7318
8020
  type=BASE_TYPES[0x02], # uint8
7319
8021
  def_num=26,
7320
8022
  ),
8023
+ 27: Field( # North east corner latitude.
8024
+ name='nec_lat',
8025
+ type=BASE_TYPES[0x85], # sint32
8026
+ def_num=27,
8027
+ units='semicircles',
8028
+ ),
8029
+ 28: Field( # North east corner longitude.
8030
+ name='nec_long',
8031
+ type=BASE_TYPES[0x85], # sint32
8032
+ def_num=28,
8033
+ units='semicircles',
8034
+ ),
8035
+ 29: Field( # South west corner latitude.
8036
+ name='swc_lat',
8037
+ type=BASE_TYPES[0x85], # sint32
8038
+ def_num=29,
8039
+ units='semicircles',
8040
+ ),
8041
+ 30: Field( # South west corner latitude.
8042
+ name='swc_long',
8043
+ type=BASE_TYPES[0x85], # sint32
8044
+ def_num=30,
8045
+ units='semicircles',
8046
+ ),
7321
8047
  32: Field( # # of lengths of swim pool
7322
8048
  name='num_lengths',
7323
8049
  type=BASE_TYPES[0x84], # uint16
@@ -7568,6 +8294,11 @@ MESSAGE_TYPES = {
7568
8294
  type=FIELD_TYPES['message_index'],
7569
8295
  def_num=71,
7570
8296
  ),
8297
+ 73: Field(
8298
+ name='avg_swolf',
8299
+ type=BASE_TYPES[0x84], # uint16
8300
+ def_num=73,
8301
+ ),
7571
8302
  74: Field(
7572
8303
  name='opponent_score',
7573
8304
  type=BASE_TYPES[0x84], # uint16
@@ -7674,6 +8405,13 @@ MESSAGE_TYPES = {
7674
8405
  scale=10,
7675
8406
  units='%',
7676
8407
  ),
8408
+ 90: Field(
8409
+ name='avg_strokes_per_length',
8410
+ type=BASE_TYPES[0x84], # uint16
8411
+ def_num=90,
8412
+ scale=10,
8413
+ units='strokes/length',
8414
+ ),
7677
8415
  91: Field(
7678
8416
  name='avg_left_torque_effectiveness',
7679
8417
  type=BASE_TYPES[0x02], # uint8
@@ -7709,6 +8447,16 @@ MESSAGE_TYPES = {
7709
8447
  scale=2,
7710
8448
  units='percent',
7711
8449
  ),
8450
+ 96: Field(
8451
+ name='front_gear_shift_count',
8452
+ type=BASE_TYPES[0x84], # uint16
8453
+ def_num=96,
8454
+ ),
8455
+ 97: Field(
8456
+ name='rear_gear_shift_count',
8457
+ type=BASE_TYPES[0x84], # uint16
8458
+ def_num=97,
8459
+ ),
7712
8460
  98: Field( # Total time spent in the standing position
7713
8461
  name='time_standing',
7714
8462
  type=BASE_TYPES[0x86], # uint32
@@ -7961,6 +8709,12 @@ MESSAGE_TYPES = {
7961
8709
  def_num=154,
7962
8710
  units='Flow',
7963
8711
  ),
8712
+ 155: Field(
8713
+ name='metabolic_calories',
8714
+ type=BASE_TYPES[0x84], # uint16
8715
+ def_num=155,
8716
+ units='kcal',
8717
+ ),
7964
8718
  156: Field( # fractional part of total_ascent
7965
8719
  name='total_fractional_ascent',
7966
8720
  type=BASE_TYPES[0x02], # uint8
@@ -7996,6 +8750,13 @@ MESSAGE_TYPES = {
7996
8750
  scale=100,
7997
8751
  units='C',
7998
8752
  ),
8753
+ 161: Field(
8754
+ name='avg_grade_adjusted_speed',
8755
+ type=BASE_TYPES[0x86], # uint32
8756
+ def_num=161,
8757
+ scale=1000,
8758
+ units='m/s',
8759
+ ),
7999
8760
  253: FIELD_TYPE_TIMESTAMP,
8000
8761
  254: Field(
8001
8762
  name='message_index',
@@ -9621,6 +10382,12 @@ MESSAGE_TYPES = {
9621
10382
  ),
9622
10383
  ),
9623
10384
  ),
10385
+ 26: Field(
10386
+ name='metabolic_calories',
10387
+ type=BASE_TYPES[0x84], # uint16
10388
+ def_num=26,
10389
+ units='kcal',
10390
+ ),
9624
10391
  253: FIELD_TYPE_TIMESTAMP,
9625
10392
  254: Field(
9626
10393
  name='message_index',
@@ -9629,6 +10396,19 @@ MESSAGE_TYPES = {
9629
10396
  ),
9630
10397
  },
9631
10398
  ),
10399
+ 104: MessageType(
10400
+ name='battery',
10401
+ mesg_num=104,
10402
+ fields={
10403
+ 2: Field(
10404
+ name='capacity',
10405
+ type=BASE_TYPES[0x02], # uint8
10406
+ def_num=2,
10407
+ units='%',
10408
+ ),
10409
+ 253: FIELD_TYPE_TIMESTAMP,
10410
+ },
10411
+ ),
9632
10412
  128: MessageType(
9633
10413
  name='weather_conditions',
9634
10414
  mesg_num=128,
@@ -10491,6 +11271,14 @@ MESSAGE_TYPES = {
10491
11271
  def_num=2,
10492
11272
  units='Pa',
10493
11273
  ),
11274
+ 3: Field(
11275
+ name='enhanced_altitude',
11276
+ type=BASE_TYPES[0x86], # uint32
11277
+ def_num=3,
11278
+ scale=5,
11279
+ offset=500,
11280
+ units='m',
11281
+ ),
10494
11282
  253: FIELD_TYPE_TIMESTAMP, # Whole second part of the timestamp
10495
11283
  },
10496
11284
  ),
@@ -10722,6 +11510,16 @@ MESSAGE_TYPES = {
10722
11510
  type=FIELD_TYPES['date_time'],
10723
11511
  def_num=9,
10724
11512
  ),
11513
+ 11: Field(
11514
+ name='sport',
11515
+ type=FIELD_TYPES['sport'],
11516
+ def_num=11,
11517
+ ),
11518
+ 12: Field(
11519
+ name='sub_sport',
11520
+ type=FIELD_TYPES['sub_sport'],
11521
+ def_num=12,
11522
+ ),
10725
11523
  13: Field(
10726
11524
  name='total_ascent',
10727
11525
  type=BASE_TYPES[0x84], # uint16
@@ -10734,6 +11532,42 @@ MESSAGE_TYPES = {
10734
11532
  def_num=14,
10735
11533
  units='m',
10736
11534
  ),
11535
+ 15: Field(
11536
+ name='avg_heart_rate',
11537
+ type=BASE_TYPES[0x02], # uint8
11538
+ def_num=15,
11539
+ units='bpm',
11540
+ ),
11541
+ 16: Field(
11542
+ name='max_heart_rate',
11543
+ type=BASE_TYPES[0x02], # uint8
11544
+ def_num=16,
11545
+ units='bpm',
11546
+ ),
11547
+ 17: Field( # North east corner latitude
11548
+ name='nec_lat',
11549
+ type=BASE_TYPES[0x85], # sint32
11550
+ def_num=17,
11551
+ units='semicircles',
11552
+ ),
11553
+ 18: Field( # North east corner longitude
11554
+ name='nec_long',
11555
+ type=BASE_TYPES[0x85], # sint32
11556
+ def_num=18,
11557
+ units='semicircles',
11558
+ ),
11559
+ 19: Field( # South west corner latitude
11560
+ name='swc_lat',
11561
+ type=BASE_TYPES[0x85], # sint32
11562
+ def_num=19,
11563
+ units='semicircles',
11564
+ ),
11565
+ 20: Field( # South west corner longitude
11566
+ name='swc_long',
11567
+ type=BASE_TYPES[0x85], # sint32
11568
+ def_num=20,
11569
+ units='semicircles',
11570
+ ),
10737
11571
  21: Field(
10738
11572
  name='start_position_lat',
10739
11573
  type=BASE_TYPES[0x85], # sint32
@@ -10772,139 +11606,1776 @@ MESSAGE_TYPES = {
10772
11606
  scale=1000,
10773
11607
  units='m/s',
10774
11608
  ),
10775
- 27: Field(
10776
- name='end_time',
10777
- type=FIELD_TYPES['date_time'],
10778
- def_num=27,
11609
+ 27: Field(
11610
+ name='end_time',
11611
+ type=FIELD_TYPES['date_time'],
11612
+ def_num=27,
11613
+ ),
11614
+ 28: Field(
11615
+ name='total_calories',
11616
+ type=BASE_TYPES[0x86], # uint32
11617
+ def_num=28,
11618
+ units='kcal',
11619
+ ),
11620
+ 29: Field(
11621
+ name='avg_cadence',
11622
+ type=BASE_TYPES[0x84], # uint16
11623
+ def_num=29,
11624
+ scale=128,
11625
+ units='rpm',
11626
+ subfields=(
11627
+ SubField(
11628
+ name='avg_paddlesport_cadence',
11629
+ def_num=29,
11630
+ type=BASE_TYPES[0x84], # uint16
11631
+ scale=128,
11632
+ units='strokes/min',
11633
+ ref_fields=(
11634
+ ReferenceField(
11635
+ name='sport',
11636
+ def_num=11,
11637
+ value='rowing',
11638
+ raw_value=15,
11639
+ ),
11640
+ ReferenceField(
11641
+ name='sport',
11642
+ def_num=11,
11643
+ value='stand_up_paddleboarding',
11644
+ raw_value=37,
11645
+ ),
11646
+ ),
11647
+ ),
11648
+ SubField( # average pushes per minute in a split
11649
+ name='avg_push_cadence',
11650
+ def_num=29,
11651
+ type=BASE_TYPES[0x84], # uint16
11652
+ units='pushes/min',
11653
+ ref_fields=(
11654
+ ReferenceField(
11655
+ name='sport',
11656
+ def_num=11,
11657
+ value='wheelchair_push_run',
11658
+ raw_value=66,
11659
+ ),
11660
+ ReferenceField(
11661
+ name='sport',
11662
+ def_num=11,
11663
+ value='wheelchair_push_walk',
11664
+ raw_value=65,
11665
+ ),
11666
+ ),
11667
+ ),
11668
+ SubField(
11669
+ name='avg_running_cadence',
11670
+ def_num=29,
11671
+ type=BASE_TYPES[0x84], # uint16
11672
+ scale=128,
11673
+ units='strides/min',
11674
+ ref_fields=(
11675
+ ReferenceField(
11676
+ name='sport',
11677
+ def_num=11,
11678
+ value='running',
11679
+ raw_value=1,
11680
+ ),
11681
+ ),
11682
+ ),
11683
+ SubField(
11684
+ name='avg_swimming_cadence',
11685
+ def_num=29,
11686
+ type=BASE_TYPES[0x84], # uint16
11687
+ scale=128,
11688
+ units='strokes/min',
11689
+ ref_fields=(
11690
+ ReferenceField(
11691
+ name='sport',
11692
+ def_num=11,
11693
+ value='swimming',
11694
+ raw_value=5,
11695
+ ),
11696
+ ),
11697
+ ),
11698
+ ),
11699
+ ),
11700
+ 30: Field(
11701
+ name='max_cadence',
11702
+ type=BASE_TYPES[0x84], # uint16
11703
+ def_num=30,
11704
+ scale=128,
11705
+ units='rpm',
11706
+ subfields=(
11707
+ SubField(
11708
+ name='max_paddlesport_cadence',
11709
+ def_num=30,
11710
+ type=BASE_TYPES[0x84], # uint16
11711
+ scale=128,
11712
+ units='strokes/min',
11713
+ ref_fields=(
11714
+ ReferenceField(
11715
+ name='sport',
11716
+ def_num=11,
11717
+ value='rowing',
11718
+ raw_value=15,
11719
+ ),
11720
+ ReferenceField(
11721
+ name='sport',
11722
+ def_num=11,
11723
+ value='stand_up_paddleboarding',
11724
+ raw_value=37,
11725
+ ),
11726
+ ),
11727
+ ),
11728
+ SubField( # max pushes per minute in a split
11729
+ name='max_push_cadence',
11730
+ def_num=30,
11731
+ type=BASE_TYPES[0x84], # uint16
11732
+ units='pushes/min',
11733
+ ref_fields=(
11734
+ ReferenceField(
11735
+ name='sport',
11736
+ def_num=11,
11737
+ value='wheelchair_push_run',
11738
+ raw_value=66,
11739
+ ),
11740
+ ReferenceField(
11741
+ name='sport',
11742
+ def_num=11,
11743
+ value='wheelchair_push_walk',
11744
+ raw_value=65,
11745
+ ),
11746
+ ),
11747
+ ),
11748
+ SubField(
11749
+ name='max_running_cadence',
11750
+ def_num=30,
11751
+ type=BASE_TYPES[0x84], # uint16
11752
+ scale=128,
11753
+ units='strides/min',
11754
+ ref_fields=(
11755
+ ReferenceField(
11756
+ name='sport',
11757
+ def_num=11,
11758
+ value='running',
11759
+ raw_value=1,
11760
+ ),
11761
+ ),
11762
+ ),
11763
+ SubField(
11764
+ name='max_swimming_cadence',
11765
+ def_num=30,
11766
+ type=BASE_TYPES[0x84], # uint16
11767
+ scale=128,
11768
+ units='strokes/min',
11769
+ ref_fields=(
11770
+ ReferenceField(
11771
+ name='sport',
11772
+ def_num=11,
11773
+ value='swimming',
11774
+ raw_value=5,
11775
+ ),
11776
+ ),
11777
+ ),
11778
+ ),
11779
+ ),
11780
+ 31: Field(
11781
+ name='total_cycles',
11782
+ type=BASE_TYPES[0x86], # uint32
11783
+ def_num=31,
11784
+ units='cycles',
11785
+ subfields=(
11786
+ SubField( # total number of pushes in a split
11787
+ name='total_pushes',
11788
+ def_num=31,
11789
+ type=BASE_TYPES[0x86], # uint32
11790
+ units='pushes',
11791
+ ref_fields=(
11792
+ ReferenceField(
11793
+ name='sport',
11794
+ def_num=11,
11795
+ value='wheelchair_push_run',
11796
+ raw_value=66,
11797
+ ),
11798
+ ReferenceField(
11799
+ name='sport',
11800
+ def_num=11,
11801
+ value='wheelchair_push_walk',
11802
+ raw_value=65,
11803
+ ),
11804
+ ),
11805
+ ),
11806
+ SubField( # total reps in a split round
11807
+ name='total_reps',
11808
+ def_num=31,
11809
+ type=BASE_TYPES[0x86], # uint32
11810
+ units='reps',
11811
+ ref_fields=(
11812
+ ReferenceField(
11813
+ name='sport',
11814
+ def_num=11,
11815
+ value='hiit',
11816
+ raw_value=62,
11817
+ ),
11818
+ ),
11819
+ ),
11820
+ SubField(
11821
+ name='total_strides',
11822
+ def_num=31,
11823
+ type=BASE_TYPES[0x86], # uint32
11824
+ units='strides',
11825
+ ref_fields=(
11826
+ ReferenceField(
11827
+ name='sport',
11828
+ def_num=11,
11829
+ value='running',
11830
+ raw_value=1,
11831
+ ),
11832
+ ReferenceField(
11833
+ name='sport',
11834
+ def_num=11,
11835
+ value='walking',
11836
+ raw_value=11,
11837
+ ),
11838
+ ),
11839
+ ),
11840
+ SubField(
11841
+ name='total_strokes',
11842
+ def_num=31,
11843
+ type=BASE_TYPES[0x86], # uint32
11844
+ units='strokes',
11845
+ ref_fields=(
11846
+ ReferenceField(
11847
+ name='sport',
11848
+ def_num=11,
11849
+ value='cycling',
11850
+ raw_value=2,
11851
+ ),
11852
+ ReferenceField(
11853
+ name='sport',
11854
+ def_num=11,
11855
+ value='swimming',
11856
+ raw_value=5,
11857
+ ),
11858
+ ReferenceField(
11859
+ name='sport',
11860
+ def_num=11,
11861
+ value='rowing',
11862
+ raw_value=15,
11863
+ ),
11864
+ ReferenceField(
11865
+ name='sport',
11866
+ def_num=11,
11867
+ value='stand_up_paddleboarding',
11868
+ raw_value=37,
11869
+ ),
11870
+ ),
11871
+ ),
11872
+ ),
11873
+ ),
11874
+ 32: Field(
11875
+ name='avg_temperature',
11876
+ type=BASE_TYPES[0x01], # sint8
11877
+ def_num=32,
11878
+ units='C',
11879
+ ),
11880
+ 33: Field(
11881
+ name='max_temperature',
11882
+ type=BASE_TYPES[0x01], # sint8
11883
+ def_num=33,
11884
+ units='C',
11885
+ ),
11886
+ 34: Field(
11887
+ name='min_temperature',
11888
+ type=BASE_TYPES[0x01], # sint8
11889
+ def_num=34,
11890
+ units='C',
11891
+ ),
11892
+ 35: Field(
11893
+ name='avg_vertical_oscillation',
11894
+ type=BASE_TYPES[0x84], # uint16
11895
+ def_num=35,
11896
+ scale=10,
11897
+ units='mm',
11898
+ ),
11899
+ 36: Field(
11900
+ name='avg_vertical_ratio',
11901
+ type=BASE_TYPES[0x84], # uint16
11902
+ def_num=36,
11903
+ scale=100,
11904
+ units='percent',
11905
+ ),
11906
+ 37: Field(
11907
+ name='avg_stance_time',
11908
+ type=BASE_TYPES[0x84], # uint16
11909
+ def_num=37,
11910
+ scale=10,
11911
+ units='ms',
11912
+ ),
11913
+ 38: Field(
11914
+ name='avg_stance_time_balance',
11915
+ type=BASE_TYPES[0x84], # uint16
11916
+ def_num=38,
11917
+ scale=100,
11918
+ units='percent',
11919
+ ),
11920
+ 39: Field(
11921
+ name='avg_step_length',
11922
+ type=BASE_TYPES[0x84], # uint16
11923
+ def_num=39,
11924
+ scale=10,
11925
+ units='mm',
11926
+ ),
11927
+ 40: Field(
11928
+ name='avg_power',
11929
+ type=BASE_TYPES[0x84], # uint16
11930
+ def_num=40,
11931
+ units='watts',
11932
+ ),
11933
+ 41: Field(
11934
+ name='max_power',
11935
+ type=BASE_TYPES[0x84], # uint16
11936
+ def_num=41,
11937
+ units='watts',
11938
+ ),
11939
+ 42: Field(
11940
+ name='normalized_power',
11941
+ type=BASE_TYPES[0x84], # uint16
11942
+ def_num=42,
11943
+ units='watts',
11944
+ ),
11945
+ 43: Field(
11946
+ name='left_right_balance',
11947
+ type=FIELD_TYPES['left_right_balance_100'],
11948
+ def_num=43,
11949
+ ),
11950
+ 44: Field( # Total time spent in the standing position
11951
+ name='time_standing',
11952
+ type=BASE_TYPES[0x86], # uint32
11953
+ def_num=44,
11954
+ scale=1000,
11955
+ units='s',
11956
+ ),
11957
+ 45: Field( # Average left platform center offset
11958
+ name='avg_left_pco',
11959
+ type=BASE_TYPES[0x01], # sint8
11960
+ def_num=45,
11961
+ units='mm',
11962
+ ),
11963
+ 46: Field( # Average right platform center offset
11964
+ name='avg_right_pco',
11965
+ type=BASE_TYPES[0x01], # sint8
11966
+ def_num=46,
11967
+ units='mm',
11968
+ ),
11969
+ 47: Field( # Average left power phase angles. Data value indexes defined by power_phase_type.
11970
+ name='avg_left_power_phase',
11971
+ type=BASE_TYPES[0x02], # uint8
11972
+ def_num=47,
11973
+ scale=0.7111111,
11974
+ units='degrees',
11975
+ ),
11976
+ 48: Field( # Average left power phase peak angles. Data value indexes defined by power_phase_type.
11977
+ name='avg_left_power_phase_peak',
11978
+ type=BASE_TYPES[0x02], # uint8
11979
+ def_num=48,
11980
+ scale=0.7111111,
11981
+ units='degrees',
11982
+ ),
11983
+ 49: Field( # Average right power phase angles. Data value indexes defined by power_phase_type.
11984
+ name='avg_right_power_phase',
11985
+ type=BASE_TYPES[0x02], # uint8
11986
+ def_num=49,
11987
+ scale=0.7111111,
11988
+ units='degrees',
11989
+ ),
11990
+ 50: Field( # Average right power phase peak angles. Data value indexes defined by power_phase_type.
11991
+ name='avg_right_power_phase_peak',
11992
+ type=BASE_TYPES[0x02], # uint8
11993
+ def_num=50,
11994
+ scale=0.7111111,
11995
+ units='degrees',
11996
+ ),
11997
+ 51: Field( # Average power by position. Data value indexes defined by rider_position_type.
11998
+ name='avg_power_position',
11999
+ type=BASE_TYPES[0x84], # uint16
12000
+ def_num=51,
12001
+ units='watts',
12002
+ ),
12003
+ 52: Field( # Maximum power by position. Data value indexes defined by rider_position_type.
12004
+ name='max_power_position',
12005
+ type=BASE_TYPES[0x84], # uint16
12006
+ def_num=52,
12007
+ units='watts',
12008
+ ),
12009
+ 53: Field(
12010
+ name='avg_left_torque_effectiveness',
12011
+ type=BASE_TYPES[0x02], # uint8
12012
+ def_num=53,
12013
+ scale=2,
12014
+ units='percent',
12015
+ ),
12016
+ 54: Field(
12017
+ name='avg_right_torque_effectiveness',
12018
+ type=BASE_TYPES[0x02], # uint8
12019
+ def_num=54,
12020
+ scale=2,
12021
+ units='percent',
12022
+ ),
12023
+ 55: Field(
12024
+ name='avg_left_pedal_smoothness',
12025
+ type=BASE_TYPES[0x02], # uint8
12026
+ def_num=55,
12027
+ scale=2,
12028
+ units='percent',
12029
+ ),
12030
+ 56: Field(
12031
+ name='avg_right_pedal_smoothness',
12032
+ type=BASE_TYPES[0x02], # uint8
12033
+ def_num=56,
12034
+ scale=2,
12035
+ units='percent',
12036
+ ),
12037
+ 57: Field(
12038
+ name='avg_combined_pedal_smoothness',
12039
+ type=BASE_TYPES[0x02], # uint8
12040
+ def_num=57,
12041
+ scale=2,
12042
+ units='percent',
12043
+ ),
12044
+ 58: Field( # The flow score estimates how long distance wise a cyclist deaccelerates over intervals where deacceleration is unnecessary such as smooth turns or small grade angle intervals.
12045
+ name='avg_flow',
12046
+ type=BASE_TYPES[0x88], # float32
12047
+ def_num=58,
12048
+ units='Flow',
12049
+ ),
12050
+ 59: Field( # The grit score estimates how challenging a route could be for a cyclist in terms of time spent going over sharp turns or large grade slopes.
12051
+ name='total_grit',
12052
+ type=BASE_TYPES[0x88], # float32
12053
+ def_num=59,
12054
+ units='kGrit',
12055
+ ),
12056
+ 62: Field(
12057
+ name='swim_stroke',
12058
+ type=FIELD_TYPES['swim_stroke'],
12059
+ def_num=62,
12060
+ ),
12061
+ 63: Field( # # of active lengths of swim pool
12062
+ name='num_active_lengths',
12063
+ type=BASE_TYPES[0x84], # uint16
12064
+ def_num=63,
12065
+ units='lengths',
12066
+ ),
12067
+ 64: Field(
12068
+ name='avg_swolf',
12069
+ type=BASE_TYPES[0x84], # uint16
12070
+ def_num=64,
12071
+ ),
12072
+ 65: Field(
12073
+ name='avg_stroke_distance',
12074
+ type=BASE_TYPES[0x84], # uint16
12075
+ def_num=65,
12076
+ scale=100,
12077
+ units='m',
12078
+ ),
12079
+ 66: Field(
12080
+ name='avg_strokes_per_length',
12081
+ type=BASE_TYPES[0x84], # uint16
12082
+ def_num=66,
12083
+ scale=10,
12084
+ units='strokes/length',
12085
+ ),
12086
+ 67: Field( # This is only set for split types that will trigger the end of a lap when the split ends
12087
+ name='first_lap_index',
12088
+ type=BASE_TYPES[0x84], # uint16
12089
+ def_num=67,
12090
+ ),
12091
+ 68: Field( # This is only set for split types that will trigger the end of a lap when the split ends
12092
+ name='num_laps',
12093
+ type=BASE_TYPES[0x84], # uint16
12094
+ def_num=68,
12095
+ ),
12096
+ 69: Field(
12097
+ name='climb_grading_scale',
12098
+ type=FIELD_TYPES['climb_grading_scale'],
12099
+ def_num=69,
12100
+ ),
12101
+ 70: Field(
12102
+ name='climb_grade_value',
12103
+ type=BASE_TYPES[0x86], # uint32
12104
+ def_num=70,
12105
+ subfields=(
12106
+ SubField(
12107
+ name='climb_grade_brazilian',
12108
+ def_num=70,
12109
+ type=FIELD_TYPES['brazilian_grading_scale'],
12110
+ ref_fields=(
12111
+ ReferenceField(
12112
+ name='climb_grading_scale',
12113
+ def_num=69,
12114
+ value='brazilian',
12115
+ raw_value=6,
12116
+ ),
12117
+ ),
12118
+ ),
12119
+ SubField(
12120
+ name='climb_grade_british_adjectival',
12121
+ def_num=70,
12122
+ type=FIELD_TYPES['british_adjectival_grading_scale'],
12123
+ ref_fields=(
12124
+ ReferenceField(
12125
+ name='climb_grading_scale',
12126
+ def_num=69,
12127
+ value='british_adjectival',
12128
+ raw_value=3,
12129
+ ),
12130
+ ),
12131
+ ),
12132
+ SubField(
12133
+ name='climb_grade_british_technical',
12134
+ def_num=70,
12135
+ type=FIELD_TYPES['british_technical_grading_scale'],
12136
+ ref_fields=(
12137
+ ReferenceField(
12138
+ name='climb_grading_scale',
12139
+ def_num=69,
12140
+ value='british_technical',
12141
+ raw_value=4,
12142
+ ),
12143
+ ),
12144
+ ),
12145
+ SubField(
12146
+ name='climb_grade_dankyu',
12147
+ def_num=70,
12148
+ type=FIELD_TYPES['dankyu_grading_scale'],
12149
+ ref_fields=(
12150
+ ReferenceField(
12151
+ name='climb_grading_scale',
12152
+ def_num=69,
12153
+ value='dankyu',
12154
+ raw_value=10,
12155
+ ),
12156
+ ),
12157
+ ),
12158
+ SubField(
12159
+ name='climb_grade_ewbank',
12160
+ def_num=70,
12161
+ type=FIELD_TYPES['ewbank_grading_scale'],
12162
+ ref_fields=(
12163
+ ReferenceField(
12164
+ name='climb_grading_scale',
12165
+ def_num=69,
12166
+ value='ewbank',
12167
+ raw_value=5,
12168
+ ),
12169
+ ),
12170
+ ),
12171
+ SubField(
12172
+ name='climb_grade_font',
12173
+ def_num=70,
12174
+ type=FIELD_TYPES['font_grading_scale'],
12175
+ ref_fields=(
12176
+ ReferenceField(
12177
+ name='climb_grading_scale',
12178
+ def_num=69,
12179
+ value='font',
12180
+ raw_value=9,
12181
+ ),
12182
+ ),
12183
+ ),
12184
+ SubField(
12185
+ name='climb_grade_french',
12186
+ def_num=70,
12187
+ type=FIELD_TYPES['french_grading_scale'],
12188
+ ref_fields=(
12189
+ ReferenceField(
12190
+ name='climb_grading_scale',
12191
+ def_num=69,
12192
+ value='french',
12193
+ raw_value=2,
12194
+ ),
12195
+ ),
12196
+ ),
12197
+ SubField(
12198
+ name='climb_grade_saxon',
12199
+ def_num=70,
12200
+ type=FIELD_TYPES['saxon_grading_scale'],
12201
+ ref_fields=(
12202
+ ReferenceField(
12203
+ name='climb_grading_scale',
12204
+ def_num=69,
12205
+ value='saxon',
12206
+ raw_value=7,
12207
+ ),
12208
+ ),
12209
+ ),
12210
+ SubField(
12211
+ name='climb_grade_uiaa',
12212
+ def_num=70,
12213
+ type=FIELD_TYPES['uiaa_grading_scale'],
12214
+ ref_fields=(
12215
+ ReferenceField(
12216
+ name='climb_grading_scale',
12217
+ def_num=69,
12218
+ value='uiaa',
12219
+ raw_value=1,
12220
+ ),
12221
+ ),
12222
+ ),
12223
+ SubField(
12224
+ name='climb_grade_vermin',
12225
+ def_num=70,
12226
+ type=FIELD_TYPES['vermin_grading_scale'],
12227
+ ref_fields=(
12228
+ ReferenceField(
12229
+ name='climb_grading_scale',
12230
+ def_num=69,
12231
+ value='vermin',
12232
+ raw_value=8,
12233
+ ),
12234
+ ),
12235
+ ),
12236
+ SubField(
12237
+ name='climb_grade_yds',
12238
+ def_num=70,
12239
+ type=FIELD_TYPES['yds_grading_scale'],
12240
+ ref_fields=(
12241
+ ReferenceField(
12242
+ name='climb_grading_scale',
12243
+ def_num=69,
12244
+ value='yds',
12245
+ raw_value=0,
12246
+ ),
12247
+ ),
12248
+ ),
12249
+ ),
12250
+ ),
12251
+ 71: Field( # Use with indoor climbing activities only
12252
+ name='status',
12253
+ type=FIELD_TYPES['split_status'],
12254
+ def_num=71,
12255
+ ),
12256
+ 72: Field( # Use with indoor climbing activities only
12257
+ name='num_falls',
12258
+ type=BASE_TYPES[0x84], # uint16
12259
+ def_num=72,
12260
+ ),
12261
+ 73: Field( # Use with indoor climbing activities only
12262
+ name='climb_send',
12263
+ type=FIELD_TYPES['bool'],
12264
+ def_num=73,
12265
+ ),
12266
+ 74: Field(
12267
+ name='start_elevation',
12268
+ type=BASE_TYPES[0x86], # uint32
12269
+ def_num=74,
12270
+ scale=5,
12271
+ offset=500,
12272
+ units='m',
12273
+ ),
12274
+ 78: Field( # Active time of split rounds
12275
+ name='active_time',
12276
+ type=BASE_TYPES[0x86], # uint32
12277
+ def_num=78,
12278
+ scale=1000,
12279
+ units='s',
12280
+ ),
12281
+ 79: Field(
12282
+ name='metabolic_calories',
12283
+ type=BASE_TYPES[0x84], # uint16
12284
+ def_num=79,
12285
+ units='kcal',
12286
+ ),
12287
+ 80: Field( # fractional part of total_ascent
12288
+ name='total_fractional_ascent',
12289
+ type=BASE_TYPES[0x02], # uint8
12290
+ def_num=80,
12291
+ scale=100,
12292
+ units='m',
12293
+ ),
12294
+ 81: Field( # fractional part of total_descent
12295
+ name='total_fractional_descent',
12296
+ type=BASE_TYPES[0x02], # uint8
12297
+ def_num=81,
12298
+ scale=100,
12299
+ units='m',
12300
+ ),
12301
+ 88: Field(
12302
+ name='avg_grade',
12303
+ type=BASE_TYPES[0x83], # sint16
12304
+ def_num=88,
12305
+ scale=100,
12306
+ units='%',
12307
+ ),
12308
+ 89: Field(
12309
+ name='max_grade',
12310
+ type=BASE_TYPES[0x83], # sint16
12311
+ def_num=89,
12312
+ scale=100,
12313
+ units='%',
12314
+ ),
12315
+ 90: Field(
12316
+ name='min_cadence',
12317
+ type=BASE_TYPES[0x84], # uint16
12318
+ def_num=90,
12319
+ scale=128,
12320
+ units='rpm',
12321
+ subfields=(
12322
+ SubField(
12323
+ name='min_paddlesport_cadence',
12324
+ def_num=90,
12325
+ type=BASE_TYPES[0x84], # uint16
12326
+ scale=128,
12327
+ units='strokes/min',
12328
+ ref_fields=(
12329
+ ReferenceField(
12330
+ name='sport',
12331
+ def_num=11,
12332
+ value='rowing',
12333
+ raw_value=15,
12334
+ ),
12335
+ ReferenceField(
12336
+ name='sport',
12337
+ def_num=11,
12338
+ value='stand_up_paddleboarding',
12339
+ raw_value=37,
12340
+ ),
12341
+ ),
12342
+ ),
12343
+ SubField( # min pushes per minute in a split
12344
+ name='min_push_cadence',
12345
+ def_num=90,
12346
+ type=BASE_TYPES[0x84], # uint16
12347
+ units='pushes/min',
12348
+ ref_fields=(
12349
+ ReferenceField(
12350
+ name='sport',
12351
+ def_num=11,
12352
+ value='wheelchair_push_run',
12353
+ raw_value=66,
12354
+ ),
12355
+ ReferenceField(
12356
+ name='sport',
12357
+ def_num=11,
12358
+ value='wheelchair_push_walk',
12359
+ raw_value=65,
12360
+ ),
12361
+ ),
12362
+ ),
12363
+ SubField(
12364
+ name='min_running_cadence',
12365
+ def_num=90,
12366
+ type=BASE_TYPES[0x84], # uint16
12367
+ scale=128,
12368
+ units='strides/min',
12369
+ ref_fields=(
12370
+ ReferenceField(
12371
+ name='sport',
12372
+ def_num=11,
12373
+ value='running',
12374
+ raw_value=1,
12375
+ ),
12376
+ ),
12377
+ ),
12378
+ SubField(
12379
+ name='min_swimming_cadence',
12380
+ def_num=90,
12381
+ type=BASE_TYPES[0x84], # uint16
12382
+ scale=128,
12383
+ units='strokes/min',
12384
+ ref_fields=(
12385
+ ReferenceField(
12386
+ name='sport',
12387
+ def_num=11,
12388
+ value='swimming',
12389
+ raw_value=5,
12390
+ ),
12391
+ ),
12392
+ ),
12393
+ ),
12394
+ ),
12395
+ 93: Field(
12396
+ name='avg_grade_adjusted_speed',
12397
+ type=BASE_TYPES[0x86], # uint32
12398
+ def_num=93,
12399
+ scale=1000,
12400
+ units='m/s',
12401
+ ),
12402
+ 94: Field(
12403
+ name='avg_stress',
12404
+ type=BASE_TYPES[0x84], # uint16
12405
+ def_num=94,
12406
+ ),
12407
+ 99: Field(
12408
+ name='avg_vam',
12409
+ type=BASE_TYPES[0x84], # uint16
12410
+ def_num=99,
12411
+ scale=1000,
12412
+ units='m/s',
12413
+ ),
12414
+ 104: Field(
12415
+ name='jump_count',
12416
+ type=BASE_TYPES[0x02], # uint8
12417
+ def_num=104,
12418
+ ),
12419
+ 110: Field(
12420
+ name='total_moving_time',
12421
+ type=BASE_TYPES[0x86], # uint32
12422
+ def_num=110,
12423
+ scale=1000,
12424
+ units='s',
12425
+ ),
12426
+ 112: Field(
12427
+ name='dive_section_type',
12428
+ type=FIELD_TYPES['dive_section_type'],
12429
+ def_num=112,
12430
+ ),
12431
+ 113: Field(
12432
+ name='avg_ascent_rate',
12433
+ type=BASE_TYPES[0x86], # uint32
12434
+ def_num=113,
12435
+ scale=1000,
12436
+ units='m/s',
12437
+ ),
12438
+ 114: Field(
12439
+ name='max_ascent_rate',
12440
+ type=BASE_TYPES[0x86], # uint32
12441
+ def_num=114,
12442
+ scale=1000,
12443
+ units='m/s',
12444
+ ),
12445
+ 115: Field(
12446
+ name='avg_descent_rate',
12447
+ type=BASE_TYPES[0x86], # uint32
12448
+ def_num=115,
12449
+ scale=1000,
12450
+ units='m/s',
12451
+ ),
12452
+ 116: Field(
12453
+ name='max_descent_rate',
12454
+ type=BASE_TYPES[0x86], # uint32
12455
+ def_num=116,
12456
+ scale=1000,
12457
+ units='m/s',
12458
+ ),
12459
+ 117: Field(
12460
+ name='total_ascent_time',
12461
+ type=BASE_TYPES[0x86], # uint32
12462
+ def_num=117,
12463
+ scale=1000,
12464
+ units='s',
12465
+ ),
12466
+ 118: Field(
12467
+ name='total_descent_time',
12468
+ type=BASE_TYPES[0x86], # uint32
12469
+ def_num=118,
12470
+ scale=1000,
12471
+ units='s',
12472
+ ),
12473
+ 119: Field(
12474
+ name='total_hang_time',
12475
+ type=BASE_TYPES[0x86], # uint32
12476
+ def_num=119,
12477
+ scale=1000,
12478
+ units='s',
12479
+ ),
12480
+ 120: Field(
12481
+ name='apnea_discipline',
12482
+ type=FIELD_TYPES['apnea_discipline'],
12483
+ def_num=120,
12484
+ ),
12485
+ 121: Field( # Average depth. 0 if above water
12486
+ name='avg_depth',
12487
+ type=BASE_TYPES[0x86], # uint32
12488
+ def_num=121,
12489
+ scale=1000,
12490
+ units='m',
12491
+ ),
12492
+ 122: Field( # Max depth. 0 if above water
12493
+ name='max_depth',
12494
+ type=BASE_TYPES[0x86], # uint32
12495
+ def_num=122,
12496
+ scale=1000,
12497
+ units='m',
12498
+ ),
12499
+ 124: Field(
12500
+ name='min_heart_rate',
12501
+ type=BASE_TYPES[0x02], # uint8
12502
+ def_num=124,
12503
+ units='bpm',
12504
+ ),
12505
+ 127: Field( # Time since end of last dive
12506
+ name='surface_interval',
12507
+ type=BASE_TYPES[0x86], # uint32
12508
+ def_num=127,
12509
+ units='s',
12510
+ ),
12511
+ 142: Field(
12512
+ name='total_fractional_cycles',
12513
+ type=BASE_TYPES[0x02], # uint8
12514
+ def_num=142,
12515
+ scale=128,
12516
+ units='cycles',
12517
+ ),
12518
+ 144: Field(
12519
+ name='avg_stance_time_percent',
12520
+ type=BASE_TYPES[0x84], # uint16
12521
+ def_num=144,
12522
+ scale=100,
12523
+ units='percent',
12524
+ ),
12525
+ 168: Field(
12526
+ name='total_anaerobic_training_effect',
12527
+ type=BASE_TYPES[0x02], # uint8
12528
+ def_num=168,
12529
+ scale=10,
12530
+ ),
12531
+ 169: Field(
12532
+ name='front_gear_shift_count',
12533
+ type=BASE_TYPES[0x84], # uint16
12534
+ def_num=169,
12535
+ ),
12536
+ 170: Field(
12537
+ name='rear_gear_shift_count',
12538
+ type=BASE_TYPES[0x84], # uint16
12539
+ def_num=170,
12540
+ ),
12541
+ 253: FIELD_TYPE_TIMESTAMP,
12542
+ 254: Field(
12543
+ name='message_index',
12544
+ type=FIELD_TYPES['message_index'],
12545
+ def_num=254,
12546
+ ),
12547
+ },
12548
+ ),
12549
+ 313: MessageType(
12550
+ name='split_summary',
12551
+ mesg_num=313,
12552
+ fields={
12553
+ 0: Field(
12554
+ name='split_type',
12555
+ type=FIELD_TYPES['split_type'],
12556
+ def_num=0,
12557
+ ),
12558
+ 1: Field(
12559
+ name='sport',
12560
+ type=FIELD_TYPES['sport'],
12561
+ def_num=1,
12562
+ ),
12563
+ 2: Field(
12564
+ name='sub_sport',
12565
+ type=FIELD_TYPES['sub_sport'],
12566
+ def_num=2,
12567
+ ),
12568
+ 3: Field(
12569
+ name='num_splits',
12570
+ type=BASE_TYPES[0x84], # uint16
12571
+ def_num=3,
12572
+ ),
12573
+ 4: Field(
12574
+ name='total_timer_time',
12575
+ type=BASE_TYPES[0x86], # uint32
12576
+ def_num=4,
12577
+ scale=1000,
12578
+ units='s',
12579
+ ),
12580
+ 5: Field(
12581
+ name='total_distance',
12582
+ type=BASE_TYPES[0x86], # uint32
12583
+ def_num=5,
12584
+ scale=100,
12585
+ units='m',
12586
+ ),
12587
+ 6: Field(
12588
+ name='avg_speed',
12589
+ type=BASE_TYPES[0x86], # uint32
12590
+ def_num=6,
12591
+ scale=1000,
12592
+ units='m/s',
12593
+ ),
12594
+ 7: Field(
12595
+ name='max_speed',
12596
+ type=BASE_TYPES[0x86], # uint32
12597
+ def_num=7,
12598
+ scale=1000,
12599
+ units='m/s',
12600
+ ),
12601
+ 8: Field(
12602
+ name='total_ascent',
12603
+ type=BASE_TYPES[0x84], # uint16
12604
+ def_num=8,
12605
+ units='m',
12606
+ ),
12607
+ 9: Field(
12608
+ name='total_descent',
12609
+ type=BASE_TYPES[0x84], # uint16
12610
+ def_num=9,
12611
+ units='m',
12612
+ ),
12613
+ 10: Field(
12614
+ name='avg_heart_rate',
12615
+ type=BASE_TYPES[0x02], # uint8
12616
+ def_num=10,
12617
+ units='bpm',
12618
+ ),
12619
+ 11: Field(
12620
+ name='max_heart_rate',
12621
+ type=BASE_TYPES[0x02], # uint8
12622
+ def_num=11,
12623
+ units='bpm',
12624
+ ),
12625
+ 12: Field(
12626
+ name='avg_vert_speed',
12627
+ type=BASE_TYPES[0x85], # sint32
12628
+ def_num=12,
12629
+ scale=1000,
12630
+ units='m/s',
12631
+ ),
12632
+ 13: Field(
12633
+ name='total_calories',
12634
+ type=BASE_TYPES[0x86], # uint32
12635
+ def_num=13,
12636
+ units='kcal',
12637
+ ),
12638
+ 14: Field(
12639
+ name='avg_cadence',
12640
+ type=BASE_TYPES[0x84], # uint16
12641
+ def_num=14,
12642
+ scale=128,
12643
+ units='rpm',
12644
+ subfields=(
12645
+ SubField(
12646
+ name='avg_paddlesport_cadence',
12647
+ def_num=14,
12648
+ type=BASE_TYPES[0x84], # uint16
12649
+ scale=128,
12650
+ units='strokes/min',
12651
+ ref_fields=(
12652
+ ReferenceField(
12653
+ name='sport',
12654
+ def_num=1,
12655
+ value='rowing',
12656
+ raw_value=15,
12657
+ ),
12658
+ ReferenceField(
12659
+ name='sport',
12660
+ def_num=1,
12661
+ value='stand_up_paddleboarding',
12662
+ raw_value=37,
12663
+ ),
12664
+ ),
12665
+ ),
12666
+ SubField( # average pushes per minute in all splits of the type
12667
+ name='avg_push_cadence',
12668
+ def_num=14,
12669
+ type=BASE_TYPES[0x84], # uint16
12670
+ units='pushes/min',
12671
+ ref_fields=(
12672
+ ReferenceField(
12673
+ name='sport',
12674
+ def_num=1,
12675
+ value='wheelchair_push_run',
12676
+ raw_value=66,
12677
+ ),
12678
+ ReferenceField(
12679
+ name='sport',
12680
+ def_num=1,
12681
+ value='wheelchair_push_walk',
12682
+ raw_value=65,
12683
+ ),
12684
+ ),
12685
+ ),
12686
+ SubField(
12687
+ name='avg_running_cadence',
12688
+ def_num=14,
12689
+ type=BASE_TYPES[0x84], # uint16
12690
+ scale=128,
12691
+ units='strides/min',
12692
+ ref_fields=(
12693
+ ReferenceField(
12694
+ name='sport',
12695
+ def_num=1,
12696
+ value='running',
12697
+ raw_value=1,
12698
+ ),
12699
+ ),
12700
+ ),
12701
+ SubField(
12702
+ name='avg_swimming_cadence',
12703
+ def_num=14,
12704
+ type=BASE_TYPES[0x84], # uint16
12705
+ scale=128,
12706
+ units='strokes/min',
12707
+ ref_fields=(
12708
+ ReferenceField(
12709
+ name='sport',
12710
+ def_num=1,
12711
+ value='swimming',
12712
+ raw_value=5,
12713
+ ),
12714
+ ),
12715
+ ),
12716
+ ),
12717
+ ),
12718
+ 15: Field(
12719
+ name='max_cadence',
12720
+ type=BASE_TYPES[0x84], # uint16
12721
+ def_num=15,
12722
+ scale=128,
12723
+ units='rpm',
12724
+ subfields=(
12725
+ SubField(
12726
+ name='max_paddlesport_cadence',
12727
+ def_num=15,
12728
+ type=BASE_TYPES[0x84], # uint16
12729
+ scale=128,
12730
+ units='strokes/min',
12731
+ ref_fields=(
12732
+ ReferenceField(
12733
+ name='sport',
12734
+ def_num=1,
12735
+ value='rowing',
12736
+ raw_value=15,
12737
+ ),
12738
+ ReferenceField(
12739
+ name='sport',
12740
+ def_num=1,
12741
+ value='stand_up_paddleboarding',
12742
+ raw_value=37,
12743
+ ),
12744
+ ),
12745
+ ),
12746
+ SubField( # max pushes per minute in all splits of the type
12747
+ name='max_push_cadence',
12748
+ def_num=15,
12749
+ type=BASE_TYPES[0x84], # uint16
12750
+ units='pushes/min',
12751
+ ref_fields=(
12752
+ ReferenceField(
12753
+ name='sport',
12754
+ def_num=1,
12755
+ value='wheelchair_push_run',
12756
+ raw_value=66,
12757
+ ),
12758
+ ReferenceField(
12759
+ name='sport',
12760
+ def_num=1,
12761
+ value='wheelchair_push_walk',
12762
+ raw_value=65,
12763
+ ),
12764
+ ),
12765
+ ),
12766
+ SubField(
12767
+ name='max_running_cadence',
12768
+ def_num=15,
12769
+ type=BASE_TYPES[0x84], # uint16
12770
+ scale=128,
12771
+ units='strides/min',
12772
+ ref_fields=(
12773
+ ReferenceField(
12774
+ name='sport',
12775
+ def_num=1,
12776
+ value='running',
12777
+ raw_value=1,
12778
+ ),
12779
+ ),
12780
+ ),
12781
+ SubField(
12782
+ name='max_swimming_cadence',
12783
+ def_num=15,
12784
+ type=BASE_TYPES[0x84], # uint16
12785
+ scale=128,
12786
+ units='strokes/min',
12787
+ ref_fields=(
12788
+ ReferenceField(
12789
+ name='sport',
12790
+ def_num=1,
12791
+ value='swimming',
12792
+ raw_value=5,
12793
+ ),
12794
+ ),
12795
+ ),
12796
+ ),
12797
+ ),
12798
+ 16: Field(
12799
+ name='total_cycles',
12800
+ type=BASE_TYPES[0x86], # uint32
12801
+ def_num=16,
12802
+ units='cycles',
12803
+ subfields=(
12804
+ SubField( # total number of pushes in all splits of the type
12805
+ name='total_pushes',
12806
+ def_num=16,
12807
+ type=BASE_TYPES[0x86], # uint32
12808
+ units='pushes',
12809
+ ref_fields=(
12810
+ ReferenceField(
12811
+ name='sport',
12812
+ def_num=1,
12813
+ value='wheelchair_push_run',
12814
+ raw_value=66,
12815
+ ),
12816
+ ReferenceField(
12817
+ name='sport',
12818
+ def_num=1,
12819
+ value='wheelchair_push_walk',
12820
+ raw_value=65,
12821
+ ),
12822
+ ),
12823
+ ),
12824
+ SubField( # total reps in all splits
12825
+ name='total_reps',
12826
+ def_num=16,
12827
+ type=BASE_TYPES[0x86], # uint32
12828
+ units='reps',
12829
+ ref_fields=(
12830
+ ReferenceField(
12831
+ name='sport',
12832
+ def_num=1,
12833
+ value='hiit',
12834
+ raw_value=62,
12835
+ ),
12836
+ ),
12837
+ ),
12838
+ SubField(
12839
+ name='total_strides',
12840
+ def_num=16,
12841
+ type=BASE_TYPES[0x86], # uint32
12842
+ units='strides',
12843
+ ref_fields=(
12844
+ ReferenceField(
12845
+ name='sport',
12846
+ def_num=1,
12847
+ value='running',
12848
+ raw_value=1,
12849
+ ),
12850
+ ReferenceField(
12851
+ name='sport',
12852
+ def_num=1,
12853
+ value='walking',
12854
+ raw_value=11,
12855
+ ),
12856
+ ),
12857
+ ),
12858
+ SubField(
12859
+ name='total_strokes',
12860
+ def_num=16,
12861
+ type=BASE_TYPES[0x86], # uint32
12862
+ units='strokes',
12863
+ ref_fields=(
12864
+ ReferenceField(
12865
+ name='sport',
12866
+ def_num=1,
12867
+ value='cycling',
12868
+ raw_value=2,
12869
+ ),
12870
+ ReferenceField(
12871
+ name='sport',
12872
+ def_num=1,
12873
+ value='swimming',
12874
+ raw_value=5,
12875
+ ),
12876
+ ReferenceField(
12877
+ name='sport',
12878
+ def_num=1,
12879
+ value='rowing',
12880
+ raw_value=15,
12881
+ ),
12882
+ ReferenceField(
12883
+ name='sport',
12884
+ def_num=1,
12885
+ value='stand_up_paddleboarding',
12886
+ raw_value=37,
12887
+ ),
12888
+ ),
12889
+ ),
12890
+ ),
12891
+ ),
12892
+ 17: Field(
12893
+ name='avg_temperature',
12894
+ type=BASE_TYPES[0x01], # sint8
12895
+ def_num=17,
12896
+ units='C',
12897
+ ),
12898
+ 18: Field(
12899
+ name='max_temperature',
12900
+ type=BASE_TYPES[0x01], # sint8
12901
+ def_num=18,
12902
+ units='C',
12903
+ ),
12904
+ 19: Field(
12905
+ name='min_temperature',
12906
+ type=BASE_TYPES[0x01], # sint8
12907
+ def_num=19,
12908
+ units='C',
12909
+ ),
12910
+ 20: Field(
12911
+ name='avg_vertical_oscillation',
12912
+ type=BASE_TYPES[0x84], # uint16
12913
+ def_num=20,
12914
+ scale=10,
12915
+ units='mm',
12916
+ ),
12917
+ 21: Field(
12918
+ name='avg_vertical_ratio',
12919
+ type=BASE_TYPES[0x84], # uint16
12920
+ def_num=21,
12921
+ scale=100,
12922
+ units='percent',
12923
+ ),
12924
+ 22: Field(
12925
+ name='avg_stance_time',
12926
+ type=BASE_TYPES[0x84], # uint16
12927
+ def_num=22,
12928
+ scale=10,
12929
+ units='ms',
12930
+ ),
12931
+ 23: Field(
12932
+ name='avg_stance_time_balance',
12933
+ type=BASE_TYPES[0x84], # uint16
12934
+ def_num=23,
12935
+ scale=100,
12936
+ units='percent',
12937
+ ),
12938
+ 24: Field(
12939
+ name='avg_step_length',
12940
+ type=BASE_TYPES[0x84], # uint16
12941
+ def_num=24,
12942
+ scale=10,
12943
+ units='mm',
12944
+ ),
12945
+ 25: Field(
12946
+ name='avg_power',
12947
+ type=BASE_TYPES[0x84], # uint16
12948
+ def_num=25,
12949
+ units='watts',
12950
+ ),
12951
+ 26: Field(
12952
+ name='max_power',
12953
+ type=BASE_TYPES[0x84], # uint16
12954
+ def_num=26,
12955
+ units='watts',
12956
+ ),
12957
+ 27: Field(
12958
+ name='normalized_power',
12959
+ type=BASE_TYPES[0x84], # uint16
12960
+ def_num=27,
12961
+ units='watts',
12962
+ ),
12963
+ 28: Field( # Total time spent in the standing position
12964
+ name='left_right_balance',
12965
+ type=FIELD_TYPES['left_right_balance_100'],
12966
+ def_num=28,
12967
+ ),
12968
+ 29: Field( # Average left platform center offset
12969
+ name='time_standing',
12970
+ type=BASE_TYPES[0x86], # uint32
12971
+ def_num=29,
12972
+ scale=1000,
12973
+ units='s',
12974
+ ),
12975
+ 30: Field( # Average right platform center offset
12976
+ name='avg_left_pco',
12977
+ type=BASE_TYPES[0x01], # sint8
12978
+ def_num=30,
12979
+ units='mm',
12980
+ ),
12981
+ 31: Field( # Average left power phase angles. Data value indexes defined by power_phase_type.
12982
+ name='avg_right_pco',
12983
+ type=BASE_TYPES[0x01], # sint8
12984
+ def_num=31,
12985
+ units='mm',
12986
+ ),
12987
+ 32: Field( # Average left power phase peak angles. Data value indexes defined by power_phase_type.
12988
+ name='avg_left_power_phase',
12989
+ type=BASE_TYPES[0x02], # uint8
12990
+ def_num=32,
12991
+ scale=0.7111111,
12992
+ units='degrees',
12993
+ ),
12994
+ 33: Field( # Average right power phase angles. Data value indexes defined by power_phase_type.
12995
+ name='avg_left_power_phase_peak',
12996
+ type=BASE_TYPES[0x02], # uint8
12997
+ def_num=33,
12998
+ scale=0.7111111,
12999
+ units='degrees',
13000
+ ),
13001
+ 34: Field( # Average right power phase peak angles. Data value indexes defined by power_phase_type.
13002
+ name='avg_right_power_phase',
13003
+ type=BASE_TYPES[0x02], # uint8
13004
+ def_num=34,
13005
+ scale=0.7111111,
13006
+ units='degrees',
13007
+ ),
13008
+ 35: Field( # Average power by position. Data value indexes defined by rider_position_type.
13009
+ name='avg_right_power_phase_peak',
13010
+ type=BASE_TYPES[0x02], # uint8
13011
+ def_num=35,
13012
+ scale=0.7111111,
13013
+ units='degrees',
13014
+ ),
13015
+ 36: Field( # Maximum power by position. Data value indexes defined by rider_position_type.
13016
+ name='avg_power_position',
13017
+ type=BASE_TYPES[0x84], # uint16
13018
+ def_num=36,
13019
+ units='watts',
13020
+ ),
13021
+ 37: Field(
13022
+ name='max_power_position',
13023
+ type=BASE_TYPES[0x84], # uint16
13024
+ def_num=37,
13025
+ units='watts',
13026
+ ),
13027
+ 38: Field(
13028
+ name='avg_left_torque_effectiveness',
13029
+ type=BASE_TYPES[0x02], # uint8
13030
+ def_num=38,
13031
+ scale=2,
13032
+ units='percent',
13033
+ ),
13034
+ 39: Field(
13035
+ name='avg_right_torque_effectiveness',
13036
+ type=BASE_TYPES[0x02], # uint8
13037
+ def_num=39,
13038
+ scale=2,
13039
+ units='percent',
13040
+ ),
13041
+ 40: Field(
13042
+ name='avg_left_pedal_smoothness',
13043
+ type=BASE_TYPES[0x02], # uint8
13044
+ def_num=40,
13045
+ scale=2,
13046
+ units='percent',
13047
+ ),
13048
+ 41: Field(
13049
+ name='avg_right_pedal_smoothness',
13050
+ type=BASE_TYPES[0x02], # uint8
13051
+ def_num=41,
13052
+ scale=2,
13053
+ units='percent',
13054
+ ),
13055
+ 42: Field( # The flow score estimates how long distance wise a cyclist deaccelerates over intervals where deacceleration is unnecessary such as smooth turns or small grade angle intervals.
13056
+ name='avg_combined_pedal_smoothness',
13057
+ type=BASE_TYPES[0x02], # uint8
13058
+ def_num=42,
13059
+ scale=2,
13060
+ units='percent',
13061
+ ),
13062
+ 43: Field( # The grit score estimates how challenging a route could be for a cyclist in terms of time spent going over sharp turns or large grade slopes.
13063
+ name='avg_flow',
13064
+ type=BASE_TYPES[0x88], # float32
13065
+ def_num=43,
13066
+ units='Flow',
13067
+ ),
13068
+ 44: Field(
13069
+ name='total_grit',
13070
+ type=BASE_TYPES[0x88], # float32
13071
+ def_num=44,
13072
+ units='kGrit',
13073
+ ),
13074
+ 47: Field( # # of active lengths of swim pool
13075
+ name='swim_stroke',
13076
+ type=FIELD_TYPES['swim_stroke'],
13077
+ def_num=47,
13078
+ ),
13079
+ 48: Field(
13080
+ name='num_active_lengths',
13081
+ type=BASE_TYPES[0x84], # uint16
13082
+ def_num=48,
13083
+ units='lengths',
13084
+ ),
13085
+ 49: Field(
13086
+ name='avg_swolf',
13087
+ type=BASE_TYPES[0x84], # uint16
13088
+ def_num=49,
13089
+ ),
13090
+ 50: Field(
13091
+ name='avg_stroke_distance',
13092
+ type=BASE_TYPES[0x84], # uint16
13093
+ def_num=50,
13094
+ scale=100,
13095
+ units='m',
13096
+ ),
13097
+ 51: Field(
13098
+ name='avg_strokes_per_length',
13099
+ type=BASE_TYPES[0x84], # uint16
13100
+ def_num=51,
13101
+ scale=10,
13102
+ units='strokes/length',
10779
13103
  ),
10780
- 28: Field(
10781
- name='total_calories',
10782
- type=BASE_TYPES[0x86], # uint32
10783
- def_num=28,
10784
- units='kcal',
13104
+ 52: Field(
13105
+ name='avg_ascent',
13106
+ type=BASE_TYPES[0x84], # uint16
13107
+ def_num=52,
13108
+ units='m',
10785
13109
  ),
10786
- 74: Field(
10787
- name='start_elevation',
10788
- type=BASE_TYPES[0x86], # uint32
10789
- def_num=74,
10790
- scale=5,
10791
- offset=500,
13110
+ 53: Field(
13111
+ name='max_ascent',
13112
+ type=BASE_TYPES[0x84], # uint16
13113
+ def_num=53,
10792
13114
  units='m',
10793
13115
  ),
10794
- 78: Field( # Active time of split rounds
10795
- name='active_time',
10796
- type=BASE_TYPES[0x86], # uint32
10797
- def_num=78,
10798
- scale=1000,
10799
- units='s',
13116
+ 54: Field(
13117
+ name='climb_grading_scale',
13118
+ type=FIELD_TYPES['climb_grading_scale'],
13119
+ def_num=54,
10800
13120
  ),
10801
- 110: Field(
10802
- name='total_moving_time',
13121
+ 55: Field(
13122
+ name='climb_max_grade_value',
10803
13123
  type=BASE_TYPES[0x86], # uint32
10804
- def_num=110,
10805
- scale=1000,
10806
- units='s',
10807
- ),
10808
- 254: Field(
10809
- name='message_index',
10810
- type=FIELD_TYPES['message_index'],
10811
- def_num=254,
13124
+ def_num=55,
13125
+ subfields=(
13126
+ SubField(
13127
+ name='climb_max_grade_brazilian',
13128
+ def_num=55,
13129
+ type=FIELD_TYPES['brazilian_grading_scale'],
13130
+ ref_fields=(
13131
+ ReferenceField(
13132
+ name='climb_grading_scale',
13133
+ def_num=54,
13134
+ value='brazilian',
13135
+ raw_value=6,
13136
+ ),
13137
+ ),
13138
+ ),
13139
+ SubField(
13140
+ name='climb_max_grade_british_adjectival',
13141
+ def_num=55,
13142
+ type=FIELD_TYPES['british_adjectival_grading_scale'],
13143
+ ref_fields=(
13144
+ ReferenceField(
13145
+ name='climb_grading_scale',
13146
+ def_num=54,
13147
+ value='british_adjectival',
13148
+ raw_value=3,
13149
+ ),
13150
+ ),
13151
+ ),
13152
+ SubField(
13153
+ name='climb_max_grade_british_technical',
13154
+ def_num=55,
13155
+ type=FIELD_TYPES['british_technical_grading_scale'],
13156
+ ref_fields=(
13157
+ ReferenceField(
13158
+ name='climb_grading_scale',
13159
+ def_num=54,
13160
+ value='british_technical',
13161
+ raw_value=4,
13162
+ ),
13163
+ ),
13164
+ ),
13165
+ SubField(
13166
+ name='climb_max_grade_dankyu',
13167
+ def_num=55,
13168
+ type=FIELD_TYPES['dankyu_grading_scale'],
13169
+ ref_fields=(
13170
+ ReferenceField(
13171
+ name='climb_grading_scale',
13172
+ def_num=54,
13173
+ value='dankyu',
13174
+ raw_value=10,
13175
+ ),
13176
+ ),
13177
+ ),
13178
+ SubField(
13179
+ name='climb_max_grade_ewbank',
13180
+ def_num=55,
13181
+ type=FIELD_TYPES['ewbank_grading_scale'],
13182
+ ref_fields=(
13183
+ ReferenceField(
13184
+ name='climb_grading_scale',
13185
+ def_num=54,
13186
+ value='ewbank',
13187
+ raw_value=5,
13188
+ ),
13189
+ ),
13190
+ ),
13191
+ SubField(
13192
+ name='climb_max_grade_font',
13193
+ def_num=55,
13194
+ type=FIELD_TYPES['font_grading_scale'],
13195
+ ref_fields=(
13196
+ ReferenceField(
13197
+ name='climb_grading_scale',
13198
+ def_num=54,
13199
+ value='font',
13200
+ raw_value=9,
13201
+ ),
13202
+ ),
13203
+ ),
13204
+ SubField(
13205
+ name='climb_max_grade_french',
13206
+ def_num=55,
13207
+ type=FIELD_TYPES['french_grading_scale'],
13208
+ ref_fields=(
13209
+ ReferenceField(
13210
+ name='climb_grading_scale',
13211
+ def_num=54,
13212
+ value='french',
13213
+ raw_value=2,
13214
+ ),
13215
+ ),
13216
+ ),
13217
+ SubField(
13218
+ name='climb_max_grade_saxon',
13219
+ def_num=55,
13220
+ type=FIELD_TYPES['saxon_grading_scale'],
13221
+ ref_fields=(
13222
+ ReferenceField(
13223
+ name='climb_grading_scale',
13224
+ def_num=54,
13225
+ value='saxon',
13226
+ raw_value=7,
13227
+ ),
13228
+ ),
13229
+ ),
13230
+ SubField(
13231
+ name='climb_max_grade_uiaa',
13232
+ def_num=55,
13233
+ type=FIELD_TYPES['uiaa_grading_scale'],
13234
+ ref_fields=(
13235
+ ReferenceField(
13236
+ name='climb_grading_scale',
13237
+ def_num=54,
13238
+ value='uiaa',
13239
+ raw_value=1,
13240
+ ),
13241
+ ),
13242
+ ),
13243
+ SubField(
13244
+ name='climb_max_grade_vermin',
13245
+ def_num=55,
13246
+ type=FIELD_TYPES['vermin_grading_scale'],
13247
+ ref_fields=(
13248
+ ReferenceField(
13249
+ name='climb_grading_scale',
13250
+ def_num=54,
13251
+ value='vermin',
13252
+ raw_value=8,
13253
+ ),
13254
+ ),
13255
+ ),
13256
+ SubField(
13257
+ name='climb_max_grade_yds',
13258
+ def_num=55,
13259
+ type=FIELD_TYPES['yds_grading_scale'],
13260
+ ref_fields=(
13261
+ ReferenceField(
13262
+ name='climb_grading_scale',
13263
+ def_num=54,
13264
+ value='yds',
13265
+ raw_value=0,
13266
+ ),
13267
+ ),
13268
+ ),
13269
+ ),
10812
13270
  ),
10813
- },
10814
- ),
10815
- 313: MessageType(
10816
- name='split_summary',
10817
- mesg_num=313,
10818
- fields={
10819
- 0: Field(
10820
- name='split_type',
10821
- type=FIELD_TYPES['split_type'],
10822
- def_num=0,
13271
+ 56: Field(
13272
+ name='num_falls',
13273
+ type=BASE_TYPES[0x84], # uint16
13274
+ def_num=56,
10823
13275
  ),
10824
- 3: Field(
10825
- name='num_splits',
13276
+ 58: Field(
13277
+ name='num_climbs_attempted',
10826
13278
  type=BASE_TYPES[0x84], # uint16
10827
- def_num=3,
13279
+ def_num=58,
10828
13280
  ),
10829
- 4: Field(
10830
- name='total_timer_time',
10831
- type=BASE_TYPES[0x86], # uint32
10832
- def_num=4,
10833
- scale=1000,
10834
- units='s',
13281
+ 59: Field(
13282
+ name='num_climbs_completed',
13283
+ type=BASE_TYPES[0x84], # uint16
13284
+ def_num=59,
10835
13285
  ),
10836
- 5: Field(
10837
- name='total_distance',
13286
+ 60: Field( # Distance of the longest split
13287
+ name='max_distance',
10838
13288
  type=BASE_TYPES[0x86], # uint32
10839
- def_num=5,
13289
+ def_num=60,
10840
13290
  scale=100,
10841
13291
  units='m',
10842
13292
  ),
10843
- 6: Field(
10844
- name='avg_speed',
10845
- type=BASE_TYPES[0x86], # uint32
10846
- def_num=6,
10847
- scale=1000,
10848
- units='m/s',
13293
+ 64: Field(
13294
+ name='metabolic_calories',
13295
+ type=BASE_TYPES[0x84], # uint16
13296
+ def_num=64,
13297
+ units='kcal',
10849
13298
  ),
10850
- 7: Field(
10851
- name='max_speed',
13299
+ 65: Field( # total active time in all split rounds
13300
+ name='active_time',
10852
13301
  type=BASE_TYPES[0x86], # uint32
10853
- def_num=7,
13302
+ def_num=65,
10854
13303
  scale=1000,
10855
- units='m/s',
13304
+ units='s',
10856
13305
  ),
10857
- 8: Field(
10858
- name='total_ascent',
10859
- type=BASE_TYPES[0x84], # uint16
10860
- def_num=8,
13306
+ 66: Field( # fractional part of total_ascent
13307
+ name='total_fractional_ascent',
13308
+ type=BASE_TYPES[0x02], # uint8
13309
+ def_num=66,
13310
+ scale=100,
10861
13311
  units='m',
10862
13312
  ),
10863
- 9: Field(
10864
- name='total_descent',
10865
- type=BASE_TYPES[0x84], # uint16
10866
- def_num=9,
13313
+ 67: Field( # fractional part of total_descent
13314
+ name='total_fractional_descent',
13315
+ type=BASE_TYPES[0x02], # uint8
13316
+ def_num=67,
13317
+ scale=100,
10867
13318
  units='m',
10868
13319
  ),
10869
- 10: Field(
10870
- name='avg_heart_rate',
13320
+ 68: Field( # fractional part of avg_ascent
13321
+ name='avg_fractional_ascent',
10871
13322
  type=BASE_TYPES[0x02], # uint8
10872
- def_num=10,
10873
- units='bpm',
13323
+ def_num=68,
13324
+ scale=100,
13325
+ units='m',
10874
13326
  ),
10875
- 11: Field(
10876
- name='max_heart_rate',
13327
+ 69: Field( # fractional part of max_descent
13328
+ name='max_fractional_ascent',
10877
13329
  type=BASE_TYPES[0x02], # uint8
10878
- def_num=11,
10879
- units='bpm',
13330
+ def_num=69,
13331
+ scale=100,
13332
+ units='m',
10880
13333
  ),
10881
- 12: Field(
10882
- name='avg_vert_speed',
10883
- type=BASE_TYPES[0x85], # sint32
10884
- def_num=12,
13334
+ 71: Field(
13335
+ name='avg_grade_adjusted_speed',
13336
+ type=BASE_TYPES[0x86], # uint32
13337
+ def_num=71,
10885
13338
  scale=1000,
10886
13339
  units='m/s',
10887
13340
  ),
10888
- 13: Field(
10889
- name='total_calories',
10890
- type=BASE_TYPES[0x86], # uint32
10891
- def_num=13,
10892
- units='kcal',
13341
+ 72: Field(
13342
+ name='avg_stress',
13343
+ type=BASE_TYPES[0x84], # uint16
13344
+ def_num=72,
10893
13345
  ),
10894
- 65: Field( # total active time in all split rounds
10895
- name='active_time',
13346
+ 77: Field(
13347
+ name='total_moving_time',
10896
13348
  type=BASE_TYPES[0x86], # uint32
10897
- def_num=65,
13349
+ def_num=77,
10898
13350
  scale=1000,
10899
13351
  units='s',
10900
13352
  ),
10901
- 77: Field(
10902
- name='total_moving_time',
13353
+ 79: Field(
13354
+ name='start_time',
13355
+ type=FIELD_TYPES['date_time'],
13356
+ def_num=79,
13357
+ ),
13358
+ 87: Field(
13359
+ name='min_heart_rate',
13360
+ type=BASE_TYPES[0x02], # uint8
13361
+ def_num=87,
13362
+ units='bpm',
13363
+ ),
13364
+ 91: Field(
13365
+ name='avg_stance_time_percent',
13366
+ type=BASE_TYPES[0x84], # uint16
13367
+ def_num=91,
13368
+ scale=100,
13369
+ units='percent',
13370
+ ),
13371
+ 101: Field(
13372
+ name='max_total_timer_time',
10903
13373
  type=BASE_TYPES[0x86], # uint32
10904
- def_num=77,
13374
+ def_num=101,
10905
13375
  scale=1000,
10906
13376
  units='s',
10907
13377
  ),
13378
+ 253: FIELD_TYPE_TIMESTAMP,
10908
13379
  254: Field(
10909
13380
  name='message_index',
10910
13381
  type=FIELD_TYPES['message_index'],
@@ -14373,6 +16844,12 @@ MESSAGE_TYPES = {
14373
16844
  def_num=87,
14374
16845
  units='Flow',
14375
16846
  ),
16847
+ 88: Field(
16848
+ name='metabolic_calories',
16849
+ type=BASE_TYPES[0x84], # uint16
16850
+ def_num=88,
16851
+ units='kcal',
16852
+ ),
14376
16853
  89: Field( # fractional part of total_ascent
14377
16854
  name='total_fractional_ascent',
14378
16855
  type=BASE_TYPES[0x02], # uint8