python-fitparse 2.4.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.213 ON 2026-08-12 ***********
4
- # ********* PARSED 201 TYPES (4406 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
@@ -2242,8 +2494,15 @@ FIELD_TYPES = {
2242
2494
  4879: 'd2_mach2',
2243
2495
  4916: 'fr70_2026',
2244
2496
  4944: 'd2_air_x15',
2497
+ 4952: 'fenix9_pro_43mm',
2498
+ 4953: 'fenix9_pro_47mm',
2499
+ 4954: 'fenix9_pro_51mm',
2500
+ 4955: 'fenix9_pro_solar_47mm',
2501
+ 4956: 'fenix9_pro_solar_51mm',
2245
2502
  5019: 'cirqa_smart_band',
2246
2503
  5056: 'd2_mach2_pro',
2504
+ 5133: 'fenix9_43mm',
2505
+ 5134: 'fenix9', # 47mm & 57mm
2247
2506
  10007: 'sdm4', # SDM4 footpod
2248
2507
  10014: 'edge_remote',
2249
2508
  20119: 'training_center',
@@ -2253,6 +2512,11 @@ FIELD_TYPES = {
2253
2512
  30045: 'tacx_training_app_android',
2254
2513
  30046: 'tacx_training_app_ios',
2255
2514
  30047: 'tacx_training_app_legacy',
2515
+ 30059: 'training_peaks_virtual_ios',
2516
+ 30060: 'training_peaks_virtual_android',
2517
+ 30061: 'training_peaks_virtual_windows',
2518
+ 30062: 'training_peaks_virtual_mac_os',
2519
+ 30063: 'training_peaks_virtual_apple_tv',
2256
2520
  65531: 'connectiq_simulator',
2257
2521
  65532: 'android_antplus_plugin',
2258
2522
  65534: 'connect', # Garmin Connect website
@@ -3144,6 +3408,9 @@ FIELD_TYPES = {
3144
3408
  349: 'gotoes',
3145
3409
  350: 'cadence_app',
3146
3410
  351: 'una_watch',
3411
+ 352: 'tymewear',
3412
+ 353: 'exposure_lights',
3413
+ 354: 'forto_cycling',
3147
3414
  5759: 'actigraphcorp',
3148
3415
  },
3149
3416
  ),
@@ -3227,6 +3494,7 @@ FIELD_TYPES = {
3227
3494
  82: 'ant_channel_id',
3228
3495
  101: 'length',
3229
3496
  103: 'monitoring_info',
3497
+ 104: 'battery',
3230
3498
  105: 'pad',
3231
3499
  106: 'slave_device',
3232
3500
  127: 'connectivity',
@@ -4100,6 +4368,36 @@ FIELD_TYPES = {
4100
4368
  19: 'zercher_squat',
4101
4369
  },
4102
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
+ ),
4103
4401
  'schedule': FieldType(
4104
4402
  name='schedule',
4105
4403
  base_type=BASE_TYPES[0x00], # enum
@@ -4400,6 +4698,16 @@ FIELD_TYPES = {
4400
4698
  5: 'local', # Onboard device
4401
4699
  },
4402
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
+ ),
4403
4711
  'split_type': FieldType(
4404
4712
  name='split_type',
4405
4713
  base_type=BASE_TYPES[0x00], # enum
@@ -5245,6 +5553,40 @@ FIELD_TYPES = {
5245
5553
  37: 'icon_idx_cnt',
5246
5554
  },
5247
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
+ ),
5248
5590
  'user_local_id': FieldType(
5249
5591
  name='user_local_id',
5250
5592
  base_type=BASE_TYPES[0x84], # uint16
@@ -5257,6 +5599,31 @@ FIELD_TYPES = {
5257
5599
  0xFFFE: 'portable_max',
5258
5600
  },
5259
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
+ ),
5260
5627
  'warm_up_exercise_name': FieldType(
5261
5628
  name='warm_up_exercise_name',
5262
5629
  base_type=BASE_TYPES[0x84], # uint16
@@ -5623,6 +5990,81 @@ FIELD_TYPES = {
5623
5990
  1000: 'watts_offset',
5624
5991
  },
5625
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
+ ),
5626
6068
  }
5627
6069
 
5628
6070
 
@@ -6044,6 +6486,46 @@ MESSAGE_TYPES = {
6044
6486
  def_num=18,
6045
6487
  units='rpm',
6046
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
+ ),
6047
6529
  SubField(
6048
6530
  name='avg_running_cadence',
6049
6531
  def_num=18,
@@ -6058,6 +6540,20 @@ MESSAGE_TYPES = {
6058
6540
  ),
6059
6541
  ),
6060
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
+ ),
6061
6557
  ),
6062
6558
  ),
6063
6559
  19: Field(
@@ -6066,6 +6562,46 @@ MESSAGE_TYPES = {
6066
6562
  def_num=19,
6067
6563
  units='rpm',
6068
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
+ ),
6069
6605
  SubField(
6070
6606
  name='max_running_cadence',
6071
6607
  def_num=19,
@@ -6080,6 +6616,20 @@ MESSAGE_TYPES = {
6080
6616
  ),
6081
6617
  ),
6082
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
+ ),
6083
6633
  ),
6084
6634
  ),
6085
6635
  20: Field( # total_power / total_timer_time if non_zero_avg_power otherwise total_power / total_elapsed_time
@@ -6450,6 +7000,18 @@ MESSAGE_TYPES = {
6450
7000
  scale=1000,
6451
7001
  units='s',
6452
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
+ ),
6453
7015
  82: Field(
6454
7016
  name='player_score',
6455
7017
  type=BASE_TYPES[0x84], # uint16
@@ -6610,6 +7172,21 @@ MESSAGE_TYPES = {
6610
7172
  scale=2,
6611
7173
  units='percent',
6612
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
+ ),
6613
7190
  110: Field( # Sport name from associated sport mesg
6614
7191
  name='sport_profile_name',
6615
7192
  type=BASE_TYPES[0x07], # string
@@ -7025,6 +7602,13 @@ MESSAGE_TYPES = {
7025
7602
  scale=100,
7026
7603
  units='C',
7027
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
+ ),
7028
7612
  253: FIELD_TYPE_TIMESTAMP,
7029
7613
  254: Field( # Selected bit is set for the current session.
7030
7614
  name='message_index',
@@ -7103,6 +7687,26 @@ MESSAGE_TYPES = {
7103
7687
  def_num=10,
7104
7688
  units='cycles',
7105
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
+ ),
7106
7710
  SubField(
7107
7711
  name='total_strides',
7108
7712
  def_num=10,
@@ -7223,6 +7827,46 @@ MESSAGE_TYPES = {
7223
7827
  def_num=17,
7224
7828
  units='rpm',
7225
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
+ ),
7226
7870
  SubField(
7227
7871
  name='avg_running_cadence',
7228
7872
  def_num=17,
@@ -7237,6 +7881,20 @@ MESSAGE_TYPES = {
7237
7881
  ),
7238
7882
  ),
7239
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
+ ),
7240
7898
  ),
7241
7899
  ),
7242
7900
  18: Field(
@@ -7246,25 +7904,79 @@ MESSAGE_TYPES = {
7246
7904
  units='rpm',
7247
7905
  subfields=(
7248
7906
  SubField(
7249
- name='max_running_cadence',
7907
+ name='max_paddlesport_cadence',
7250
7908
  def_num=18,
7251
7909
  type=BASE_TYPES[0x02], # uint8
7252
- units='strides/min',
7910
+ units='strokes/min',
7253
7911
  ref_fields=(
7254
7912
  ReferenceField(
7255
7913
  name='sport',
7256
7914
  def_num=25,
7257
- value='running',
7258
- 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,
7259
7923
  ),
7260
7924
  ),
7261
7925
  ),
7262
- ),
7263
- ),
7264
- 19: Field( # total_power / total_timer_time if non_zero_avg_power otherwise total_power / total_elapsed_time
7265
- name='avg_power',
7266
- type=BASE_TYPES[0x84], # uint16
7267
- 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,
7268
7980
  units='watts',
7269
7981
  ),
7270
7982
  20: Field(
@@ -7305,6 +8017,30 @@ MESSAGE_TYPES = {
7305
8017
  type=BASE_TYPES[0x02], # uint8
7306
8018
  def_num=26,
7307
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
+ ),
7308
8044
  32: Field( # # of lengths of swim pool
7309
8045
  name='num_lengths',
7310
8046
  type=BASE_TYPES[0x84], # uint16
@@ -7555,6 +8291,11 @@ MESSAGE_TYPES = {
7555
8291
  type=FIELD_TYPES['message_index'],
7556
8292
  def_num=71,
7557
8293
  ),
8294
+ 73: Field(
8295
+ name='avg_swolf',
8296
+ type=BASE_TYPES[0x84], # uint16
8297
+ def_num=73,
8298
+ ),
7558
8299
  74: Field(
7559
8300
  name='opponent_score',
7560
8301
  type=BASE_TYPES[0x84], # uint16
@@ -7661,6 +8402,13 @@ MESSAGE_TYPES = {
7661
8402
  scale=10,
7662
8403
  units='%',
7663
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
+ ),
7664
8412
  91: Field(
7665
8413
  name='avg_left_torque_effectiveness',
7666
8414
  type=BASE_TYPES[0x02], # uint8
@@ -7696,6 +8444,16 @@ MESSAGE_TYPES = {
7696
8444
  scale=2,
7697
8445
  units='percent',
7698
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
+ ),
7699
8457
  98: Field( # Total time spent in the standing position
7700
8458
  name='time_standing',
7701
8459
  type=BASE_TYPES[0x86], # uint32
@@ -7948,6 +8706,12 @@ MESSAGE_TYPES = {
7948
8706
  def_num=154,
7949
8707
  units='Flow',
7950
8708
  ),
8709
+ 155: Field(
8710
+ name='metabolic_calories',
8711
+ type=BASE_TYPES[0x84], # uint16
8712
+ def_num=155,
8713
+ units='kcal',
8714
+ ),
7951
8715
  156: Field( # fractional part of total_ascent
7952
8716
  name='total_fractional_ascent',
7953
8717
  type=BASE_TYPES[0x02], # uint8
@@ -7983,6 +8747,13 @@ MESSAGE_TYPES = {
7983
8747
  scale=100,
7984
8748
  units='C',
7985
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
+ ),
7986
8757
  253: FIELD_TYPE_TIMESTAMP,
7987
8758
  254: Field(
7988
8759
  name='message_index',
@@ -9608,6 +10379,12 @@ MESSAGE_TYPES = {
9608
10379
  ),
9609
10380
  ),
9610
10381
  ),
10382
+ 26: Field(
10383
+ name='metabolic_calories',
10384
+ type=BASE_TYPES[0x84], # uint16
10385
+ def_num=26,
10386
+ units='kcal',
10387
+ ),
9611
10388
  253: FIELD_TYPE_TIMESTAMP,
9612
10389
  254: Field(
9613
10390
  name='message_index',
@@ -9616,6 +10393,19 @@ MESSAGE_TYPES = {
9616
10393
  ),
9617
10394
  },
9618
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
+ ),
9619
10409
  128: MessageType(
9620
10410
  name='weather_conditions',
9621
10411
  mesg_num=128,
@@ -10478,6 +11268,14 @@ MESSAGE_TYPES = {
10478
11268
  def_num=2,
10479
11269
  units='Pa',
10480
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
+ ),
10481
11279
  253: FIELD_TYPE_TIMESTAMP, # Whole second part of the timestamp
10482
11280
  },
10483
11281
  ),
@@ -10709,6 +11507,16 @@ MESSAGE_TYPES = {
10709
11507
  type=FIELD_TYPES['date_time'],
10710
11508
  def_num=9,
10711
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
+ ),
10712
11520
  13: Field(
10713
11521
  name='total_ascent',
10714
11522
  type=BASE_TYPES[0x84], # uint16
@@ -10721,6 +11529,42 @@ MESSAGE_TYPES = {
10721
11529
  def_num=14,
10722
11530
  units='m',
10723
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
+ ),
10724
11568
  21: Field(
10725
11569
  name='start_position_lat',
10726
11570
  type=BASE_TYPES[0x85], # sint32
@@ -10759,139 +11603,1776 @@ MESSAGE_TYPES = {
10759
11603
  scale=1000,
10760
11604
  units='m/s',
10761
11605
  ),
10762
- 27: Field(
10763
- name='end_time',
10764
- type=FIELD_TYPES['date_time'],
10765
- 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',
10766
13100
  ),
10767
- 28: Field(
10768
- name='total_calories',
10769
- type=BASE_TYPES[0x86], # uint32
10770
- def_num=28,
10771
- units='kcal',
13101
+ 52: Field(
13102
+ name='avg_ascent',
13103
+ type=BASE_TYPES[0x84], # uint16
13104
+ def_num=52,
13105
+ units='m',
10772
13106
  ),
10773
- 74: Field(
10774
- name='start_elevation',
10775
- type=BASE_TYPES[0x86], # uint32
10776
- def_num=74,
10777
- scale=5,
10778
- offset=500,
13107
+ 53: Field(
13108
+ name='max_ascent',
13109
+ type=BASE_TYPES[0x84], # uint16
13110
+ def_num=53,
10779
13111
  units='m',
10780
13112
  ),
10781
- 78: Field( # Active time of split rounds
10782
- name='active_time',
10783
- type=BASE_TYPES[0x86], # uint32
10784
- def_num=78,
10785
- scale=1000,
10786
- units='s',
13113
+ 54: Field(
13114
+ name='climb_grading_scale',
13115
+ type=FIELD_TYPES['climb_grading_scale'],
13116
+ def_num=54,
10787
13117
  ),
10788
- 110: Field(
10789
- name='total_moving_time',
13118
+ 55: Field(
13119
+ name='climb_max_grade_value',
10790
13120
  type=BASE_TYPES[0x86], # uint32
10791
- def_num=110,
10792
- scale=1000,
10793
- units='s',
10794
- ),
10795
- 254: Field(
10796
- name='message_index',
10797
- type=FIELD_TYPES['message_index'],
10798
- 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
+ ),
10799
13267
  ),
10800
- },
10801
- ),
10802
- 313: MessageType(
10803
- name='split_summary',
10804
- mesg_num=313,
10805
- fields={
10806
- 0: Field(
10807
- name='split_type',
10808
- type=FIELD_TYPES['split_type'],
10809
- def_num=0,
13268
+ 56: Field(
13269
+ name='num_falls',
13270
+ type=BASE_TYPES[0x84], # uint16
13271
+ def_num=56,
10810
13272
  ),
10811
- 3: Field(
10812
- name='num_splits',
13273
+ 58: Field(
13274
+ name='num_climbs_attempted',
10813
13275
  type=BASE_TYPES[0x84], # uint16
10814
- def_num=3,
13276
+ def_num=58,
10815
13277
  ),
10816
- 4: Field(
10817
- name='total_timer_time',
10818
- type=BASE_TYPES[0x86], # uint32
10819
- def_num=4,
10820
- scale=1000,
10821
- units='s',
13278
+ 59: Field(
13279
+ name='num_climbs_completed',
13280
+ type=BASE_TYPES[0x84], # uint16
13281
+ def_num=59,
10822
13282
  ),
10823
- 5: Field(
10824
- name='total_distance',
13283
+ 60: Field( # Distance of the longest split
13284
+ name='max_distance',
10825
13285
  type=BASE_TYPES[0x86], # uint32
10826
- def_num=5,
13286
+ def_num=60,
10827
13287
  scale=100,
10828
13288
  units='m',
10829
13289
  ),
10830
- 6: Field(
10831
- name='avg_speed',
10832
- type=BASE_TYPES[0x86], # uint32
10833
- def_num=6,
10834
- scale=1000,
10835
- units='m/s',
13290
+ 64: Field(
13291
+ name='metabolic_calories',
13292
+ type=BASE_TYPES[0x84], # uint16
13293
+ def_num=64,
13294
+ units='kcal',
10836
13295
  ),
10837
- 7: Field(
10838
- name='max_speed',
13296
+ 65: Field( # total active time in all split rounds
13297
+ name='active_time',
10839
13298
  type=BASE_TYPES[0x86], # uint32
10840
- def_num=7,
13299
+ def_num=65,
10841
13300
  scale=1000,
10842
- units='m/s',
13301
+ units='s',
10843
13302
  ),
10844
- 8: Field(
10845
- name='total_ascent',
10846
- type=BASE_TYPES[0x84], # uint16
10847
- 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,
10848
13308
  units='m',
10849
13309
  ),
10850
- 9: Field(
10851
- name='total_descent',
10852
- type=BASE_TYPES[0x84], # uint16
10853
- 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,
10854
13315
  units='m',
10855
13316
  ),
10856
- 10: Field(
10857
- name='avg_heart_rate',
13317
+ 68: Field( # fractional part of avg_ascent
13318
+ name='avg_fractional_ascent',
10858
13319
  type=BASE_TYPES[0x02], # uint8
10859
- def_num=10,
10860
- units='bpm',
13320
+ def_num=68,
13321
+ scale=100,
13322
+ units='m',
10861
13323
  ),
10862
- 11: Field(
10863
- name='max_heart_rate',
13324
+ 69: Field( # fractional part of max_descent
13325
+ name='max_fractional_ascent',
10864
13326
  type=BASE_TYPES[0x02], # uint8
10865
- def_num=11,
10866
- units='bpm',
13327
+ def_num=69,
13328
+ scale=100,
13329
+ units='m',
10867
13330
  ),
10868
- 12: Field(
10869
- name='avg_vert_speed',
10870
- type=BASE_TYPES[0x85], # sint32
10871
- def_num=12,
13331
+ 71: Field(
13332
+ name='avg_grade_adjusted_speed',
13333
+ type=BASE_TYPES[0x86], # uint32
13334
+ def_num=71,
10872
13335
  scale=1000,
10873
13336
  units='m/s',
10874
13337
  ),
10875
- 13: Field(
10876
- name='total_calories',
10877
- type=BASE_TYPES[0x86], # uint32
10878
- def_num=13,
10879
- units='kcal',
13338
+ 72: Field(
13339
+ name='avg_stress',
13340
+ type=BASE_TYPES[0x84], # uint16
13341
+ def_num=72,
10880
13342
  ),
10881
- 65: Field( # total active time in all split rounds
10882
- name='active_time',
13343
+ 77: Field(
13344
+ name='total_moving_time',
10883
13345
  type=BASE_TYPES[0x86], # uint32
10884
- def_num=65,
13346
+ def_num=77,
10885
13347
  scale=1000,
10886
13348
  units='s',
10887
13349
  ),
10888
- 77: Field(
10889
- 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',
10890
13370
  type=BASE_TYPES[0x86], # uint32
10891
- def_num=77,
13371
+ def_num=101,
10892
13372
  scale=1000,
10893
13373
  units='s',
10894
13374
  ),
13375
+ 253: FIELD_TYPE_TIMESTAMP,
10895
13376
  254: Field(
10896
13377
  name='message_index',
10897
13378
  type=FIELD_TYPES['message_index'],
@@ -14360,6 +16841,12 @@ MESSAGE_TYPES = {
14360
16841
  def_num=87,
14361
16842
  units='Flow',
14362
16843
  ),
16844
+ 88: Field(
16845
+ name='metabolic_calories',
16846
+ type=BASE_TYPES[0x84], # uint16
16847
+ def_num=88,
16848
+ units='kcal',
16849
+ ),
14363
16850
  89: Field( # fractional part of total_ascent
14364
16851
  name='total_fractional_ascent',
14365
16852
  type=BASE_TYPES[0x02], # uint8