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