diff --git a/garmin_fit_sdk/__init__.py b/garmin_fit_sdk/__init__.py index 8b91d12..815710c 100644 --- a/garmin_fit_sdk/__init__.py +++ b/garmin_fit_sdk/__init__.py @@ -7,8 +7,8 @@ # Transfer (FIT) Protocol License. ########################################################################################### # ****WARNING**** This file is auto-generated! Do NOT edit this file. -# Profile Version = 21.214.0Release -# Tag = production/release/21.214.0-0-g47b86b1f +# Profile Version = 21.217.0Release +# Tag = production/release/21.217.0-0-g248b1c46 ############################################################################################ @@ -23,4 +23,4 @@ from garmin_fit_sdk.stream import Stream from garmin_fit_sdk.util import FIT_EPOCH_S, convert_datetime_to_timestamp, convert_timestamp_to_datetime, BASE_TYPE_TO_FIELD_TYPE, FIELD_TYPE_TO_BASE_TYPE -__version__ = '21.214.0' +__version__ = '21.217.0' diff --git a/garmin_fit_sdk/__init__.pyi b/garmin_fit_sdk/__init__.pyi index 8ce4d10..22c3f07 100644 --- a/garmin_fit_sdk/__init__.pyi +++ b/garmin_fit_sdk/__init__.pyi @@ -5,8 +5,8 @@ # Transfer (FIT) Protocol License. ########################################################################################### # ****WARNING**** This file is auto-generated! Do NOT edit this file. -# Profile Version = 21.214.0Release -# Tag = production/release/21.214.0-0-g47b86b1f +# Profile Version = 21.217.0Release +# Tag = production/release/21.217.0-0-g248b1c46 ############################################################################################ diff --git a/garmin_fit_sdk/accumulator.py b/garmin_fit_sdk/accumulator.py index 3b5a46a..c0f5865 100644 --- a/garmin_fit_sdk/accumulator.py +++ b/garmin_fit_sdk/accumulator.py @@ -7,8 +7,8 @@ # Transfer (FIT) Protocol License. ########################################################################################### # ****WARNING**** This file is auto-generated! Do NOT edit this file. -# Profile Version = 21.214.0Release -# Tag = production/release/21.214.0-0-g47b86b1f +# Profile Version = 21.217.0Release +# Tag = production/release/21.217.0-0-g248b1c46 ############################################################################################ diff --git a/garmin_fit_sdk/accumulator.pyi b/garmin_fit_sdk/accumulator.pyi index 4549e21..9910c65 100644 --- a/garmin_fit_sdk/accumulator.pyi +++ b/garmin_fit_sdk/accumulator.pyi @@ -5,8 +5,8 @@ # Transfer (FIT) Protocol License. ########################################################################################### # ****WARNING**** This file is auto-generated! Do NOT edit this file. -# Profile Version = 21.214.0Release -# Tag = production/release/21.214.0-0-g47b86b1f +# Profile Version = 21.217.0Release +# Tag = production/release/21.217.0-0-g248b1c46 ############################################################################################ diff --git a/garmin_fit_sdk/bitstream.py b/garmin_fit_sdk/bitstream.py index 8561641..747f7f9 100644 --- a/garmin_fit_sdk/bitstream.py +++ b/garmin_fit_sdk/bitstream.py @@ -7,8 +7,8 @@ # Transfer (FIT) Protocol License. ########################################################################################### # ****WARNING**** This file is auto-generated! Do NOT edit this file. -# Profile Version = 21.214.0Release -# Tag = production/release/21.214.0-0-g47b86b1f +# Profile Version = 21.217.0Release +# Tag = production/release/21.217.0-0-g248b1c46 ############################################################################################ diff --git a/garmin_fit_sdk/bitstream.pyi b/garmin_fit_sdk/bitstream.pyi index 8563aba..ba9328e 100644 --- a/garmin_fit_sdk/bitstream.pyi +++ b/garmin_fit_sdk/bitstream.pyi @@ -5,8 +5,8 @@ # Transfer (FIT) Protocol License. ########################################################################################### # ****WARNING**** This file is auto-generated! Do NOT edit this file. -# Profile Version = 21.214.0Release -# Tag = production/release/21.214.0-0-g47b86b1f +# Profile Version = 21.217.0Release +# Tag = production/release/21.217.0-0-g248b1c46 ############################################################################################ diff --git a/garmin_fit_sdk/crc_calculator.py b/garmin_fit_sdk/crc_calculator.py index 91cc3b0..e240bc0 100644 --- a/garmin_fit_sdk/crc_calculator.py +++ b/garmin_fit_sdk/crc_calculator.py @@ -7,8 +7,8 @@ # Transfer (FIT) Protocol License. ########################################################################################### # ****WARNING**** This file is auto-generated! Do NOT edit this file. -# Profile Version = 21.214.0Release -# Tag = production/release/21.214.0-0-g47b86b1f +# Profile Version = 21.217.0Release +# Tag = production/release/21.217.0-0-g248b1c46 ############################################################################################ diff --git a/garmin_fit_sdk/crc_calculator.pyi b/garmin_fit_sdk/crc_calculator.pyi index 19beb28..c353d6f 100644 --- a/garmin_fit_sdk/crc_calculator.pyi +++ b/garmin_fit_sdk/crc_calculator.pyi @@ -5,8 +5,8 @@ # Transfer (FIT) Protocol License. ########################################################################################### # ****WARNING**** This file is auto-generated! Do NOT edit this file. -# Profile Version = 21.214.0Release -# Tag = production/release/21.214.0-0-g47b86b1f +# Profile Version = 21.217.0Release +# Tag = production/release/21.217.0-0-g248b1c46 ############################################################################################ diff --git a/garmin_fit_sdk/decoder.py b/garmin_fit_sdk/decoder.py index 29f270a..c33a537 100644 --- a/garmin_fit_sdk/decoder.py +++ b/garmin_fit_sdk/decoder.py @@ -7,8 +7,8 @@ # Transfer (FIT) Protocol License. ########################################################################################### # ****WARNING**** This file is auto-generated! Do NOT edit this file. -# Profile Version = 21.214.0Release -# Tag = production/release/21.214.0-0-g47b86b1f +# Profile Version = 21.217.0Release +# Tag = production/release/21.217.0-0-g248b1c46 ############################################################################################ diff --git a/garmin_fit_sdk/decoder.pyi b/garmin_fit_sdk/decoder.pyi index 0d7c82a..a221fd6 100644 --- a/garmin_fit_sdk/decoder.pyi +++ b/garmin_fit_sdk/decoder.pyi @@ -5,8 +5,8 @@ # Transfer (FIT) Protocol License. ########################################################################################### # ****WARNING**** This file is auto-generated! Do NOT edit this file. -# Profile Version = 21.214.0Release -# Tag = production/release/21.214.0-0-g47b86b1f +# Profile Version = 21.217.0Release +# Tag = production/release/21.217.0-0-g248b1c46 ############################################################################################ diff --git a/garmin_fit_sdk/encoder.py b/garmin_fit_sdk/encoder.py index d1845bb..330887f 100644 --- a/garmin_fit_sdk/encoder.py +++ b/garmin_fit_sdk/encoder.py @@ -7,8 +7,8 @@ # Transfer (FIT) Protocol License. ########################################################################################### # ****WARNING**** This file is auto-generated! Do NOT edit this file. -# Profile Version = 21.214.0Release -# Tag = production/release/21.214.0-0-g47b86b1f +# Profile Version = 21.217.0Release +# Tag = production/release/21.217.0-0-g248b1c46 ############################################################################################ diff --git a/garmin_fit_sdk/encoder.pyi b/garmin_fit_sdk/encoder.pyi index ff20b54..2f595eb 100644 --- a/garmin_fit_sdk/encoder.pyi +++ b/garmin_fit_sdk/encoder.pyi @@ -5,8 +5,8 @@ # Transfer (FIT) Protocol License. ########################################################################################### # ****WARNING**** This file is auto-generated! Do NOT edit this file. -# Profile Version = 21.214.0Release -# Tag = production/release/21.214.0-0-g47b86b1f +# Profile Version = 21.217.0Release +# Tag = production/release/21.217.0-0-g248b1c46 ############################################################################################ diff --git a/garmin_fit_sdk/fit.py b/garmin_fit_sdk/fit.py index 21ff282..bb2f6f3 100644 --- a/garmin_fit_sdk/fit.py +++ b/garmin_fit_sdk/fit.py @@ -7,8 +7,8 @@ # Transfer (FIT) Protocol License. ########################################################################################### # ****WARNING**** This file is auto-generated! Do NOT edit this file. -# Profile Version = 21.214.0Release -# Tag = production/release/21.214.0-0-g47b86b1f +# Profile Version = 21.217.0Release +# Tag = production/release/21.217.0-0-g248b1c46 ############################################################################################ diff --git a/garmin_fit_sdk/fit.pyi b/garmin_fit_sdk/fit.pyi index 60cb812..8b30104 100644 --- a/garmin_fit_sdk/fit.pyi +++ b/garmin_fit_sdk/fit.pyi @@ -5,8 +5,8 @@ # Transfer (FIT) Protocol License. ########################################################################################### # ****WARNING**** This file is auto-generated! Do NOT edit this file. -# Profile Version = 21.214.0Release -# Tag = production/release/21.214.0-0-g47b86b1f +# Profile Version = 21.217.0Release +# Tag = production/release/21.217.0-0-g248b1c46 ############################################################################################ diff --git a/garmin_fit_sdk/hr_mesg_utils.py b/garmin_fit_sdk/hr_mesg_utils.py index 820645e..1cda8a6 100644 --- a/garmin_fit_sdk/hr_mesg_utils.py +++ b/garmin_fit_sdk/hr_mesg_utils.py @@ -7,8 +7,8 @@ # Transfer (FIT) Protocol License. ########################################################################################### # ****WARNING**** This file is auto-generated! Do NOT edit this file. -# Profile Version = 21.214.0Release -# Tag = production/release/21.214.0-0-g47b86b1f +# Profile Version = 21.217.0Release +# Tag = production/release/21.217.0-0-g248b1c46 ############################################################################################ diff --git a/garmin_fit_sdk/hr_mesg_utils.pyi b/garmin_fit_sdk/hr_mesg_utils.pyi index 860ef93..1da5bf8 100644 --- a/garmin_fit_sdk/hr_mesg_utils.pyi +++ b/garmin_fit_sdk/hr_mesg_utils.pyi @@ -5,8 +5,8 @@ # Transfer (FIT) Protocol License. ########################################################################################### # ****WARNING**** This file is auto-generated! Do NOT edit this file. -# Profile Version = 21.214.0Release -# Tag = production/release/21.214.0-0-g47b86b1f +# Profile Version = 21.217.0Release +# Tag = production/release/21.217.0-0-g248b1c46 ############################################################################################ diff --git a/garmin_fit_sdk/mesg_definition.py b/garmin_fit_sdk/mesg_definition.py index b4ce5d5..ccc2e0f 100644 --- a/garmin_fit_sdk/mesg_definition.py +++ b/garmin_fit_sdk/mesg_definition.py @@ -7,8 +7,8 @@ # Transfer (FIT) Protocol License. ########################################################################################### # ****WARNING**** This file is auto-generated! Do NOT edit this file. -# Profile Version = 21.214.0Release -# Tag = production/release/21.214.0-0-g47b86b1f +# Profile Version = 21.217.0Release +# Tag = production/release/21.217.0-0-g248b1c46 ############################################################################################ diff --git a/garmin_fit_sdk/mesg_definition.pyi b/garmin_fit_sdk/mesg_definition.pyi index af810f6..cefd098 100644 --- a/garmin_fit_sdk/mesg_definition.pyi +++ b/garmin_fit_sdk/mesg_definition.pyi @@ -5,8 +5,8 @@ # Transfer (FIT) Protocol License. ########################################################################################### # ****WARNING**** This file is auto-generated! Do NOT edit this file. -# Profile Version = 21.214.0Release -# Tag = production/release/21.214.0-0-g47b86b1f +# Profile Version = 21.217.0Release +# Tag = production/release/21.217.0-0-g248b1c46 ############################################################################################ diff --git a/garmin_fit_sdk/mesgs.pyi b/garmin_fit_sdk/mesgs.pyi index 36c371e..ed994ef 100644 --- a/garmin_fit_sdk/mesgs.pyi +++ b/garmin_fit_sdk/mesgs.pyi @@ -5,8 +5,8 @@ # Transfer (FIT) Protocol License. ########################################################################################### # ****WARNING**** This file is auto-generated! Do NOT edit this file. -# Profile Version = 21.214.0Release -# Tag = production/release/21.214.0-0-g47b86b1f +# Profile Version = 21.217.0Release +# Tag = production/release/21.217.0-0-g248b1c46 ############################################################################################ @@ -586,8 +586,16 @@ class SessionMesg(FitMesg, total=False): # total_cycles / total_timer_time if non_zero_avg_cadence otherwise total_cycles / total_elapsed_time avg_cadence: int avg_running_cadence: int + avg_swimming_cadence: int + avg_paddlesport_cadence: int + # average pushes per minute in a session + avg_push_cadence: int max_cadence: int max_running_cadence: int + max_swimming_cadence: int + max_paddlesport_cadence: int + # max pushes per minute in a session + max_push_cadence: int # total_power / total_timer_time if non_zero_avg_power otherwise total_power / total_elapsed_time avg_power: int max_power: int @@ -647,6 +655,8 @@ class SessionMesg(FitMesg, total=False): best_lap_index: int min_altitude: float active_time: float + avg_strokes_per_length: float + avg_swolf: int player_score: int opponent_score: int opponent_name: StringValue @@ -682,6 +692,9 @@ class SessionMesg(FitMesg, total=False): avg_left_pedal_smoothness: float avg_right_pedal_smoothness: float avg_combined_pedal_smoothness: float + num_segment_laps: int + front_gear_shift_count: int + rear_gear_shift_count: int # Sport name from associated sport mesg sport_profile_name: StringValue sport_index: int @@ -775,6 +788,7 @@ class SessionMesg(FitMesg, total=False): avg_core_temperature: float min_core_temperature: float max_core_temperature: float + avg_grade_adjusted_speed: float @@ -796,6 +810,8 @@ class LapMesg(FitMesg, total=False): total_cycles: int total_strides: int total_strokes: int + # total number of pushes in a lap + total_pushes: int total_calories: int # If New Leaf total_fat_calories: int @@ -806,8 +822,16 @@ class LapMesg(FitMesg, total=False): # total_cycles / total_timer_time if non_zero_avg_cadence otherwise total_cycles / total_elapsed_time avg_cadence: int avg_running_cadence: int + avg_swimming_cadence: int + avg_paddlesport_cadence: int + # average pushes per minute in a lap + avg_push_cadence: int max_cadence: int max_running_cadence: int + max_swimming_cadence: int + max_paddlesport_cadence: int + # max pushes per minute in a lap + max_push_cadence: int # total_power / total_timer_time if non_zero_avg_power otherwise total_power / total_elapsed_time avg_power: int max_power: int @@ -817,6 +841,14 @@ class LapMesg(FitMesg, total=False): lap_trigger: LapTrigger sport: Sport event_group: int + # North east corner latitude. + nec_lat: int + # North east corner longitude. + nec_long: int + # South west corner latitude. + swc_lat: int + # South west corner latitude. + swc_long: int # # of lengths of swim pool num_lengths: int normalized_power: int @@ -852,6 +884,7 @@ class LapMesg(FitMesg, total=False): min_heart_rate: int active_time: float wkt_step_index: MessageIndex + avg_swolf: int opponent_score: int # stroke_type enum used as the index stroke_count: Union[int, List[Optional[int]]] @@ -879,11 +912,14 @@ class LapMesg(FitMesg, total=False): min_saturated_hemoglobin_percent: Union[float, List[Optional[float]]] # Max percentage of hemoglobin saturated with oxygen max_saturated_hemoglobin_percent: Union[float, List[Optional[float]]] + avg_strokes_per_length: float avg_left_torque_effectiveness: float avg_right_torque_effectiveness: float avg_left_pedal_smoothness: float avg_right_pedal_smoothness: float avg_combined_pedal_smoothness: float + front_gear_shift_count: int + rear_gear_shift_count: int # Total time spent in the standing position time_standing: float # Number of transitions to the standing state @@ -941,6 +977,7 @@ class LapMesg(FitMesg, total=False): avg_grit: float # 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. avg_flow: float + metabolic_calories: int # fractional part of total_ascent total_fractional_ascent: float # fractional part of total_descent @@ -948,6 +985,7 @@ class LapMesg(FitMesg, total=False): avg_core_temperature: float min_core_temperature: float max_core_temperature: float + avg_grade_adjusted_speed: float @@ -976,6 +1014,7 @@ class LengthMesg(FitMesg, total=False): enhanced_max_respiration_rate: float avg_respiration_rate: int max_respiration_rate: int + metabolic_calories: int @@ -1212,6 +1251,12 @@ class TrainingFileMesg(FitMesg, total=False): +class BatteryMesg(FitMesg, total=False): + timestamp: Union[int, datetime] + capacity: int + + + class WeatherConditionsMesg(FitMesg, total=False): # time of update for current conditions, else forecast time timestamp: Union[int, datetime] @@ -1362,6 +1407,7 @@ class BarometerDataMesg(FitMesg, total=False): sample_time_offset: Union[int, List[Optional[int]]] # These are the raw ADC reading. The samples may span across seconds. A conversion will need to be done on this data once read. baro_pres: Union[int, List[Optional[int]]] + enhanced_altitude: Union[float, List[Optional[float]]] @@ -1549,14 +1595,27 @@ class JumpMesg(FitMesg, total=False): class SplitMesg(FitMesg, total=False): message_index: MessageIndex + timestamp: Union[int, datetime] split_type: SplitType total_elapsed_time: float total_timer_time: float total_distance: float avg_speed: float start_time: Union[int, datetime] + sport: Sport + sub_sport: SubSport total_ascent: int total_descent: int + avg_heart_rate: int + max_heart_rate: int + # North east corner latitude + nec_lat: int + # North east corner longitude + nec_long: int + # South west corner latitude + swc_lat: int + # South west corner longitude + swc_long: int start_position_lat: int start_position_long: int end_position_lat: int @@ -1565,16 +1624,144 @@ class SplitMesg(FitMesg, total=False): avg_vert_speed: float end_time: Union[int, datetime] total_calories: int + avg_cadence: float + avg_running_cadence: float + avg_swimming_cadence: float + avg_paddlesport_cadence: float + # average pushes per minute in a split + avg_push_cadence: int + max_cadence: float + max_running_cadence: float + max_swimming_cadence: float + max_paddlesport_cadence: float + # max pushes per minute in a split + max_push_cadence: int + total_cycles: int + total_strides: int + total_strokes: int + # total reps in a split round + total_reps: int + # total number of pushes in a split + total_pushes: int + avg_temperature: int + max_temperature: int + min_temperature: int + avg_vertical_oscillation: float + avg_vertical_ratio: float + avg_stance_time: float + avg_stance_time_balance: float + avg_step_length: float + avg_power: int + max_power: int + normalized_power: int + left_right_balance: LeftRightBalance100 + # Total time spent in the standing position + time_standing: float + # Average left platform center offset + avg_left_pco: int + # Average right platform center offset + avg_right_pco: int + # Average left power phase angles. Data value indexes defined by power_phase_type. + avg_left_power_phase: Union[float, List[Optional[float]]] + # Average left power phase peak angles. Data value indexes defined by power_phase_type. + avg_left_power_phase_peak: Union[float, List[Optional[float]]] + # Average right power phase angles. Data value indexes defined by power_phase_type. + avg_right_power_phase: Union[float, List[Optional[float]]] + # Average right power phase peak angles. Data value indexes defined by power_phase_type. + avg_right_power_phase_peak: Union[float, List[Optional[float]]] + # Average power by position. Data value indexes defined by rider_position_type. + avg_power_position: Union[int, List[Optional[int]]] + # Maximum power by position. Data value indexes defined by rider_position_type. + max_power_position: Union[int, List[Optional[int]]] + avg_left_torque_effectiveness: float + avg_right_torque_effectiveness: float + avg_left_pedal_smoothness: float + avg_right_pedal_smoothness: float + avg_combined_pedal_smoothness: float + # 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. + avg_flow: float + # 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. + total_grit: float + swim_stroke: SwimStroke + # # of active lengths of swim pool + num_active_lengths: int + avg_swolf: int + avg_stroke_distance: float + avg_strokes_per_length: float + # This is only set for split types that will trigger the end of a lap when the split ends + first_lap_index: int + # This is only set for split types that will trigger the end of a lap when the split ends + num_laps: int + climb_grading_scale: ClimbGradingScale + climb_grade_value: int + climb_grade_yds: YdsGradingScale + climb_grade_uiaa: UiaaGradingScale + climb_grade_french: FrenchGradingScale + climb_grade_british_adjectival: BritishAdjectivalGradingScale + climb_grade_british_technical: BritishTechnicalGradingScale + climb_grade_ewbank: EwbankGradingScale + climb_grade_brazilian: BrazilianGradingScale + climb_grade_saxon: SaxonGradingScale + climb_grade_vermin: VerminGradingScale + climb_grade_font: FontGradingScale + climb_grade_dankyu: DankyuGradingScale + # Use with indoor climbing activities only + status: SplitStatus + # Use with indoor climbing activities only + num_falls: int + # Use with indoor climbing activities only + climb_send: bool start_elevation: float # Active time of split rounds active_time: float + metabolic_calories: int + # fractional part of total_ascent + total_fractional_ascent: float + # fractional part of total_descent + total_fractional_descent: float + avg_grade: float + max_grade: float + min_cadence: float + min_running_cadence: float + min_swimming_cadence: float + min_paddlesport_cadence: float + # min pushes per minute in a split + min_push_cadence: int + avg_grade_adjusted_speed: float + avg_stress: int + avg_vam: float + jump_count: int total_moving_time: float + dive_section_type: DiveSectionType + avg_ascent_rate: float + max_ascent_rate: float + avg_descent_rate: float + max_descent_rate: float + total_ascent_time: float + total_descent_time: float + total_hang_time: float + apnea_discipline: ApneaDiscipline + # Average depth. 0 if above water + avg_depth: float + # Max depth. 0 if above water + max_depth: float + min_heart_rate: int + # Time since end of last dive + surface_interval: int + total_fractional_cycles: float + avg_stance_time_percent: float + total_anaerobic_training_effect: float + front_gear_shift_count: int + rear_gear_shift_count: int class SplitSummaryMesg(FitMesg, total=False): message_index: MessageIndex + timestamp: Union[int, datetime] split_type: SplitType + sport: Sport + sub_sport: SubSport num_splits: int total_timer_time: float total_distance: float @@ -1586,9 +1773,108 @@ class SplitSummaryMesg(FitMesg, total=False): max_heart_rate: int avg_vert_speed: float total_calories: int + avg_cadence: float + avg_running_cadence: float + avg_swimming_cadence: float + avg_paddlesport_cadence: float + # average pushes per minute in all splits of the type + avg_push_cadence: int + max_cadence: float + max_running_cadence: float + max_swimming_cadence: float + max_paddlesport_cadence: float + # max pushes per minute in all splits of the type + max_push_cadence: int + total_cycles: int + total_strides: int + total_strokes: int + # total reps in all splits + total_reps: int + # total number of pushes in all splits of the type + total_pushes: int + avg_temperature: int + max_temperature: int + min_temperature: int + avg_vertical_oscillation: float + avg_vertical_ratio: float + avg_stance_time: float + avg_stance_time_balance: float + avg_step_length: float + avg_power: int + max_power: int + normalized_power: int + # Total time spent in the standing position + left_right_balance: LeftRightBalance100 + # Average left platform center offset + time_standing: float + # Average right platform center offset + avg_left_pco: int + # Average left power phase angles. Data value indexes defined by power_phase_type. + avg_right_pco: int + # Average left power phase peak angles. Data value indexes defined by power_phase_type. + avg_left_power_phase: Union[float, List[Optional[float]]] + # Average right power phase angles. Data value indexes defined by power_phase_type. + avg_left_power_phase_peak: Union[float, List[Optional[float]]] + # Average right power phase peak angles. Data value indexes defined by power_phase_type. + avg_right_power_phase: Union[float, List[Optional[float]]] + # Average power by position. Data value indexes defined by rider_position_type. + avg_right_power_phase_peak: Union[float, List[Optional[float]]] + # Maximum power by position. Data value indexes defined by rider_position_type. + avg_power_position: Union[int, List[Optional[int]]] + max_power_position: Union[int, List[Optional[int]]] + avg_left_torque_effectiveness: float + avg_right_torque_effectiveness: float + avg_left_pedal_smoothness: float + avg_right_pedal_smoothness: float + # 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. + avg_combined_pedal_smoothness: float + # 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. + avg_flow: float + total_grit: float + # # of active lengths of swim pool + swim_stroke: SwimStroke + num_active_lengths: int + avg_swolf: int + avg_stroke_distance: float + avg_strokes_per_length: float + avg_ascent: int + max_ascent: int + climb_grading_scale: ClimbGradingScale + climb_max_grade_value: int + climb_max_grade_yds: YdsGradingScale + climb_max_grade_uiaa: UiaaGradingScale + climb_max_grade_french: FrenchGradingScale + climb_max_grade_british_adjectival: BritishAdjectivalGradingScale + climb_max_grade_british_technical: BritishTechnicalGradingScale + climb_max_grade_ewbank: EwbankGradingScale + climb_max_grade_brazilian: BrazilianGradingScale + climb_max_grade_saxon: SaxonGradingScale + climb_max_grade_vermin: VerminGradingScale + climb_max_grade_font: FontGradingScale + climb_max_grade_dankyu: DankyuGradingScale + num_falls: int + num_climbs_attempted: int + num_climbs_completed: int + # Distance of the longest split + max_distance: float + metabolic_calories: int # total active time in all split rounds active_time: float + # fractional part of total_ascent + total_fractional_ascent: float + # fractional part of total_descent + total_fractional_descent: float + # fractional part of avg_ascent + avg_fractional_ascent: float + # fractional part of max_descent + max_fractional_ascent: float + avg_grade_adjusted_speed: float + avg_stress: int total_moving_time: float + start_time: Union[int, datetime] + min_heart_rate: int + avg_stance_time_percent: float + max_total_timer_time: float @@ -1830,6 +2116,7 @@ class SegmentLapMesg(FitMesg, total=False): avg_grit: float # 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. avg_flow: float + metabolic_calories: int # fractional part of total_ascent total_fractional_ascent: float # fractional part of total_descent @@ -2647,6 +2934,7 @@ class FitMessages(TypedDict, total=False): device_info_mesgs: List[DeviceInfoMesg] device_aux_battery_info_mesgs: List[DeviceAuxBatteryInfoMesg] training_file_mesgs: List[TrainingFileMesg] + battery_mesgs: List[BatteryMesg] weather_conditions_mesgs: List[WeatherConditionsMesg] weather_alert_mesgs: List[WeatherAlertMesg] gps_metadata_mesgs: List[GpsMetadataMesg] diff --git a/garmin_fit_sdk/output_stream.py b/garmin_fit_sdk/output_stream.py index 40bb2ce..e119db3 100644 --- a/garmin_fit_sdk/output_stream.py +++ b/garmin_fit_sdk/output_stream.py @@ -7,8 +7,8 @@ # Transfer (FIT) Protocol License. ########################################################################################### # ****WARNING**** This file is auto-generated! Do NOT edit this file. -# Profile Version = 21.214.0Release -# Tag = production/release/21.214.0-0-g47b86b1f +# Profile Version = 21.217.0Release +# Tag = production/release/21.217.0-0-g248b1c46 ############################################################################################ diff --git a/garmin_fit_sdk/profile.py b/garmin_fit_sdk/profile.py index e069ce4..bcab34b 100644 --- a/garmin_fit_sdk/profile.py +++ b/garmin_fit_sdk/profile.py @@ -5,15 +5,15 @@ # Transfer (FIT) Protocol License. ########################################################################################### # ****WARNING**** This file is auto-generated! Do NOT edit this file. -# Profile Version = 21.214.0Release -# Tag = production/release/21.214.0-0-g47b86b1f +# Profile Version = 21.217.0Release +# Tag = production/release/21.217.0-0-g248b1c46 ############################################################################################ Profile = { 'version': { 'major': 21, - 'minor': 214, + 'minor': 217, 'patch': 0, 'type': "Release" }, @@ -5121,6 +5121,50 @@ { 'num': 5, 'name': "sport", 'raw_value': 1, 'value_name': "running" }, ], }, + { + 'name': "avg_swimming_cadence", + 'type': "uint8", + 'array': "", + 'scale': [1], + 'offset': [0], + 'units': ["strokes/min"], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 5, 'name': "sport", 'raw_value': 5, 'value_name': "swimming" }, + ], + }, + { + 'name': "avg_paddlesport_cadence", + 'type': "uint8", + 'array': "", + 'scale': [1], + 'offset': [0], + 'units': ["strokes/min"], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 5, 'name': "sport", 'raw_value': 15, 'value_name': "rowing" }, + { 'num': 5, 'name': "sport", 'raw_value': 37, 'value_name': "stand_up_paddleboarding" }, + ], + }, + { + 'name': "avg_push_cadence", # average pushes per minute in a session + 'type': "uint8", + 'array': "", + 'scale': [1], + 'offset': [0], + 'units': ["pushes/min"], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 5, 'name': "sport", 'raw_value': 66, 'value_name': "wheelchair_push_run" }, + { 'num': 5, 'name': "sport", 'raw_value': 65, 'value_name': "wheelchair_push_walk" }, + ], + }, ] }, 19: { @@ -5150,6 +5194,50 @@ { 'num': 5, 'name': "sport", 'raw_value': 1, 'value_name': "running" }, ], }, + { + 'name': "max_swimming_cadence", + 'type': "uint8", + 'array': "", + 'scale': [1], + 'offset': [0], + 'units': ["strokes/min"], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 5, 'name': "sport", 'raw_value': 5, 'value_name': "swimming" }, + ], + }, + { + 'name': "max_paddlesport_cadence", + 'type': "uint8", + 'array': "", + 'scale': [1], + 'offset': [0], + 'units': ["strokes/min"], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 5, 'name': "sport", 'raw_value': 15, 'value_name': "rowing" }, + { 'num': 5, 'name': "sport", 'raw_value': 37, 'value_name': "stand_up_paddleboarding" }, + ], + }, + { + 'name': "max_push_cadence", # max pushes per minute in a session + 'type': "uint8", + 'array': "", + 'scale': [1], + 'offset': [0], + 'units': ["pushes/min"], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 5, 'name': "sport", 'raw_value': 66, 'value_name': "wheelchair_push_run" }, + { 'num': 5, 'name': "sport", 'raw_value': 65, 'value_name': "wheelchair_push_walk" }, + ], + }, ] }, 20: { @@ -5932,6 +6020,36 @@ 'has_components': False, 'sub_fields': [] }, + 79: { + 'num': 79, + 'name': "avg_strokes_per_length", + 'type': "uint16", + 'base_type': "uint16", + 'array': "false", + 'scale': [10], + 'offset': [0], + 'units': "strokes/length", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 80: { + 'num': 80, + 'name': "avg_swolf", + 'type': "uint16", + 'base_type': "uint16", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, 82: { 'num': 82, 'name': "player_score", @@ -6292,6 +6410,51 @@ 'has_components': False, 'sub_fields': [] }, + 106: { + 'num': 106, + 'name': "num_segment_laps", + 'type': "uint16", + 'base_type': "uint16", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 107: { + 'num': 107, + 'name': "front_gear_shift_count", + 'type': "uint16", + 'base_type': "uint16", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 108: { + 'num': 108, + 'name': "rear_gear_shift_count", + 'type': "uint16", + 'base_type': "uint16", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, 110: { 'num': 110, # Sport name from associated sport mesg 'name': "sport_profile_name", @@ -7207,6 +7370,21 @@ 'has_components': False, 'sub_fields': [] }, + 211: { + 'num': 211, + 'name': "avg_grade_adjusted_speed", + 'type': "uint32", + 'base_type': "uint32", + 'array': "false", + 'scale': [1000], + 'offset': [0], + 'units': "m/s", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, }, }, 19: { @@ -7439,6 +7617,21 @@ { 'num': 25, 'name': "sport", 'raw_value': 37, 'value_name': "stand_up_paddleboarding" }, ], }, + { + 'name': "total_pushes", # total number of pushes in a lap + 'type': "uint32", + 'array': "", + 'scale': [1], + 'offset': [0], + 'units': ["pushes"], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 25, 'name': "sport", 'raw_value': 66, 'value_name': "wheelchair_push_run" }, + { 'num': 25, 'name': "sport", 'raw_value': 65, 'value_name': "wheelchair_push_walk" }, + ], + }, ] }, 11: { @@ -7558,6 +7751,50 @@ { 'num': 25, 'name': "sport", 'raw_value': 1, 'value_name': "running" }, ], }, + { + 'name': "avg_swimming_cadence", + 'type': "uint8", + 'array': "", + 'scale': [1], + 'offset': [0], + 'units': ["strokes/min"], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 25, 'name': "sport", 'raw_value': 5, 'value_name': "swimming" }, + ], + }, + { + 'name': "avg_paddlesport_cadence", + 'type': "uint8", + 'array': "", + 'scale': [1], + 'offset': [0], + 'units': ["strokes/min"], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 25, 'name': "sport", 'raw_value': 15, 'value_name': "rowing" }, + { 'num': 25, 'name': "sport", 'raw_value': 37, 'value_name': "stand_up_paddleboarding" }, + ], + }, + { + 'name': "avg_push_cadence", # average pushes per minute in a lap + 'type': "uint8", + 'array': "", + 'scale': [1], + 'offset': [0], + 'units': ["pushes/min"], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 25, 'name': "sport", 'raw_value': 66, 'value_name': "wheelchair_push_run" }, + { 'num': 25, 'name': "sport", 'raw_value': 65, 'value_name': "wheelchair_push_walk" }, + ], + }, ] }, 18: { @@ -7587,6 +7824,50 @@ { 'num': 25, 'name': "sport", 'raw_value': 1, 'value_name': "running" }, ], }, + { + 'name': "max_swimming_cadence", + 'type': "uint8", + 'array': "", + 'scale': [1], + 'offset': [0], + 'units': ["strokes/min"], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 25, 'name': "sport", 'raw_value': 5, 'value_name': "swimming" }, + ], + }, + { + 'name': "max_paddlesport_cadence", + 'type': "uint8", + 'array': "", + 'scale': [1], + 'offset': [0], + 'units': ["strokes/min"], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 25, 'name': "sport", 'raw_value': 15, 'value_name': "rowing" }, + { 'num': 25, 'name': "sport", 'raw_value': 37, 'value_name': "stand_up_paddleboarding" }, + ], + }, + { + 'name': "max_push_cadence", # max pushes per minute in a lap + 'type': "uint8", + 'array': "", + 'scale': [1], + 'offset': [0], + 'units': ["pushes/min"], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 25, 'name': "sport", 'raw_value': 66, 'value_name': "wheelchair_push_run" }, + { 'num': 25, 'name': "sport", 'raw_value': 65, 'value_name': "wheelchair_push_walk" }, + ], + }, ] }, 19: { @@ -7709,25 +7990,85 @@ 'has_components': False, 'sub_fields': [] }, - 32: { - 'num': 32, # # of lengths of swim pool - 'name': "num_lengths", - 'type': "uint16", - 'base_type': "uint16", + 27: { + 'num': 27, # North east corner latitude. + 'name': "nec_lat", + 'type': "sint32", + 'base_type': "sint32", 'array': "false", 'scale': [1], 'offset': [0], - 'units': "lengths", + 'units': "semicircles", 'bits': [], 'components': [], 'is_accumulated': False, 'has_components': False, 'sub_fields': [] }, - 33: { - 'num': 33, - 'name': "normalized_power", - 'type': "uint16", + 28: { + 'num': 28, # North east corner longitude. + 'name': "nec_long", + 'type': "sint32", + 'base_type': "sint32", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "semicircles", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 29: { + 'num': 29, # South west corner latitude. + 'name': "swc_lat", + 'type': "sint32", + 'base_type': "sint32", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "semicircles", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 30: { + 'num': 30, # South west corner latitude. + 'name': "swc_long", + 'type': "sint32", + 'base_type': "sint32", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "semicircles", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 32: { + 'num': 32, # # of lengths of swim pool + 'name': "num_lengths", + 'type': "uint16", + 'base_type': "uint16", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "lengths", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 33: { + 'num': 33, + 'name': "normalized_power", + 'type': "uint16", 'base_type': "uint16", 'array': "false", 'scale': [1], @@ -8204,6 +8545,21 @@ 'has_components': False, 'sub_fields': [] }, + 73: { + 'num': 73, + 'name': "avg_swolf", + 'type': "uint16", + 'base_type': "uint16", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, 74: { 'num': 74, 'name': "opponent_score", @@ -8444,6 +8800,21 @@ 'has_components': False, 'sub_fields': [] }, + 90: { + 'num': 90, + 'name': "avg_strokes_per_length", + 'type': "uint16", + 'base_type': "uint16", + 'array': "false", + 'scale': [10], + 'offset': [0], + 'units': "strokes / length", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, 91: { 'num': 91, 'name': "avg_left_torque_effectiveness", @@ -8519,6 +8890,36 @@ 'has_components': False, 'sub_fields': [] }, + 96: { + 'num': 96, + 'name': "front_gear_shift_count", + 'type': "uint16", + 'base_type': "uint16", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 97: { + 'num': 97, + 'name': "rear_gear_shift_count", + 'type': "uint16", + 'base_type': "uint16", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, 98: { 'num': 98, # Total time spent in the standing position 'name': "time_standing", @@ -9059,6 +9460,21 @@ 'has_components': False, 'sub_fields': [] }, + 155: { + 'num': 155, + 'name': "metabolic_calories", + 'type': "uint16", + 'base_type': "uint16", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "kcal", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, 156: { 'num': 156, # fractional part of total_ascent 'name': "total_fractional_ascent", @@ -9134,6 +9550,21 @@ 'has_components': False, 'sub_fields': [] }, + 161: { + 'num': 161, + 'name': "avg_grade_adjusted_speed", + 'type': "uint32", + 'base_type': "uint32", + 'array': "false", + 'scale': [1000], + 'offset': [0], + 'units': "m/s", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, }, }, 101: { @@ -9471,6 +9902,21 @@ 'has_components': True, 'sub_fields': [] }, + 26: { + 'num': 26, + 'name': "metabolic_calories", + 'type': "uint16", + 'base_type': "uint16", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "kcal", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, }, }, 20: { @@ -11957,6 +12403,43 @@ 'sub_fields': [] }, }, +}, + 104: { + 'num': "104", + 'name': "battery", + 'messages_key': "battery_mesgs", + 'fields': { + 253: { + 'num': 253, + 'name': "timestamp", + 'type': "date_time", + 'base_type': "uint32", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 2: { + 'num': 2, + 'name': "capacity", + 'type': "uint8", + 'base_type': "uint8", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "%", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + }, }, 128: { 'num': "128", @@ -13062,6 +13545,21 @@ 'has_components': False, 'sub_fields': [] }, + 3: { + 'num': 3, + 'name': "enhanced_altitude", + 'type': "uint32", + 'base_type': "uint32", + 'array': "true", + 'scale': [5], + 'offset': [500], + 'units': "m", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, }, }, 167: { @@ -14365,6 +14863,21 @@ 'has_components': False, 'sub_fields': [] }, + 253: { + 'num': 253, + 'name': "timestamp", + 'type': "date_time", + 'base_type': "uint32", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "s", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, 0: { 'num': 0, 'name': "split_type", @@ -14455,6 +14968,36 @@ 'has_components': False, 'sub_fields': [] }, + 11: { + 'num': 11, + 'name': "sport", + 'type': "sport", + 'base_type': "enum", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 12: { + 'num': 12, + 'name': "sub_sport", + 'type': "sub_sport", + 'base_type': "enum", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, 13: { 'num': 13, 'name': "total_ascent", @@ -14485,8 +15028,98 @@ 'has_components': False, 'sub_fields': [] }, - 21: { - 'num': 21, + 15: { + 'num': 15, + 'name': "avg_heart_rate", + 'type': "uint8", + 'base_type': "uint8", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "bpm", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 16: { + 'num': 16, + 'name': "max_heart_rate", + 'type': "uint8", + 'base_type': "uint8", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "bpm", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 17: { + 'num': 17, # North east corner latitude + 'name': "nec_lat", + 'type': "sint32", + 'base_type': "sint32", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "semicircles", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 18: { + 'num': 18, # North east corner longitude + 'name': "nec_long", + 'type': "sint32", + 'base_type': "sint32", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "semicircles", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 19: { + 'num': 19, # South west corner latitude + 'name': "swc_lat", + 'type': "sint32", + 'base_type': "sint32", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "semicircles", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 20: { + 'num': 20, # South west corner longitude + 'name': "swc_long", + 'type': "sint32", + 'base_type': "sint32", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "semicircles", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 21: { + 'num': 21, 'name': "start_position_lat", 'type': "sint32", 'base_type': "sint32", @@ -14575,11 +15208,2718 @@ 'has_components': False, 'sub_fields': [] }, - 27: { - 'num': 27, - 'name': "end_time", - 'type': "date_time", - 'base_type': "uint32", + 27: { + 'num': 27, + 'name': "end_time", + 'type': "date_time", + 'base_type': "uint32", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 28: { + 'num': 28, + 'name': "total_calories", + 'type': "uint32", + 'base_type': "uint32", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "kcal", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 29: { + 'num': 29, + 'name': "avg_cadence", + 'type': "uint16", + 'base_type': "uint16", + 'array': "false", + 'scale': [128], + 'offset': [0], + 'units': "rpm", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [{ + 'name': "avg_running_cadence", + 'type': "uint16", + 'array': "", + 'scale': [128], + 'offset': [0], + 'units': ["strides/min"], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 11, 'name': "sport", 'raw_value': 1, 'value_name': "running" }, + ], + }, + { + 'name': "avg_swimming_cadence", + 'type': "uint16", + 'array': "", + 'scale': [128], + 'offset': [0], + 'units': ["strokes/min"], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 11, 'name': "sport", 'raw_value': 5, 'value_name': "swimming" }, + ], + }, + { + 'name': "avg_paddlesport_cadence", + 'type': "uint16", + 'array': "", + 'scale': [128], + 'offset': [0], + 'units': ["strokes/min"], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 11, 'name': "sport", 'raw_value': 15, 'value_name': "rowing" }, + { 'num': 11, 'name': "sport", 'raw_value': 37, 'value_name': "stand_up_paddleboarding" }, + ], + }, + { + 'name': "avg_push_cadence", # average pushes per minute in a split + 'type': "uint16", + 'array': "", + 'scale': [1], + 'offset': [0], + 'units': ["pushes/min"], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 11, 'name': "sport", 'raw_value': 66, 'value_name': "wheelchair_push_run" }, + { 'num': 11, 'name': "sport", 'raw_value': 65, 'value_name': "wheelchair_push_walk" }, + ], + }, + ] + }, + 30: { + 'num': 30, + 'name': "max_cadence", + 'type': "uint16", + 'base_type': "uint16", + 'array': "false", + 'scale': [128], + 'offset': [0], + 'units': "rpm", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [{ + 'name': "max_running_cadence", + 'type': "uint16", + 'array': "", + 'scale': [128], + 'offset': [0], + 'units': ["strides/min"], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 11, 'name': "sport", 'raw_value': 1, 'value_name': "running" }, + ], + }, + { + 'name': "max_swimming_cadence", + 'type': "uint16", + 'array': "", + 'scale': [128], + 'offset': [0], + 'units': ["strokes/min"], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 11, 'name': "sport", 'raw_value': 5, 'value_name': "swimming" }, + ], + }, + { + 'name': "max_paddlesport_cadence", + 'type': "uint16", + 'array': "", + 'scale': [128], + 'offset': [0], + 'units': ["strokes/min"], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 11, 'name': "sport", 'raw_value': 15, 'value_name': "rowing" }, + { 'num': 11, 'name': "sport", 'raw_value': 37, 'value_name': "stand_up_paddleboarding" }, + ], + }, + { + 'name': "max_push_cadence", # max pushes per minute in a split + 'type': "uint16", + 'array': "", + 'scale': [1], + 'offset': [0], + 'units': ["pushes/min"], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 11, 'name': "sport", 'raw_value': 66, 'value_name': "wheelchair_push_run" }, + { 'num': 11, 'name': "sport", 'raw_value': 65, 'value_name': "wheelchair_push_walk" }, + ], + }, + ] + }, + 31: { + 'num': 31, + 'name': "total_cycles", + 'type': "uint32", + 'base_type': "uint32", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "cycles", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [{ + 'name': "total_strides", + 'type': "uint32", + 'array': "", + 'scale': [1], + 'offset': [0], + 'units': ["strides"], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 11, 'name': "sport", 'raw_value': 1, 'value_name': "running" }, + { 'num': 11, 'name': "sport", 'raw_value': 11, 'value_name': "walking" }, + ], + }, + { + 'name': "total_strokes", + 'type': "uint32", + 'array': "", + 'scale': [1], + 'offset': [0], + 'units': ["strokes"], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 11, 'name': "sport", 'raw_value': 2, 'value_name': "cycling" }, + { 'num': 11, 'name': "sport", 'raw_value': 5, 'value_name': "swimming" }, + { 'num': 11, 'name': "sport", 'raw_value': 15, 'value_name': "rowing" }, + { 'num': 11, 'name': "sport", 'raw_value': 37, 'value_name': "stand_up_paddleboarding" }, + ], + }, + { + 'name': "total_reps", # total reps in a split round + 'type': "uint32", + 'array': "", + 'scale': [1], + 'offset': [0], + 'units': ["reps"], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 11, 'name': "sport", 'raw_value': 62, 'value_name': "hiit" }, + ], + }, + { + 'name': "total_pushes", # total number of pushes in a split + 'type': "uint32", + 'array': "", + 'scale': [1], + 'offset': [0], + 'units': ["pushes"], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 11, 'name': "sport", 'raw_value': 66, 'value_name': "wheelchair_push_run" }, + { 'num': 11, 'name': "sport", 'raw_value': 65, 'value_name': "wheelchair_push_walk" }, + ], + }, + ] + }, + 32: { + 'num': 32, + 'name': "avg_temperature", + 'type': "sint8", + 'base_type': "sint8", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "C", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 33: { + 'num': 33, + 'name': "max_temperature", + 'type': "sint8", + 'base_type': "sint8", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "C", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 34: { + 'num': 34, + 'name': "min_temperature", + 'type': "sint8", + 'base_type': "sint8", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "C", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 35: { + 'num': 35, + 'name': "avg_vertical_oscillation", + 'type': "uint16", + 'base_type': "uint16", + 'array': "false", + 'scale': [10], + 'offset': [0], + 'units': "mm", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 36: { + 'num': 36, + 'name': "avg_vertical_ratio", + 'type': "uint16", + 'base_type': "uint16", + 'array': "false", + 'scale': [100], + 'offset': [0], + 'units': "percent", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 37: { + 'num': 37, + 'name': "avg_stance_time", + 'type': "uint16", + 'base_type': "uint16", + 'array': "false", + 'scale': [10], + 'offset': [0], + 'units': "ms", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 38: { + 'num': 38, + 'name': "avg_stance_time_balance", + 'type': "uint16", + 'base_type': "uint16", + 'array': "false", + 'scale': [100], + 'offset': [0], + 'units': "percent", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 39: { + 'num': 39, + 'name': "avg_step_length", + 'type': "uint16", + 'base_type': "uint16", + 'array': "false", + 'scale': [10], + 'offset': [0], + 'units': "mm", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 40: { + 'num': 40, + 'name': "avg_power", + 'type': "uint16", + 'base_type': "uint16", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "watts", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 41: { + 'num': 41, + 'name': "max_power", + 'type': "uint16", + 'base_type': "uint16", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "watts", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 42: { + 'num': 42, + 'name': "normalized_power", + 'type': "uint16", + 'base_type': "uint16", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "watts", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 43: { + 'num': 43, + 'name': "left_right_balance", + 'type': "left_right_balance_100", + 'base_type': "uint16", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 44: { + 'num': 44, # Total time spent in the standing position + 'name': "time_standing", + 'type': "uint32", + 'base_type': "uint32", + 'array': "false", + 'scale': [1000], + 'offset': [0], + 'units': "s", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 45: { + 'num': 45, # Average left platform center offset + 'name': "avg_left_pco", + 'type': "sint8", + 'base_type': "sint8", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "mm", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 46: { + 'num': 46, # Average right platform center offset + 'name': "avg_right_pco", + 'type': "sint8", + 'base_type': "sint8", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "mm", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 47: { + 'num': 47, # Average left power phase angles. Data value indexes defined by power_phase_type. + 'name': "avg_left_power_phase", + 'type': "uint8", + 'base_type': "uint8", + 'array': "true", + 'scale': [0.7111111], + 'offset': [0], + 'units': "degrees", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 48: { + 'num': 48, # Average left power phase peak angles. Data value indexes defined by power_phase_type. + 'name': "avg_left_power_phase_peak", + 'type': "uint8", + 'base_type': "uint8", + 'array': "true", + 'scale': [0.7111111], + 'offset': [0], + 'units': "degrees", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 49: { + 'num': 49, # Average right power phase angles. Data value indexes defined by power_phase_type. + 'name': "avg_right_power_phase", + 'type': "uint8", + 'base_type': "uint8", + 'array': "true", + 'scale': [0.7111111], + 'offset': [0], + 'units': "degrees", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 50: { + 'num': 50, # Average right power phase peak angles. Data value indexes defined by power_phase_type. + 'name': "avg_right_power_phase_peak", + 'type': "uint8", + 'base_type': "uint8", + 'array': "true", + 'scale': [0.7111111], + 'offset': [0], + 'units': "degrees", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 51: { + 'num': 51, # Average power by position. Data value indexes defined by rider_position_type. + 'name': "avg_power_position", + 'type': "uint16", + 'base_type': "uint16", + 'array': "true", + 'scale': [1], + 'offset': [0], + 'units': "watts", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 52: { + 'num': 52, # Maximum power by position. Data value indexes defined by rider_position_type. + 'name': "max_power_position", + 'type': "uint16", + 'base_type': "uint16", + 'array': "true", + 'scale': [1], + 'offset': [0], + 'units': "watts", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 53: { + 'num': 53, + 'name': "avg_left_torque_effectiveness", + 'type': "uint8", + 'base_type': "uint8", + 'array': "false", + 'scale': [2], + 'offset': [0], + 'units': "percent", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 54: { + 'num': 54, + 'name': "avg_right_torque_effectiveness", + 'type': "uint8", + 'base_type': "uint8", + 'array': "false", + 'scale': [2], + 'offset': [0], + 'units': "percent", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 55: { + 'num': 55, + 'name': "avg_left_pedal_smoothness", + 'type': "uint8", + 'base_type': "uint8", + 'array': "false", + 'scale': [2], + 'offset': [0], + 'units': "percent", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 56: { + 'num': 56, + 'name': "avg_right_pedal_smoothness", + 'type': "uint8", + 'base_type': "uint8", + 'array': "false", + 'scale': [2], + 'offset': [0], + 'units': "percent", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 57: { + 'num': 57, + 'name': "avg_combined_pedal_smoothness", + 'type': "uint8", + 'base_type': "uint8", + 'array': "false", + 'scale': [2], + 'offset': [0], + 'units': "percent", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 58: { + 'num': 58, # 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. + 'name': "avg_flow", + 'type': "float32", + 'base_type': "float32", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "Flow", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 59: { + 'num': 59, # 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. + 'name': "total_grit", + 'type': "float32", + 'base_type': "float32", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "kGrit", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 62: { + 'num': 62, + 'name': "swim_stroke", + 'type': "swim_stroke", + 'base_type': "enum", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 63: { + 'num': 63, # # of active lengths of swim pool + 'name': "num_active_lengths", + 'type': "uint16", + 'base_type': "uint16", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "lengths", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 64: { + 'num': 64, + 'name': "avg_swolf", + 'type': "uint16", + 'base_type': "uint16", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 65: { + 'num': 65, + 'name': "avg_stroke_distance", + 'type': "uint16", + 'base_type': "uint16", + 'array': "false", + 'scale': [100], + 'offset': [0], + 'units': "m", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 66: { + 'num': 66, + 'name': "avg_strokes_per_length", + 'type': "uint16", + 'base_type': "uint16", + 'array': "false", + 'scale': [10], + 'offset': [0], + 'units': "strokes / length", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 67: { + 'num': 67, # This is only set for split types that will trigger the end of a lap when the split ends + 'name': "first_lap_index", + 'type': "uint16", + 'base_type': "uint16", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 68: { + 'num': 68, # This is only set for split types that will trigger the end of a lap when the split ends + 'name': "num_laps", + 'type': "uint16", + 'base_type': "uint16", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 69: { + 'num': 69, + 'name': "climb_grading_scale", + 'type': "climb_grading_scale", + 'base_type': "enum", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 70: { + 'num': 70, + 'name': "climb_grade_value", + 'type': "uint32", + 'base_type': "uint32", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [{ + 'name': "climb_grade_yds", + 'type': "yds_grading_scale", + 'array': "", + 'scale': [1], + 'offset': [0], + 'units': [""], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 69, 'name': "climb_grading_scale", 'raw_value': 0, 'value_name': "yds" }, + ], + }, + { + 'name': "climb_grade_uiaa", + 'type': "uiaa_grading_scale", + 'array': "", + 'scale': [1], + 'offset': [0], + 'units': [""], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 69, 'name': "climb_grading_scale", 'raw_value': 1, 'value_name': "uiaa" }, + ], + }, + { + 'name': "climb_grade_french", + 'type': "french_grading_scale", + 'array': "", + 'scale': [1], + 'offset': [0], + 'units': [""], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 69, 'name': "climb_grading_scale", 'raw_value': 2, 'value_name': "french" }, + ], + }, + { + 'name': "climb_grade_british_adjectival", + 'type': "british_adjectival_grading_scale", + 'array': "", + 'scale': [1], + 'offset': [0], + 'units': [""], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 69, 'name': "climb_grading_scale", 'raw_value': 3, 'value_name': "british_adjectival" }, + ], + }, + { + 'name': "climb_grade_british_technical", + 'type': "british_technical_grading_scale", + 'array': "", + 'scale': [1], + 'offset': [0], + 'units': [""], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 69, 'name': "climb_grading_scale", 'raw_value': 4, 'value_name': "british_technical" }, + ], + }, + { + 'name': "climb_grade_ewbank", + 'type': "ewbank_grading_scale", + 'array': "", + 'scale': [1], + 'offset': [0], + 'units': [""], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 69, 'name': "climb_grading_scale", 'raw_value': 5, 'value_name': "ewbank" }, + ], + }, + { + 'name': "climb_grade_brazilian", + 'type': "brazilian_grading_scale", + 'array': "", + 'scale': [1], + 'offset': [0], + 'units': [""], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 69, 'name': "climb_grading_scale", 'raw_value': 6, 'value_name': "brazilian" }, + ], + }, + { + 'name': "climb_grade_saxon", + 'type': "saxon_grading_scale", + 'array': "", + 'scale': [1], + 'offset': [0], + 'units': [""], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 69, 'name': "climb_grading_scale", 'raw_value': 7, 'value_name': "saxon" }, + ], + }, + { + 'name': "climb_grade_vermin", + 'type': "vermin_grading_scale", + 'array': "", + 'scale': [1], + 'offset': [0], + 'units': [""], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 69, 'name': "climb_grading_scale", 'raw_value': 8, 'value_name': "vermin" }, + ], + }, + { + 'name': "climb_grade_font", + 'type': "font_grading_scale", + 'array': "", + 'scale': [1], + 'offset': [0], + 'units': [""], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 69, 'name': "climb_grading_scale", 'raw_value': 9, 'value_name': "font" }, + ], + }, + { + 'name': "climb_grade_dankyu", + 'type': "dankyu_grading_scale", + 'array': "", + 'scale': [1], + 'offset': [0], + 'units': [""], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 69, 'name': "climb_grading_scale", 'raw_value': 10, 'value_name': "dankyu" }, + ], + }, + ] + }, + 71: { + 'num': 71, # Use with indoor climbing activities only + 'name': "status", + 'type': "split_status", + 'base_type': "enum", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 72: { + 'num': 72, # Use with indoor climbing activities only + 'name': "num_falls", + 'type': "uint16", + 'base_type': "uint16", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 73: { + 'num': 73, # Use with indoor climbing activities only + 'name': "climb_send", + 'type': "bool", + 'base_type': "enum", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 74: { + 'num': 74, + 'name': "start_elevation", + 'type': "uint32", + 'base_type': "uint32", + 'array': "false", + 'scale': [5], + 'offset': [500], + 'units': "m", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 78: { + 'num': 78, # Active time of split rounds + 'name': "active_time", + 'type': "uint32", + 'base_type': "uint32", + 'array': "false", + 'scale': [1000], + 'offset': [0], + 'units': "s", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 79: { + 'num': 79, + 'name': "metabolic_calories", + 'type': "uint16", + 'base_type': "uint16", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "kcal", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 80: { + 'num': 80, # fractional part of total_ascent + 'name': "total_fractional_ascent", + 'type': "uint8", + 'base_type': "uint8", + 'array': "false", + 'scale': [100], + 'offset': [0], + 'units': "m", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 81: { + 'num': 81, # fractional part of total_descent + 'name': "total_fractional_descent", + 'type': "uint8", + 'base_type': "uint8", + 'array': "false", + 'scale': [100], + 'offset': [0], + 'units': "m", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 88: { + 'num': 88, + 'name': "avg_grade", + 'type': "sint16", + 'base_type': "sint16", + 'array': "false", + 'scale': [100], + 'offset': [0], + 'units': "%", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 89: { + 'num': 89, + 'name': "max_grade", + 'type': "sint16", + 'base_type': "sint16", + 'array': "false", + 'scale': [100], + 'offset': [0], + 'units': "%", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 90: { + 'num': 90, + 'name': "min_cadence", + 'type': "uint16", + 'base_type': "uint16", + 'array': "false", + 'scale': [128], + 'offset': [0], + 'units': "rpm", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [{ + 'name': "min_running_cadence", + 'type': "uint16", + 'array': "", + 'scale': [128], + 'offset': [0], + 'units': ["strides/min"], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 11, 'name': "sport", 'raw_value': 1, 'value_name': "running" }, + ], + }, + { + 'name': "min_swimming_cadence", + 'type': "uint16", + 'array': "", + 'scale': [128], + 'offset': [0], + 'units': ["strokes/min"], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 11, 'name': "sport", 'raw_value': 5, 'value_name': "swimming" }, + ], + }, + { + 'name': "min_paddlesport_cadence", + 'type': "uint16", + 'array': "", + 'scale': [128], + 'offset': [0], + 'units': ["strokes/min"], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 11, 'name': "sport", 'raw_value': 15, 'value_name': "rowing" }, + { 'num': 11, 'name': "sport", 'raw_value': 37, 'value_name': "stand_up_paddleboarding" }, + ], + }, + { + 'name': "min_push_cadence", # min pushes per minute in a split + 'type': "uint16", + 'array': "", + 'scale': [1], + 'offset': [0], + 'units': ["pushes/min"], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 11, 'name': "sport", 'raw_value': 66, 'value_name': "wheelchair_push_run" }, + { 'num': 11, 'name': "sport", 'raw_value': 65, 'value_name': "wheelchair_push_walk" }, + ], + }, + ] + }, + 93: { + 'num': 93, + 'name': "avg_grade_adjusted_speed", + 'type': "uint32", + 'base_type': "uint32", + 'array': "false", + 'scale': [1000], + 'offset': [0], + 'units': "m/s", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 94: { + 'num': 94, + 'name': "avg_stress", + 'type': "uint16", + 'base_type': "uint16", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 99: { + 'num': 99, + 'name': "avg_vam", + 'type': "uint16", + 'base_type': "uint16", + 'array': "false", + 'scale': [1000], + 'offset': [0], + 'units': "m/s", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 104: { + 'num': 104, + 'name': "jump_count", + 'type': "uint8", + 'base_type': "uint8", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 110: { + 'num': 110, + 'name': "total_moving_time", + 'type': "uint32", + 'base_type': "uint32", + 'array': "false", + 'scale': [1000], + 'offset': [0], + 'units': "s", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 112: { + 'num': 112, + 'name': "dive_section_type", + 'type': "dive_section_type", + 'base_type': "enum", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 113: { + 'num': 113, + 'name': "avg_ascent_rate", + 'type': "uint32", + 'base_type': "uint32", + 'array': "false", + 'scale': [1000], + 'offset': [0], + 'units': "m/s", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 114: { + 'num': 114, + 'name': "max_ascent_rate", + 'type': "uint32", + 'base_type': "uint32", + 'array': "false", + 'scale': [1000], + 'offset': [0], + 'units': "m/s", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 115: { + 'num': 115, + 'name': "avg_descent_rate", + 'type': "uint32", + 'base_type': "uint32", + 'array': "false", + 'scale': [1000], + 'offset': [0], + 'units': "m/s", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 116: { + 'num': 116, + 'name': "max_descent_rate", + 'type': "uint32", + 'base_type': "uint32", + 'array': "false", + 'scale': [1000], + 'offset': [0], + 'units': "m/s", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 117: { + 'num': 117, + 'name': "total_ascent_time", + 'type': "uint32", + 'base_type': "uint32", + 'array': "false", + 'scale': [1000], + 'offset': [0], + 'units': "s", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 118: { + 'num': 118, + 'name': "total_descent_time", + 'type': "uint32", + 'base_type': "uint32", + 'array': "false", + 'scale': [1000], + 'offset': [0], + 'units': "s", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 119: { + 'num': 119, + 'name': "total_hang_time", + 'type': "uint32", + 'base_type': "uint32", + 'array': "false", + 'scale': [1000], + 'offset': [0], + 'units': "s", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 120: { + 'num': 120, + 'name': "apnea_discipline", + 'type': "apnea_discipline", + 'base_type': "enum", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 121: { + 'num': 121, # Average depth. 0 if above water + 'name': "avg_depth", + 'type': "uint32", + 'base_type': "uint32", + 'array': "false", + 'scale': [1000], + 'offset': [0], + 'units': "m", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 122: { + 'num': 122, # Max depth. 0 if above water + 'name': "max_depth", + 'type': "uint32", + 'base_type': "uint32", + 'array': "false", + 'scale': [1000], + 'offset': [0], + 'units': "m", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 124: { + 'num': 124, + 'name': "min_heart_rate", + 'type': "uint8", + 'base_type': "uint8", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "bpm", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 127: { + 'num': 127, # Time since end of last dive + 'name': "surface_interval", + 'type': "uint32", + 'base_type': "uint32", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "s", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 142: { + 'num': 142, + 'name': "total_fractional_cycles", + 'type': "uint8", + 'base_type': "uint8", + 'array': "false", + 'scale': [128], + 'offset': [0], + 'units': "cycles", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 144: { + 'num': 144, + 'name': "avg_stance_time_percent", + 'type': "uint16", + 'base_type': "uint16", + 'array': "false", + 'scale': [100], + 'offset': [0], + 'units': "percent", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 168: { + 'num': 168, + 'name': "total_anaerobic_training_effect", + 'type': "uint8", + 'base_type': "uint8", + 'array': "false", + 'scale': [10], + 'offset': [0], + 'units': "", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 169: { + 'num': 169, + 'name': "front_gear_shift_count", + 'type': "uint16", + 'base_type': "uint16", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 170: { + 'num': 170, + 'name': "rear_gear_shift_count", + 'type': "uint16", + 'base_type': "uint16", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + }, +}, + 313: { + 'num': "313", + 'name': "split_summary", + 'messages_key': "split_summary_mesgs", + 'fields': { + 254: { + 'num': 254, + 'name': "message_index", + 'type': "message_index", + 'base_type': "uint16", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 253: { + 'num': 253, + 'name': "timestamp", + 'type': "date_time", + 'base_type': "uint32", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "s", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 0: { + 'num': 0, + 'name': "split_type", + 'type': "split_type", + 'base_type': "enum", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 1: { + 'num': 1, + 'name': "sport", + 'type': "sport", + 'base_type': "enum", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 2: { + 'num': 2, + 'name': "sub_sport", + 'type': "sub_sport", + 'base_type': "enum", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 3: { + 'num': 3, + 'name': "num_splits", + 'type': "uint16", + 'base_type': "uint16", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 4: { + 'num': 4, + 'name': "total_timer_time", + 'type': "uint32", + 'base_type': "uint32", + 'array': "false", + 'scale': [1000], + 'offset': [0], + 'units': "s", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 5: { + 'num': 5, + 'name': "total_distance", + 'type': "uint32", + 'base_type': "uint32", + 'array': "false", + 'scale': [100], + 'offset': [0], + 'units': "m", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 6: { + 'num': 6, + 'name': "avg_speed", + 'type': "uint32", + 'base_type': "uint32", + 'array': "false", + 'scale': [1000], + 'offset': [0], + 'units': "m/s", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 7: { + 'num': 7, + 'name': "max_speed", + 'type': "uint32", + 'base_type': "uint32", + 'array': "false", + 'scale': [1000], + 'offset': [0], + 'units': "m/s", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 8: { + 'num': 8, + 'name': "total_ascent", + 'type': "uint16", + 'base_type': "uint16", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "m", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 9: { + 'num': 9, + 'name': "total_descent", + 'type': "uint16", + 'base_type': "uint16", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "m", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 10: { + 'num': 10, + 'name': "avg_heart_rate", + 'type': "uint8", + 'base_type': "uint8", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "bpm", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 11: { + 'num': 11, + 'name': "max_heart_rate", + 'type': "uint8", + 'base_type': "uint8", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "bpm", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 12: { + 'num': 12, + 'name': "avg_vert_speed", + 'type': "sint32", + 'base_type': "sint32", + 'array': "false", + 'scale': [1000], + 'offset': [0], + 'units': "m/s", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 13: { + 'num': 13, + 'name': "total_calories", + 'type': "uint32", + 'base_type': "uint32", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "kcal", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 14: { + 'num': 14, + 'name': "avg_cadence", + 'type': "uint16", + 'base_type': "uint16", + 'array': "false", + 'scale': [128], + 'offset': [0], + 'units': "rpm", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [{ + 'name': "avg_running_cadence", + 'type': "uint16", + 'array': "", + 'scale': [128], + 'offset': [0], + 'units': ["strides/min"], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 1, 'name': "sport", 'raw_value': 1, 'value_name': "running" }, + ], + }, + { + 'name': "avg_swimming_cadence", + 'type': "uint16", + 'array': "", + 'scale': [128], + 'offset': [0], + 'units': ["strokes/min"], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 1, 'name': "sport", 'raw_value': 5, 'value_name': "swimming" }, + ], + }, + { + 'name': "avg_paddlesport_cadence", + 'type': "uint16", + 'array': "", + 'scale': [128], + 'offset': [0], + 'units': ["strokes/min"], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 1, 'name': "sport", 'raw_value': 15, 'value_name': "rowing" }, + { 'num': 1, 'name': "sport", 'raw_value': 37, 'value_name': "stand_up_paddleboarding" }, + ], + }, + { + 'name': "avg_push_cadence", # average pushes per minute in all splits of the type + 'type': "uint16", + 'array': "", + 'scale': [1], + 'offset': [0], + 'units': ["pushes/min"], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 1, 'name': "sport", 'raw_value': 66, 'value_name': "wheelchair_push_run" }, + { 'num': 1, 'name': "sport", 'raw_value': 65, 'value_name': "wheelchair_push_walk" }, + ], + }, + ] + }, + 15: { + 'num': 15, + 'name': "max_cadence", + 'type': "uint16", + 'base_type': "uint16", + 'array': "false", + 'scale': [128], + 'offset': [0], + 'units': "rpm", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [{ + 'name': "max_running_cadence", + 'type': "uint16", + 'array': "", + 'scale': [128], + 'offset': [0], + 'units': ["strides/min"], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 1, 'name': "sport", 'raw_value': 1, 'value_name': "running" }, + ], + }, + { + 'name': "max_swimming_cadence", + 'type': "uint16", + 'array': "", + 'scale': [128], + 'offset': [0], + 'units': ["strokes/min"], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 1, 'name': "sport", 'raw_value': 5, 'value_name': "swimming" }, + ], + }, + { + 'name': "max_paddlesport_cadence", + 'type': "uint16", + 'array': "", + 'scale': [128], + 'offset': [0], + 'units': ["strokes/min"], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 1, 'name': "sport", 'raw_value': 15, 'value_name': "rowing" }, + { 'num': 1, 'name': "sport", 'raw_value': 37, 'value_name': "stand_up_paddleboarding" }, + ], + }, + { + 'name': "max_push_cadence", # max pushes per minute in all splits of the type + 'type': "uint16", + 'array': "", + 'scale': [1], + 'offset': [0], + 'units': ["pushes/min"], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 1, 'name': "sport", 'raw_value': 66, 'value_name': "wheelchair_push_run" }, + { 'num': 1, 'name': "sport", 'raw_value': 65, 'value_name': "wheelchair_push_walk" }, + ], + }, + ] + }, + 16: { + 'num': 16, + 'name': "total_cycles", + 'type': "uint32", + 'base_type': "uint32", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "cycles", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [{ + 'name': "total_strides", + 'type': "uint32", + 'array': "", + 'scale': [1], + 'offset': [0], + 'units': ["strides"], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 1, 'name': "sport", 'raw_value': 1, 'value_name': "running" }, + { 'num': 1, 'name': "sport", 'raw_value': 11, 'value_name': "walking" }, + ], + }, + { + 'name': "total_strokes", + 'type': "uint32", + 'array': "", + 'scale': [1], + 'offset': [0], + 'units': ["strokes"], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 1, 'name': "sport", 'raw_value': 2, 'value_name': "cycling" }, + { 'num': 1, 'name': "sport", 'raw_value': 5, 'value_name': "swimming" }, + { 'num': 1, 'name': "sport", 'raw_value': 15, 'value_name': "rowing" }, + { 'num': 1, 'name': "sport", 'raw_value': 37, 'value_name': "stand_up_paddleboarding" }, + ], + }, + { + 'name': "total_reps", # total reps in all splits + 'type': "uint32", + 'array': "", + 'scale': [1], + 'offset': [0], + 'units': ["reps"], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 1, 'name': "sport", 'raw_value': 62, 'value_name': "hiit" }, + ], + }, + { + 'name': "total_pushes", # total number of pushes in all splits of the type + 'type': "uint32", + 'array': "", + 'scale': [1], + 'offset': [0], + 'units': ["pushes"], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 1, 'name': "sport", 'raw_value': 66, 'value_name': "wheelchair_push_run" }, + { 'num': 1, 'name': "sport", 'raw_value': 65, 'value_name': "wheelchair_push_walk" }, + ], + }, + ] + }, + 17: { + 'num': 17, + 'name': "avg_temperature", + 'type': "sint8", + 'base_type': "sint8", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "C", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 18: { + 'num': 18, + 'name': "max_temperature", + 'type': "sint8", + 'base_type': "sint8", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "C", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 19: { + 'num': 19, + 'name': "min_temperature", + 'type': "sint8", + 'base_type': "sint8", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "C", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 20: { + 'num': 20, + 'name': "avg_vertical_oscillation", + 'type': "uint16", + 'base_type': "uint16", + 'array': "false", + 'scale': [10], + 'offset': [0], + 'units': "mm", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 21: { + 'num': 21, + 'name': "avg_vertical_ratio", + 'type': "uint16", + 'base_type': "uint16", + 'array': "false", + 'scale': [100], + 'offset': [0], + 'units': "percent", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 22: { + 'num': 22, + 'name': "avg_stance_time", + 'type': "uint16", + 'base_type': "uint16", + 'array': "false", + 'scale': [10], + 'offset': [0], + 'units': "ms", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 23: { + 'num': 23, + 'name': "avg_stance_time_balance", + 'type': "uint16", + 'base_type': "uint16", + 'array': "false", + 'scale': [100], + 'offset': [0], + 'units': "percent", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 24: { + 'num': 24, + 'name': "avg_step_length", + 'type': "uint16", + 'base_type': "uint16", + 'array': "false", + 'scale': [10], + 'offset': [0], + 'units': "mm", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 25: { + 'num': 25, + 'name': "avg_power", + 'type': "uint16", + 'base_type': "uint16", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "watts", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 26: { + 'num': 26, + 'name': "max_power", + 'type': "uint16", + 'base_type': "uint16", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "watts", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 27: { + 'num': 27, + 'name': "normalized_power", + 'type': "uint16", + 'base_type': "uint16", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "watts", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 28: { + 'num': 28, # Total time spent in the standing position + 'name': "left_right_balance", + 'type': "left_right_balance_100", + 'base_type': "uint16", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 29: { + 'num': 29, # Average left platform center offset + 'name': "time_standing", + 'type': "uint32", + 'base_type': "uint32", + 'array': "false", + 'scale': [1000], + 'offset': [0], + 'units': "s", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 30: { + 'num': 30, # Average right platform center offset + 'name': "avg_left_pco", + 'type': "sint8", + 'base_type': "sint8", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "mm", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 31: { + 'num': 31, # Average left power phase angles. Data value indexes defined by power_phase_type. + 'name': "avg_right_pco", + 'type': "sint8", + 'base_type': "sint8", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "mm", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 32: { + 'num': 32, # Average left power phase peak angles. Data value indexes defined by power_phase_type. + 'name': "avg_left_power_phase", + 'type': "uint8", + 'base_type': "uint8", + 'array': "true", + 'scale': [0.7111111], + 'offset': [0], + 'units': "degrees", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 33: { + 'num': 33, # Average right power phase angles. Data value indexes defined by power_phase_type. + 'name': "avg_left_power_phase_peak", + 'type': "uint8", + 'base_type': "uint8", + 'array': "true", + 'scale': [0.7111111], + 'offset': [0], + 'units': "degrees", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 34: { + 'num': 34, # Average right power phase peak angles. Data value indexes defined by power_phase_type. + 'name': "avg_right_power_phase", + 'type': "uint8", + 'base_type': "uint8", + 'array': "true", + 'scale': [0.7111111], + 'offset': [0], + 'units': "degrees", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 35: { + 'num': 35, # Average power by position. Data value indexes defined by rider_position_type. + 'name': "avg_right_power_phase_peak", + 'type': "uint8", + 'base_type': "uint8", + 'array': "true", + 'scale': [0.7111111], + 'offset': [0], + 'units': "degrees", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 36: { + 'num': 36, # Maximum power by position. Data value indexes defined by rider_position_type. + 'name': "avg_power_position", + 'type': "uint16", + 'base_type': "uint16", + 'array': "true", + 'scale': [1], + 'offset': [0], + 'units': "watts", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 37: { + 'num': 37, + 'name': "max_power_position", + 'type': "uint16", + 'base_type': "uint16", + 'array': "true", + 'scale': [1], + 'offset': [0], + 'units': "watts", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 38: { + 'num': 38, + 'name': "avg_left_torque_effectiveness", + 'type': "uint8", + 'base_type': "uint8", + 'array': "false", + 'scale': [2], + 'offset': [0], + 'units': "percent", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 39: { + 'num': 39, + 'name': "avg_right_torque_effectiveness", + 'type': "uint8", + 'base_type': "uint8", + 'array': "false", + 'scale': [2], + 'offset': [0], + 'units': "percent", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 40: { + 'num': 40, + 'name': "avg_left_pedal_smoothness", + 'type': "uint8", + 'base_type': "uint8", + 'array': "false", + 'scale': [2], + 'offset': [0], + 'units': "percent", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 41: { + 'num': 41, + 'name': "avg_right_pedal_smoothness", + 'type': "uint8", + 'base_type': "uint8", + 'array': "false", + 'scale': [2], + 'offset': [0], + 'units': "percent", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 42: { + 'num': 42, # 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. + 'name': "avg_combined_pedal_smoothness", + 'type': "uint8", + 'base_type': "uint8", + 'array': "false", + 'scale': [2], + 'offset': [0], + 'units': "percent", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 43: { + 'num': 43, # 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. + 'name': "avg_flow", + 'type': "float32", + 'base_type': "float32", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "Flow", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 44: { + 'num': 44, + 'name': "total_grit", + 'type': "float32", + 'base_type': "float32", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "kGrit", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 47: { + 'num': 47, # # of active lengths of swim pool + 'name': "swim_stroke", + 'type': "swim_stroke", + 'base_type': "enum", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 48: { + 'num': 48, + 'name': "num_active_lengths", + 'type': "uint16", + 'base_type': "uint16", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "lengths", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 49: { + 'num': 49, + 'name': "avg_swolf", + 'type': "uint16", + 'base_type': "uint16", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 50: { + 'num': 50, + 'name': "avg_stroke_distance", + 'type': "uint16", + 'base_type': "uint16", + 'array': "false", + 'scale': [100], + 'offset': [0], + 'units': "m", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 51: { + 'num': 51, + 'name': "avg_strokes_per_length", + 'type': "uint16", + 'base_type': "uint16", + 'array': "false", + 'scale': [10], + 'offset': [0], + 'units': "strokes / length", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 52: { + 'num': 52, + 'name': "avg_ascent", + 'type': "uint16", + 'base_type': "uint16", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "m", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 53: { + 'num': 53, + 'name': "max_ascent", + 'type': "uint16", + 'base_type': "uint16", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "m", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 54: { + 'num': 54, + 'name': "climb_grading_scale", + 'type': "climb_grading_scale", + 'base_type': "enum", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, + 55: { + 'num': 55, + 'name': "climb_max_grade_value", + 'type': "uint32", + 'base_type': "uint32", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [{ + 'name': "climb_max_grade_yds", + 'type': "yds_grading_scale", + 'array': "", + 'scale': [1], + 'offset': [0], + 'units': [""], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 54, 'name': "climb_grading_scale", 'raw_value': 0, 'value_name': "yds" }, + ], + }, + { + 'name': "climb_max_grade_uiaa", + 'type': "uiaa_grading_scale", + 'array': "", + 'scale': [1], + 'offset': [0], + 'units': [""], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 54, 'name': "climb_grading_scale", 'raw_value': 1, 'value_name': "uiaa" }, + ], + }, + { + 'name': "climb_max_grade_french", + 'type': "french_grading_scale", + 'array': "", + 'scale': [1], + 'offset': [0], + 'units': [""], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 54, 'name': "climb_grading_scale", 'raw_value': 2, 'value_name': "french" }, + ], + }, + { + 'name': "climb_max_grade_british_adjectival", + 'type': "british_adjectival_grading_scale", + 'array': "", + 'scale': [1], + 'offset': [0], + 'units': [""], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 54, 'name': "climb_grading_scale", 'raw_value': 3, 'value_name': "british_adjectival" }, + ], + }, + { + 'name': "climb_max_grade_british_technical", + 'type': "british_technical_grading_scale", + 'array': "", + 'scale': [1], + 'offset': [0], + 'units': [""], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 54, 'name': "climb_grading_scale", 'raw_value': 4, 'value_name': "british_technical" }, + ], + }, + { + 'name': "climb_max_grade_ewbank", + 'type': "ewbank_grading_scale", + 'array': "", + 'scale': [1], + 'offset': [0], + 'units': [""], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 54, 'name': "climb_grading_scale", 'raw_value': 5, 'value_name': "ewbank" }, + ], + }, + { + 'name': "climb_max_grade_brazilian", + 'type': "brazilian_grading_scale", + 'array': "", + 'scale': [1], + 'offset': [0], + 'units': [""], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 54, 'name': "climb_grading_scale", 'raw_value': 6, 'value_name': "brazilian" }, + ], + }, + { + 'name': "climb_max_grade_saxon", + 'type': "saxon_grading_scale", + 'array': "", + 'scale': [1], + 'offset': [0], + 'units': [""], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 54, 'name': "climb_grading_scale", 'raw_value': 7, 'value_name': "saxon" }, + ], + }, + { + 'name': "climb_max_grade_vermin", + 'type': "vermin_grading_scale", + 'array': "", + 'scale': [1], + 'offset': [0], + 'units': [""], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 54, 'name': "climb_grading_scale", 'raw_value': 8, 'value_name': "vermin" }, + ], + }, + { + 'name': "climb_max_grade_font", + 'type': "font_grading_scale", + 'array': "", + 'scale': [1], + 'offset': [0], + 'units': [""], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 54, 'name': "climb_grading_scale", 'raw_value': 9, 'value_name': "font" }, + ], + }, + { + 'name': "climb_max_grade_dankyu", + 'type': "dankyu_grading_scale", + 'array': "", + 'scale': [1], + 'offset': [0], + 'units': [""], + 'bits': [], + 'components': [], + 'has_components': False, + 'map':[ + { 'num': 54, 'name': "climb_grading_scale", 'raw_value': 10, 'value_name': "dankyu" }, + ], + }, + ] + }, + 56: { + 'num': 56, + 'name': "num_falls", + 'type': "uint16", + 'base_type': "uint16", 'array': "false", 'scale': [1], 'offset': [0], @@ -14590,138 +17930,116 @@ 'has_components': False, 'sub_fields': [] }, - 28: { - 'num': 28, - 'name': "total_calories", - 'type': "uint32", - 'base_type': "uint32", + 58: { + 'num': 58, + 'name': "num_climbs_attempted", + 'type': "uint16", + 'base_type': "uint16", 'array': "false", 'scale': [1], 'offset': [0], - 'units': "kcal", - 'bits': [], - 'components': [], - 'is_accumulated': False, - 'has_components': False, - 'sub_fields': [] - }, - 74: { - 'num': 74, - 'name': "start_elevation", - 'type': "uint32", - 'base_type': "uint32", - 'array': "false", - 'scale': [5], - 'offset': [500], - 'units': "m", + 'units': "", 'bits': [], 'components': [], 'is_accumulated': False, 'has_components': False, 'sub_fields': [] }, - 78: { - 'num': 78, # Active time of split rounds - 'name': "active_time", - 'type': "uint32", - 'base_type': "uint32", + 59: { + 'num': 59, + 'name': "num_climbs_completed", + 'type': "uint16", + 'base_type': "uint16", 'array': "false", - 'scale': [1000], + 'scale': [1], 'offset': [0], - 'units': "s", + 'units': "", 'bits': [], 'components': [], 'is_accumulated': False, 'has_components': False, 'sub_fields': [] }, - 110: { - 'num': 110, - 'name': "total_moving_time", + 60: { + 'num': 60, # Distance of the longest split + 'name': "max_distance", 'type': "uint32", 'base_type': "uint32", 'array': "false", - 'scale': [1000], + 'scale': [100], 'offset': [0], - 'units': "s", + 'units': "m", 'bits': [], 'components': [], 'is_accumulated': False, 'has_components': False, 'sub_fields': [] }, - }, -}, - 313: { - 'num': "313", - 'name': "split_summary", - 'messages_key': "split_summary_mesgs", - 'fields': { - 254: { - 'num': 254, - 'name': "message_index", - 'type': "message_index", + 64: { + 'num': 64, + 'name': "metabolic_calories", + 'type': "uint16", 'base_type': "uint16", 'array': "false", 'scale': [1], 'offset': [0], - 'units': "", + 'units': "kcal", 'bits': [], 'components': [], 'is_accumulated': False, 'has_components': False, 'sub_fields': [] }, - 0: { - 'num': 0, - 'name': "split_type", - 'type': "split_type", - 'base_type': "enum", + 65: { + 'num': 65, # total active time in all split rounds + 'name': "active_time", + 'type': "uint32", + 'base_type': "uint32", 'array': "false", - 'scale': [1], + 'scale': [1000], 'offset': [0], - 'units': "", + 'units': "s", 'bits': [], 'components': [], 'is_accumulated': False, 'has_components': False, 'sub_fields': [] }, - 3: { - 'num': 3, - 'name': "num_splits", - 'type': "uint16", - 'base_type': "uint16", + 66: { + 'num': 66, # fractional part of total_ascent + 'name': "total_fractional_ascent", + 'type': "uint8", + 'base_type': "uint8", 'array': "false", - 'scale': [1], + 'scale': [100], 'offset': [0], - 'units': "", + 'units': "m", 'bits': [], 'components': [], 'is_accumulated': False, 'has_components': False, 'sub_fields': [] }, - 4: { - 'num': 4, - 'name': "total_timer_time", - 'type': "uint32", - 'base_type': "uint32", + 67: { + 'num': 67, # fractional part of total_descent + 'name': "total_fractional_descent", + 'type': "uint8", + 'base_type': "uint8", 'array': "false", - 'scale': [1000], + 'scale': [100], 'offset': [0], - 'units': "s", + 'units': "m", 'bits': [], 'components': [], 'is_accumulated': False, 'has_components': False, 'sub_fields': [] }, - 5: { - 'num': 5, - 'name': "total_distance", - 'type': "uint32", - 'base_type': "uint32", + 68: { + 'num': 68, # fractional part of avg_ascent + 'name': "avg_fractional_ascent", + 'type': "uint8", + 'base_type': "uint8", 'array': "false", 'scale': [100], 'offset': [0], @@ -14732,24 +18050,24 @@ 'has_components': False, 'sub_fields': [] }, - 6: { - 'num': 6, - 'name': "avg_speed", - 'type': "uint32", - 'base_type': "uint32", + 69: { + 'num': 69, # fractional part of max_descent + 'name': "max_fractional_ascent", + 'type': "uint8", + 'base_type': "uint8", 'array': "false", - 'scale': [1000], + 'scale': [100], 'offset': [0], - 'units': "m/s", + 'units': "m", 'bits': [], 'components': [], 'is_accumulated': False, 'has_components': False, 'sub_fields': [] }, - 7: { - 'num': 7, - 'name': "max_speed", + 71: { + 'num': 71, + 'name': "avg_grade_adjusted_speed", 'type': "uint32", 'base_type': "uint32", 'array': "false", @@ -14762,54 +18080,54 @@ 'has_components': False, 'sub_fields': [] }, - 8: { - 'num': 8, - 'name': "total_ascent", + 72: { + 'num': 72, + 'name': "avg_stress", 'type': "uint16", 'base_type': "uint16", 'array': "false", 'scale': [1], 'offset': [0], - 'units': "m", + 'units': "", 'bits': [], 'components': [], 'is_accumulated': False, 'has_components': False, 'sub_fields': [] }, - 9: { - 'num': 9, - 'name': "total_descent", - 'type': "uint16", - 'base_type': "uint16", + 77: { + 'num': 77, + 'name': "total_moving_time", + 'type': "uint32", + 'base_type': "uint32", 'array': "false", - 'scale': [1], + 'scale': [1000], 'offset': [0], - 'units': "m", + 'units': "s", 'bits': [], 'components': [], 'is_accumulated': False, 'has_components': False, 'sub_fields': [] }, - 10: { - 'num': 10, - 'name': "avg_heart_rate", - 'type': "uint8", - 'base_type': "uint8", + 79: { + 'num': 79, + 'name': "start_time", + 'type': "date_time", + 'base_type': "uint32", 'array': "false", 'scale': [1], 'offset': [0], - 'units': "bpm", + 'units': "", 'bits': [], 'components': [], 'is_accumulated': False, 'has_components': False, 'sub_fields': [] }, - 11: { - 'num': 11, - 'name': "max_heart_rate", + 87: { + 'num': 87, + 'name': "min_heart_rate", 'type': "uint8", 'base_type': "uint8", 'array': "false", @@ -14822,54 +18140,24 @@ 'has_components': False, 'sub_fields': [] }, - 12: { - 'num': 12, - 'name': "avg_vert_speed", - 'type': "sint32", - 'base_type': "sint32", - 'array': "false", - 'scale': [1000], - 'offset': [0], - 'units': "m/s", - 'bits': [], - 'components': [], - 'is_accumulated': False, - 'has_components': False, - 'sub_fields': [] - }, - 13: { - 'num': 13, - 'name': "total_calories", - 'type': "uint32", - 'base_type': "uint32", - 'array': "false", - 'scale': [1], - 'offset': [0], - 'units': "kcal", - 'bits': [], - 'components': [], - 'is_accumulated': False, - 'has_components': False, - 'sub_fields': [] - }, - 65: { - 'num': 65, # total active time in all split rounds - 'name': "active_time", - 'type': "uint32", - 'base_type': "uint32", + 91: { + 'num': 91, + 'name': "avg_stance_time_percent", + 'type': "uint16", + 'base_type': "uint16", 'array': "false", - 'scale': [1000], + 'scale': [100], 'offset': [0], - 'units': "s", + 'units': "percent", 'bits': [], 'components': [], 'is_accumulated': False, 'has_components': False, 'sub_fields': [] }, - 77: { - 'num': 77, - 'name': "total_moving_time", + 101: { + 'num': 101, + 'name': "max_total_timer_time", 'type': "uint32", 'base_type': "uint32", 'array': "false", @@ -17224,6 +20512,21 @@ 'has_components': False, 'sub_fields': [] }, + 88: { + 'num': 88, + 'name': "metabolic_calories", + 'type': "uint16", + 'base_type': "uint16", + 'array': "false", + 'scale': [1], + 'offset': [0], + 'units': "kcal", + 'bits': [], + 'components': [], + 'is_accumulated': False, + 'has_components': False, + 'sub_fields': [] + }, 89: { 'num': 89, # fractional part of total_ascent 'name': "total_fractional_ascent", @@ -23503,6 +26806,7 @@ 82: 'ant_channel_id', 101: 'length', 103: 'monitoring_info', + 104: 'battery', 105: 'pad', 106: 'slave_device', 127: 'connectivity', @@ -24689,6 +27993,8 @@ 350: 'cadence_app', 351: 'una_watch', 352: 'tymewear', + 353: 'exposure_lights', + 354: 'forto_cycling', 5759: 'actigraphcorp', }, 'garmin_product': { @@ -28198,6 +31504,354 @@ 1: 'volume_sac', # Volumetric Surface Air Consumption 2: 'rmv', # Respiratory Minute Volume }, + 'climb_grading_scale': { + 0: 'yds', + 1: 'uiaa', + 2: 'french', + 3: 'british_adjectival', + 4: 'british_technical', + 5: 'ewbank', + 6: 'brazilian', + 7: 'saxon', + 8: 'vermin', + 9: 'font', + 10: 'dankyu', + 11: 'yds_pm', # YDS Plus Minus Grading Scale + }, + 'yds_grading_scale': { + 0: '5_1', # 5.1 + 1: '5_2', # 5.2 + 2: '5_3', # 5.3 + 3: '5_4', # 5.4 + 4: '5_5', # 5.5 + 5: '5_6', # 5.6 + 6: '5_7', # 5.7 + 7: '5_8', # 5.8 + 8: '5_9', # 5.9 + 9: '5_10', # 5.1 + 10: '5_10a', # 5.10a + 11: '5_10b', # 5.10b + 12: '5_10c', # 5.10c + 13: '5_10d', # 5.10d + 14: '5_11', # 5.11 + 15: '5_11a', # 5.11a + 16: '5_11b', # 5.11b + 17: '5_11c', # 5.11c + 18: '5_11d', # 5.11d + 19: '5_12', # 5.12 + 20: '5_12a', # 5.12a + 21: '5_12b', # 5.12b + 22: '5_12c', # 5.12c + 23: '5_12d', # 5.12d + 24: '5_13', # 5.13 + 25: '5_13a', # 5.13a + 26: '5_13b', # 5.13b + 27: '5_13c', # 5.13c + 28: '5_13d', # 5.13d + 29: '5_14', # 5.14 + 30: '5_14a', # 5.14a + 31: '5_14b', # 5.14b + 32: '5_14c', # 5.14c + 33: '5_14d', # 5.14d + 34: '5_15', # 5.15 + 35: '5_15a', # 5.15a + 36: '5_15b', # 5.15b + 37: '5_15c', # 5.15c + 38: '5_15d', # 5.15d + 39: '5_1_minus', # 5.1- + 40: '5_1_plus', # 5.1+ + 41: '5_2_minus', # 5.2- + 42: '5_2_plus', # 5.2+ + 43: '5_3_minus', # 5.3- + 44: '5_3_plus', # 5.3+ + 45: '5_4_minus', # 5.4- + 46: '5_4_plus', # 5.4+ + 47: '5_5_minus', # 5.5- + 48: '5_5_plus', # 5.5+ + 49: '5_6_minus', # 5.6- + 50: '5_6_plus', # 5.6+ + 51: '5_7_minus', # 5.7- + 52: '5_7_plus', # 5.7+ + 53: '5_8_minus', # 5.8- + 54: '5_8_plus', # 5.8+ + 55: '5_9_minus', # 5.9- + 56: '5_9_plus', # 5.9+ + 57: '5_10_minus', # 5.10- + 58: '5_10_plus', # 5.10+ + 59: '5_11_minus', # 5.11- + 60: '5_11_plus', # 5.11+ + 61: '5_12_minus', # 5.12- + 62: '5_12_plus', # 5.12+ + 63: '5_13_minus', # 5.13- + 64: '5_13_plus', # 5.13+ + 65: '5_14_minus', # 5.14- + 66: '5_14_plus', # 5.14+ + 67: '5_15_minus', # 5.15- + 68: '5_15_plus', # 5.15+ + }, + 'uiaa_grading_scale': { + 0: 'I', # I + 1: 'II', # II + 2: 'III', # III + 3: 'IV_minus', # IV- + 4: 'IV', # IV + 5: 'IV_plus', # IV+ + 6: 'V_minus', # V- + 7: 'V', # V + 8: 'V_plus', # V+ + 9: 'VI_minus', # VI- + 10: 'VI', # VI + 11: 'VI_plus', # VI+ + 12: 'VII_minus', # VII- + 13: 'VII', # VII + 14: 'VII_plus', # VII+ + 15: 'VIII_minus', # VIII- + 16: 'VIII', # VIII + 17: 'VIII_plus', # VIII+ + 18: 'IX_minus', # IX- + 19: 'IX', # IX + 20: 'IX_plus', # IX+ + 21: 'X_minus', # X- + 22: 'X', # X + 23: 'X_plus', # X+ + 24: 'XI_minus', # XI- + 25: 'XI', # XI + 26: 'XI_plus', # XI+ + 27: 'XII_minus', # XII- + }, + 'french_grading_scale': { + 0: '1', # 1 + 1: '2', # 2 + 2: '3', # 3 + 3: '4a', # 4a + 4: '4b', # 4b + 5: '4c', # 4c + 6: '5a', # 5a + 7: '5b', # 5b + 8: '5c', # 5c + 9: '6a', # 6a + 10: '6a_plus', # 6a+ + 11: '6b', # 6b + 12: '6b_plus', # 6b+ + 13: '6c', # 6c + 14: '6c_plus', # 6c+ + 15: '7a', # 7a + 16: '7a_plus', # 7a+ + 17: '7b', # 7b + 18: '7b_plus', # 7b+ + 19: '7c', # 7c + 20: '7c_plus', # 7c+ + 21: '8a', # 8a + 22: '8a_plus', # 8a+ + 23: '8b', # 8b + 24: '8b_plus', # 8b+ + 25: '8c', # 8c + 26: '8c_plus', # 8c+ + 27: '9a', # 9a + 28: '9a_plus', # 9a+ + 29: '9b', # 9b + }, + 'british_adjectival_grading_scale': { + 0: 'M', # M + 1: 'D', # D + 2: 'HD', # HD + 3: 'VD', # VD + 4: 'MS', # MS + 5: 'S', # S + 6: 'HS', # HS + 7: 'MVS', # MVS + 8: 'VS', # VS + 9: 'HVS', # HVS + 10: 'E1', # E1 + 11: 'E2', # E2 + 12: 'E3', # E3 + 13: 'E4', # E4 + 14: 'E5', # E5 + 15: 'E6', # E6 + 16: 'E7', # E7 + 17: 'E8', # E8 + 18: 'E9', # E9 + 19: 'E10', # E10 + 20: 'E11', # E11 + }, + 'british_technical_grading_scale': { + 0: '1', # 1 + 1: '2', # 2 + 2: '3', # 3 + 3: '4a', # 4a + 4: '4b', # 4b + 5: '4c', # 4c + 6: '5a', # 5a + 7: '5b', # 5b + 8: '5c', # 5c + 9: '6a', # 6a + 10: '6b', # 6b + 11: '6c', # 6c + 12: '7a', # 7a + 13: '7b', # 7b + 14: '7c', # 7c + }, + 'ewbank_grading_scale': { + 0: '4', # 4 + 1: '5', # 5 + 2: '6', # 6 + 3: '7', # 7 + 4: '8', # 8 + 5: '9', # 9 + 6: '10', # 10 + 7: '11', # 11 + 8: '12', # 12 + 9: '13', # 13 + 10: '14', # 14 + 11: '15', # 15 + 12: '16', # 16 + 13: '17', # 17 + 14: '18', # 18 + 15: '19', # 19 + 16: '20', # 20 + 17: '21', # 21 + 18: '22', # 22 + 19: '23', # 23 + 20: '24', # 24 + 21: '25', # 25 + 22: '26', # 26 + 23: '27', # 27 + 24: '28', # 28 + 25: '29', # 29 + 26: '30', # 30 + 27: '31', # 31 + 28: '32', # 32 + 29: '33', # 33 + 30: '34', # 34 + 31: '35', # 35 + 32: '36', # 36 + 33: '37', # 37 + 34: '38', # 38 + }, + 'brazilian_grading_scale': { + 0: '2', # 2 + 1: '3', # 3 + 2: '3c', # 3c + 3: '4', # 4 + 4: '5a', # 5a + 5: '5b', # 5b + 6: '5c', # 5c + 7: '6a', # 6a + 8: '6b', # 6b + 9: '6c', # 6c + 10: '7a', # 7a + 11: '7b', # 7b + 12: '7c', # 7c + 13: '8a', # 8a + 14: '8b', # 8b + 15: '8c', # 8c + 16: '9a', # 9a + 17: '9b', # 9b + 18: '9c', # 9c + 19: '10a', # 10a + 20: '10b', # 10b + 21: '10c', # 10c + 22: '11a', # 11a + 23: '11b', # 11b + 24: '11c', # 11c + 25: '12a', # 12a + 26: '12b', # 12b + }, + 'saxon_grading_scale': { + 0: 'I', # I + 1: 'II', # II + 2: 'III', # III + 3: 'IV', # IV + 4: 'V', # V + 5: 'VI', # VI + 6: 'VII_a', # VIIa + 7: 'VII_b', # VIIb + 8: 'VII_c', # VIIc + 9: 'VIII_a', # VIIIa + 10: 'VIII_b', # VIIIb + 11: 'VIII_c', # VIIIc + 12: 'IX_a', # IXa + 13: 'IX_b', # IXb + 14: 'IX_c', # IXc + 15: 'X_a', # Xa + 16: 'X_b', # Xb + 17: 'X_c', # Xc + 18: 'XI_a', # XIa + 19: 'XI_b', # XIb + 20: 'XI_c', # XIc + 21: 'XII_a', # XIIa + 22: 'XII_b', # XIIb + 23: 'XII_c', # XIIc + }, + 'vermin_grading_scale': { + 0: 'vb', # VB + 1: 'v0', # V0 + 2: 'v1', # V1 + 3: 'v2', # V2 + 4: 'v3', # V3 + 5: 'v4', # V4 + 6: 'v5', # V5 + 7: 'v6', # V6 + 8: 'v7', # V7 + 9: 'v8', # V8 + 10: 'v9', # V9 + 11: 'v10', # V10 + 12: 'v11', # V11 + 13: 'v12', # V12 + 14: 'v13', # V13 + 15: 'v14', # V14 + 16: 'v15', # V15 + 17: 'v16', # V16 + 18: 'v17', # V17 + }, + 'font_grading_scale': { + 0: '1', # 1 + 1: '2', # 2 + 2: '3', # 3 + 3: '4', # 4 + 4: '4_plus', # 4+ + 5: '5', # 5 + 6: '5_plus', # 5+ + 7: '6a', # 6A + 8: '6a_plus', # 6A+ + 9: '6b', # 6B + 10: '6b_plus', # 6B+ + 11: '6c', # 6C + 12: '6c_plus', # 6C+ + 13: '7a', # 7A + 14: '7a_plus', # 7A+ + 15: '7b', # 7B + 16: '7b_plus', # 7B+ + 17: '7c', # 7C + 18: '7c_plus', # 7C+ + 19: '8a', # 8A + 20: '8a_plus', # 8A+ + 21: '8b', # 8B + 22: '8b_plus', # 8B+ + 23: '8c', # 8C + 24: '8c_plus', # 8C+ + 25: '9a', # 9A + }, + 'dankyu_grading_scale': { + 0: '7_kyuu', # 7 kyuu + 1: '6_kyuu', # 6 kyuu + 2: '5_kyuu', # 5 kyuu + 3: '4_kyuu', # 4 kyuu + 4: '3_kyuu', # 3 kyuu + 5: '2_kyuu', # 2 kyuu + 6: '1_kyuu', # 1 kyuu + 7: '1_dan', # 1 dan + 8: '2_dan', # 2 dan + 9: '3_dan', # 3 dan + 10: '4_dan', # 4 dan + 11: '5_dan', # 5 dan + }, + 'split_status': { + 0: 'failure', + 1: 'success', + 2: 'climb_attempted', + 3: 'climb_completed', + }, 'tap_sensitivity': { 0: 'high', 1: 'medium', @@ -28260,6 +31914,24 @@ 0: 'standard', # Standard Diver Alert Network no-fly guidance 1: 'flat_24_hours', # Flat 24 hour no-fly guidance }, + 'dive_section_type': { + 0: 'ascent', + 1: 'descent', + 2: 'hang', + }, + 'apnea_discipline': { + 0: 'constant_weight_with_fins', + 1: 'constant_weight_with_bifins', + 2: 'constant_weight_without_fins', + 3: 'dynamic_with_fins', + 4: 'dynamic_with_bifins', + 5: 'dynamic_without_fins', + 6: 'free_immersion', + 7: 'no_limit', + 8: 'speed_endurance_apnea', + 9: 'static_apnea', + 10: 'variable_weight', + }, }, 'mesg_num' : { 'FILE_ID': 0, @@ -28302,6 +31974,7 @@ 'DEVICE_INFO': 23, 'DEVICE_AUX_BATTERY_INFO': 375, 'TRAINING_FILE': 72, + 'BATTERY': 104, 'WEATHER_CONDITIONS': 128, 'WEATHER_ALERT': 129, 'GPS_METADATA': 160, diff --git a/garmin_fit_sdk/profile.pyi b/garmin_fit_sdk/profile.pyi index 9e0518e..69f6071 100644 --- a/garmin_fit_sdk/profile.pyi +++ b/garmin_fit_sdk/profile.pyi @@ -5,8 +5,8 @@ # Transfer (FIT) Protocol License. ########################################################################################### # ****WARNING**** This file is auto-generated! Do NOT edit this file. -# Profile Version = 21.214.0Release -# Tag = production/release/21.214.0-0-g47b86b1f +# Profile Version = 21.217.0Release +# Tag = production/release/21.217.0-0-g248b1c46 ############################################################################################ diff --git a/garmin_fit_sdk/stream.py b/garmin_fit_sdk/stream.py index 38b5b6e..e7380e1 100644 --- a/garmin_fit_sdk/stream.py +++ b/garmin_fit_sdk/stream.py @@ -11,8 +11,8 @@ # Transfer (FIT) Protocol License. ########################################################################################### # ****WARNING**** This file is auto-generated! Do NOT edit this file. -# Profile Version = 21.214.0Release -# Tag = production/release/21.214.0-0-g47b86b1f +# Profile Version = 21.217.0Release +# Tag = production/release/21.217.0-0-g248b1c46 ############################################################################################ diff --git a/garmin_fit_sdk/types.pyi b/garmin_fit_sdk/types.pyi index 4675f6b..ce22e9e 100644 --- a/garmin_fit_sdk/types.pyi +++ b/garmin_fit_sdk/types.pyi @@ -5,8 +5,8 @@ # Transfer (FIT) Protocol License. ########################################################################################### # ****WARNING**** This file is auto-generated! Do NOT edit this file. -# Profile Version = 21.214.0Release -# Tag = production/release/21.214.0-0-g47b86b1f +# Profile Version = 21.217.0Release +# Tag = production/release/21.217.0-0-g248b1c46 ############################################################################################ @@ -61,7 +61,7 @@ Bool = bool File = Union[int, Literal["device"], Literal["settings"], Literal["sport"], Literal["activity"], Literal["workout"], Literal["course"], Literal["schedules"], Literal["weight"], Literal["totals"], Literal["goals"], Literal["bloodPressure"], Literal["monitoringA"], Literal["activitySummary"], Literal["monitoringDaily"], Literal["monitoringB"], Literal["segment"], Literal["segmentList"], Literal["exdConfiguration"], Literal["mfgRangeMin"], Literal["mfgRangeMax"]] -MesgNum = Union[int, Literal["fileId"], Literal["capabilities"], Literal["deviceSettings"], Literal["userProfile"], Literal["hrmProfile"], Literal["sdmProfile"], Literal["bikeProfile"], Literal["zonesTarget"], Literal["hrZone"], Literal["powerZone"], Literal["metZone"], Literal["sport"], Literal["trainingSettings"], Literal["goal"], Literal["session"], Literal["lap"], Literal["record"], Literal["event"], Literal["deviceInfo"], Literal["workout"], Literal["workoutStep"], Literal["schedule"], Literal["weightScale"], Literal["course"], Literal["coursePoint"], Literal["totals"], Literal["activity"], Literal["software"], Literal["fileCapabilities"], Literal["mesgCapabilities"], Literal["fieldCapabilities"], Literal["fileCreator"], Literal["bloodPressure"], Literal["speedZone"], Literal["monitoring"], Literal["trainingFile"], Literal["hrv"], Literal["antRx"], Literal["antTx"], Literal["antChannelId"], Literal["length"], Literal["monitoringInfo"], Literal["pad"], Literal["slaveDevice"], Literal["connectivity"], Literal["weatherConditions"], Literal["weatherAlert"], Literal["cadenceZone"], Literal["hr"], Literal["segmentLap"], Literal["memoGlob"], Literal["segmentId"], Literal["segmentLeaderboardEntry"], Literal["segmentPoint"], Literal["segmentFile"], Literal["workoutSession"], Literal["watchfaceSettings"], Literal["gpsMetadata"], Literal["cameraEvent"], Literal["timestampCorrelation"], Literal["gyroscopeData"], Literal["accelerometerData"], Literal["threeDSensorCalibration"], Literal["videoFrame"], Literal["obdiiData"], Literal["nmeaSentence"], Literal["aviationAttitude"], Literal["video"], Literal["videoTitle"], Literal["videoDescription"], Literal["videoClip"], Literal["ohrSettings"], Literal["exdScreenConfiguration"], Literal["exdDataFieldConfiguration"], Literal["exdDataConceptConfiguration"], Literal["fieldDescription"], Literal["developerDataId"], Literal["magnetometerData"], Literal["barometerData"], Literal["oneDSensorCalibration"], Literal["monitoringHrData"], Literal["timeInZone"], Literal["set"], Literal["stressLevel"], Literal["maxMetData"], Literal["diveSettings"], Literal["diveGas"], Literal["diveAlarm"], Literal["exerciseTitle"], Literal["diveSummary"], Literal["spo2Data"], Literal["sleepLevel"], Literal["jump"], Literal["aadAccelFeatures"], Literal["beatIntervals"], Literal["respirationRate"], Literal["hsaAccelerometerData"], Literal["hsaStepData"], Literal["hsaSpo2Data"], Literal["hsaStressData"], Literal["hsaRespirationData"], Literal["hsaHeartRateData"], Literal["split"], Literal["splitSummary"], Literal["hsaBodyBatteryData"], Literal["hsaEvent"], Literal["climbPro"], Literal["tankUpdate"], Literal["tankSummary"], Literal["sleepAssessment"], Literal["hrvStatusSummary"], Literal["hrvValue"], Literal["rawBbi"], Literal["deviceAuxBatteryInfo"], Literal["hsaGyroscopeData"], Literal["chronoShotSession"], Literal["chronoShotData"], Literal["hsaConfigurationData"], Literal["diveApneaAlarm"], Literal["skinTempOvernight"], Literal["hsaWristTemperatureData"], Literal["napEvent"], Literal["sleepDisruptionSeverityPeriod"], Literal["sleepDisruptionOvernightSeverity"], Literal["mfgRangeMin"], Literal["mfgRangeMax"]] +MesgNum = Union[int, Literal["fileId"], Literal["capabilities"], Literal["deviceSettings"], Literal["userProfile"], Literal["hrmProfile"], Literal["sdmProfile"], Literal["bikeProfile"], Literal["zonesTarget"], Literal["hrZone"], Literal["powerZone"], Literal["metZone"], Literal["sport"], Literal["trainingSettings"], Literal["goal"], Literal["session"], Literal["lap"], Literal["record"], Literal["event"], Literal["deviceInfo"], Literal["workout"], Literal["workoutStep"], Literal["schedule"], Literal["weightScale"], Literal["course"], Literal["coursePoint"], Literal["totals"], Literal["activity"], Literal["software"], Literal["fileCapabilities"], Literal["mesgCapabilities"], Literal["fieldCapabilities"], Literal["fileCreator"], Literal["bloodPressure"], Literal["speedZone"], Literal["monitoring"], Literal["trainingFile"], Literal["hrv"], Literal["antRx"], Literal["antTx"], Literal["antChannelId"], Literal["length"], Literal["monitoringInfo"], Literal["battery"], Literal["pad"], Literal["slaveDevice"], Literal["connectivity"], Literal["weatherConditions"], Literal["weatherAlert"], Literal["cadenceZone"], Literal["hr"], Literal["segmentLap"], Literal["memoGlob"], Literal["segmentId"], Literal["segmentLeaderboardEntry"], Literal["segmentPoint"], Literal["segmentFile"], Literal["workoutSession"], Literal["watchfaceSettings"], Literal["gpsMetadata"], Literal["cameraEvent"], Literal["timestampCorrelation"], Literal["gyroscopeData"], Literal["accelerometerData"], Literal["threeDSensorCalibration"], Literal["videoFrame"], Literal["obdiiData"], Literal["nmeaSentence"], Literal["aviationAttitude"], Literal["video"], Literal["videoTitle"], Literal["videoDescription"], Literal["videoClip"], Literal["ohrSettings"], Literal["exdScreenConfiguration"], Literal["exdDataFieldConfiguration"], Literal["exdDataConceptConfiguration"], Literal["fieldDescription"], Literal["developerDataId"], Literal["magnetometerData"], Literal["barometerData"], Literal["oneDSensorCalibration"], Literal["monitoringHrData"], Literal["timeInZone"], Literal["set"], Literal["stressLevel"], Literal["maxMetData"], Literal["diveSettings"], Literal["diveGas"], Literal["diveAlarm"], Literal["exerciseTitle"], Literal["diveSummary"], Literal["spo2Data"], Literal["sleepLevel"], Literal["jump"], Literal["aadAccelFeatures"], Literal["beatIntervals"], Literal["respirationRate"], Literal["hsaAccelerometerData"], Literal["hsaStepData"], Literal["hsaSpo2Data"], Literal["hsaStressData"], Literal["hsaRespirationData"], Literal["hsaHeartRateData"], Literal["split"], Literal["splitSummary"], Literal["hsaBodyBatteryData"], Literal["hsaEvent"], Literal["climbPro"], Literal["tankUpdate"], Literal["tankSummary"], Literal["sleepAssessment"], Literal["hrvStatusSummary"], Literal["hrvValue"], Literal["rawBbi"], Literal["deviceAuxBatteryInfo"], Literal["hsaGyroscopeData"], Literal["chronoShotSession"], Literal["chronoShotData"], Literal["hsaConfigurationData"], Literal["diveApneaAlarm"], Literal["skinTempOvernight"], Literal["hsaWristTemperatureData"], Literal["napEvent"], Literal["sleepDisruptionSeverityPeriod"], Literal["sleepDisruptionOvernightSeverity"], Literal["mfgRangeMin"], Literal["mfgRangeMax"]] Checksum = Union[int, Literal["clear"], Literal["ok"]] @@ -186,7 +186,7 @@ Schedule = Union[int, Literal["workout"], Literal["course"]] CoursePoint = Union[int, Literal["generic"], Literal["summit"], Literal["valley"], Literal["water"], Literal["food"], Literal["danger"], Literal["left"], Literal["right"], Literal["straight"], Literal["firstAid"], Literal["fourthCategory"], Literal["thirdCategory"], Literal["secondCategory"], Literal["firstCategory"], Literal["horsCategory"], Literal["sprint"], Literal["leftFork"], Literal["rightFork"], Literal["middleFork"], Literal["slightLeft"], Literal["sharpLeft"], Literal["slightRight"], Literal["sharpRight"], Literal["uTurn"], Literal["segmentStart"], Literal["segmentEnd"], Literal["campsite"], Literal["aidStation"], Literal["restArea"], Literal["generalDistance"], Literal["service"], Literal["energyGel"], Literal["sportsDrink"], Literal["mileMarker"], Literal["checkpoint"], Literal["shelter"], Literal["meetingSpot"], Literal["overlook"], Literal["toilet"], Literal["shower"], Literal["gear"], Literal["sharpCurve"], Literal["steepIncline"], Literal["tunnel"], Literal["bridge"], Literal["obstacle"], Literal["crossing"], Literal["store"], Literal["transition"], Literal["navaid"], Literal["transport"], Literal["alert"], Literal["info"]] -Manufacturer = Union[int, Literal["garmin"], Literal["garminFr405Antfs"], Literal["zephyr"], Literal["dayton"], Literal["idt"], Literal["srm"], Literal["quarq"], Literal["ibike"], Literal["saris"], Literal["sparkHk"], Literal["tanita"], Literal["echowell"], Literal["dynastreamOem"], Literal["nautilus"], Literal["dynastream"], Literal["timex"], Literal["metrigear"], Literal["xelic"], Literal["beurer"], Literal["cardiosport"], Literal["aAndD"], Literal["hmm"], Literal["suunto"], Literal["thitaElektronik"], Literal["gpulse"], Literal["cleanMobile"], Literal["pedalBrain"], Literal["peaksware"], Literal["saxonar"], Literal["lemondFitness"], Literal["dexcom"], Literal["wahooFitness"], Literal["octaneFitness"], Literal["archinoetics"], Literal["theHurtBox"], Literal["citizenSystems"], Literal["magellan"], Literal["osynce"], Literal["holux"], Literal["concept2"], Literal["shimano"], Literal["oneGiantLeap"], Literal["aceSensor"], Literal["brimBrothers"], Literal["xplova"], Literal["perceptionDigital"], Literal["bf1systems"], Literal["pioneer"], Literal["spantec"], Literal["metalogics"], Literal["4iiiis"], Literal["seikoEpson"], Literal["seikoEpsonOem"], Literal["iforPowell"], Literal["maxwellGuider"], Literal["starTrac"], Literal["breakaway"], Literal["alatechTechnologyLtd"], Literal["mioTechnologyEurope"], Literal["rotor"], Literal["geonaute"], Literal["idBike"], Literal["specialized"], Literal["wtek"], Literal["physicalEnterprises"], Literal["northPoleEngineering"], Literal["bkool"], Literal["cateye"], Literal["stagesCycling"], Literal["sigmasport"], Literal["tomtom"], Literal["peripedal"], Literal["wattbike"], Literal["moxy"], Literal["ciclosport"], Literal["powerbahn"], Literal["acornProjectsAps"], Literal["lifebeam"], Literal["bontrager"], Literal["wellgo"], Literal["scosche"], Literal["magura"], Literal["woodway"], Literal["elite"], Literal["nielsenKellerman"], Literal["dkCity"], Literal["tacx"], Literal["directionTechnology"], Literal["magtonic"], Literal["1partcarbon"], Literal["insideRideTechnologies"], Literal["soundOfMotion"], Literal["stryd"], Literal["icg"], Literal["miPulse"], Literal["bsxAthletics"], Literal["look"], Literal["campagnoloSrl"], Literal["bodyBikeSmart"], Literal["praxisworks"], Literal["limitsTechnology"], Literal["topactionTechnology"], Literal["cosinuss"], Literal["fitcare"], Literal["magene"], Literal["giantManufacturingCo"], Literal["tigrasport"], Literal["salutron"], Literal["technogym"], Literal["brytonSensors"], Literal["latitudeLimited"], Literal["soaringTechnology"], Literal["igpsport"], Literal["thinkrider"], Literal["gopherSport"], Literal["waterrower"], Literal["orangetheory"], Literal["inpeak"], Literal["kinetic"], Literal["johnsonHealthTech"], Literal["polarElectro"], Literal["seesense"], Literal["nciTechnology"], Literal["iqsquare"], Literal["leomo"], Literal["ifitCom"], Literal["corosByte"], Literal["versaDesign"], Literal["chileaf"], Literal["cycplus"], Literal["gravaaByte"], Literal["sigeyi"], Literal["coospo"], Literal["geoid"], Literal["bosch"], Literal["kyto"], Literal["kineticSports"], Literal["decathlonByte"], Literal["tqSystems"], Literal["tagHeuer"], Literal["keiserFitness"], Literal["zwiftByte"], Literal["porscheEp"], Literal["blackbird"], Literal["meilanByte"], Literal["ezon"], Literal["laisi"], Literal["myzone"], Literal["abawo"], Literal["bafang"], Literal["luhongTechnology"], Literal["development"], Literal["healthandlife"], Literal["lezyne"], Literal["scribeLabs"], Literal["zwift"], Literal["watteam"], Literal["recon"], Literal["faveroElectronics"], Literal["dynovelo"], Literal["strava"], Literal["precor"], Literal["bryton"], Literal["sram"], Literal["navman"], Literal["cobi"], Literal["spivi"], Literal["mioMagellan"], Literal["evesports"], Literal["sensitivusGauge"], Literal["podoon"], Literal["lifeTimeFitness"], Literal["falcoEMotors"], Literal["minoura"], Literal["cycliq"], Literal["luxottica"], Literal["trainerRoad"], Literal["theSufferfest"], Literal["fullspeedahead"], Literal["virtualtraining"], Literal["feedbacksports"], Literal["omata"], Literal["vdo"], Literal["magneticdays"], Literal["hammerhead"], Literal["kineticByKurt"], Literal["shapelog"], Literal["dabuziduo"], Literal["jetblack"], Literal["coros"], Literal["virtugo"], Literal["velosense"], Literal["cycligentinc"], Literal["trailforks"], Literal["mahleEbikemotion"], Literal["nurvv"], Literal["microprogram"], Literal["zone5cloud"], Literal["greenteg"], Literal["yamahaMotors"], Literal["whoop"], Literal["gravaa"], Literal["onelap"], Literal["monarkExercise"], Literal["form"], Literal["decathlon"], Literal["syncros"], Literal["heatup"], Literal["cannondale"], Literal["trueFitness"], Literal["rGTCycling"], Literal["vasa"], Literal["raceRepublic"], Literal["fazua"], Literal["orekaTraining"], Literal["lsec"], Literal["lululemonStudio"], Literal["shanyue"], Literal["spinningMda"], Literal["hilldating"], Literal["aeroSensor"], Literal["nike"], Literal["magicshine"], Literal["ictrainer"], Literal["absoluteCycling"], Literal["eoSwimbetter"], Literal["mywhoosh"], Literal["ravemen"], Literal["tektroRacingProducts"], Literal["daradInnovationCorporation"], Literal["cycloptim"], Literal["runna"], Literal["zepp"], Literal["peloton"], Literal["carv"], Literal["tissot"], Literal["realVelo"], Literal["wetech"], Literal["jespr"], Literal["huawei"], Literal["gotoes"], Literal["cadenceApp"], Literal["unaWatch"], Literal["tymewear"], Literal["actigraphcorp"]] +Manufacturer = Union[int, Literal["garmin"], Literal["garminFr405Antfs"], Literal["zephyr"], Literal["dayton"], Literal["idt"], Literal["srm"], Literal["quarq"], Literal["ibike"], Literal["saris"], Literal["sparkHk"], Literal["tanita"], Literal["echowell"], Literal["dynastreamOem"], Literal["nautilus"], Literal["dynastream"], Literal["timex"], Literal["metrigear"], Literal["xelic"], Literal["beurer"], Literal["cardiosport"], Literal["aAndD"], Literal["hmm"], Literal["suunto"], Literal["thitaElektronik"], Literal["gpulse"], Literal["cleanMobile"], Literal["pedalBrain"], Literal["peaksware"], Literal["saxonar"], Literal["lemondFitness"], Literal["dexcom"], Literal["wahooFitness"], Literal["octaneFitness"], Literal["archinoetics"], Literal["theHurtBox"], Literal["citizenSystems"], Literal["magellan"], Literal["osynce"], Literal["holux"], Literal["concept2"], Literal["shimano"], Literal["oneGiantLeap"], Literal["aceSensor"], Literal["brimBrothers"], Literal["xplova"], Literal["perceptionDigital"], Literal["bf1systems"], Literal["pioneer"], Literal["spantec"], Literal["metalogics"], Literal["4iiiis"], Literal["seikoEpson"], Literal["seikoEpsonOem"], Literal["iforPowell"], Literal["maxwellGuider"], Literal["starTrac"], Literal["breakaway"], Literal["alatechTechnologyLtd"], Literal["mioTechnologyEurope"], Literal["rotor"], Literal["geonaute"], Literal["idBike"], Literal["specialized"], Literal["wtek"], Literal["physicalEnterprises"], Literal["northPoleEngineering"], Literal["bkool"], Literal["cateye"], Literal["stagesCycling"], Literal["sigmasport"], Literal["tomtom"], Literal["peripedal"], Literal["wattbike"], Literal["moxy"], Literal["ciclosport"], Literal["powerbahn"], Literal["acornProjectsAps"], Literal["lifebeam"], Literal["bontrager"], Literal["wellgo"], Literal["scosche"], Literal["magura"], Literal["woodway"], Literal["elite"], Literal["nielsenKellerman"], Literal["dkCity"], Literal["tacx"], Literal["directionTechnology"], Literal["magtonic"], Literal["1partcarbon"], Literal["insideRideTechnologies"], Literal["soundOfMotion"], Literal["stryd"], Literal["icg"], Literal["miPulse"], Literal["bsxAthletics"], Literal["look"], Literal["campagnoloSrl"], Literal["bodyBikeSmart"], Literal["praxisworks"], Literal["limitsTechnology"], Literal["topactionTechnology"], Literal["cosinuss"], Literal["fitcare"], Literal["magene"], Literal["giantManufacturingCo"], Literal["tigrasport"], Literal["salutron"], Literal["technogym"], Literal["brytonSensors"], Literal["latitudeLimited"], Literal["soaringTechnology"], Literal["igpsport"], Literal["thinkrider"], Literal["gopherSport"], Literal["waterrower"], Literal["orangetheory"], Literal["inpeak"], Literal["kinetic"], Literal["johnsonHealthTech"], Literal["polarElectro"], Literal["seesense"], Literal["nciTechnology"], Literal["iqsquare"], Literal["leomo"], Literal["ifitCom"], Literal["corosByte"], Literal["versaDesign"], Literal["chileaf"], Literal["cycplus"], Literal["gravaaByte"], Literal["sigeyi"], Literal["coospo"], Literal["geoid"], Literal["bosch"], Literal["kyto"], Literal["kineticSports"], Literal["decathlonByte"], Literal["tqSystems"], Literal["tagHeuer"], Literal["keiserFitness"], Literal["zwiftByte"], Literal["porscheEp"], Literal["blackbird"], Literal["meilanByte"], Literal["ezon"], Literal["laisi"], Literal["myzone"], Literal["abawo"], Literal["bafang"], Literal["luhongTechnology"], Literal["development"], Literal["healthandlife"], Literal["lezyne"], Literal["scribeLabs"], Literal["zwift"], Literal["watteam"], Literal["recon"], Literal["faveroElectronics"], Literal["dynovelo"], Literal["strava"], Literal["precor"], Literal["bryton"], Literal["sram"], Literal["navman"], Literal["cobi"], Literal["spivi"], Literal["mioMagellan"], Literal["evesports"], Literal["sensitivusGauge"], Literal["podoon"], Literal["lifeTimeFitness"], Literal["falcoEMotors"], Literal["minoura"], Literal["cycliq"], Literal["luxottica"], Literal["trainerRoad"], Literal["theSufferfest"], Literal["fullspeedahead"], Literal["virtualtraining"], Literal["feedbacksports"], Literal["omata"], Literal["vdo"], Literal["magneticdays"], Literal["hammerhead"], Literal["kineticByKurt"], Literal["shapelog"], Literal["dabuziduo"], Literal["jetblack"], Literal["coros"], Literal["virtugo"], Literal["velosense"], Literal["cycligentinc"], Literal["trailforks"], Literal["mahleEbikemotion"], Literal["nurvv"], Literal["microprogram"], Literal["zone5cloud"], Literal["greenteg"], Literal["yamahaMotors"], Literal["whoop"], Literal["gravaa"], Literal["onelap"], Literal["monarkExercise"], Literal["form"], Literal["decathlon"], Literal["syncros"], Literal["heatup"], Literal["cannondale"], Literal["trueFitness"], Literal["rGTCycling"], Literal["vasa"], Literal["raceRepublic"], Literal["fazua"], Literal["orekaTraining"], Literal["lsec"], Literal["lululemonStudio"], Literal["shanyue"], Literal["spinningMda"], Literal["hilldating"], Literal["aeroSensor"], Literal["nike"], Literal["magicshine"], Literal["ictrainer"], Literal["absoluteCycling"], Literal["eoSwimbetter"], Literal["mywhoosh"], Literal["ravemen"], Literal["tektroRacingProducts"], Literal["daradInnovationCorporation"], Literal["cycloptim"], Literal["runna"], Literal["zepp"], Literal["peloton"], Literal["carv"], Literal["tissot"], Literal["realVelo"], Literal["wetech"], Literal["jespr"], Literal["huawei"], Literal["gotoes"], Literal["cadenceApp"], Literal["unaWatch"], Literal["tymewear"], Literal["exposureLights"], Literal["fortoCycling"], Literal["actigraphcorp"]] GarminProduct = Union[int, Literal["hrm1"], Literal["axh01"], Literal["axb01"], Literal["axb02"], Literal["hrm2ss"], Literal["dsiAlf02"], Literal["hrm3ss"], Literal["hrmRunSingleByteProductId"], Literal["bsm"], Literal["bcm"], Literal["axs01"], Literal["hrmTriSingleByteProductId"], Literal["hrm4RunSingleByteProductId"], Literal["fr225SingleByteProductId"], Literal["gen3BsmSingleByteProductId"], Literal["gen3BcmSingleByteProductId"], Literal["hrmFitSingleByteProductId"], Literal["oHR"], Literal["fr301China"], Literal["fr301Japan"], Literal["fr301Korea"], Literal["fr301Taiwan"], Literal["fr405"], Literal["fr50"], Literal["fr405Japan"], Literal["fr60"], Literal["dsiAlf01"], Literal["fr310xt"], Literal["edge500"], Literal["fr110"], Literal["edge800"], Literal["edge500Taiwan"], Literal["edge500Japan"], Literal["chirp"], Literal["fr110Japan"], Literal["edge200"], Literal["fr910xt"], Literal["edge800Taiwan"], Literal["edge800Japan"], Literal["alf04"], Literal["fr610"], Literal["fr210Japan"], Literal["vectorSs"], Literal["vectorCp"], Literal["edge800China"], Literal["edge500China"], Literal["approachG10"], Literal["fr610Japan"], Literal["edge500Korea"], Literal["fr70"], Literal["fr310xt4t"], Literal["amx"], Literal["fr10"], Literal["edge800Korea"], Literal["swim"], Literal["fr910xtChina"], Literal["fenix"], Literal["edge200Taiwan"], Literal["edge510"], Literal["edge810"], Literal["tempe"], Literal["fr910xtJapan"], Literal["fr620"], Literal["fr220"], Literal["fr910xtKorea"], Literal["fr10Japan"], Literal["edge810Japan"], Literal["virbElite"], Literal["edgeTouring"], Literal["edge510Japan"], Literal["hrmTri"], Literal["hrmRun"], Literal["fr920xt"], Literal["edge510Asia"], Literal["edge810China"], Literal["edge810Taiwan"], Literal["edge1000"], Literal["vivoFit"], Literal["virbRemote"], Literal["vivoKi"], Literal["fr15"], Literal["vivoActive"], Literal["edge510Korea"], Literal["fr620Japan"], Literal["fr620China"], Literal["fr220Japan"], Literal["fr220China"], Literal["approachS6"], Literal["vivoSmart"], Literal["fenix2"], Literal["epix"], Literal["fenix3"], Literal["edge1000Taiwan"], Literal["edge1000Japan"], Literal["fr15Japan"], Literal["edge520"], Literal["edge1000China"], Literal["fr620Russia"], Literal["fr220Russia"], Literal["vectorS"], Literal["edge1000Korea"], Literal["fr920xtTaiwan"], Literal["fr920xtChina"], Literal["fr920xtJapan"], Literal["virbx"], Literal["vivoSmartApac"], Literal["etrexTouch"], Literal["edge25"], Literal["fr25"], Literal["vivoFit2"], Literal["fr225"], Literal["fr630"], Literal["fr230"], Literal["fr735xt"], Literal["vivoActiveApac"], Literal["vector2"], Literal["vector2s"], Literal["virbxe"], Literal["fr620Taiwan"], Literal["fr220Taiwan"], Literal["truswing"], Literal["d2airvenu"], Literal["fenix3China"], Literal["fenix3Twn"], Literal["variaHeadlight"], Literal["variaTaillightOld"], Literal["edgeExplore1000"], Literal["fr225Asia"], Literal["variaRadarTaillight"], Literal["variaRadarDisplay"], Literal["edge20"], Literal["edge520Asia"], Literal["edge520Japan"], Literal["d2Bravo"], Literal["approachS20"], Literal["vivoSmart2"], Literal["edge1000Thai"], Literal["variaRemote"], Literal["edge25Asia"], Literal["edge25Jpn"], Literal["edge20Asia"], Literal["approachX40"], Literal["fenix3Japan"], Literal["vivoSmartEmea"], Literal["fr630Asia"], Literal["fr630Jpn"], Literal["fr230Jpn"], Literal["hrm4Run"], Literal["epixJapan"], Literal["vivoActiveHr"], Literal["vivoSmartGpsHr"], Literal["vivoSmartHr"], Literal["vivoSmartHrAsia"], Literal["vivoSmartGpsHrAsia"], Literal["vivoMove"], Literal["variaTaillight"], Literal["fr235Asia"], Literal["fr235Japan"], Literal["variaVision"], Literal["vivoFit3"], Literal["fenix3Korea"], Literal["fenix3Sea"], Literal["fenix3Hr"], Literal["virbUltra30"], Literal["indexSmartScale"], Literal["fr235"], Literal["fenix3Chronos"], Literal["oregon7xx"], Literal["rino7xx"], Literal["epixKorea"], Literal["fenix3HrChn"], Literal["fenix3HrTwn"], Literal["fenix3HrJpn"], Literal["fenix3HrSea"], Literal["fenix3HrKor"], Literal["nautix"], Literal["vivoActiveHrApac"], Literal["fr35"], Literal["oregon7xxWw"], Literal["edge820"], Literal["edgeExplore820"], Literal["fr735xtApac"], Literal["fr735xtJapan"], Literal["fenix5s"], Literal["d2BravoTitanium"], Literal["variaUt800"], Literal["runningDynamicsPod"], Literal["edge820China"], Literal["edge820Japan"], Literal["fenix5x"], Literal["vivoFitJr"], Literal["vivoSmart3"], Literal["vivoSport"], Literal["edge820Taiwan"], Literal["edge820Korea"], Literal["edge820Sea"], Literal["fr35Hebrew"], Literal["approachS60"], Literal["fr35Apac"], Literal["fr35Japan"], Literal["fenix3ChronosAsia"], Literal["virb360"], Literal["fr935"], Literal["fenix5"], Literal["vivoactive3"], Literal["fr235ChinaNfc"], Literal["foretrex601_701"], Literal["vivoMoveHr"], Literal["edge1030"], Literal["fr35Sea"], Literal["vector3"], Literal["fenix5Asia"], Literal["fenix5sAsia"], Literal["fenix5xAsia"], Literal["approachZ80"], Literal["fr35Korea"], Literal["d2charlie"], Literal["vivoSmart3Apac"], Literal["vivoSportApac"], Literal["fr935Asia"], Literal["descent"], Literal["vivoFit4"], Literal["fr645"], Literal["fr645m"], Literal["fr30"], Literal["fenix5sPlus"], Literal["edge130"], Literal["edge1030Asia"], Literal["vivosmart4"], Literal["vivoMoveHrAsia"], Literal["approachX10"], Literal["fr30Asia"], Literal["vivoactive3mW"], Literal["fr645Asia"], Literal["fr645mAsia"], Literal["edgeExplore"], Literal["gpsmap66"], Literal["approachS10"], Literal["vivoactive3mL"], Literal["fr245"], Literal["fr245Music"], Literal["approachG80"], Literal["edge130Asia"], Literal["edge1030Bontrager"], Literal["fenix5Plus"], Literal["fenix5xPlus"], Literal["edge520Plus"], Literal["fr945"], Literal["edge530"], Literal["edge830"], Literal["instinctEsports"], Literal["fenix5sPlusApac"], Literal["fenix5xPlusApac"], Literal["edge520PlusApac"], Literal["descentT1"], Literal["fr235lAsia"], Literal["fr245Asia"], Literal["vivoActive3mApac"], Literal["gen3Bsm"], Literal["gen3Bcm"], Literal["vivoSmart4Asia"], Literal["vivoactive4Small"], Literal["vivoactive4Large"], Literal["venu"], Literal["marqDriver"], Literal["marqAviator"], Literal["marqCaptain"], Literal["marqCommander"], Literal["marqExpedition"], Literal["marqAthlete"], Literal["descentMk2"], Literal["fr45"], Literal["gpsmap66i"], Literal["fenix6SSport"], Literal["fenix6S"], Literal["fenix6Sport"], Literal["fenix6"], Literal["fenix6x"], Literal["hrmDual"], Literal["hrmPro"], Literal["vivoMove3Premium"], Literal["approachS40"], Literal["fr245mAsia"], Literal["edge530Apac"], Literal["edge830Apac"], Literal["vivoMove3"], Literal["vivoActive4SmallAsia"], Literal["vivoActive4LargeAsia"], Literal["vivoActive4OledAsia"], Literal["swim2"], Literal["marqDriverAsia"], Literal["marqAviatorAsia"], Literal["vivoMove3Asia"], Literal["fr945Asia"], Literal["vivoActive3tChn"], Literal["marqCaptainAsia"], Literal["marqCommanderAsia"], Literal["marqExpeditionAsia"], Literal["marqAthleteAsia"], Literal["indexSmartScale2"], Literal["instinctSolar"], Literal["fr45Asia"], Literal["vivoactive3Daimler"], Literal["legacyRey"], Literal["legacyDarthVader"], Literal["legacyCaptainMarvel"], Literal["legacyFirstAvenger"], Literal["fenix6sSportAsia"], Literal["fenix6sAsia"], Literal["fenix6SportAsia"], Literal["fenix6Asia"], Literal["fenix6xAsia"], Literal["legacyCaptainMarvelAsia"], Literal["legacyFirstAvengerAsia"], Literal["legacyReyAsia"], Literal["legacyDarthVaderAsia"], Literal["descentMk2s"], Literal["edge130Plus"], Literal["edge1030Plus"], Literal["rally200"], Literal["fr745"], Literal["venusqMusic"], Literal["venusqMusicV2"], Literal["venusq"], Literal["lily"], Literal["marqAdventurer"], Literal["enduro"], Literal["swim2Apac"], Literal["marqAdventurerAsia"], Literal["fr945Lte"], Literal["descentMk2Asia"], Literal["venu2"], Literal["venu2s"], Literal["venuDaimlerAsia"], Literal["marqGolfer"], Literal["venuDaimler"], Literal["fr745Asia"], Literal["variaRct715"], Literal["lilyAsia"], Literal["edge1030PlusAsia"], Literal["edge130PlusAsia"], Literal["approachS12"], Literal["enduroAsia"], Literal["venusqAsia"], Literal["edge1040"], Literal["marqGolferAsia"], Literal["venu2Plus"], Literal["gnss"], Literal["fr55"], Literal["instinct2"], Literal["instinct2s"], Literal["fenix7s"], Literal["fenix7"], Literal["fenix7x"], Literal["fenix7sApac"], Literal["fenix7Apac"], Literal["fenix7xApac"], Literal["approachG12"], Literal["descentMk2sAsia"], Literal["approachS42"], Literal["epixGen2"], Literal["epixGen2Apac"], Literal["venu2sAsia"], Literal["venu2Asia"], Literal["fr945LteAsia"], Literal["vivoMoveSport"], Literal["vivomoveTrend"], Literal["approachS12Asia"], Literal["fr255Music"], Literal["fr255SmallMusic"], Literal["fr255"], Literal["fr255Small"], Literal["approachG12Asia"], Literal["approachS42Asia"], Literal["descentG1"], Literal["venu2PlusAsia"], Literal["fr955"], Literal["fr55Asia"], Literal["edge540"], Literal["edge840"], Literal["vivosmart5"], Literal["instinct2Asia"], Literal["marqGen2"], Literal["venusq2"], Literal["venusq2music"], Literal["marqGen2Aviator"], Literal["d2AirX10"], Literal["hrmProPlus"], Literal["descentG1Asia"], Literal["tactix7"], Literal["instinctCrossover"], Literal["edgeExplore2"], Literal["descentMk3"], Literal["descentMk3i"], Literal["approachS70"], Literal["fr265Large"], Literal["fr265Small"], Literal["venu3"], Literal["venu3s"], Literal["tacxNeoSmart"], Literal["tacxNeo2Smart"], Literal["tacxNeo2TSmart"], Literal["tacxNeoSmartBike"], Literal["tacxSatoriSmart"], Literal["tacxFlowSmart"], Literal["tacxVortexSmart"], Literal["tacxBushidoSmart"], Literal["tacxGeniusSmart"], Literal["tacxFluxFluxSSmart"], Literal["tacxFlux2Smart"], Literal["tacxMagnum"], Literal["edge1040Asia"], Literal["epixGen2Pro42"], Literal["epixGen2Pro47"], Literal["epixGen2Pro51"], Literal["fr965"], Literal["enduro2"], Literal["fenix7sProSolar"], Literal["fenix7ProSolar"], Literal["fenix7xProSolar"], Literal["lily2"], Literal["instinct2x"], Literal["vivoactive5"], Literal["fr165"], Literal["fr165Music"], Literal["edge1050"], Literal["descentT2"], Literal["hrmFit"], Literal["marqGen2Commander"], Literal["lilyAthlete"], Literal["rallyX10"], Literal["fenix8Solar"], Literal["fenix8SolarLarge"], Literal["fenix8Small"], Literal["fenix8"], Literal["d2Mach1Pro"], Literal["fr970"], Literal["fr570Large"], Literal["fr570Small"], Literal["enduro3"], Literal["instinctE40mm"], Literal["instinctE45mm"], Literal["instinct3Solar45mm"], Literal["instinct3Amoled45mm"], Literal["instinct3Amoled50mm"], Literal["descentG2"], Literal["fenix7ProSolarNoWifi"], Literal["venuX1"], Literal["hrm200"], Literal["vivoactive6"], Literal["fenix8Pro"], Literal["edge550"], Literal["edge850"], Literal["venu4"], Literal["venu4s"], Literal["approachS44"], Literal["edgeMtb"], Literal["approachS50"], Literal["fenixE"], Literal["bounce2"], Literal["instinct3Solar50mm"], Literal["tactix8Amoled"], Literal["tactix8Solar"], Literal["fr170Music"], Literal["fr170"], Literal["approachJ1"], Literal["d2Mach2"], Literal["fr702026"], Literal["fenix9Pro43mm"], Literal["fenix9Pro47mm"], Literal["fenix9Pro51mm"], Literal["fenix9ProSolar47mm"], Literal["fenix9ProSolar51mm"], Literal["fenix943mm"], Literal["fenix9"], Literal["instinctCrossoverAmoled"], Literal["d2AirX15"], Literal["cirqaSmartBand"], Literal["d2Mach2Pro"], Literal["sdm4"], Literal["edgeRemote"], Literal["tacxTrainingAppWin"], Literal["tacxTrainingAppMac"], Literal["tacxTrainingAppMacCatalyst"], Literal["trainingCenter"], Literal["tacxTrainingAppAndroid"], Literal["tacxTrainingAppIos"], Literal["tacxTrainingAppLegacy"], Literal["trainingPeaksVirtualIos"], Literal["trainingPeaksVirtualAndroid"], Literal["trainingPeaksVirtualWindows"], Literal["trainingPeaksVirtualMacOs"], Literal["trainingPeaksVirtualAppleTv"], Literal["connectiqSimulator"], Literal["androidAntplusPlugin"], Literal["connect"]] @@ -458,6 +458,33 @@ ClimbProEvent = Union[int, Literal["approach"], Literal["start"], Literal["compl GasConsumptionRateType = Union[int, Literal["pressureSac"], Literal["volumeSac"], Literal["rmv"]] +ClimbGradingScale = Union[int, Literal["yds"], Literal["uiaa"], Literal["french"], Literal["britishAdjectival"], Literal["britishTechnical"], Literal["ewbank"], Literal["brazilian"], Literal["saxon"], Literal["vermin"], Literal["font"], Literal["dankyu"], Literal["ydsPm"]] + +YdsGradingScale = Union[int, Literal["51"], Literal["52"], Literal["53"], Literal["54"], Literal["55"], Literal["56"], Literal["57"], Literal["58"], Literal["59"], Literal["510"], Literal["510a"], Literal["510b"], Literal["510c"], Literal["510d"], Literal["511"], Literal["511a"], Literal["511b"], Literal["511c"], Literal["511d"], Literal["512"], Literal["512a"], Literal["512b"], Literal["512c"], Literal["512d"], Literal["513"], Literal["513a"], Literal["513b"], Literal["513c"], Literal["513d"], Literal["514"], Literal["514a"], Literal["514b"], Literal["514c"], Literal["514d"], Literal["515"], Literal["515a"], Literal["515b"], Literal["515c"], Literal["515d"], Literal["51Minus"], Literal["51Plus"], Literal["52Minus"], Literal["52Plus"], Literal["53Minus"], Literal["53Plus"], Literal["54Minus"], Literal["54Plus"], Literal["55Minus"], Literal["55Plus"], Literal["56Minus"], Literal["56Plus"], Literal["57Minus"], Literal["57Plus"], Literal["58Minus"], Literal["58Plus"], Literal["59Minus"], Literal["59Plus"], Literal["510Minus"], Literal["510Plus"], Literal["511Minus"], Literal["511Plus"], Literal["512Minus"], Literal["512Plus"], Literal["513Minus"], Literal["513Plus"], Literal["514Minus"], Literal["514Plus"], Literal["515Minus"], Literal["515Plus"]] + +UiaaGradingScale = Union[int, Literal["i"], Literal["iI"], Literal["iII"], Literal["iVMinus"], Literal["iV"], Literal["iVPlus"], Literal["vMinus"], Literal["v"], Literal["vPlus"], Literal["vIMinus"], Literal["vI"], Literal["vIPlus"], Literal["vIIMinus"], Literal["vII"], Literal["vIIPlus"], Literal["vIIIMinus"], Literal["vIII"], Literal["vIIIPlus"], Literal["iXMinus"], Literal["iX"], Literal["iXPlus"], Literal["xMinus"], Literal["x"], Literal["xPlus"], Literal["xIMinus"], Literal["xI"], Literal["xIPlus"], Literal["xIIMinus"]] + +FrenchGradingScale = Union[int, Literal["1"], Literal["2"], Literal["3"], Literal["4a"], Literal["4b"], Literal["4c"], Literal["5a"], Literal["5b"], Literal["5c"], Literal["6a"], Literal["6aPlus"], Literal["6b"], Literal["6bPlus"], Literal["6c"], Literal["6cPlus"], Literal["7a"], Literal["7aPlus"], Literal["7b"], Literal["7bPlus"], Literal["7c"], Literal["7cPlus"], Literal["8a"], Literal["8aPlus"], Literal["8b"], Literal["8bPlus"], Literal["8c"], Literal["8cPlus"], Literal["9a"], Literal["9aPlus"], Literal["9b"]] + +BritishAdjectivalGradingScale = Union[int, Literal["m"], Literal["d"], Literal["hD"], Literal["vD"], Literal["mS"], Literal["s"], Literal["hS"], Literal["mVS"], Literal["vS"], Literal["hVS"], Literal["e1"], Literal["e2"], Literal["e3"], Literal["e4"], Literal["e5"], Literal["e6"], Literal["e7"], Literal["e8"], Literal["e9"], Literal["e10"], Literal["e11"]] + +BritishTechnicalGradingScale = Union[int, Literal["1"], Literal["2"], Literal["3"], Literal["4a"], Literal["4b"], Literal["4c"], Literal["5a"], Literal["5b"], Literal["5c"], Literal["6a"], Literal["6b"], Literal["6c"], Literal["7a"], Literal["7b"], Literal["7c"]] + +EwbankGradingScale = Union[int, Literal["4"], Literal["5"], Literal["6"], Literal["7"], Literal["8"], Literal["9"], Literal["10"], Literal["11"], Literal["12"], Literal["13"], Literal["14"], Literal["15"], Literal["16"], Literal["17"], Literal["18"], Literal["19"], Literal["20"], Literal["21"], Literal["22"], Literal["23"], Literal["24"], Literal["25"], Literal["26"], Literal["27"], Literal["28"], Literal["29"], Literal["30"], Literal["31"], Literal["32"], Literal["33"], Literal["34"], Literal["35"], Literal["36"], Literal["37"], Literal["38"]] + +BrazilianGradingScale = Union[int, Literal["2"], Literal["3"], Literal["3c"], Literal["4"], Literal["5a"], Literal["5b"], Literal["5c"], Literal["6a"], Literal["6b"], Literal["6c"], Literal["7a"], Literal["7b"], Literal["7c"], Literal["8a"], Literal["8b"], Literal["8c"], Literal["9a"], Literal["9b"], Literal["9c"], Literal["10a"], Literal["10b"], Literal["10c"], Literal["11a"], Literal["11b"], Literal["11c"], Literal["12a"], Literal["12b"]] + +SaxonGradingScale = Union[int, Literal["i"], Literal["iI"], Literal["iII"], Literal["iV"], Literal["v"], Literal["vI"], Literal["vIIA"], Literal["vIIB"], Literal["vIIC"], Literal["vIIIA"], Literal["vIIIB"], Literal["vIIIC"], Literal["iXA"], Literal["iXB"], Literal["iXC"], Literal["xA"], Literal["xB"], Literal["xC"], Literal["xIA"], Literal["xIB"], Literal["xIC"], Literal["xIIA"], Literal["xIIB"], Literal["xIIC"]] + +VerminGradingScale = Union[int, Literal["vb"], Literal["v0"], Literal["v1"], Literal["v2"], Literal["v3"], Literal["v4"], Literal["v5"], Literal["v6"], Literal["v7"], Literal["v8"], Literal["v9"], Literal["v10"], Literal["v11"], Literal["v12"], Literal["v13"], Literal["v14"], Literal["v15"], Literal["v16"], Literal["v17"]] + +FontGradingScale = Union[int, Literal["1"], Literal["2"], Literal["3"], Literal["4"], Literal["4Plus"], Literal["5"], Literal["5Plus"], Literal["6a"], Literal["6aPlus"], Literal["6b"], Literal["6bPlus"], Literal["6c"], Literal["6cPlus"], Literal["7a"], Literal["7aPlus"], Literal["7b"], Literal["7bPlus"], Literal["7c"], Literal["7cPlus"], Literal["8a"], Literal["8aPlus"], Literal["8b"], Literal["8bPlus"], Literal["8c"], Literal["8cPlus"], Literal["9a"]] + +DankyuGradingScale = Union[int, Literal["7Kyuu"], Literal["6Kyuu"], Literal["5Kyuu"], Literal["4Kyuu"], Literal["3Kyuu"], Literal["2Kyuu"], Literal["1Kyuu"], Literal["1Dan"], Literal["2Dan"], Literal["3Dan"], Literal["4Dan"], Literal["5Dan"]] + +# Use with indoor climbing activities only +SplitStatus = Union[int, Literal["failure"], Literal["success"], Literal["climbAttempted"], Literal["climbCompleted"]] + TapSensitivity = Union[int, Literal["high"], Literal["medium"], Literal["low"]] RadarThreatLevelType = Union[int, Literal["threatUnknown"], Literal["threatNone"], Literal["threatApproaching"], Literal["threatApproachingFast"]] @@ -476,3 +503,7 @@ HrvStatus = Union[int, Literal["none"], Literal["poor"], Literal["low"], Literal NoFlyTimeMode = Union[int, Literal["standard"], Literal["flat24Hours"]] +DiveSectionType = Union[int, Literal["ascent"], Literal["descent"], Literal["hang"]] + +ApneaDiscipline = Union[int, Literal["constantWeightWithFins"], Literal["constantWeightWithBifins"], Literal["constantWeightWithoutFins"], Literal["dynamicWithFins"], Literal["dynamicWithBifins"], Literal["dynamicWithoutFins"], Literal["freeImmersion"], Literal["noLimit"], Literal["speedEnduranceApnea"], Literal["staticApnea"], Literal["variableWeight"]] + diff --git a/garmin_fit_sdk/util.py b/garmin_fit_sdk/util.py index fb50e08..b5339c4 100644 --- a/garmin_fit_sdk/util.py +++ b/garmin_fit_sdk/util.py @@ -7,8 +7,8 @@ # Transfer (FIT) Protocol License. ########################################################################################### # ****WARNING**** This file is auto-generated! Do NOT edit this file. -# Profile Version = 21.214.0Release -# Tag = production/release/21.214.0-0-g47b86b1f +# Profile Version = 21.217.0Release +# Tag = production/release/21.217.0-0-g248b1c46 ############################################################################################ diff --git a/garmin_fit_sdk/util.pyi b/garmin_fit_sdk/util.pyi index 525ffe8..a6efd71 100644 --- a/garmin_fit_sdk/util.pyi +++ b/garmin_fit_sdk/util.pyi @@ -5,8 +5,8 @@ # Transfer (FIT) Protocol License. ########################################################################################### # ****WARNING**** This file is auto-generated! Do NOT edit this file. -# Profile Version = 21.214.0Release -# Tag = production/release/21.214.0-0-g47b86b1f +# Profile Version = 21.217.0Release +# Tag = production/release/21.217.0-0-g248b1c46 ############################################################################################ diff --git a/pyproject.toml b/pyproject.toml index 8abf1c6..8675628 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,7 +3,7 @@ requires = ["setuptools >= 64"] build-backend = "setuptools.build_meta" [project] -version = "21.214.0" +version = "21.217.0" name = "garmin-fit-sdk" description = "Garmin FIT Python SDK" authors = [{ name = "Garmin International, Inc." }] diff --git a/tests/__init__.py b/tests/__init__.py index 9fc5133..41a615b 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -8,4 +8,4 @@ # __init__.py for the fit sdk tests module -__version__ = '21.214.0' \ No newline at end of file +__version__ = '21.217.0' \ No newline at end of file