diff --git a/.buildinfo b/.buildinfo index 459d8db..e67047d 100644 --- a/.buildinfo +++ b/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: d132241e95d0015cdee23cb40aaf23cb +config: bf0bc39cc69a3f1913b61306c5668515 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/_modules/collections.html b/_modules/collections.html index d997339..ac6c5cb 100644 --- a/_modules/collections.html +++ b/_modules/collections.html @@ -5,18 +5,19 @@ collections — pycycling documentation - - + + - + + + - @@ -669,7 +670,8 @@

Source code for collections

         >>> sorted(c.elements())
         ['A', 'A', 'B', 'B', 'C', 'C']
 
-        # Knuth's example for prime factors of 1836:  2**2 * 3**3 * 17**1
+        Knuth's example for prime factors of 1836:  2**2 * 3**3 * 17**1
+
         >>> import math
         >>> prime_factors = Counter({2: 2, 3: 3, 17: 1})
         >>> math.prod(prime_factors.elements())
@@ -710,7 +712,7 @@ 

Source code for collections

 
         '''
         # The regular dict.update() operation makes no sense here because the
-        # replace behavior results in the some of original untouched counts
+        # replace behavior results in some of the original untouched counts
         # being mixed-in with all of the other counts for a mismash that
         # doesn't have a straight-forward interpretation in most counting
         # contexts.  Instead, we implement straight-addition.  Both the inputs
@@ -1652,7 +1654,7 @@ 

Related Topics

- + @@ -1675,11 +1677,11 @@

Quick search

diff --git a/_modules/index.html b/_modules/index.html index 2ab7bcc..97546ea 100644 --- a/_modules/index.html +++ b/_modules/index.html @@ -5,18 +5,19 @@ Overview: module code — pycycling documentation - - + + - + + + - @@ -41,6 +42,7 @@

All modules for which code is available

  • pycycling.ftms_parsers.training_status
  • pycycling.heart_rate_service
  • pycycling.rear_view_radar
  • +
  • pycycling.rizer
  • pycycling.sterzo
  • pycycling.tacx_trainer_control
  • @@ -73,7 +75,7 @@

    Related Topics

    - + @@ -96,11 +98,11 @@

    Quick search

    diff --git a/_modules/pycycling/battery_service.html b/_modules/pycycling/battery_service.html index c2ad61c..7508aa3 100644 --- a/_modules/pycycling/battery_service.html +++ b/_modules/pycycling/battery_service.html @@ -5,18 +5,19 @@ pycycling.battery_service — pycycling documentation - - + + - + + + - @@ -105,7 +106,7 @@

    Related Topics

    - + @@ -128,11 +129,11 @@

    Quick search

    diff --git a/_modules/pycycling/cycling_power_service.html b/_modules/pycycling/cycling_power_service.html index 0a372fa..c7c2433 100644 --- a/_modules/pycycling/cycling_power_service.html +++ b/_modules/pycycling/cycling_power_service.html @@ -5,18 +5,19 @@ pycycling.cycling_power_service — pycycling documentation - - + + - + + + - @@ -401,7 +402,7 @@

    Related Topics

    - + @@ -424,11 +425,11 @@

    Quick search

    diff --git a/_modules/pycycling/cycling_speed_cadence_service.html b/_modules/pycycling/cycling_speed_cadence_service.html index d5598df..e937437 100644 --- a/_modules/pycycling/cycling_speed_cadence_service.html +++ b/_modules/pycycling/cycling_speed_cadence_service.html @@ -5,18 +5,19 @@ pycycling.cycling_speed_cadence_service — pycycling documentation - - + + - + + + - @@ -146,7 +147,7 @@

    Related Topics

    - + @@ -169,11 +170,11 @@

    Quick search

    diff --git a/_modules/pycycling/fitness_machine_service.html b/_modules/pycycling/fitness_machine_service.html index 22bb8d9..3e87b71 100644 --- a/_modules/pycycling/fitness_machine_service.html +++ b/_modules/pycycling/fitness_machine_service.html @@ -5,18 +5,19 @@ pycycling.fitness_machine_service — pycycling documentation - - + + - + + + - @@ -53,12 +54,13 @@

    Source code for pycycling.fitness_machine_service

    .. literalinclude:: ../examples/fitness_machine_service_example.py """ + from collections import namedtuple from pycycling.ftms_parsers import ( parse_fitness_machine_status, parse_indoor_bike_data, - parse_fitness_machine_feature, + parse_all_features, parse_training_status, parse_control_point_response, form_ftms_control_command, @@ -91,7 +93,9 @@

    Source code for pycycling.fitness_machine_service

    ) -def _parse_supported_resistance_level_range(message: bytearray) -> SupportedResistanceLevelRange: +def _parse_supported_resistance_level_range( + message: bytearray, +) -> SupportedResistanceLevelRange: minimum_resistance = int.from_bytes(message[0:2], "little") maximum_resistance = int.from_bytes(message[2:4], "little") minimum_increment = int.from_bytes(message[4:6], "little") @@ -126,7 +130,9 @@

    Source code for pycycling.fitness_machine_service

    # === READ Characteristics ===
    [docs] - async def get_supported_resistance_level_range(self) -> SupportedResistanceLevelRange: + async def get_supported_resistance_level_range( + self, + ) -> SupportedResistanceLevelRange: message = await self._client.read_gatt_char( ftms_supported_resistance_level_range_characteristic_id ) @@ -148,7 +154,7 @@

    Source code for pycycling.fitness_machine_service

    message = await self._client.read_gatt_char( ftms_fitness_machine_feature_characteristic_id ) - return parse_fitness_machine_feature(message)
    + return parse_all_features(message)
    # === NOTIFY Characteristics === @@ -267,6 +273,7 @@

    Source code for pycycling.fitness_machine_service

    if self._control_point_response_callback is not None: self._control_point_response_callback(parse_control_point_response(data)) + # ====== Control Point Commands ======
    [docs] async def request_control(self) -> None: @@ -285,11 +292,37 @@

    Source code for pycycling.fitness_machine_service

    )
    +
    +[docs] + async def set_target_speed(self, speed: int) -> None: + if speed < 0: + raise ValueError("Speed must be non-negative") + message = form_ftms_control_command( + FTMSControlPointOpCode.SET_TARGET_SPEED, speed + ) + await self._client.write_gatt_char( + ftms_fitness_machine_control_point_characteristic_id, message, True + )
    + + +
    +[docs] + async def set_target_incline(self, inclination: int) -> None: + message = form_ftms_control_command( + FTMSControlPointOpCode.SET_TARGET_INCLINE, inclination + ) + await self._client.write_gatt_char( + ftms_fitness_machine_control_point_characteristic_id, message, True + )
    + +
    [docs] async def set_target_resistance_level(self, level: int) -> None: + if level < 0: + raise ValueError("Resistance level must be non-negative") message = form_ftms_control_command( - FTMSControlPointOpCode.SET_TARGET_RESISTANCE_LEVEL, int(level) + FTMSControlPointOpCode.SET_TARGET_RESISTANCE_LEVEL, level ) await self._client.write_gatt_char( ftms_fitness_machine_control_point_characteristic_id, message, True @@ -299,8 +332,210 @@

    Source code for pycycling.fitness_machine_service

    [docs] async def set_target_power(self, power: int) -> None: + if power < 0: + raise ValueError("Power must be non-negative") + message = form_ftms_control_command( + FTMSControlPointOpCode.SET_TARGET_POWER, power + ) + await self._client.write_gatt_char( + ftms_fitness_machine_control_point_characteristic_id, message, True + )
    + + +
    +[docs] + async def set_target_heart_rate(self, heart_rate: int) -> None: + if heart_rate < 0: + raise ValueError("Heart rate must be non-negative") message = form_ftms_control_command( - FTMSControlPointOpCode.SET_TARGET_POWER, int(power) + FTMSControlPointOpCode.SET_TARGET_HEART_RATE, heart_rate + ) + await self._client.write_gatt_char( + ftms_fitness_machine_control_point_characteristic_id, message, True + )
    + + +
    +[docs] + async def start_or_resume(self) -> None: + message = form_ftms_control_command(FTMSControlPointOpCode.START_OR_RESUME) + await self._client.write_gatt_char( + ftms_fitness_machine_control_point_characteristic_id, message, True + )
    + + +
    +[docs] + async def stop_or_pause(self, pause: bool) -> None: + message = form_ftms_control_command( + FTMSControlPointOpCode.STOP_OR_PAUSE, 0x02 if pause else 0x01 + ) + await self._client.write_gatt_char( + ftms_fitness_machine_control_point_characteristic_id, message, True + )
    + + +
    +[docs] + async def set_targeted_expended_energy(self, energy: int) -> None: + if energy < 0: + raise ValueError("Energy must be non-negative") + message = form_ftms_control_command( + FTMSControlPointOpCode.SET_TARGETED_EXPENDED_ENERGY, energy + ) + await self._client.write_gatt_char( + ftms_fitness_machine_control_point_characteristic_id, message, True + )
    + + +
    +[docs] + async def set_targeted_number_of_steps(self, steps: int) -> None: + if steps < 0: + raise ValueError("Steps must be non-negative") + message = form_ftms_control_command( + FTMSControlPointOpCode.SET_TARGETED_NUMBER_OF_STEPS, steps + ) + await self._client.write_gatt_char( + ftms_fitness_machine_control_point_characteristic_id, message, True + )
    + + +
    +[docs] + async def set_targeted_number_of_strides(self, strides: int) -> None: + if strides < 0: + raise ValueError("Strides must be non-negative") + message = form_ftms_control_command( + FTMSControlPointOpCode.SET_TARGETED_NUMBER_OF_STRIDES, strides + ) + await self._client.write_gatt_char( + ftms_fitness_machine_control_point_characteristic_id, message, True + )
    + + +
    +[docs] + async def set_targeted_distance(self, distance: int) -> None: + if distance < 0: + raise ValueError("Distance must be non-negative") + message = form_ftms_control_command( + FTMSControlPointOpCode.SET_TARGETED_DISTANCE, distance + ) + await self._client.write_gatt_char( + ftms_fitness_machine_control_point_characteristic_id, message, True + )
    + + +
    +[docs] + async def set_targeted_training_time(self, time: int) -> None: + if time < 0: + raise ValueError("Time must be non-negative") + message = form_ftms_control_command( + FTMSControlPointOpCode.SET_TARGETED_TRAINING_TIME, time + ) + await self._client.write_gatt_char( + ftms_fitness_machine_control_point_characteristic_id, message, True + )
    + + +
    +[docs] + async def set_targeted_time_in_two_heart_rate_zones(self, times: list) -> None: + if len(times) != 2: + raise ValueError("Times must be a list of 2 elements") + if times[0] < 0 or times[1] < 0: + raise ValueError("Times must be non-negative") + message = form_ftms_control_command( + FTMSControlPointOpCode.SET_TARGETED_TIME_IN_TWO_HEART_RATE_ZONES, times + ) + await self._client.write_gatt_char( + ftms_fitness_machine_control_point_characteristic_id, message, True + )
    + + +
    +[docs] + async def set_targeted_time_in_three_heart_rate_zones(self, times: list) -> None: + if len(times) != 3: + raise ValueError("Times must be a list of 3 elements") + if times[0] < 0 or times[1] < 0 or times[2] < 0: + raise ValueError("Times must be non-negative") + message = form_ftms_control_command( + FTMSControlPointOpCode.SET_TARGETED_TIME_IN_THREE_HEART_RATE_ZONES, times + ) + await self._client.write_gatt_char( + ftms_fitness_machine_control_point_characteristic_id, message, True + )
    + + +
    +[docs] + async def set_targeted_time_in_five_heart_rate_zones(self, times: list) -> None: + if len(times) != 5: + raise ValueError("Times must be a list of 5 elements") + if times[0] < 0 or times[1] < 0 or times[2] < 0 or times[3] < 0 or times[4] < 0: + raise ValueError("Times must be non-negative") + message = form_ftms_control_command( + FTMSControlPointOpCode.SET_TARGETED_TIME_IN_FIVE_HEART_RATE_ZONES, times + ) + await self._client.write_gatt_char( + ftms_fitness_machine_control_point_characteristic_id, message, True + )
    + + +
    +[docs] + async def set_simulation_parameters( + self, wind_speed: int, grade: int, crr: int, cw: int + ) -> None: + if crr < 0: + raise ValueError("Crr must be non-negative") + if cw < 0: + raise ValueError("Cw must be non-negative") + message = form_ftms_control_command( + FTMSControlPointOpCode.SET_INDOOR_BIKE_SIMULATION_PARAMETERS, + [wind_speed, grade, crr, cw], + ) + await self._client.write_gatt_char( + ftms_fitness_machine_control_point_characteristic_id, message, True + )
    + + +
    +[docs] + async def set_wheel_circumference(self, circumference: int) -> None: + if circumference < 0: + raise ValueError("Circumference must be non-negative") + message = form_ftms_control_command( + FTMSControlPointOpCode.SET_WHEEL_CIRCUMFERENCE, circumference + ) + await self._client.write_gatt_char( + ftms_fitness_machine_control_point_characteristic_id, message, True + )
    + + +
    +[docs] + async def set_spin_down_control(self, control: int) -> None: + if control < 0: + raise ValueError("Control must be non-negative") + message = form_ftms_control_command( + FTMSControlPointOpCode.SET_SPIN_DOWN_CONTROL, control + ) + await self._client.write_gatt_char( + ftms_fitness_machine_control_point_characteristic_id, message, True + )
    + + +
    +[docs] + async def set_targeted_cadence(self, cadence: int) -> None: + if cadence < 0: + raise ValueError("Cadence must be non-negative") + message = form_ftms_control_command( + FTMSControlPointOpCode.SET_TARGETED_CADENCE, cadence ) await self._client.write_gatt_char( ftms_fitness_machine_control_point_characteristic_id, message, True @@ -339,7 +574,7 @@

    Related Topics

    - + @@ -362,11 +597,11 @@

    Quick search

    diff --git a/_modules/pycycling/ftms_parsers/control_point.html b/_modules/pycycling/ftms_parsers/control_point.html index cfdba58..c792456 100644 --- a/_modules/pycycling/ftms_parsers/control_point.html +++ b/_modules/pycycling/ftms_parsers/control_point.html @@ -5,18 +5,19 @@ pycycling.ftms_parsers.control_point — pycycling documentation - - + + - + + + - @@ -43,7 +44,6 @@

    Source code for pycycling.ftms_parsers.control_point

    CONTROL_NOT_PERMITTED = 0x05
    -
    [docs] class FTMSControlPointOpCode(Enum): @@ -53,15 +53,34 @@

    Source code for pycycling.ftms_parsers.control_point

    SET_TARGET_INCLINE = 0x03 SET_TARGET_RESISTANCE_LEVEL = 0x04 SET_TARGET_POWER = 0x05 - START_OR_RESUME = 0x06 - STOP_OR_PAUSE = 0x07 + SET_TARGET_HEART_RATE = 0x06 + START_OR_RESUME = 0x07 + STOP_OR_PAUSE = 0x08 + SET_TARGETED_EXPENDED_ENERGY = 0x09 + SET_TARGETED_NUMBER_OF_STEPS = 0x0A + SET_TARGETED_NUMBER_OF_STRIDES = 0x0B + SET_TARGETED_DISTANCE = 0x0C + SET_TARGETED_TRAINING_TIME = 0x0D + SET_TARGETED_TIME_IN_TWO_HEART_RATE_ZONES = 0x0E + SET_TARGETED_TIME_IN_THREE_HEART_RATE_ZONES = 0x0F + SET_TARGETED_TIME_IN_FIVE_HEART_RATE_ZONES = 0x10 + SET_INDOOR_BIKE_SIMULATION_PARAMETERS = 0x11 + SET_WHEEL_CIRCUMFERENCE = 0x12 + SET_SPIN_DOWN_CONTROL = 0x13 + SET_TARGETED_CADENCE = 0x14 RESPONSE_CODE = 0x80
    -
    [docs] def form_ftms_control_command(opcode: FTMSControlPointOpCode, parameter: int = 0): + """ + Form a FTMS control command message + :param opcode: FTMSControlPointOpCode + :param parameter: scalar or list of scalar + :return: bytearray + """ + parameter = parameter if isinstance(parameter, list) else (int)(parameter) if opcode == FTMSControlPointOpCode.REQUEST_CONTROL: return b"\x00" elif opcode == FTMSControlPointOpCode.RESET: @@ -78,13 +97,62 @@

    Source code for pycycling.ftms_parsers.control_point

    elif opcode == FTMSControlPointOpCode.SET_TARGET_POWER: # parameter: sint16, 1W return b"\x05" + parameter.to_bytes(2, "little", signed=True) + elif opcode == FTMSControlPointOpCode.SET_TARGET_HEART_RATE: + # parameter: uint8, 1bpm + return b"\x06" + parameter.to_bytes(1, "little", signed=False) elif opcode == FTMSControlPointOpCode.START_OR_RESUME: - # parameter: 01=stop, 02=pause - return b"\x06" + return b"\x07" elif opcode == FTMSControlPointOpCode.STOP_OR_PAUSE: - return b"\x07" + parameter.to_bytes(1, "little", signed=False) + # parameter: 01=stop, 02=pause + return b"\x08" + parameter.to_bytes(1, "little", signed=False) elif opcode == FTMSControlPointOpCode.RESPONSE_CODE: return b"\x80" + elif opcode == FTMSControlPointOpCode.SET_TARGETED_EXPENDED_ENERGY: + # parameter: uint16, 1calories + return b"\x09" + parameter.to_bytes(2, "little", signed=False) + elif opcode == FTMSControlPointOpCode.SET_TARGETED_NUMBER_OF_STEPS: + # parameter: uint16, 1 + return b"\x0A" + parameter.to_bytes(2, "little", signed=False) + elif opcode == FTMSControlPointOpCode.SET_TARGETED_NUMBER_OF_STRIDES: + # parameter: uint16, 1 + return b"\x0B" + parameter.to_bytes(2, "little", signed=False) + elif opcode == FTMSControlPointOpCode.SET_TARGETED_DISTANCE: + # parameter: uint24, 1m + return b"\x0C" + parameter.to_bytes(3, "little", signed=False) + elif opcode == FTMSControlPointOpCode.SET_TARGETED_TRAINING_TIME: + # parameter: uint16, 1s + return b"\x0D" + parameter.to_bytes(2, "little", signed=False) + elif opcode == FTMSControlPointOpCode.SET_TARGETED_TIME_IN_TWO_HEART_RATE_ZONES: + # parameter: list of 2 uint16, 1s + return b"\x0E" + parameter[0].to_bytes(2, "little", signed=False) \ + + parameter[1].to_bytes(2, "little", signed=False) + elif opcode == FTMSControlPointOpCode.SET_TARGETED_TIME_IN_THREE_HEART_RATE_ZONES: + # parameter: list of 3 uint16, 1s + return b"\x0F" + parameter[0].to_bytes(2, "little", signed=False) \ + + parameter[1].to_bytes(2, "little", signed=False) \ + + parameter[2].to_bytes(2, "little", signed=False) + elif opcode == FTMSControlPointOpCode.SET_TARGETED_TIME_IN_FIVE_HEART_RATE_ZONES: + # parameter: list of 5 uint16, 1s + return b"\x10" + parameter[0].to_bytes(2, "little", signed=False) \ + + parameter[1].to_bytes(2, "little", signed=False) \ + + parameter[2].to_bytes(2, "little", signed=False) \ + + parameter[3].to_bytes(2, "little", signed=False) \ + + parameter[4].to_bytes(2, "little", signed=False) + elif opcode == FTMSControlPointOpCode.SET_INDOOR_BIKE_SIMULATION_PARAMETERS: + # parameter: list of int16 0.001mps, int16 0.01%, uint8 0.0001, uint8 0.01kg/m + return b"\x11" + parameter[0].to_bytes(2, "little", signed=True) \ + + parameter[1].to_bytes(2, "little", signed=True) \ + + parameter[2].to_bytes(1, "little", signed=False) \ + + parameter[3].to_bytes(1, "little", signed=False) + elif opcode == FTMSControlPointOpCode.SET_WHEEL_CIRCUMFERENCE: + # parameter: uint16, 0.1mm + return b"\x12" + parameter.to_bytes(2, "little", signed=False) + elif opcode == FTMSControlPointOpCode.SET_SPIN_DOWN_CONTROL: + # parameter: 01=start, 02=ignore + return b"\x13" + parameter.to_bytes(1, "little", signed=False) + elif opcode == FTMSControlPointOpCode.SET_TARGETED_CADENCE: + # parameter: uint16, 1rpm + return b"\x14" + parameter.to_bytes(1, "little", signed=False) else: raise ValueError("Invalid opcode")
    @@ -132,7 +200,7 @@

    Related Topics

    - + @@ -155,11 +223,11 @@

    Quick search

    diff --git a/_modules/pycycling/ftms_parsers/fitness_machine_feature.html b/_modules/pycycling/ftms_parsers/fitness_machine_feature.html index 76d0b54..9e79866 100644 --- a/_modules/pycycling/ftms_parsers/fitness_machine_feature.html +++ b/_modules/pycycling/ftms_parsers/fitness_machine_feature.html @@ -5,18 +5,19 @@ pycycling.ftms_parsers.fitness_machine_feature — pycycling documentation - - + + - + + + - @@ -55,6 +56,31 @@

    Source code for pycycling.ftms_parsers.fitness_machine_feature

    ) +TargetSettingFeatures = namedtuple( + "TargetSettingFeatures", + [ + "speed_target_setting_supported", + "inclination_target_setting_supported", + "resistance_target_setting_supported", + "power_target_setting_supported", + "heart_rate_target_setting_supported", + "targeted_expended_energy_configuration_supported", + "targeted_step_number_configuration_supported", + "targeted_stride_number_configuration_supported", + "targeted_distance_configuration_supported", + "targeted_training_time_configuration_supported", + "targeted_time_in_two_heart_rate_zones_configuration_supported", + "targeted_time_in_three_heart_rate_zones_configuration_supported", + "targeted_time_in_five_heart_rate_zones_configuration_supported", + "indoor_bike_simulation_parameters_supported", + "wheel_circumference_configuration_supported", + "spin_down_control_supported", + "targeted_cadence_configuration_supported", + ], +) + + +
    [docs] def parse_fitness_machine_feature(message: bytearray) -> FitnessMachineFeature: @@ -96,6 +122,56 @@

    Source code for pycycling.ftms_parsers.fitness_machine_feature

    user_data_retention_supported, )
    + + +
    +[docs] +def parse_target_setting_features(message: bytearray) -> TargetSettingFeatures: + speed_target_setting_supported = bool(message[0] & 0b00000001) + inclination_target_setting_supported = bool(message[0] & 0b00000010) + resistance_target_setting_supported = bool(message[0] & 0b00000100) + power_target_setting_supported = bool(message[0] & 0b00001000) + heart_rate_target_setting_supported = bool(message[0] & 0b00010000) + targeted_expended_energy_configuration_supported = bool(message[0] & 0b00100000) + targeted_step_number_configuration_supported = bool(message[0] & 0b01000000) + targeted_stride_number_configuration_supported = bool(message[0] & 0b10000000) + + targeted_distance_configuration_supported = bool(message[1] & 0b00000001) + targeted_training_time_configuration_supported = bool(message[1] & 0b00000010) + targeted_time_in_two_heart_rate_zones_configuration_supported = bool(message[1] & 0b00000100) + targeted_time_in_three_heart_rate_zones_configuration_supported = bool(message[1] & 0b00001000) + targeted_time_in_five_heart_rate_zones_configuration_supported = bool(message[1] & 0b00010000) + indoor_bike_simulation_parameters_supported = bool(message[1] & 0b00100000) + wheel_circumference_configuration_supported = bool(message[1] & 0b01000000) + spin_down_control_supported = bool(message[1] & 0b10000000) + + targeted_cadence_configuration_supported = bool(message[2] & 0b00000001) + return TargetSettingFeatures( + speed_target_setting_supported, + inclination_target_setting_supported, + resistance_target_setting_supported, + power_target_setting_supported, + heart_rate_target_setting_supported, + targeted_expended_energy_configuration_supported, + targeted_step_number_configuration_supported, + targeted_stride_number_configuration_supported, + targeted_distance_configuration_supported, + targeted_training_time_configuration_supported, + targeted_time_in_two_heart_rate_zones_configuration_supported, + targeted_time_in_three_heart_rate_zones_configuration_supported, + targeted_time_in_five_heart_rate_zones_configuration_supported, + indoor_bike_simulation_parameters_supported, + wheel_circumference_configuration_supported, + spin_down_control_supported, + targeted_cadence_configuration_supported, + )
    + + +
    +[docs] +def parse_all_features(message: bytearray): + return parse_fitness_machine_feature(message[0:4]), parse_target_setting_features(message[4:8])
    +
    @@ -128,7 +204,7 @@

    Related Topics

    - + @@ -151,11 +227,11 @@

    Quick search

    diff --git a/_modules/pycycling/ftms_parsers/fitness_machine_status.html b/_modules/pycycling/ftms_parsers/fitness_machine_status.html index d95fbad..da58767 100644 --- a/_modules/pycycling/ftms_parsers/fitness_machine_status.html +++ b/_modules/pycycling/ftms_parsers/fitness_machine_status.html @@ -5,18 +5,19 @@ pycycling.ftms_parsers.fitness_machine_status — pycycling documentation - - + + - + + + - @@ -299,7 +300,7 @@

    Related Topics

    - + @@ -322,11 +323,11 @@

    Quick search

    diff --git a/_modules/pycycling/ftms_parsers/indoor_bike_data.html b/_modules/pycycling/ftms_parsers/indoor_bike_data.html index c96ed3d..8983b19 100644 --- a/_modules/pycycling/ftms_parsers/indoor_bike_data.html +++ b/_modules/pycycling/ftms_parsers/indoor_bike_data.html @@ -5,18 +5,19 @@ pycycling.ftms_parsers.indoor_bike_data — pycycling documentation - - + + - + + + - @@ -188,7 +189,7 @@

    Related Topics

    - + @@ -211,11 +212,11 @@

    Quick search

    diff --git a/_modules/pycycling/ftms_parsers/training_status.html b/_modules/pycycling/ftms_parsers/training_status.html index 3835135..c29e704 100644 --- a/_modules/pycycling/ftms_parsers/training_status.html +++ b/_modules/pycycling/ftms_parsers/training_status.html @@ -5,18 +5,19 @@ pycycling.ftms_parsers.training_status — pycycling documentation - - + + - + + + - @@ -147,7 +148,7 @@

    Related Topics

    - + @@ -170,11 +171,11 @@

    Quick search

    diff --git a/_modules/pycycling/heart_rate_service.html b/_modules/pycycling/heart_rate_service.html index 852fa66..ccbeada 100644 --- a/_modules/pycycling/heart_rate_service.html +++ b/_modules/pycycling/heart_rate_service.html @@ -5,18 +5,19 @@ pycycling.heart_rate_service — pycycling documentation - - + + - + + + - @@ -136,7 +137,7 @@

    Related Topics

    - + @@ -159,11 +160,11 @@

    Quick search

    diff --git a/_modules/pycycling/rear_view_radar.html b/_modules/pycycling/rear_view_radar.html index 004b68a..9a7b874 100644 --- a/_modules/pycycling/rear_view_radar.html +++ b/_modules/pycycling/rear_view_radar.html @@ -5,18 +5,19 @@ pycycling.rear_view_radar — pycycling documentation - - + + - + + + - @@ -142,7 +143,7 @@

    Related Topics

    - + @@ -165,11 +166,11 @@

    Quick search

    diff --git a/_modules/pycycling/rizer.html b/_modules/pycycling/rizer.html new file mode 100644 index 0000000..9aa5b69 --- /dev/null +++ b/_modules/pycycling/rizer.html @@ -0,0 +1,159 @@ + + + + + + + pycycling.rizer — pycycling documentation + + + + + + + + + + + + + + + + + +
    +
    +
    + + +
    + +

    Source code for pycycling.rizer

    +import struct
    +
    +rizer_measurement_id = "347b0030-7635-408b-8918-8ff3949ce592"
    +rizer_control_point_id = "347b0031-7635-408b-8918-8ff3949ce592"
    +
    +
    +
    +[docs] +class Rizer: + def __init__(self, client): + self._client = client + self._steering_measurement_callback = None + self._latest_challenge = None + +
    +[docs] + async def enable_steering_measurement_notifications(self): + await self._client.start_notify( + rizer_measurement_id, self._steering_measurement_notification_handler + )
    + + +
    +[docs] + async def disable_steering_measurement_notifications(self): + await self._client.stop_notify(rizer_measurement_id)
    + + +
    +[docs] + def set_steering_measurement_callback(self, callback): + self._steering_measurement_callback = callback
    + + + def _steering_measurement_notification_handler( + self, sender, data + ): # pylint: disable=unused-argument + [steering_angle] = struct.unpack("<f", data) + self._steering_measurement_callback(steering_angle) + +
    +[docs] + async def set_transmission_rate(self, rate: int): + """sets the transmission rate of the rizer to 8, 16, or 32 Hz""" + if rate < 0 or rate > 2: + raise ValueError( + "Invalid rate: choose 0, 1, or 2 for 8, 16, or 32 Hz respectively" + ) + byte_array = b"\x02" + rate.to_bytes(1, "little", signed=False) + await self._client.write_gatt_char(rizer_control_point_id, byte_array)
    + + +
    +[docs] + async def set_center(self): + """sets the zero position of the rizer""" + await self._client.write_gatt_char(rizer_control_point_id, b"\x01")
    +
    + +
    + +
    + +
    +
    + +
    +
    + + + + + + + \ No newline at end of file diff --git a/_modules/pycycling/sterzo.html b/_modules/pycycling/sterzo.html index 639b9db..a7f106a 100644 --- a/_modules/pycycling/sterzo.html +++ b/_modules/pycycling/sterzo.html @@ -5,18 +5,19 @@ pycycling.sterzo — pycycling documentation - - + + - + + + - @@ -64,7 +65,7 @@

    Source code for pycycling.sterzo

             if sys.version_info >= (3, 11):
                 challenge_file = importlib.resources.files(pycycling.data).joinpath('sterzo-challenge-codes.dat').open('rb')
             else:  # legacy support < 3.9
    -            challenge_file = importlib.resources.open_binary(pycycling.data, 'sterzo-challenge-codes.dat')
    +            challenge_file = importlib.resources.open_binary(pycycling.data, 'sterzo-challenge-codes.dat') # pylint: disable=deprecated-method
     
             with challenge_file:
                 challenge_file.seek(self._latest_challenge * 2, 1)
    @@ -127,7 +128,7 @@ 

    Related Topics

    - + @@ -150,11 +151,11 @@

    Quick search

    diff --git a/_modules/pycycling/tacx_trainer_control.html b/_modules/pycycling/tacx_trainer_control.html index e9688eb..36133fb 100644 --- a/_modules/pycycling/tacx_trainer_control.html +++ b/_modules/pycycling/tacx_trainer_control.html @@ -5,18 +5,19 @@ pycycling.tacx_trainer_control — pycycling documentation - - + + - + + + - @@ -527,7 +528,7 @@

    Related Topics

    - + @@ -550,11 +551,11 @@

    Quick search

    diff --git a/_sources/index.rst.txt b/_sources/index.rst.txt index 79ab846..54eae1e 100644 --- a/_sources/index.rst.txt +++ b/_sources/index.rst.txt @@ -1,5 +1,5 @@ .. pycycling documentation master file, created by - sphinx-quickstart on Sat Jan 6 11:03:05 2024. + sphinx-quickstart on Fri Apr 26 20:13:48 2024. You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. diff --git a/_sources/pycycling.rizer.rst.txt b/_sources/pycycling.rizer.rst.txt new file mode 100644 index 0000000..8e39153 --- /dev/null +++ b/_sources/pycycling.rizer.rst.txt @@ -0,0 +1,7 @@ +pycycling.rizer module +====================== + +.. automodule:: pycycling.rizer + :members: + :undoc-members: + :show-inheritance: diff --git a/_sources/pycycling.rst.txt b/_sources/pycycling.rst.txt index c786fd3..92552fb 100644 --- a/_sources/pycycling.rst.txt +++ b/_sources/pycycling.rst.txt @@ -22,6 +22,7 @@ Submodules pycycling.fitness_machine_service pycycling.heart_rate_service pycycling.rear_view_radar + pycycling.rizer pycycling.sterzo pycycling.tacx_trainer_control diff --git a/_static/alabaster.css b/_static/alabaster.css index 517d0b2..e3174bf 100644 --- a/_static/alabaster.css +++ b/_static/alabaster.css @@ -69,6 +69,11 @@ div.relations { } +div.sphinxsidebar { + max-height: 100%; + overflow-y: auto; +} + div.sphinxsidebar a { color: #444; text-decoration: none; @@ -155,6 +160,14 @@ div.sphinxsidebar input { font-size: 1em; } +div.sphinxsidebar #searchbox input[type="text"] { + width: 160px; +} + +div.sphinxsidebar .search > div { + display: table-cell; +} + div.sphinxsidebar hr { border: none; height: 1px; @@ -638,15 +651,7 @@ a:hover tt, a:hover code { display: none!important; } -/* Make nested-list/multi-paragraph items look better in Releases changelog - * pages. Without this, docutils' magical list fuckery causes inconsistent - * formatting between different release sub-lists. - */ -div#changelog > div.section > ul > li > p:only-child { - margin-bottom: 0; -} - -/* Hide fugly table cell borders in ..bibliography:: directive output */ +/* Hide ugly table cell borders in ..bibliography:: directive output */ table.docutils.citation, table.docutils.citation td, table.docutils.citation th { border: none; /* Below needed in some edge cases; if not applied, bottom shadows appear */ diff --git a/_static/basic.css b/_static/basic.css index 30fee9d..e5179b7 100644 --- a/_static/basic.css +++ b/_static/basic.css @@ -4,7 +4,7 @@ * * Sphinx stylesheet -- basic theme. * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -222,7 +222,7 @@ table.modindextable td { /* -- general body styles --------------------------------------------------- */ div.body { - min-width: 360px; + min-width: inherit; max-width: 800px; } diff --git a/_static/doctools.js b/_static/doctools.js index d06a71d..4d67807 100644 --- a/_static/doctools.js +++ b/_static/doctools.js @@ -4,7 +4,7 @@ * * Base JavaScript utilities for all Sphinx HTML documentation. * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ diff --git a/_static/language_data.js b/_static/language_data.js index 250f566..367b8ed 100644 --- a/_static/language_data.js +++ b/_static/language_data.js @@ -5,7 +5,7 @@ * This script contains the language-specific data used by searchtools.js, * namely the list of stopwords, stemmer, scorer and splitter. * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -13,7 +13,7 @@ var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"]; -/* Non-minified version is copied as a separate JS file, is available */ +/* Non-minified version is copied as a separate JS file, if available */ /** * Porter Stemmer diff --git a/_static/pygments.css b/_static/pygments.css index 57c7df3..04a4174 100644 --- a/_static/pygments.css +++ b/_static/pygments.css @@ -56,7 +56,7 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: .highlight .nv { color: #000000 } /* Name.Variable */ .highlight .ow { color: #004461; font-weight: bold } /* Operator.Word */ .highlight .pm { color: #000000; font-weight: bold } /* Punctuation.Marker */ -.highlight .w { color: #f8f8f8; text-decoration: underline } /* Text.Whitespace */ +.highlight .w { color: #f8f8f8 } /* Text.Whitespace */ .highlight .mb { color: #990000 } /* Literal.Number.Bin */ .highlight .mf { color: #990000 } /* Literal.Number.Float */ .highlight .mh { color: #990000 } /* Literal.Number.Hex */ diff --git a/_static/searchtools.js b/_static/searchtools.js index 7918c3f..92da3f8 100644 --- a/_static/searchtools.js +++ b/_static/searchtools.js @@ -4,7 +4,7 @@ * * Sphinx JavaScript utilities for the full-text search. * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -99,7 +99,7 @@ const _displayItem = (item, searchTerms, highlightTerms) => { .then((data) => { if (data) listItem.appendChild( - Search.makeSearchSummary(data, searchTerms) + Search.makeSearchSummary(data, searchTerms, anchor) ); // highlight search terms in the summary if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js @@ -116,8 +116,8 @@ const _finishSearch = (resultCount) => { ); else Search.status.innerText = _( - `Search finished, found ${resultCount} page(s) matching the search query.` - ); + "Search finished, found ${resultCount} page(s) matching the search query." + ).replace('${resultCount}', resultCount); }; const _displayNextItem = ( results, @@ -137,6 +137,22 @@ const _displayNextItem = ( // search finished, update title and status message else _finishSearch(resultCount); }; +// Helper function used by query() to order search results. +// Each input is an array of [docname, title, anchor, descr, score, filename]. +// Order the results by score (in opposite order of appearance, since the +// `_displayNextItem` function uses pop() to retrieve items) and then alphabetically. +const _orderResultsByScoreThenName = (a, b) => { + const leftScore = a[4]; + const rightScore = b[4]; + if (leftScore === rightScore) { + // same score: sort alphabetically + const leftTitle = a[1].toLowerCase(); + const rightTitle = b[1].toLowerCase(); + if (leftTitle === rightTitle) return 0; + return leftTitle > rightTitle ? -1 : 1; // inverted is intentional + } + return leftScore > rightScore ? 1 : -1; +}; /** * Default splitQuery function. Can be overridden in ``sphinx.search`` with a @@ -160,13 +176,26 @@ const Search = { _queued_query: null, _pulse_status: -1, - htmlToText: (htmlString) => { + htmlToText: (htmlString, anchor) => { const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html'); - htmlElement.querySelectorAll(".headerlink").forEach((el) => { el.remove() }); + for (const removalQuery of [".headerlinks", "script", "style"]) { + htmlElement.querySelectorAll(removalQuery).forEach((el) => { el.remove() }); + } + if (anchor) { + const anchorContent = htmlElement.querySelector(`[role="main"] ${anchor}`); + if (anchorContent) return anchorContent.textContent; + + console.warn( + `Anchored content block not found. Sphinx search tries to obtain it via DOM query '[role=main] ${anchor}'. Check your theme or template.` + ); + } + + // if anchor not specified or not found, fall back to main content const docContent = htmlElement.querySelector('[role="main"]'); - if (docContent !== undefined) return docContent.textContent; + if (docContent) return docContent.textContent; + console.warn( - "Content block not found. Sphinx search tries to obtain it via '[role=main]'. Could you check your theme or template." + "Content block not found. Sphinx search tries to obtain it via DOM query '[role=main]'. Check your theme or template." ); return ""; }, @@ -239,16 +268,7 @@ const Search = { else Search.deferQuery(query); }, - /** - * execute search (requires search index to be loaded) - */ - query: (query) => { - const filenames = Search._index.filenames; - const docNames = Search._index.docnames; - const titles = Search._index.titles; - const allTitles = Search._index.alltitles; - const indexEntries = Search._index.indexentries; - + _parseQuery: (query) => { // stem the search terms and add them to the correct list const stemmer = new Stemmer(); const searchTerms = new Set(); @@ -284,16 +304,32 @@ const Search = { // console.info("required: ", [...searchTerms]); // console.info("excluded: ", [...excludedTerms]); - // array of [docname, title, anchor, descr, score, filename] - let results = []; + return [query, searchTerms, excludedTerms, highlightTerms, objectTerms]; + }, + + /** + * execute search (requires search index to be loaded) + */ + _performSearch: (query, searchTerms, excludedTerms, highlightTerms, objectTerms) => { + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const titles = Search._index.titles; + const allTitles = Search._index.alltitles; + const indexEntries = Search._index.indexentries; + + // Collect multiple result groups to be sorted separately and then ordered. + // Each is an array of [docname, title, anchor, descr, score, filename]. + const normalResults = []; + const nonMainIndexResults = []; + _removeChildren(document.getElementById("search-progress")); - const queryLower = query.toLowerCase(); + const queryLower = query.toLowerCase().trim(); for (const [title, foundTitles] of Object.entries(allTitles)) { - if (title.toLowerCase().includes(queryLower) && (queryLower.length >= title.length/2)) { + if (title.toLowerCase().trim().includes(queryLower) && (queryLower.length >= title.length/2)) { for (const [file, id] of foundTitles) { let score = Math.round(100 * queryLower.length / title.length) - results.push([ + normalResults.push([ docNames[file], titles[file] !== title ? `${titles[file]} > ${title}` : title, id !== null ? "#" + id : "", @@ -308,46 +344,47 @@ const Search = { // search for explicit entries in index directives for (const [entry, foundEntries] of Object.entries(indexEntries)) { if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) { - for (const [file, id] of foundEntries) { - let score = Math.round(100 * queryLower.length / entry.length) - results.push([ + for (const [file, id, isMain] of foundEntries) { + const score = Math.round(100 * queryLower.length / entry.length); + const result = [ docNames[file], titles[file], id ? "#" + id : "", null, score, filenames[file], - ]); + ]; + if (isMain) { + normalResults.push(result); + } else { + nonMainIndexResults.push(result); + } } } } // lookup as object objectTerms.forEach((term) => - results.push(...Search.performObjectSearch(term, objectTerms)) + normalResults.push(...Search.performObjectSearch(term, objectTerms)) ); // lookup as search terms in fulltext - results.push(...Search.performTermsSearch(searchTerms, excludedTerms)); + normalResults.push(...Search.performTermsSearch(searchTerms, excludedTerms)); // let the scorer override scores with a custom scoring function - if (Scorer.score) results.forEach((item) => (item[4] = Scorer.score(item))); - - // now sort the results by score (in opposite order of appearance, since the - // display function below uses pop() to retrieve items) and then - // alphabetically - results.sort((a, b) => { - const leftScore = a[4]; - const rightScore = b[4]; - if (leftScore === rightScore) { - // same score: sort alphabetically - const leftTitle = a[1].toLowerCase(); - const rightTitle = b[1].toLowerCase(); - if (leftTitle === rightTitle) return 0; - return leftTitle > rightTitle ? -1 : 1; // inverted is intentional - } - return leftScore > rightScore ? 1 : -1; - }); + if (Scorer.score) { + normalResults.forEach((item) => (item[4] = Scorer.score(item))); + nonMainIndexResults.forEach((item) => (item[4] = Scorer.score(item))); + } + + // Sort each group of results by score and then alphabetically by name. + normalResults.sort(_orderResultsByScoreThenName); + nonMainIndexResults.sort(_orderResultsByScoreThenName); + + // Combine the result groups in (reverse) order. + // Non-main index entries are typically arbitrary cross-references, + // so display them after other results. + let results = [...nonMainIndexResults, ...normalResults]; // remove duplicate search results // note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept @@ -361,7 +398,12 @@ const Search = { return acc; }, []); - results = results.reverse(); + return results.reverse(); + }, + + query: (query) => { + const [searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms] = Search._parseQuery(query); + const results = Search._performSearch(searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms); // for debugging //Search.lastresults = results.slice(); // a copy @@ -466,14 +508,18 @@ const Search = { // add support for partial matches if (word.length > 2) { const escapedWord = _escapeRegExp(word); - Object.keys(terms).forEach((term) => { - if (term.match(escapedWord) && !terms[word]) - arr.push({ files: terms[term], score: Scorer.partialTerm }); - }); - Object.keys(titleTerms).forEach((term) => { - if (term.match(escapedWord) && !titleTerms[word]) - arr.push({ files: titleTerms[word], score: Scorer.partialTitle }); - }); + if (!terms.hasOwnProperty(word)) { + Object.keys(terms).forEach((term) => { + if (term.match(escapedWord)) + arr.push({ files: terms[term], score: Scorer.partialTerm }); + }); + } + if (!titleTerms.hasOwnProperty(word)) { + Object.keys(titleTerms).forEach((term) => { + if (term.match(escapedWord)) + arr.push({ files: titleTerms[term], score: Scorer.partialTitle }); + }); + } } // no match but word was a required one @@ -496,9 +542,8 @@ const Search = { // create the mapping files.forEach((file) => { - if (fileMap.has(file) && fileMap.get(file).indexOf(word) === -1) - fileMap.get(file).push(word); - else fileMap.set(file, [word]); + if (!fileMap.has(file)) fileMap.set(file, [word]); + else if (fileMap.get(file).indexOf(word) === -1) fileMap.get(file).push(word); }); }); @@ -549,8 +594,8 @@ const Search = { * search summary for a given text. keywords is a list * of stemmed words. */ - makeSearchSummary: (htmlText, keywords) => { - const text = Search.htmlToText(htmlText); + makeSearchSummary: (htmlText, keywords, anchor) => { + const text = Search.htmlToText(htmlText, anchor); if (text === "") return null; const textLower = text.toLowerCase(); diff --git a/genindex.html b/genindex.html index e49b1e5..9fbc314 100644 --- a/genindex.html +++ b/genindex.html @@ -5,18 +5,19 @@ Index — pycycling documentation - - + + - + + + - @@ -207,8 +208,12 @@

    D

  • disable_radar_measurement_notifications() (pycycling.rear_view_radar.RearViewRadarService method)
  • -
  • disable_steering_measurement_notifications() (pycycling.sterzo.Sterzo method) +
  • disable_steering_measurement_notifications() (pycycling.rizer.Rizer method) + +
  • disable_training_status_notify() (pycycling.fitness_machine_service.FitnessMachineService method)
  • distance (pycycling.rear_view_radar.RadarMeasurement attribute) @@ -253,14 +258,18 @@

    E

  • enable_hr_measurement_notifications() (pycycling.heart_rate_service.HeartRateService method)
  • - - +
  • HEART_RATE_CONTROL (pycycling.ftms_parsers.training_status.TrainingStatus attribute) +
  • +
  • heart_rate_measurement_supported (pycycling.ftms_parsers.fitness_machine_feature.FitnessMachineFeature attribute)
  • + + - - + - - + @@ -1164,11 +1292,11 @@

    Quick search

    diff --git a/index.html b/index.html index e9387f4..3ba5c5a 100644 --- a/index.html +++ b/index.html @@ -6,10 +6,10 @@ Welcome to pycycling’s documentation! — pycycling documentation - - + + - + @@ -17,8 +17,9 @@ + + - @@ -90,6 +91,10 @@

    Welcome to pycycling’s documentation!RearViewRadarService +
  • pycycling.rizer module +
  • pycycling.sterzo module @@ -158,7 +163,7 @@

    Related Topics

  • - + @@ -181,11 +186,11 @@

    Quick search

    - + @@ -177,11 +183,11 @@

    Quick search

    diff --git a/pycycling.battery_service.html b/pycycling.battery_service.html index 34d87ae..c4b1846 100644 --- a/pycycling.battery_service.html +++ b/pycycling.battery_service.html @@ -6,10 +6,10 @@ pycycling.battery_service module — pycycling documentation - - + + - + @@ -18,8 +18,9 @@ + + - @@ -121,6 +122,7 @@

    Navigation

  • pycycling.fitness_machine_service module
  • pycycling.heart_rate_service module
  • pycycling.rear_view_radar module
  • +
  • pycycling.rizer module
  • pycycling.sterzo module
  • pycycling.tacx_trainer_control module
  • @@ -141,7 +143,7 @@

    Related Topics

    - + @@ -164,11 +166,11 @@

    Quick search

    - + @@ -609,11 +611,11 @@

    Quick search

    - + @@ -191,11 +193,11 @@

    Quick search

    - + @@ -106,11 +107,11 @@

    Quick search

    - + @@ -417,11 +528,11 @@

    Quick search

    - + @@ -216,11 +286,11 @@

    Quick search

    - + @@ -220,11 +339,11 @@

    Quick search

    - + @@ -404,11 +405,11 @@

    Quick search

    - + @@ -290,11 +326,11 @@

    Quick search

    - + @@ -207,11 +208,11 @@

    Quick search

    - + @@ -220,11 +221,11 @@

    Quick search

    - + @@ -161,11 +163,11 @@

    Quick search

    - + @@ -513,11 +546,11 @@

    Quick search

    - + @@ -196,11 +198,11 @@

    Quick search

    - + @@ -130,11 +132,11 @@

    Quick search

    - + @@ -674,11 +676,11 @@

    Quick search

    @@ -106,11 +105,11 @@

    Related Topics

    diff --git a/searchindex.js b/searchindex.js index ef06506..06b03b0 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["index", "pycycling", "pycycling.battery_service", "pycycling.cycling_power_service", "pycycling.cycling_speed_cadence_service", "pycycling.data", "pycycling.fitness_machine_service", "pycycling.ftms_parsers", "pycycling.ftms_parsers.control_point", "pycycling.ftms_parsers.fitness_machine_feature", "pycycling.ftms_parsers.fitness_machine_status", "pycycling.ftms_parsers.indoor_bike_data", "pycycling.ftms_parsers.training_status", "pycycling.heart_rate_service", "pycycling.rear_view_radar", "pycycling.sterzo", "pycycling.tacx_trainer_control"], "filenames": ["index.rst", "pycycling.rst", "pycycling.battery_service.rst", "pycycling.cycling_power_service.rst", "pycycling.cycling_speed_cadence_service.rst", "pycycling.data.rst", "pycycling.fitness_machine_service.rst", "pycycling.ftms_parsers.rst", "pycycling.ftms_parsers.control_point.rst", "pycycling.ftms_parsers.fitness_machine_feature.rst", "pycycling.ftms_parsers.fitness_machine_status.rst", "pycycling.ftms_parsers.indoor_bike_data.rst", "pycycling.ftms_parsers.training_status.rst", "pycycling.heart_rate_service.rst", "pycycling.rear_view_radar.rst", "pycycling.sterzo.rst", "pycycling.tacx_trainer_control.rst"], "titles": ["Welcome to pycycling\u2019s documentation!", "pycycling package", "pycycling.battery_service module", "pycycling.cycling_power_service module", "pycycling.cycling_speed_cadence_service module", "pycycling.data package", "pycycling.fitness_machine_service module", "pycycling.ftms_parsers package", "pycycling.ftms_parsers.control_point module", "pycycling.ftms_parsers.fitness_machine_feature module", "pycycling.ftms_parsers.fitness_machine_status module", "pycycling.ftms_parsers.indoor_bike_data module", "pycycling.ftms_parsers.training_status module", "pycycling.heart_rate_service module", "pycycling.rear_view_radar module", "pycycling.sterzo module", "pycycling.tacx_trainer_control module"], "terms": {"packag": 0, "subpackag": 0, "data": [0, 1, 3, 6, 10, 14, 16], "modul": 0, "ftms_parser": [0, 1], "submodul": 0, "battery_servic": [0, 1], "exampl": [0, 1], "batteryservic": [0, 1, 2], "cycling_power_servic": [0, 1], "cyclingpowerfeatur": [0, 1, 3], "cyclingpowermeasur": [0, 1, 3], "cyclingpowerservic": [0, 1, 3], "cyclingpowervector": [0, 1, 3], "distributesystemsupport": [0, 1, 3], "instantaneousmeasurementdirect": [0, 1, 3], "sensorloc": [0, 1, 3], "sensormeasurementcontext": [0, 1, 3], "cycling_speed_cadence_servic": [0, 1], "cscfeatur": [0, 1, 4], "cscmeasur": [0, 1, 4], "cyclingspeedcadenceservic": [0, 1, 4], "fitness_machine_servic": [0, 1], "fitnessmachineservic": [0, 1, 6], "supportedpowerrang": [0, 1, 6], "supportedresistancelevelrang": [0, 1, 6], "heart_rate_servic": [0, 1], "heartratemeasur": [0, 1, 13], "heartrateservic": [0, 1, 13], "rear_view_radar": [0, 1], "radarmeasur": [0, 1, 14], "rearviewradarservic": [0, 1, 14], "sterzo": [0, 1], "tacx_trainer_control": [0, 1], "smart": [0, 1], "trainer": [0, 1, 3, 6], "mode": [0, 1], "oper": [0, 1, 6], "commandstatu": [0, 1, 16], "commandstatusdata": [0, 1, 16], "equipmenttyp": [0, 1, 16], "festat": [0, 1, 16], "generalfedata": [0, 1, 16], "roadsurfac": [0, 1, 16], "specifictrainerdata": [0, 1, 16], "tacxtrainercontrol": [0, 1, 16], "targetpowerlimit": [0, 1, 16], "obtain": [0, 2, 3, 6, 14, 16], "address": [0, 2, 3, 6, 14, 16], "your": [0, 2, 3, 6, 14, 16], "devic": [0, 2, 3, 6, 14, 16], "index": 0, "search": 0, "page": 0, "control_point": [1, 7], "controlpointrespons": [1, 7, 8], "ftmscontrolpointopcod": [1, 7, 8], "ftmscontrolpointresponseresultcod": [1, 7, 8], "form_ftms_control_command": [1, 7, 8], "parse_control_point_respons": [1, 7, 8], "fitness_machine_featur": [1, 6, 7], "fitnessmachinefeatur": [1, 6, 7, 9], "parse_fitness_machine_featur": [1, 7, 9], "fitness_machine_statu": [1, 7], "fitnessmachinestatu": [1, 7, 10], "fitnessmachinestatusmessag": [1, 7, 10], "fivezonehr": [1, 7, 10], "indoorbikesimulationparamet": [1, 7, 10], "spindownstatusvalu": [1, 7, 10], "threezonehr": [1, 7, 10], "twozonehr": [1, 7, 10], "parse_fitness_machine_statu": [1, 7, 10], "indoor_bike_data": [1, 7], "indoorbikedata": [1, 7, 11], "parse_indoor_bike_data": [1, 7, 11], "training_statu": [1, 7], "trainingstatu": [1, 7, 12], "trainingstatusmessag": [1, 7, 12], "parse_training_statu": [1, 7, 12], "get_battery_level": [1, 2], "accumulated_energy_support": [1, 3], "accumulated_torque_support": [1, 3], "chain_length_adjustment_support": [1, 3], "chain_weight_adjustment_support": [1, 3], "crank_length_adjustment_support": [1, 3], "crank_rev_support": [1, 3, 4], "cycling_power_measurement_content_masking_support": [1, 3], "dead_spot_angles_support": [1, 3], "distribute_system_support": [1, 3], "enhanced_offset_compensation_support": [1, 3], "extreme_magnitudes_support": [1, 3], "factory_calibration_date_support": [1, 3], "instantaneous_measurement_direction_support": [1, 3], "multiple_locations_support": [1, 3, 4], "offset_compensation_support": [1, 3], "pedal_power_balance_support": [1, 3], "sensor_measurement_context": [1, 3], "span_length_adjustment_support": [1, 3], "wheel_rev_support": [1, 3, 4], "accumulated_energi": [1, 3], "accumulated_torqu": [1, 3], "bottom_dead_spot_angl": [1, 3], "cumulative_crank_rev": [1, 3, 4], "cumulative_wheel_rev": [1, 3, 4], "instantaneous_pow": [1, 3, 16], "last_crank_event_tim": [1, 3, 4], "last_wheel_event_tim": [1, 3, 4], "maximum_force_magnitud": [1, 3], "maximum_torque_magnitud": [1, 3], "minimum_force_magnitud": [1, 3], "minimum_torque_magnitud": [1, 3], "pedal_power_bal": [1, 3], "top_dead_spot_angl": [1, 3], "disable_cycling_power_measurement_notif": [1, 3], "disable_cycling_power_vector_notif": [1, 3], "enable_cycling_power_measurement_notif": [1, 3], "enable_cycling_power_vector_notif": [1, 3], "get_cycling_power_featur": [1, 3], "get_sensor_loc": [1, 3], "set_cycling_power_measurement_handl": [1, 3], "set_cycling_power_vector_handl": [1, 3], "first_crank_measurement_angl": [1, 3], "instantaneous_force_magnitud": [1, 3], "instantaneous_measurement_direct": [1, 3], "instantaneous_torque_magnitud": [1, 3], "distributed_system_support": [1, 3], "no_distributed_system_support": [1, 3], "rfu": [1, 3], "unspecifi": [1, 3], "lateral_compon": [1, 3], "radial_compon": [1, 3], "tangential_compon": [1, 3], "unknown": [1, 3, 6], "chain_r": [1, 3], "chainstai": [1, 3], "chest": [1, 3], "front_hub": [1, 3], "front_wheel": [1, 3], "hip": [1, 3], "in_sho": [1, 3], "left_crank": [1, 3], "left_ped": [1, 3], "other": [1, 3, 7, 12, 14, 16], "rear_dropout": [1, 3], "rear_hub": [1, 3], "rear_wheel": [1, 3], "right_crank": [1, 3], "right_ped": [1, 3], "spider": [1, 3], "top_of_sho": [1, 3], "force_bas": [1, 3], "torque_bas": [1, 3], "disable_csc_measurement_notif": [1, 4], "enable_csc_measurement_notif": [1, 4], "get_csc_featur": [1, 4], "set_csc_measurement_handl": [1, 4], "disable_control_point_ind": [1, 6], "disable_fitness_machine_status_notifi": [1, 6], "disable_indoor_bike_data_notifi": [1, 6], "disable_training_status_notifi": [1, 6], "enable_control_point_ind": [1, 6], "enable_fitness_machine_status_notifi": [1, 6], "enable_indoor_bike_data_notifi": [1, 6], "enable_training_status_notifi": [1, 6], "get_fitness_machine_featur": [1, 6], "get_supported_power_rang": [1, 6], "get_supported_resistance_level_rang": [1, 6], "request_control": [1, 6, 7, 8], "reset": [1, 6, 7, 8, 10], "set_control_point_response_handl": [1, 6], "set_fitness_machine_status_handl": [1, 6], "set_indoor_bike_data_handl": [1, 6], "set_target_pow": [1, 6, 7, 8, 16], "set_target_resistance_level": [1, 6, 7, 8], "set_training_status_handl": [1, 6], "maximum_pow": [1, 6], "minimum_incr": [1, 6], "minimum_pow": [1, 6], "maximum_resist": [1, 6], "minimum_resist": [1, 6], "bpm": [1, 13], "energy_expend": [1, 13], "rr_interv": [1, 13], "sensor_contact": [1, 13], "disable_hr_measurement_notif": [1, 13], "enable_hr_measurement_notif": [1, 13], "set_hr_measurement_handl": [1, 13], "distanc": [1, 6, 14], "speed": [1, 6, 14, 16], "threat_id": [1, 14], "disable_radar_measurement_notif": [1, 14], "enable_radar_measurement_notif": [1, 14], "set_radar_measurement_handl": [1, 14], "disable_steering_measurement_notif": [1, 15], "enable_steering_measurement_notif": [1, 15], "set_steering_measurement_callback": [1, 15], "fail": [1, 6, 16], "not_support": [1, 7, 8, 16], "reject": [1, 16], "success": [1, 7, 8, 10, 16], "uniniti": [1, 16], "command_statu": [1, 16], "last_received_command": [1, 16], "climber": [1, 16], "ellipt": [1, 16], "nordic_ski": [1, 16], "reserv": [1, 7, 12, 16], "rower": [1, 16], "treadmil": [1, 16], "finish": [1, 16], "in_us": [1, 16], "readi": [1, 16], "distance_travel": [1, 16], "elapsed_tim": [1, 7, 11, 16], "equipment_typ": [1, 16], "fe_stat": [1, 16], "heart_rat": [1, 7, 11, 16], "lap_toggl": [1, 16], "brick_road": [1, 16], "cattle_grid": [1, 16], "cobblestones_hard": [1, 16], "cobblestones_soft": [1, 16], "concrete_pl": [1, 16], "gravel": [1, 16], "ic": [1, 16], "off_road": [1, 16], "simulation_off": [1, 16], "wooden_board": [1, 16], "accumulated_pow": [1, 16], "instantaneous_cad": [1, 16], "power_calibration_requir": [1, 16], "resistance_calibration_requir": [1, 16], "target_power_limit": [1, 16], "trainer_statu": [1, 16], "update_event_count": [1, 16], "user_configuration_requir": [1, 16], "disable_fec_notif": [1, 16], "enable_fec_notif": [1, 16], "request_data_pag": [1, 16], "set_basic_resist": [1, 16], "set_command_status_data_page_handl": [1, 16], "set_general_fe_data_page_handl": [1, 16], "set_neo_mod": [1, 16], "set_specific_trainer_data_page_handl": [1, 16], "set_track_resist": [1, 16], "set_user_configur": [1, 16], "set_wind_resist": [1, 16], "limit_reach": [1, 16], "operating_at_target_or_no_target_set": [1, 16], "user_speed_too_high": [1, 16], "user_speed_too_low": [1, 16], "i": [1, 2, 3, 14, 16], "cross": 1, "platform": 1, "python": 1, "interact": [1, 2, 3, 6, 14, 16], "variou": 1, "bluetooth": [1, 2, 3, 6, 14, 16], "cycl": [1, 3, 6, 16], "peripher": 1, "The": [1, 6, 16], "provid": 1, "number": [1, 3, 4, 6, 8, 9, 10, 11, 12, 13, 14, 16], "class": [1, 2, 3, 4, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16], "which": [1, 2, 3, 6, 14, 16], "wrap": 1, "around": [1, 2, 6], "bleak": [1, 2, 3, 6, 14, 16], "client": [1, 2, 3, 4, 6, 13, 14, 15, 16], "object": [1, 2, 3, 4, 6, 13, 14, 15, 16], "thi": [1, 2, 3, 6, 14, 16], "document": 1, "includ": 1, "code": [1, 6], "snippet": 1, "demonstr": [1, 6, 16], "usag": 1, "each": [1, 16], "ha": [1, 16], "hardcod": 1, "id": 1, "you": [1, 16], "need": 1, "replac": 1, "follow": 1, "script": [1, 6], "can": [1, 16], "us": [1, 16], "an": [1, 2], "list": 1, "all": [1, 6], "avail": 1, "device_address": [1, 2, 3, 6, 14, 16], "import": [1, 2, 3, 6, 14, 16], "asyncio": [1, 2, 3, 6, 14, 16], "from": [1, 2, 3, 6, 14, 16], "discov": 1, "async": [1, 2, 3, 4, 6, 13, 14, 15, 16], "def": [1, 2, 3, 6, 14, 16], "run": [1, 2, 3, 6, 14, 16], "await": [1, 2, 3, 6, 14, 16], "d": 1, "print": [1, 2, 3, 6, 14, 16], "__name__": [1, 2, 3, 6, 14, 16], "__main__": [1, 2, 3, 6, 14, 16], "o": [1, 2, 3, 6, 14, 16], "environ": [1, 2, 3, 6, 14, 16], "pythonasynciodebug": [1, 2, 3, 6, 14, 16], "str": [1, 2, 3, 6, 14, 16], "1": [1, 2, 3, 4, 6, 8, 9, 10, 11, 12, 13, 14, 16], "loop": [1, 2, 3, 6, 14, 16], "get_event_loop": [1, 2, 3, 6, 14, 16], "run_until_complet": [1, 2, 3, 6, 14, 16], "A": [2, 3, 10, 14, 16], "support": [2, 3, 6, 14, 16], "batteri": 2, "servic": [2, 3, 6, 14], "current": 2, "level": [2, 6], "consol": [2, 3, 14, 16], "pleas": [2, 3, 6, 14, 16], "see": [2, 3, 6, 14, 16], "also": [2, 3, 6, 14, 16], "inform": [2, 3, 6, 14, 16], "bleakclient": [2, 3, 6, 14, 16], "battery_level": 2, "f": [2, 6], "here": [2, 6, 16], "sourc": [2, 3, 4, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16], "base": [2, 3, 4, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16], "wrapper": 2, "backend": 2, "basebleakcli": 2, "ad": 2, "specif": [2, 16], "util": 2, "method": 2, "paramet": [2, 8, 16], "valid": 2, "return": 2, "int": [2, 6, 8], "repres": [2, 16], "percentag": 2, "valu": [2, 3, 7, 8, 10, 12, 16], "100": [2, 6, 16], "indic": [2, 6], "fulli": 2, "charg": 2, "while": [2, 6, 16], "0": [2, 3, 4, 6, 8, 9, 10, 11, 12, 13, 14, 16], "discharg": 2, "power": [3, 6, 16], "most": [3, 16], "meter": 3, "some": [3, 6], "turbo": [3, 16], "measur": 3, "broadcast": [3, 14], "my_measurement_handl": [3, 14], "is_connect": [3, 14, 16], "sleep": [3, 6, 14, 16], "30": [3, 6, 14], "eaaa3d1f": [3, 16], "6760": [3, 16], "4d77": [3, 16], "961e": [3, 16], "8ddac1cc9a": [3, 16], "tupl": [3, 4, 6, 8, 9, 10, 11, 12, 13, 14, 16], "alia": [3, 4, 6, 8, 9, 10, 11, 12, 13, 14, 16], "field": [3, 4, 6, 8, 9, 10, 11, 12, 13, 14, 16], "6": [3, 8, 9, 10, 11, 12, 16], "11": [3, 9, 10, 11, 12], "12": [3, 9, 10, 11, 12], "10": [3, 6, 9, 10, 11, 12, 16], "3": [3, 4, 6, 8, 9, 10, 11, 12, 13, 16], "8": [3, 9, 10, 11, 12, 16], "5": [3, 6, 8, 9, 10, 11, 12, 16], "18": [3, 10], "17": [3, 10], "4": [3, 6, 8, 9, 10, 11, 12, 16], "16": [3, 9, 10, 12], "15": [3, 9, 10, 12], "9": [3, 9, 10, 11, 12, 16], "7": [3, 8, 9, 10, 11, 12, 16], "14": [3, 9, 10, 11, 12], "13": [3, 9, 10, 11, 12], "2": [3, 4, 6, 8, 9, 10, 11, 12, 13, 14, 16], "callback": [3, 4, 6, 13, 14, 15, 16], "name": [3, 8, 10, 12, 16], "none": [3, 6, 8, 10, 12, 16], "qualnam": [3, 8, 10, 12, 16], "type": [3, 8, 10, 12, 16], "start": [3, 6, 8, 10, 12, 16], "boundari": [3, 8, 10, 12, 16], "enum": [3, 8, 10, 12, 16], "fit": [6, 7, 10], "machin": 6, "ftm": [6, 16], "le": [6, 14], "relat": 6, "function": 6, "indoor": 6, "first": [6, 16], "read": 6, "characterist": 6, "resist": [6, 16], "rang": 6, "featur": [6, 16], "Then": 6, "notifi": 6, "stream": 6, "bike": [6, 16], "cadenc": [6, 16], "time": 6, "final": 6, "modifi": 6, "write": 6, "between": [6, 16], "target": [6, 16], "automat": 6, "adjust": [6, 16], "maintain": [6, 16], "same": 6, "timeout": 6, "supported_resistance_level_rang": 6, "max_resist": 6, "supported_power_rang": 6, "max_pow": 6, "print_indoor_bike_data": 6, "receiv": 6, "print_fitness_machine_statu": 6, "statu": [6, 7, 10], "t": 6, "print_training_statu": 6, "train": [6, 16], "befor": [6, 16], "being": 6, "abl": 6, "must": 6, "notif": 6, "control": 6, "point": 6, "print_control_point_respons": 6, "messag": [6, 8, 9, 10, 11, 12], "respons": 6, "request": 6, "recommend": [6, 16], "command": 6, "set": [6, 9, 16], "25": 6, "percent": 6, "maximum": [6, 7, 10], "increas": 6, "50": [6, 16], "power_level": 6, "w": 6, "leg": 6, "try": [6, 16], "pedal": [6, 16], "abov": 6, "feel": [6, 16], "decreas": 6, "vice": 6, "versa": 6, "unresolv": 6, "intermitt": 6, "bug": 6, "when": [6, 16], "exc": 6, "bleakdbuserror": 6, "org": 6, "bluez": 6, "error": [6, 7, 10], "att": 6, "0x80": 6, "To": [6, 16], "work": [6, 16], "just": 6, "retri": 6, "like": 6, "true": 6, "except": 6, "e": 6, "continu": 6, "keyboardinterrupt": 6, "break": 6, "request_code_enum": [7, 8], "result_code_enum": [7, 8], "response_cod": [7, 8], "set_target_inclin": [7, 8], "set_target_spe": [7, 8], "start_or_resum": [7, 8], "stop_or_paus": [7, 8], "control_not_permit": [7, 8], "incorrect_paramet": [7, 8], "operation_fail": [7, 8], "avg_speed_support": [7, 9], "cadence_support": [7, 9], "elapsed_time_support": [7, 9], "elevation_gain_support": [7, 9], "expended_energy_support": [7, 9], "force_on_belt_and_power_output_support": [7, 9], "heart_rate_measurement_support": [7, 9], "inclination_support": [7, 9], "metabolic_equivalent_support": [7, 9], "pace_support": [7, 9], "power_measurement_support": [7, 9], "remaining_time_support": [7, 9], "resistance_level_support": [7, 9], "step_count_support": [7, 9], "stride_count_support": [7, 9], "total_distance_support": [7, 9], "user_data_retention_support": [7, 9], "control_permission_lost": [7, 10], "new_dist": [7, 10], "new_expended_energi": [7, 10], "new_five_heart_rate_zone_target_tim": [7, 10], "new_heart_r": [7, 10], "new_inclin": [7, 10], "new_indoor_bike_simulation_paramet": [7, 10], "new_number_of_step": [7, 10], "new_number_of_strid": [7, 10], "new_pow": [7, 10], "new_resist": [7, 10], "new_spe": [7, 10], "new_spin_down_statu": [7, 10], "new_target_cad": [7, 10], "new_three_heart_rate_zone_target_tim": [7, 10], "new_training_tim": [7, 10], "new_two_heart_rate_zone_target_tim": [7, 10], "new_wheel_circumfer": [7, 10], "paused_by_us": [7, 10], "reserved_for_future_us": [7, 10], "started_by_us": [7, 10], "stopped_by_safety_kei": [7, 10], "stopped_by_us": [7, 10], "unit": [7, 10, 16], "hard": [7, 10, 16], "light": [7, 10], "moder": [7, 10], "very_light": [7, 10], "coefficient_of_rolling_resist": [7, 10, 16], "grade": [7, 10, 16], "wind_resistance_coeffici": [7, 10, 16], "wind_spe": [7, 10, 16], "spin_down_request": [7, 10], "stop_ped": [7, 10], "fat_burn": [7, 10], "average_cad": [7, 11], "average_pow": [7, 11], "average_spe": [7, 11], "energy_per_hour": [7, 11], "energy_per_minut": [7, 11], "instant_cad": [7, 11], "instant_pow": [7, 11], "instant_spe": [7, 11], "metabolic_equival": [7, 11], "remaining_tim": [7, 11], "resistance_level": [7, 11], "total_dist": [7, 11], "total_energi": [7, 11], "cool_down": [7, 12], "fitness_test": [7, 12], "heart_rate_control": [7, 12], "high_intensity_interv": [7, 12], "idl": [7, 12], "isometr": [7, 12], "low_intensity_interv": [7, 12], "manual_mod": [7, 12], "post_workout": [7, 12], "pre_workout": [7, 12], "recovery_interv": [7, 12], "speed_outside_control_region_high": [7, 12], "speed_outside_control_region_low": [7, 12], "warming_up": [7, 12], "watt_control": [7, 12], "param": [7, 12], "string": [7, 12], "128": 8, "opcod": 8, "bytearrai": [8, 9, 10, 12], "bit": 9, "flag": 9, "ar": [9, 14, 16], "across": 9, "two": [9, 16], "23": 10, "19": 10, "21": 10, "22": 10, "20": [10, 16], "three": 10, "item": 10, "associ": 10, "dictionari": 10, "namedtupl": 10, "radar": 14, "rdr": 14, "jason": 14, "sohn": 14, "2022": 14, "test": 14, "garmin": 14, "varia": 14, "rvr315": 14, "model": 14, "expect": 14, "rtr515": 14, "rtr516": 14, "german": 14, "market": 14, "version": 14, "rct715": 14, "bryton": 14, "gardia": 14, "r300": 14, "magen": 14, "l508": 14, "radar_servic": 14, "device_address_her": 14, "tacx": 16, "protocol": 16, "variat": 16, "ant": 16, "fe": 16, "c": 16, "standard": 16, "ble": 16, "instead": 16, "releas": 16, "mani": 16, "now": 16, "common": 16, "wa": 16, "finalis": 16, "facilit": 16, "neo": 16, "road": 16, "defin": 16, "few": 16, "understand": 16, "differ": 16, "littl": 16, "theori": 16, "requir": 16, "fundament": 16, "forc": 16, "come": 16, "plai": 16, "These": 16, "typic": 16, "roll": 16, "wind": 16, "gravit": 16, "thei": 16, "would": 16, "bring": 16, "back": 16, "stop": 16, "inerti": 16, "chang": 16, "veloc": 16, "think": 16, "newton": 16, "": 16, "second": 16, "law": 16, "against": 16, "acceler": 16, "make": 16, "get": 16, "go": 16, "even": 16, "harder": 16, "heavier": 16, "howev": 16, "favour": 16, "help": 16, "counter": 16, "slow": 16, "down": 16, "allow": 16, "coast": 16, "along": 16, "appli": 16, "through": 16, "heavi": 16, "flywheel": 16, "brake": 16, "somewhat": 16, "uniqu": 16, "both": 16, "electromagnet": 16, "alter": 16, "applic": 16, "onli": 16, "ll": 16, "explain": 16, "word": 16, "what": 16, "doe": 16, "basic": 16, "simpl": 16, "directli": 16, "It": 16, "assum": 16, "small": 16, "preset": 16, "rider": 16, "mass": 16, "mean": 16, "simul": 16, "becaus": 16, "therefor": 16, "incorrect": 16, "In": 16, "activ": 16, "comput": 16, "intern": 16, "physic": 16, "equat": 16, "configur": 16, "track": 16, "inclin": 16, "For": 16, "full": 16, "detail": 16, "refer": 16, "dynam": 16, "so": 16, "correct": 16, "strongli": 16, "ani": 16, "zwift": 16, "etc": 16, "erg": 16, "exert": 16, "order": 16, "constant": 16, "output": 16, "isokinet": 16, "info": 16, "isoton": 16, "special": 16, "case": 16, "where": 16, "zero": 16, "rather": 16, "than": 16, "weight": 16, "user": 16, "drag": 16, "initi": 16, "later": 16, "40": 16, "my_page_handl": 16, "surfac": 16, "page_numb": 16, "specifi": 16, "isokinetic_mod": 16, "fals": 16, "isokinetic_spe": 16, "road_surface_pattern": 16, "road_surface_pattern_intens": 16, "255": 16, "enabl": 16, "intens": 16, "note": 16, "fairli": 16, "untest": 16, "mai": 16, "damag": 16, "target_pow": 16, "watt": 16, "slope": 16, "coeffici": 16, "dimensionless": 16, "user_weight": 16, "bicycle_weight": 16, "bicycle_wheel_diamet": 16, "gear_ratio": 16, "kilogram": 16, "bicycl": 16, "diamet": 16, "wheel": 16, "metr": 16, "gear": 16, "ratio": 16, "front": 16, "chain": 16, "ring": 16, "teeth": 16, "rear": 16, "cog": 16, "drafting_factor": 16, "product": 16, "frontal": 16, "area": 16, "air": 16, "densiti": 16, "kg": 16, "m": 16, "act": 16, "cyclist": 16, "km": 16, "h": 16, "posit": 16, "head": 16, "neg": 16, "tail": 16, "scale": 16, "draft": 16, "behind": 16, "virtual": 16, "oppon": 16}, "objects": {"": [[1, 0, 0, "-", "pycycling"]], "pycycling": [[2, 0, 0, "-", "battery_service"], [3, 0, 0, "-", "cycling_power_service"], [4, 0, 0, "-", "cycling_speed_cadence_service"], [5, 0, 0, "-", "data"], [6, 0, 0, "-", "fitness_machine_service"], [7, 0, 0, "-", "ftms_parsers"], [13, 0, 0, "-", "heart_rate_service"], [14, 0, 0, "-", "rear_view_radar"], [15, 0, 0, "-", "sterzo"], [16, 0, 0, "-", "tacx_trainer_control"]], "pycycling.battery_service": [[2, 1, 1, "", "BatteryService"]], "pycycling.battery_service.BatteryService": [[2, 2, 1, "", "get_battery_level"]], "pycycling.cycling_power_service": [[3, 1, 1, "", "CyclingPowerFeature"], [3, 1, 1, "", "CyclingPowerMeasurement"], [3, 1, 1, "", "CyclingPowerService"], [3, 1, 1, "", "CyclingPowerVector"], [3, 1, 1, "", "DistributeSystemSupport"], [3, 1, 1, "", "InstantaneousMeasurementDirection"], [3, 1, 1, "", "SensorLocation"], [3, 1, 1, "", "SensorMeasurementContext"]], "pycycling.cycling_power_service.CyclingPowerFeature": [[3, 3, 1, "", "accumulated_energy_supported"], [3, 3, 1, "", "accumulated_torque_supported"], [3, 3, 1, "", "chain_length_adjustment_supported"], [3, 3, 1, "", "chain_weight_adjustment_supported"], [3, 3, 1, "", "crank_length_adjustment_supported"], [3, 3, 1, "", "crank_rev_supported"], [3, 3, 1, "", "cycling_power_measurement_content_masking_supported"], [3, 3, 1, "", "dead_spot_angles_supported"], [3, 3, 1, "", "distribute_system_support"], [3, 3, 1, "", "enhanced_offset_compensation_supported"], [3, 3, 1, "", "extreme_magnitudes_supported"], [3, 3, 1, "", "factory_calibration_date_supported"], [3, 3, 1, "", "instantaneous_measurement_direction_supported"], [3, 3, 1, "", "multiple_locations_supported"], [3, 3, 1, "", "offset_compensation_supported"], [3, 3, 1, "", "pedal_power_balance_supported"], [3, 3, 1, "", "sensor_measurement_context"], [3, 3, 1, "", "span_length_adjustment_supported"], [3, 3, 1, "", "wheel_rev_supported"]], "pycycling.cycling_power_service.CyclingPowerMeasurement": [[3, 3, 1, "", "accumulated_energy"], [3, 3, 1, "", "accumulated_torque"], [3, 3, 1, "", "bottom_dead_spot_angle"], [3, 3, 1, "", "cumulative_crank_revs"], [3, 3, 1, "", "cumulative_wheel_revs"], [3, 3, 1, "", "instantaneous_power"], [3, 3, 1, "", "last_crank_event_time"], [3, 3, 1, "", "last_wheel_event_time"], [3, 3, 1, "", "maximum_force_magnitude"], [3, 3, 1, "", "maximum_torque_magnitude"], [3, 3, 1, "", "minimum_force_magnitude"], [3, 3, 1, "", "minimum_torque_magnitude"], [3, 3, 1, "", "pedal_power_balance"], [3, 3, 1, "", "top_dead_spot_angle"]], "pycycling.cycling_power_service.CyclingPowerService": [[3, 2, 1, "", "disable_cycling_power_measurement_notifications"], [3, 2, 1, "", "disable_cycling_power_vector_notifications"], [3, 2, 1, "", "enable_cycling_power_measurement_notifications"], [3, 2, 1, "", "enable_cycling_power_vector_notifications"], [3, 2, 1, "", "get_cycling_power_feature"], [3, 2, 1, "", "get_sensor_location"], [3, 2, 1, "", "set_cycling_power_measurement_handler"], [3, 2, 1, "", "set_cycling_power_vector_handler"]], "pycycling.cycling_power_service.CyclingPowerVector": [[3, 3, 1, "", "cumulative_crank_revs"], [3, 3, 1, "", "first_crank_measurement_angle"], [3, 3, 1, "", "instantaneous_force_magnitudes"], [3, 3, 1, "", "instantaneous_measurement_direction"], [3, 3, 1, "", "instantaneous_torque_magnitudes"], [3, 3, 1, "", "last_crank_event_time"]], "pycycling.cycling_power_service.DistributeSystemSupport": [[3, 3, 1, "", "distributed_system_support"], [3, 3, 1, "", "no_distributed_system_support"], [3, 3, 1, "", "rfu"], [3, 3, 1, "", "unspecified"]], "pycycling.cycling_power_service.InstantaneousMeasurementDirection": [[3, 3, 1, "", "lateral_component"], [3, 3, 1, "", "radial_component"], [3, 3, 1, "", "tangential_component"], [3, 3, 1, "", "unknown"]], "pycycling.cycling_power_service.SensorLocation": [[3, 3, 1, "", "chain_ring"], [3, 3, 1, "", "chainstay"], [3, 3, 1, "", "chest"], [3, 3, 1, "", "front_hub"], [3, 3, 1, "", "front_wheel"], [3, 3, 1, "", "hip"], [3, 3, 1, "", "in_shoe"], [3, 3, 1, "", "left_crank"], [3, 3, 1, "", "left_pedal"], [3, 3, 1, "", "other"], [3, 3, 1, "", "rear_dropout"], [3, 3, 1, "", "rear_hub"], [3, 3, 1, "", "rear_wheel"], [3, 3, 1, "", "right_crank"], [3, 3, 1, "", "right_pedal"], [3, 3, 1, "", "spider"], [3, 3, 1, "", "top_of_shoe"]], "pycycling.cycling_power_service.SensorMeasurementContext": [[3, 3, 1, "", "force_based"], [3, 3, 1, "", "torque_based"]], "pycycling.cycling_speed_cadence_service": [[4, 1, 1, "", "CSCFeature"], [4, 1, 1, "", "CSCMeasurement"], [4, 1, 1, "", "CyclingSpeedCadenceService"]], "pycycling.cycling_speed_cadence_service.CSCFeature": [[4, 3, 1, "", "crank_rev_supported"], [4, 3, 1, "", "multiple_locations_supported"], [4, 3, 1, "", "wheel_rev_supported"]], "pycycling.cycling_speed_cadence_service.CSCMeasurement": [[4, 3, 1, "", "cumulative_crank_revs"], [4, 3, 1, "", "cumulative_wheel_revs"], [4, 3, 1, "", "last_crank_event_time"], [4, 3, 1, "", "last_wheel_event_time"]], "pycycling.cycling_speed_cadence_service.CyclingSpeedCadenceService": [[4, 2, 1, "", "disable_csc_measurement_notifications"], [4, 2, 1, "", "enable_csc_measurement_notifications"], [4, 2, 1, "", "get_csc_feature"], [4, 2, 1, "", "set_csc_measurement_handler"]], "pycycling.fitness_machine_service": [[6, 1, 1, "", "FitnessMachineService"], [6, 1, 1, "", "SupportedPowerRange"], [6, 1, 1, "", "SupportedResistanceLevelRange"]], "pycycling.fitness_machine_service.FitnessMachineService": [[6, 2, 1, "", "disable_control_point_indicate"], [6, 2, 1, "", "disable_fitness_machine_status_notify"], [6, 2, 1, "", "disable_indoor_bike_data_notify"], [6, 2, 1, "", "disable_training_status_notify"], [6, 2, 1, "", "enable_control_point_indicate"], [6, 2, 1, "", "enable_fitness_machine_status_notify"], [6, 2, 1, "", "enable_indoor_bike_data_notify"], [6, 2, 1, "", "enable_training_status_notify"], [6, 2, 1, "", "get_fitness_machine_feature"], [6, 2, 1, "", "get_supported_power_range"], [6, 2, 1, "", "get_supported_resistance_level_range"], [6, 2, 1, "", "request_control"], [6, 2, 1, "", "reset"], [6, 2, 1, "", "set_control_point_response_handler"], [6, 2, 1, "", "set_fitness_machine_status_handler"], [6, 2, 1, "", "set_indoor_bike_data_handler"], [6, 2, 1, "", "set_target_power"], [6, 2, 1, "", "set_target_resistance_level"], [6, 2, 1, "", "set_training_status_handler"]], "pycycling.fitness_machine_service.SupportedPowerRange": [[6, 3, 1, "", "maximum_power"], [6, 3, 1, "", "minimum_increment"], [6, 3, 1, "", "minimum_power"]], "pycycling.fitness_machine_service.SupportedResistanceLevelRange": [[6, 3, 1, "", "maximum_resistance"], [6, 3, 1, "", "minimum_increment"], [6, 3, 1, "", "minimum_resistance"]], "pycycling.ftms_parsers": [[8, 0, 0, "-", "control_point"], [9, 0, 0, "-", "fitness_machine_feature"], [10, 0, 0, "-", "fitness_machine_status"], [11, 0, 0, "-", "indoor_bike_data"], [12, 0, 0, "-", "training_status"]], "pycycling.ftms_parsers.control_point": [[8, 1, 1, "", "ControlPointResponse"], [8, 1, 1, "", "FTMSControlPointOpCode"], [8, 1, 1, "", "FTMSControlPointResponseResultCode"], [8, 4, 1, "", "form_ftms_control_command"], [8, 4, 1, "", "parse_control_point_response"]], "pycycling.ftms_parsers.control_point.ControlPointResponse": [[8, 3, 1, "", "request_code_enum"], [8, 3, 1, "", "result_code_enum"]], "pycycling.ftms_parsers.control_point.FTMSControlPointOpCode": [[8, 3, 1, "", "REQUEST_CONTROL"], [8, 3, 1, "", "RESET"], [8, 3, 1, "", "RESPONSE_CODE"], [8, 3, 1, "", "SET_TARGET_INCLINE"], [8, 3, 1, "", "SET_TARGET_POWER"], [8, 3, 1, "", "SET_TARGET_RESISTANCE_LEVEL"], [8, 3, 1, "", "SET_TARGET_SPEED"], [8, 3, 1, "", "START_OR_RESUME"], [8, 3, 1, "", "STOP_OR_PAUSE"]], "pycycling.ftms_parsers.control_point.FTMSControlPointResponseResultCode": [[8, 3, 1, "", "CONTROL_NOT_PERMITTED"], [8, 3, 1, "", "INCORRECT_PARAMETER"], [8, 3, 1, "", "NOT_SUPPORTED"], [8, 3, 1, "", "OPERATION_FAILED"], [8, 3, 1, "", "SUCCESS"]], "pycycling.ftms_parsers.fitness_machine_feature": [[9, 1, 1, "", "FitnessMachineFeature"], [9, 4, 1, "", "parse_fitness_machine_feature"]], "pycycling.ftms_parsers.fitness_machine_feature.FitnessMachineFeature": [[9, 3, 1, "", "avg_speed_supported"], [9, 3, 1, "", "cadence_supported"], [9, 3, 1, "", "elapsed_time_supported"], [9, 3, 1, "", "elevation_gain_supported"], [9, 3, 1, "", "expended_energy_supported"], [9, 3, 1, "", "force_on_belt_and_power_output_supported"], [9, 3, 1, "", "heart_rate_measurement_supported"], [9, 3, 1, "", "inclination_supported"], [9, 3, 1, "", "metabolic_equivalent_supported"], [9, 3, 1, "", "pace_supported"], [9, 3, 1, "", "power_measurement_supported"], [9, 3, 1, "", "remaining_time_supported"], [9, 3, 1, "", "resistance_level_supported"], [9, 3, 1, "", "step_count_supported"], [9, 3, 1, "", "stride_count_supported"], [9, 3, 1, "", "total_distance_supported"], [9, 3, 1, "", "user_data_retention_supported"]], "pycycling.ftms_parsers.fitness_machine_status": [[10, 1, 1, "", "FitnessMachineStatus"], [10, 1, 1, "", "FitnessMachineStatusMessage"], [10, 1, 1, "", "FiveZoneHR"], [10, 1, 1, "", "IndoorBikeSimulationParameters"], [10, 1, 1, "", "SpinDownStatusValue"], [10, 1, 1, "", "ThreeZoneHR"], [10, 1, 1, "", "TwoZoneHR"], [10, 4, 1, "", "parse_fitness_machine_status"]], "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatus": [[10, 3, 1, "", "CONTROL_PERMISSION_LOST"], [10, 3, 1, "", "NEW_DISTANCE"], [10, 3, 1, "", "NEW_EXPENDED_ENERGY"], [10, 3, 1, "", "NEW_FIVE_HEART_RATE_ZONE_TARGET_TIME"], [10, 3, 1, "", "NEW_HEART_RATE"], [10, 3, 1, "", "NEW_INCLINATION"], [10, 3, 1, "", "NEW_INDOOR_BIKE_SIMULATION_PARAMETERS"], [10, 3, 1, "", "NEW_NUMBER_OF_STEPS"], [10, 3, 1, "", "NEW_NUMBER_OF_STRIDES"], [10, 3, 1, "", "NEW_POWER"], [10, 3, 1, "", "NEW_RESISTANCE"], [10, 3, 1, "", "NEW_SPEED"], [10, 3, 1, "", "NEW_SPIN_DOWN_STATUS"], [10, 3, 1, "", "NEW_TARGET_CADENCE"], [10, 3, 1, "", "NEW_THREE_HEART_RATE_ZONE_TARGET_TIME"], [10, 3, 1, "", "NEW_TRAINING_TIME"], [10, 3, 1, "", "NEW_TWO_HEART_RATE_ZONE_TARGET_TIME"], [10, 3, 1, "", "NEW_WHEEL_CIRCUMFERENCE"], [10, 3, 1, "", "PAUSED_BY_USER"], [10, 3, 1, "", "RESERVED_FOR_FUTURE_USE"], [10, 3, 1, "", "RESET"], [10, 3, 1, "", "STARTED_BY_USER"], [10, 3, 1, "", "STOPPED_BY_SAFETY_KEY"], [10, 3, 1, "", "STOPPED_BY_USER"]], "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatusMessage": [[10, 3, 1, "", "status"], [10, 3, 1, "", "unit"], [10, 3, 1, "", "value"]], "pycycling.ftms_parsers.fitness_machine_status.FiveZoneHR": [[10, 3, 1, "", "hard"], [10, 3, 1, "", "light"], [10, 3, 1, "", "maximum"], [10, 3, 1, "", "moderate"], [10, 3, 1, "", "very_light"]], "pycycling.ftms_parsers.fitness_machine_status.IndoorBikeSimulationParameters": [[10, 3, 1, "", "coefficient_of_rolling_resistance"], [10, 3, 1, "", "grade"], [10, 3, 1, "", "wind_resistance_coefficient"], [10, 3, 1, "", "wind_speed"]], "pycycling.ftms_parsers.fitness_machine_status.SpinDownStatusValue": [[10, 3, 1, "", "ERROR"], [10, 3, 1, "", "RESERVED_FOR_FUTURE_USE"], [10, 3, 1, "", "SPIN_DOWN_REQUESTED"], [10, 3, 1, "", "STOP_PEDALING"], [10, 3, 1, "", "SUCCESS"]], "pycycling.ftms_parsers.fitness_machine_status.ThreeZoneHR": [[10, 3, 1, "", "light"], [10, 3, 1, "", "moderate"], [10, 3, 1, "", "very_light"]], "pycycling.ftms_parsers.fitness_machine_status.TwoZoneHR": [[10, 3, 1, "", "fat_burn"], [10, 3, 1, "", "fitness"]], "pycycling.ftms_parsers.indoor_bike_data": [[11, 1, 1, "", "IndoorBikeData"], [11, 4, 1, "", "parse_indoor_bike_data"]], "pycycling.ftms_parsers.indoor_bike_data.IndoorBikeData": [[11, 3, 1, "", "average_cadence"], [11, 3, 1, "", "average_power"], [11, 3, 1, "", "average_speed"], [11, 3, 1, "", "elapsed_time"], [11, 3, 1, "", "energy_per_hour"], [11, 3, 1, "", "energy_per_minute"], [11, 3, 1, "", "heart_rate"], [11, 3, 1, "", "instant_cadence"], [11, 3, 1, "", "instant_power"], [11, 3, 1, "", "instant_speed"], [11, 3, 1, "", "metabolic_equivalent"], [11, 3, 1, "", "remaining_time"], [11, 3, 1, "", "resistance_level"], [11, 3, 1, "", "total_distance"], [11, 3, 1, "", "total_energy"]], "pycycling.ftms_parsers.training_status": [[12, 1, 1, "", "TrainingStatus"], [12, 1, 1, "", "TrainingStatusMessage"], [12, 4, 1, "", "parse_training_status"]], "pycycling.ftms_parsers.training_status.TrainingStatus": [[12, 3, 1, "", "COOL_DOWN"], [12, 3, 1, "", "FITNESS_TEST"], [12, 3, 1, "", "HEART_RATE_CONTROL"], [12, 3, 1, "", "HIGH_INTENSITY_INTERVAL"], [12, 3, 1, "", "IDLE"], [12, 3, 1, "", "ISOMETRIC"], [12, 3, 1, "", "LOW_INTENSITY_INTERVAL"], [12, 3, 1, "", "MANUAL_MODE"], [12, 3, 1, "", "OTHER"], [12, 3, 1, "", "POST_WORKOUT"], [12, 3, 1, "", "PRE_WORKOUT"], [12, 3, 1, "", "RECOVERY_INTERVAL"], [12, 3, 1, "", "RESERVED"], [12, 3, 1, "", "SPEED_OUTSIDE_CONTROL_REGION_HIGH"], [12, 3, 1, "", "SPEED_OUTSIDE_CONTROL_REGION_LOW"], [12, 3, 1, "", "WARMING_UP"], [12, 3, 1, "", "WATT_CONTROL"]], "pycycling.ftms_parsers.training_status.TrainingStatusMessage": [[12, 3, 1, "", "param"], [12, 3, 1, "", "string"]], "pycycling.heart_rate_service": [[13, 1, 1, "", "HeartRateMeasurement"], [13, 1, 1, "", "HeartRateService"]], "pycycling.heart_rate_service.HeartRateMeasurement": [[13, 3, 1, "", "bpm"], [13, 3, 1, "", "energy_expended"], [13, 3, 1, "", "rr_interval"], [13, 3, 1, "", "sensor_contact"]], "pycycling.heart_rate_service.HeartRateService": [[13, 2, 1, "", "disable_hr_measurement_notifications"], [13, 2, 1, "", "enable_hr_measurement_notifications"], [13, 2, 1, "", "set_hr_measurement_handler"]], "pycycling.rear_view_radar": [[14, 1, 1, "", "RadarMeasurement"], [14, 1, 1, "", "RearViewRadarService"]], "pycycling.rear_view_radar.RadarMeasurement": [[14, 3, 1, "", "distance"], [14, 3, 1, "", "speed"], [14, 3, 1, "", "threat_id"]], "pycycling.rear_view_radar.RearViewRadarService": [[14, 2, 1, "", "disable_radar_measurement_notifications"], [14, 2, 1, "", "enable_radar_measurement_notifications"], [14, 2, 1, "", "set_radar_measurement_handler"]], "pycycling.sterzo": [[15, 1, 1, "", "Sterzo"]], "pycycling.sterzo.Sterzo": [[15, 2, 1, "", "disable_steering_measurement_notifications"], [15, 2, 1, "", "enable_steering_measurement_notifications"], [15, 2, 1, "", "set_steering_measurement_callback"]], "pycycling.tacx_trainer_control": [[16, 1, 1, "", "CommandStatus"], [16, 1, 1, "", "CommandStatusData"], [16, 1, 1, "", "EquipmentType"], [16, 1, 1, "", "FEState"], [16, 1, 1, "", "GeneralFEData"], [16, 1, 1, "", "RoadSurface"], [16, 1, 1, "", "SpecificTrainerData"], [16, 1, 1, "", "TacxTrainerControl"], [16, 1, 1, "", "TargetPowerLimit"]], "pycycling.tacx_trainer_control.CommandStatus": [[16, 3, 1, "", "fail"], [16, 3, 1, "", "not_supported"], [16, 3, 1, "", "rejected"], [16, 3, 1, "", "success"], [16, 3, 1, "", "uninitialized"]], "pycycling.tacx_trainer_control.CommandStatusData": [[16, 3, 1, "", "command_status"], [16, 3, 1, "", "data"], [16, 3, 1, "", "last_received_command"]], "pycycling.tacx_trainer_control.EquipmentType": [[16, 3, 1, "", "climber"], [16, 3, 1, "", "elliptical"], [16, 3, 1, "", "nordic_skier"], [16, 3, 1, "", "reserved"], [16, 3, 1, "", "rower"], [16, 3, 1, "", "trainer"], [16, 3, 1, "", "treadmill"]], "pycycling.tacx_trainer_control.FEState": [[16, 3, 1, "", "finished"], [16, 3, 1, "", "in_use"], [16, 3, 1, "", "ready"], [16, 3, 1, "", "reserved"]], "pycycling.tacx_trainer_control.GeneralFEData": [[16, 3, 1, "", "distance_travelled"], [16, 3, 1, "", "elapsed_time"], [16, 3, 1, "", "equipment_type"], [16, 3, 1, "", "fe_state"], [16, 3, 1, "", "heart_rate"], [16, 3, 1, "", "lap_toggle"], [16, 3, 1, "", "speed"]], "pycycling.tacx_trainer_control.RoadSurface": [[16, 3, 1, "", "BRICK_ROAD"], [16, 3, 1, "", "CATTLE_GRID"], [16, 3, 1, "", "COBBLESTONES_HARD"], [16, 3, 1, "", "COBBLESTONES_SOFT"], [16, 3, 1, "", "CONCRETE_PLATES"], [16, 3, 1, "", "GRAVEL"], [16, 3, 1, "", "ICE"], [16, 3, 1, "", "OFF_ROAD"], [16, 3, 1, "", "SIMULATION_OFF"], [16, 3, 1, "", "WOODEN_BOARDS"]], "pycycling.tacx_trainer_control.SpecificTrainerData": [[16, 3, 1, "", "accumulated_power"], [16, 3, 1, "", "fe_state"], [16, 3, 1, "", "instantaneous_cadence"], [16, 3, 1, "", "instantaneous_power"], [16, 3, 1, "", "lap_toggle"], [16, 3, 1, "", "power_calibration_required"], [16, 3, 1, "", "resistance_calibration_required"], [16, 3, 1, "", "target_power_limits"], [16, 3, 1, "", "trainer_status"], [16, 3, 1, "", "update_event_count"], [16, 3, 1, "", "user_configuration_required"]], "pycycling.tacx_trainer_control.TacxTrainerControl": [[16, 2, 1, "", "disable_fec_notifications"], [16, 2, 1, "", "enable_fec_notifications"], [16, 2, 1, "", "request_data_page"], [16, 2, 1, "", "set_basic_resistance"], [16, 2, 1, "", "set_command_status_data_page_handler"], [16, 2, 1, "", "set_general_fe_data_page_handler"], [16, 2, 1, "", "set_neo_modes"], [16, 2, 1, "", "set_specific_trainer_data_page_handler"], [16, 2, 1, "", "set_target_power"], [16, 2, 1, "", "set_track_resistance"], [16, 2, 1, "", "set_user_configuration"], [16, 2, 1, "", "set_wind_resistance"]], "pycycling.tacx_trainer_control.TargetPowerLimit": [[16, 3, 1, "", "limit_reached"], [16, 3, 1, "", "operating_at_target_or_no_target_set"], [16, 3, 1, "", "user_speed_too_high"], [16, 3, 1, "", "user_speed_too_low"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:attribute", "4": "py:function"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "function", "Python function"]}, "titleterms": {"welcom": 0, "pycycl": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16], "": 0, "document": 0, "content": [0, 1, 5, 7], "indic": 0, "tabl": 0, "packag": [1, 5, 7], "subpackag": 1, "submodul": [1, 7], "modul": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16], "obtain": 1, "address": 1, "your": 1, "devic": 1, "battery_servic": 2, "exampl": [2, 3, 6, 14, 16], "cycling_power_servic": 3, "cycling_speed_cadence_servic": 4, "data": 5, "fitness_machine_servic": 6, "ftms_parser": [7, 8, 9, 10, 11, 12], "control_point": 8, "fitness_machine_featur": 9, "fitness_machine_statu": 10, "indoor_bike_data": 11, "training_statu": 12, "heart_rate_servic": 13, "rear_view_radar": 14, "sterzo": 15, "tacx_trainer_control": 16, "smart": 16, "trainer": 16, "mode": 16, "oper": 16}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1, "sphinx.ext.todo": 2, "sphinx": 60}, "alltitles": {"Welcome to pycycling\u2019s documentation!": [[0, "welcome-to-pycycling-s-documentation"]], "Contents:": [[0, null]], "Indices and tables": [[0, "indices-and-tables"]], "pycycling package": [[1, "pycycling-package"]], "Subpackages": [[1, "subpackages"]], "Submodules": [[1, "submodules"], [7, "submodules"]], "Module contents": [[1, "module-pycycling"], [5, "module-pycycling.data"], [7, "module-pycycling.ftms_parsers"]], "Obtaining the address of your device": [[1, "obtaining-the-address-of-your-device"]], "pycycling.battery_service module": [[2, "module-pycycling.battery_service"]], "Example": [[2, "example"], [3, "example"], [6, "example"], [14, "example"], [16, "example"]], "pycycling.cycling_power_service module": [[3, "module-pycycling.cycling_power_service"]], "pycycling.cycling_speed_cadence_service module": [[4, "module-pycycling.cycling_speed_cadence_service"]], "pycycling.data package": [[5, "pycycling-data-package"]], "pycycling.fitness_machine_service module": [[6, "module-pycycling.fitness_machine_service"]], "pycycling.ftms_parsers package": [[7, "pycycling-ftms-parsers-package"]], "pycycling.ftms_parsers.control_point module": [[8, "module-pycycling.ftms_parsers.control_point"]], "pycycling.ftms_parsers.fitness_machine_feature module": [[9, "module-pycycling.ftms_parsers.fitness_machine_feature"]], "pycycling.ftms_parsers.fitness_machine_status module": [[10, "module-pycycling.ftms_parsers.fitness_machine_status"]], "pycycling.ftms_parsers.indoor_bike_data module": [[11, "module-pycycling.ftms_parsers.indoor_bike_data"]], "pycycling.ftms_parsers.training_status module": [[12, "module-pycycling.ftms_parsers.training_status"]], "pycycling.heart_rate_service module": [[13, "module-pycycling.heart_rate_service"]], "pycycling.rear_view_radar module": [[14, "module-pycycling.rear_view_radar"]], "pycycling.sterzo module": [[15, "module-pycycling.sterzo"]], "pycycling.tacx_trainer_control module": [[16, "module-pycycling.tacx_trainer_control"]], "Smart trainer modes of operation": [[16, "smart-trainer-modes-of-operation"]]}, "indexentries": {"module": [[1, "module-pycycling"], [2, "module-pycycling.battery_service"], [3, "module-pycycling.cycling_power_service"], [4, "module-pycycling.cycling_speed_cadence_service"], [5, "module-pycycling.data"], [6, "module-pycycling.fitness_machine_service"], [7, "module-pycycling.ftms_parsers"], [8, "module-pycycling.ftms_parsers.control_point"], [9, "module-pycycling.ftms_parsers.fitness_machine_feature"], [10, "module-pycycling.ftms_parsers.fitness_machine_status"], [11, "module-pycycling.ftms_parsers.indoor_bike_data"], [12, "module-pycycling.ftms_parsers.training_status"], [13, "module-pycycling.heart_rate_service"], [14, "module-pycycling.rear_view_radar"], [15, "module-pycycling.sterzo"], [16, "module-pycycling.tacx_trainer_control"]], "pycycling": [[1, "module-pycycling"]], "batteryservice (class in pycycling.battery_service)": [[2, "pycycling.battery_service.BatteryService"]], "get_battery_level() (pycycling.battery_service.batteryservice method)": [[2, "pycycling.battery_service.BatteryService.get_battery_level"]], "pycycling.battery_service": [[2, "module-pycycling.battery_service"]], "cyclingpowerfeature (class in pycycling.cycling_power_service)": [[3, "pycycling.cycling_power_service.CyclingPowerFeature"]], "cyclingpowermeasurement (class in pycycling.cycling_power_service)": [[3, "pycycling.cycling_power_service.CyclingPowerMeasurement"]], "cyclingpowerservice (class in pycycling.cycling_power_service)": [[3, "pycycling.cycling_power_service.CyclingPowerService"]], "cyclingpowervector (class in pycycling.cycling_power_service)": [[3, "pycycling.cycling_power_service.CyclingPowerVector"]], "distributesystemsupport (class in pycycling.cycling_power_service)": [[3, "pycycling.cycling_power_service.DistributeSystemSupport"]], "instantaneousmeasurementdirection (class in pycycling.cycling_power_service)": [[3, "pycycling.cycling_power_service.InstantaneousMeasurementDirection"]], "sensorlocation (class in pycycling.cycling_power_service)": [[3, "pycycling.cycling_power_service.SensorLocation"]], "sensormeasurementcontext (class in pycycling.cycling_power_service)": [[3, "pycycling.cycling_power_service.SensorMeasurementContext"]], "accumulated_energy (pycycling.cycling_power_service.cyclingpowermeasurement attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerMeasurement.accumulated_energy"]], "accumulated_energy_supported (pycycling.cycling_power_service.cyclingpowerfeature attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerFeature.accumulated_energy_supported"]], "accumulated_torque (pycycling.cycling_power_service.cyclingpowermeasurement attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerMeasurement.accumulated_torque"]], "accumulated_torque_supported (pycycling.cycling_power_service.cyclingpowerfeature attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerFeature.accumulated_torque_supported"]], "bottom_dead_spot_angle (pycycling.cycling_power_service.cyclingpowermeasurement attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerMeasurement.bottom_dead_spot_angle"]], "chain_length_adjustment_supported (pycycling.cycling_power_service.cyclingpowerfeature attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerFeature.chain_length_adjustment_supported"]], "chain_ring (pycycling.cycling_power_service.sensorlocation attribute)": [[3, "pycycling.cycling_power_service.SensorLocation.chain_ring"]], "chain_weight_adjustment_supported (pycycling.cycling_power_service.cyclingpowerfeature attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerFeature.chain_weight_adjustment_supported"]], "chainstay (pycycling.cycling_power_service.sensorlocation attribute)": [[3, "pycycling.cycling_power_service.SensorLocation.chainstay"]], "chest (pycycling.cycling_power_service.sensorlocation attribute)": [[3, "pycycling.cycling_power_service.SensorLocation.chest"]], "crank_length_adjustment_supported (pycycling.cycling_power_service.cyclingpowerfeature attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerFeature.crank_length_adjustment_supported"]], "crank_rev_supported (pycycling.cycling_power_service.cyclingpowerfeature attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerFeature.crank_rev_supported"]], "cumulative_crank_revs (pycycling.cycling_power_service.cyclingpowermeasurement attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerMeasurement.cumulative_crank_revs"]], "cumulative_crank_revs (pycycling.cycling_power_service.cyclingpowervector attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerVector.cumulative_crank_revs"]], "cumulative_wheel_revs (pycycling.cycling_power_service.cyclingpowermeasurement attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerMeasurement.cumulative_wheel_revs"]], "cycling_power_measurement_content_masking_supported (pycycling.cycling_power_service.cyclingpowerfeature attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerFeature.cycling_power_measurement_content_masking_supported"]], "dead_spot_angles_supported (pycycling.cycling_power_service.cyclingpowerfeature attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerFeature.dead_spot_angles_supported"]], "disable_cycling_power_measurement_notifications() (pycycling.cycling_power_service.cyclingpowerservice method)": [[3, "pycycling.cycling_power_service.CyclingPowerService.disable_cycling_power_measurement_notifications"]], "disable_cycling_power_vector_notifications() (pycycling.cycling_power_service.cyclingpowerservice method)": [[3, "pycycling.cycling_power_service.CyclingPowerService.disable_cycling_power_vector_notifications"]], "distribute_system_support (pycycling.cycling_power_service.cyclingpowerfeature attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerFeature.distribute_system_support"]], "distributed_system_support (pycycling.cycling_power_service.distributesystemsupport attribute)": [[3, "pycycling.cycling_power_service.DistributeSystemSupport.distributed_system_support"]], "enable_cycling_power_measurement_notifications() (pycycling.cycling_power_service.cyclingpowerservice method)": [[3, "pycycling.cycling_power_service.CyclingPowerService.enable_cycling_power_measurement_notifications"]], "enable_cycling_power_vector_notifications() (pycycling.cycling_power_service.cyclingpowerservice method)": [[3, "pycycling.cycling_power_service.CyclingPowerService.enable_cycling_power_vector_notifications"]], "enhanced_offset_compensation_supported (pycycling.cycling_power_service.cyclingpowerfeature attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerFeature.enhanced_offset_compensation_supported"]], "extreme_magnitudes_supported (pycycling.cycling_power_service.cyclingpowerfeature attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerFeature.extreme_magnitudes_supported"]], "factory_calibration_date_supported (pycycling.cycling_power_service.cyclingpowerfeature attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerFeature.factory_calibration_date_supported"]], "first_crank_measurement_angle (pycycling.cycling_power_service.cyclingpowervector attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerVector.first_crank_measurement_angle"]], "force_based (pycycling.cycling_power_service.sensormeasurementcontext attribute)": [[3, "pycycling.cycling_power_service.SensorMeasurementContext.force_based"]], "front_hub (pycycling.cycling_power_service.sensorlocation attribute)": [[3, "pycycling.cycling_power_service.SensorLocation.front_hub"]], "front_wheel (pycycling.cycling_power_service.sensorlocation attribute)": [[3, "pycycling.cycling_power_service.SensorLocation.front_wheel"]], "get_cycling_power_feature() (pycycling.cycling_power_service.cyclingpowerservice method)": [[3, "pycycling.cycling_power_service.CyclingPowerService.get_cycling_power_feature"]], "get_sensor_location() (pycycling.cycling_power_service.cyclingpowerservice method)": [[3, "pycycling.cycling_power_service.CyclingPowerService.get_sensor_location"]], "hip (pycycling.cycling_power_service.sensorlocation attribute)": [[3, "pycycling.cycling_power_service.SensorLocation.hip"]], "in_shoe (pycycling.cycling_power_service.sensorlocation attribute)": [[3, "pycycling.cycling_power_service.SensorLocation.in_shoe"]], "instantaneous_force_magnitudes (pycycling.cycling_power_service.cyclingpowervector attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerVector.instantaneous_force_magnitudes"]], "instantaneous_measurement_direction (pycycling.cycling_power_service.cyclingpowervector attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerVector.instantaneous_measurement_direction"]], "instantaneous_measurement_direction_supported (pycycling.cycling_power_service.cyclingpowerfeature attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerFeature.instantaneous_measurement_direction_supported"]], "instantaneous_power (pycycling.cycling_power_service.cyclingpowermeasurement attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerMeasurement.instantaneous_power"]], "instantaneous_torque_magnitudes (pycycling.cycling_power_service.cyclingpowervector attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerVector.instantaneous_torque_magnitudes"]], "last_crank_event_time (pycycling.cycling_power_service.cyclingpowermeasurement attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerMeasurement.last_crank_event_time"]], "last_crank_event_time (pycycling.cycling_power_service.cyclingpowervector attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerVector.last_crank_event_time"]], "last_wheel_event_time (pycycling.cycling_power_service.cyclingpowermeasurement attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerMeasurement.last_wheel_event_time"]], "lateral_component (pycycling.cycling_power_service.instantaneousmeasurementdirection attribute)": [[3, "pycycling.cycling_power_service.InstantaneousMeasurementDirection.lateral_component"]], "left_crank (pycycling.cycling_power_service.sensorlocation attribute)": [[3, "pycycling.cycling_power_service.SensorLocation.left_crank"]], "left_pedal (pycycling.cycling_power_service.sensorlocation attribute)": [[3, "pycycling.cycling_power_service.SensorLocation.left_pedal"]], "maximum_force_magnitude (pycycling.cycling_power_service.cyclingpowermeasurement attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerMeasurement.maximum_force_magnitude"]], "maximum_torque_magnitude (pycycling.cycling_power_service.cyclingpowermeasurement attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerMeasurement.maximum_torque_magnitude"]], "minimum_force_magnitude (pycycling.cycling_power_service.cyclingpowermeasurement attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerMeasurement.minimum_force_magnitude"]], "minimum_torque_magnitude (pycycling.cycling_power_service.cyclingpowermeasurement attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerMeasurement.minimum_torque_magnitude"]], "multiple_locations_supported (pycycling.cycling_power_service.cyclingpowerfeature attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerFeature.multiple_locations_supported"]], "no_distributed_system_support (pycycling.cycling_power_service.distributesystemsupport attribute)": [[3, "pycycling.cycling_power_service.DistributeSystemSupport.no_distributed_system_support"]], "offset_compensation_supported (pycycling.cycling_power_service.cyclingpowerfeature attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerFeature.offset_compensation_supported"]], "other (pycycling.cycling_power_service.sensorlocation attribute)": [[3, "pycycling.cycling_power_service.SensorLocation.other"]], "pedal_power_balance (pycycling.cycling_power_service.cyclingpowermeasurement attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerMeasurement.pedal_power_balance"]], "pedal_power_balance_supported (pycycling.cycling_power_service.cyclingpowerfeature attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerFeature.pedal_power_balance_supported"]], "pycycling.cycling_power_service": [[3, "module-pycycling.cycling_power_service"]], "radial_component (pycycling.cycling_power_service.instantaneousmeasurementdirection attribute)": [[3, "pycycling.cycling_power_service.InstantaneousMeasurementDirection.radial_component"]], "rear_dropout (pycycling.cycling_power_service.sensorlocation attribute)": [[3, "pycycling.cycling_power_service.SensorLocation.rear_dropout"]], "rear_hub (pycycling.cycling_power_service.sensorlocation attribute)": [[3, "pycycling.cycling_power_service.SensorLocation.rear_hub"]], "rear_wheel (pycycling.cycling_power_service.sensorlocation attribute)": [[3, "pycycling.cycling_power_service.SensorLocation.rear_wheel"]], "rfu (pycycling.cycling_power_service.distributesystemsupport attribute)": [[3, "pycycling.cycling_power_service.DistributeSystemSupport.rfu"]], "right_crank (pycycling.cycling_power_service.sensorlocation attribute)": [[3, "pycycling.cycling_power_service.SensorLocation.right_crank"]], "right_pedal (pycycling.cycling_power_service.sensorlocation attribute)": [[3, "pycycling.cycling_power_service.SensorLocation.right_pedal"]], "sensor_measurement_context (pycycling.cycling_power_service.cyclingpowerfeature attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerFeature.sensor_measurement_context"]], "set_cycling_power_measurement_handler() (pycycling.cycling_power_service.cyclingpowerservice method)": [[3, "pycycling.cycling_power_service.CyclingPowerService.set_cycling_power_measurement_handler"]], "set_cycling_power_vector_handler() (pycycling.cycling_power_service.cyclingpowerservice method)": [[3, "pycycling.cycling_power_service.CyclingPowerService.set_cycling_power_vector_handler"]], "span_length_adjustment_supported (pycycling.cycling_power_service.cyclingpowerfeature attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerFeature.span_length_adjustment_supported"]], "spider (pycycling.cycling_power_service.sensorlocation attribute)": [[3, "pycycling.cycling_power_service.SensorLocation.spider"]], "tangential_component (pycycling.cycling_power_service.instantaneousmeasurementdirection attribute)": [[3, "pycycling.cycling_power_service.InstantaneousMeasurementDirection.tangential_component"]], "top_dead_spot_angle (pycycling.cycling_power_service.cyclingpowermeasurement attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerMeasurement.top_dead_spot_angle"]], "top_of_shoe (pycycling.cycling_power_service.sensorlocation attribute)": [[3, "pycycling.cycling_power_service.SensorLocation.top_of_shoe"]], "torque_based (pycycling.cycling_power_service.sensormeasurementcontext attribute)": [[3, "pycycling.cycling_power_service.SensorMeasurementContext.torque_based"]], "unknown (pycycling.cycling_power_service.instantaneousmeasurementdirection attribute)": [[3, "pycycling.cycling_power_service.InstantaneousMeasurementDirection.unknown"]], "unspecified (pycycling.cycling_power_service.distributesystemsupport attribute)": [[3, "pycycling.cycling_power_service.DistributeSystemSupport.unspecified"]], "wheel_rev_supported (pycycling.cycling_power_service.cyclingpowerfeature attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerFeature.wheel_rev_supported"]], "cscfeature (class in pycycling.cycling_speed_cadence_service)": [[4, "pycycling.cycling_speed_cadence_service.CSCFeature"]], "cscmeasurement (class in pycycling.cycling_speed_cadence_service)": [[4, "pycycling.cycling_speed_cadence_service.CSCMeasurement"]], "cyclingspeedcadenceservice (class in pycycling.cycling_speed_cadence_service)": [[4, "pycycling.cycling_speed_cadence_service.CyclingSpeedCadenceService"]], "crank_rev_supported (pycycling.cycling_speed_cadence_service.cscfeature attribute)": [[4, "pycycling.cycling_speed_cadence_service.CSCFeature.crank_rev_supported"]], "cumulative_crank_revs (pycycling.cycling_speed_cadence_service.cscmeasurement attribute)": [[4, "pycycling.cycling_speed_cadence_service.CSCMeasurement.cumulative_crank_revs"]], "cumulative_wheel_revs (pycycling.cycling_speed_cadence_service.cscmeasurement attribute)": [[4, "pycycling.cycling_speed_cadence_service.CSCMeasurement.cumulative_wheel_revs"]], "disable_csc_measurement_notifications() (pycycling.cycling_speed_cadence_service.cyclingspeedcadenceservice method)": [[4, "pycycling.cycling_speed_cadence_service.CyclingSpeedCadenceService.disable_csc_measurement_notifications"]], "enable_csc_measurement_notifications() (pycycling.cycling_speed_cadence_service.cyclingspeedcadenceservice method)": [[4, "pycycling.cycling_speed_cadence_service.CyclingSpeedCadenceService.enable_csc_measurement_notifications"]], "get_csc_feature() (pycycling.cycling_speed_cadence_service.cyclingspeedcadenceservice method)": [[4, "pycycling.cycling_speed_cadence_service.CyclingSpeedCadenceService.get_csc_feature"]], "last_crank_event_time (pycycling.cycling_speed_cadence_service.cscmeasurement attribute)": [[4, "pycycling.cycling_speed_cadence_service.CSCMeasurement.last_crank_event_time"]], "last_wheel_event_time (pycycling.cycling_speed_cadence_service.cscmeasurement attribute)": [[4, "pycycling.cycling_speed_cadence_service.CSCMeasurement.last_wheel_event_time"]], "multiple_locations_supported (pycycling.cycling_speed_cadence_service.cscfeature attribute)": [[4, "pycycling.cycling_speed_cadence_service.CSCFeature.multiple_locations_supported"]], "pycycling.cycling_speed_cadence_service": [[4, "module-pycycling.cycling_speed_cadence_service"]], "set_csc_measurement_handler() (pycycling.cycling_speed_cadence_service.cyclingspeedcadenceservice method)": [[4, "pycycling.cycling_speed_cadence_service.CyclingSpeedCadenceService.set_csc_measurement_handler"]], "wheel_rev_supported (pycycling.cycling_speed_cadence_service.cscfeature attribute)": [[4, "pycycling.cycling_speed_cadence_service.CSCFeature.wheel_rev_supported"]], "pycycling.data": [[5, "module-pycycling.data"]], "fitnessmachineservice (class in pycycling.fitness_machine_service)": [[6, "pycycling.fitness_machine_service.FitnessMachineService"]], "supportedpowerrange (class in pycycling.fitness_machine_service)": [[6, "pycycling.fitness_machine_service.SupportedPowerRange"]], "supportedresistancelevelrange (class in pycycling.fitness_machine_service)": [[6, "pycycling.fitness_machine_service.SupportedResistanceLevelRange"]], "disable_control_point_indicate() (pycycling.fitness_machine_service.fitnessmachineservice method)": [[6, "pycycling.fitness_machine_service.FitnessMachineService.disable_control_point_indicate"]], "disable_fitness_machine_status_notify() (pycycling.fitness_machine_service.fitnessmachineservice method)": [[6, "pycycling.fitness_machine_service.FitnessMachineService.disable_fitness_machine_status_notify"]], "disable_indoor_bike_data_notify() (pycycling.fitness_machine_service.fitnessmachineservice method)": [[6, "pycycling.fitness_machine_service.FitnessMachineService.disable_indoor_bike_data_notify"]], "disable_training_status_notify() (pycycling.fitness_machine_service.fitnessmachineservice method)": [[6, "pycycling.fitness_machine_service.FitnessMachineService.disable_training_status_notify"]], "enable_control_point_indicate() (pycycling.fitness_machine_service.fitnessmachineservice method)": [[6, "pycycling.fitness_machine_service.FitnessMachineService.enable_control_point_indicate"]], "enable_fitness_machine_status_notify() (pycycling.fitness_machine_service.fitnessmachineservice method)": [[6, "pycycling.fitness_machine_service.FitnessMachineService.enable_fitness_machine_status_notify"]], "enable_indoor_bike_data_notify() (pycycling.fitness_machine_service.fitnessmachineservice method)": [[6, "pycycling.fitness_machine_service.FitnessMachineService.enable_indoor_bike_data_notify"]], "enable_training_status_notify() (pycycling.fitness_machine_service.fitnessmachineservice method)": [[6, "pycycling.fitness_machine_service.FitnessMachineService.enable_training_status_notify"]], "get_fitness_machine_feature() (pycycling.fitness_machine_service.fitnessmachineservice method)": [[6, "pycycling.fitness_machine_service.FitnessMachineService.get_fitness_machine_feature"]], "get_supported_power_range() (pycycling.fitness_machine_service.fitnessmachineservice method)": [[6, "pycycling.fitness_machine_service.FitnessMachineService.get_supported_power_range"]], "get_supported_resistance_level_range() (pycycling.fitness_machine_service.fitnessmachineservice method)": [[6, "pycycling.fitness_machine_service.FitnessMachineService.get_supported_resistance_level_range"]], "maximum_power (pycycling.fitness_machine_service.supportedpowerrange attribute)": [[6, "pycycling.fitness_machine_service.SupportedPowerRange.maximum_power"]], "maximum_resistance (pycycling.fitness_machine_service.supportedresistancelevelrange attribute)": [[6, "pycycling.fitness_machine_service.SupportedResistanceLevelRange.maximum_resistance"]], "minimum_increment (pycycling.fitness_machine_service.supportedpowerrange attribute)": [[6, "pycycling.fitness_machine_service.SupportedPowerRange.minimum_increment"]], "minimum_increment (pycycling.fitness_machine_service.supportedresistancelevelrange attribute)": [[6, "pycycling.fitness_machine_service.SupportedResistanceLevelRange.minimum_increment"]], "minimum_power (pycycling.fitness_machine_service.supportedpowerrange attribute)": [[6, "pycycling.fitness_machine_service.SupportedPowerRange.minimum_power"]], "minimum_resistance (pycycling.fitness_machine_service.supportedresistancelevelrange attribute)": [[6, "pycycling.fitness_machine_service.SupportedResistanceLevelRange.minimum_resistance"]], "pycycling.fitness_machine_service": [[6, "module-pycycling.fitness_machine_service"]], "request_control() (pycycling.fitness_machine_service.fitnessmachineservice method)": [[6, "pycycling.fitness_machine_service.FitnessMachineService.request_control"]], "reset() (pycycling.fitness_machine_service.fitnessmachineservice method)": [[6, "pycycling.fitness_machine_service.FitnessMachineService.reset"]], "set_control_point_response_handler() (pycycling.fitness_machine_service.fitnessmachineservice method)": [[6, "pycycling.fitness_machine_service.FitnessMachineService.set_control_point_response_handler"]], "set_fitness_machine_status_handler() (pycycling.fitness_machine_service.fitnessmachineservice method)": [[6, "pycycling.fitness_machine_service.FitnessMachineService.set_fitness_machine_status_handler"]], "set_indoor_bike_data_handler() (pycycling.fitness_machine_service.fitnessmachineservice method)": [[6, "pycycling.fitness_machine_service.FitnessMachineService.set_indoor_bike_data_handler"]], "set_target_power() (pycycling.fitness_machine_service.fitnessmachineservice method)": [[6, "pycycling.fitness_machine_service.FitnessMachineService.set_target_power"]], "set_target_resistance_level() (pycycling.fitness_machine_service.fitnessmachineservice method)": [[6, "pycycling.fitness_machine_service.FitnessMachineService.set_target_resistance_level"]], "set_training_status_handler() (pycycling.fitness_machine_service.fitnessmachineservice method)": [[6, "pycycling.fitness_machine_service.FitnessMachineService.set_training_status_handler"]], "pycycling.ftms_parsers": [[7, "module-pycycling.ftms_parsers"]], "control_not_permitted (pycycling.ftms_parsers.control_point.ftmscontrolpointresponseresultcode attribute)": [[8, "pycycling.ftms_parsers.control_point.FTMSControlPointResponseResultCode.CONTROL_NOT_PERMITTED"]], "controlpointresponse (class in pycycling.ftms_parsers.control_point)": [[8, "pycycling.ftms_parsers.control_point.ControlPointResponse"]], "ftmscontrolpointopcode (class in pycycling.ftms_parsers.control_point)": [[8, "pycycling.ftms_parsers.control_point.FTMSControlPointOpCode"]], "ftmscontrolpointresponseresultcode (class in pycycling.ftms_parsers.control_point)": [[8, "pycycling.ftms_parsers.control_point.FTMSControlPointResponseResultCode"]], "incorrect_parameter (pycycling.ftms_parsers.control_point.ftmscontrolpointresponseresultcode attribute)": [[8, "pycycling.ftms_parsers.control_point.FTMSControlPointResponseResultCode.INCORRECT_PARAMETER"]], "not_supported (pycycling.ftms_parsers.control_point.ftmscontrolpointresponseresultcode attribute)": [[8, "pycycling.ftms_parsers.control_point.FTMSControlPointResponseResultCode.NOT_SUPPORTED"]], "operation_failed (pycycling.ftms_parsers.control_point.ftmscontrolpointresponseresultcode attribute)": [[8, "pycycling.ftms_parsers.control_point.FTMSControlPointResponseResultCode.OPERATION_FAILED"]], "request_control (pycycling.ftms_parsers.control_point.ftmscontrolpointopcode attribute)": [[8, "pycycling.ftms_parsers.control_point.FTMSControlPointOpCode.REQUEST_CONTROL"]], "reset (pycycling.ftms_parsers.control_point.ftmscontrolpointopcode attribute)": [[8, "pycycling.ftms_parsers.control_point.FTMSControlPointOpCode.RESET"]], "response_code (pycycling.ftms_parsers.control_point.ftmscontrolpointopcode attribute)": [[8, "pycycling.ftms_parsers.control_point.FTMSControlPointOpCode.RESPONSE_CODE"]], "set_target_incline (pycycling.ftms_parsers.control_point.ftmscontrolpointopcode attribute)": [[8, "pycycling.ftms_parsers.control_point.FTMSControlPointOpCode.SET_TARGET_INCLINE"]], "set_target_power (pycycling.ftms_parsers.control_point.ftmscontrolpointopcode attribute)": [[8, "pycycling.ftms_parsers.control_point.FTMSControlPointOpCode.SET_TARGET_POWER"]], "set_target_resistance_level (pycycling.ftms_parsers.control_point.ftmscontrolpointopcode attribute)": [[8, "pycycling.ftms_parsers.control_point.FTMSControlPointOpCode.SET_TARGET_RESISTANCE_LEVEL"]], "set_target_speed (pycycling.ftms_parsers.control_point.ftmscontrolpointopcode attribute)": [[8, "pycycling.ftms_parsers.control_point.FTMSControlPointOpCode.SET_TARGET_SPEED"]], "start_or_resume (pycycling.ftms_parsers.control_point.ftmscontrolpointopcode attribute)": [[8, "pycycling.ftms_parsers.control_point.FTMSControlPointOpCode.START_OR_RESUME"]], "stop_or_pause (pycycling.ftms_parsers.control_point.ftmscontrolpointopcode attribute)": [[8, "pycycling.ftms_parsers.control_point.FTMSControlPointOpCode.STOP_OR_PAUSE"]], "success (pycycling.ftms_parsers.control_point.ftmscontrolpointresponseresultcode attribute)": [[8, "pycycling.ftms_parsers.control_point.FTMSControlPointResponseResultCode.SUCCESS"]], "form_ftms_control_command() (in module pycycling.ftms_parsers.control_point)": [[8, "pycycling.ftms_parsers.control_point.form_ftms_control_command"]], "parse_control_point_response() (in module pycycling.ftms_parsers.control_point)": [[8, "pycycling.ftms_parsers.control_point.parse_control_point_response"]], "pycycling.ftms_parsers.control_point": [[8, "module-pycycling.ftms_parsers.control_point"]], "request_code_enum (pycycling.ftms_parsers.control_point.controlpointresponse attribute)": [[8, "pycycling.ftms_parsers.control_point.ControlPointResponse.request_code_enum"]], "result_code_enum (pycycling.ftms_parsers.control_point.controlpointresponse attribute)": [[8, "pycycling.ftms_parsers.control_point.ControlPointResponse.result_code_enum"]], "fitnessmachinefeature (class in pycycling.ftms_parsers.fitness_machine_feature)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.FitnessMachineFeature"]], "avg_speed_supported (pycycling.ftms_parsers.fitness_machine_feature.fitnessmachinefeature attribute)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.FitnessMachineFeature.avg_speed_supported"]], "cadence_supported (pycycling.ftms_parsers.fitness_machine_feature.fitnessmachinefeature attribute)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.FitnessMachineFeature.cadence_supported"]], "elapsed_time_supported (pycycling.ftms_parsers.fitness_machine_feature.fitnessmachinefeature attribute)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.FitnessMachineFeature.elapsed_time_supported"]], "elevation_gain_supported (pycycling.ftms_parsers.fitness_machine_feature.fitnessmachinefeature attribute)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.FitnessMachineFeature.elevation_gain_supported"]], "expended_energy_supported (pycycling.ftms_parsers.fitness_machine_feature.fitnessmachinefeature attribute)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.FitnessMachineFeature.expended_energy_supported"]], "force_on_belt_and_power_output_supported (pycycling.ftms_parsers.fitness_machine_feature.fitnessmachinefeature attribute)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.FitnessMachineFeature.force_on_belt_and_power_output_supported"]], "heart_rate_measurement_supported (pycycling.ftms_parsers.fitness_machine_feature.fitnessmachinefeature attribute)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.FitnessMachineFeature.heart_rate_measurement_supported"]], "inclination_supported (pycycling.ftms_parsers.fitness_machine_feature.fitnessmachinefeature attribute)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.FitnessMachineFeature.inclination_supported"]], "metabolic_equivalent_supported (pycycling.ftms_parsers.fitness_machine_feature.fitnessmachinefeature attribute)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.FitnessMachineFeature.metabolic_equivalent_supported"]], "pace_supported (pycycling.ftms_parsers.fitness_machine_feature.fitnessmachinefeature attribute)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.FitnessMachineFeature.pace_supported"]], "parse_fitness_machine_feature() (in module pycycling.ftms_parsers.fitness_machine_feature)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.parse_fitness_machine_feature"]], "power_measurement_supported (pycycling.ftms_parsers.fitness_machine_feature.fitnessmachinefeature attribute)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.FitnessMachineFeature.power_measurement_supported"]], "pycycling.ftms_parsers.fitness_machine_feature": [[9, "module-pycycling.ftms_parsers.fitness_machine_feature"]], "remaining_time_supported (pycycling.ftms_parsers.fitness_machine_feature.fitnessmachinefeature attribute)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.FitnessMachineFeature.remaining_time_supported"]], "resistance_level_supported (pycycling.ftms_parsers.fitness_machine_feature.fitnessmachinefeature attribute)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.FitnessMachineFeature.resistance_level_supported"]], "step_count_supported (pycycling.ftms_parsers.fitness_machine_feature.fitnessmachinefeature attribute)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.FitnessMachineFeature.step_count_supported"]], "stride_count_supported (pycycling.ftms_parsers.fitness_machine_feature.fitnessmachinefeature attribute)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.FitnessMachineFeature.stride_count_supported"]], "total_distance_supported (pycycling.ftms_parsers.fitness_machine_feature.fitnessmachinefeature attribute)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.FitnessMachineFeature.total_distance_supported"]], "user_data_retention_supported (pycycling.ftms_parsers.fitness_machine_feature.fitnessmachinefeature attribute)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.FitnessMachineFeature.user_data_retention_supported"]], "control_permission_lost (pycycling.ftms_parsers.fitness_machine_status.fitnessmachinestatus attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatus.CONTROL_PERMISSION_LOST"]], "error (pycycling.ftms_parsers.fitness_machine_status.spindownstatusvalue attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.SpinDownStatusValue.ERROR"]], "fitnessmachinestatus (class in pycycling.ftms_parsers.fitness_machine_status)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatus"]], "fitnessmachinestatusmessage (class in pycycling.ftms_parsers.fitness_machine_status)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatusMessage"]], "fivezonehr (class in pycycling.ftms_parsers.fitness_machine_status)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FiveZoneHR"]], "indoorbikesimulationparameters (class in pycycling.ftms_parsers.fitness_machine_status)": [[10, "pycycling.ftms_parsers.fitness_machine_status.IndoorBikeSimulationParameters"]], "new_distance (pycycling.ftms_parsers.fitness_machine_status.fitnessmachinestatus attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatus.NEW_DISTANCE"]], "new_expended_energy (pycycling.ftms_parsers.fitness_machine_status.fitnessmachinestatus attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatus.NEW_EXPENDED_ENERGY"]], "new_five_heart_rate_zone_target_time (pycycling.ftms_parsers.fitness_machine_status.fitnessmachinestatus attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatus.NEW_FIVE_HEART_RATE_ZONE_TARGET_TIME"]], "new_heart_rate (pycycling.ftms_parsers.fitness_machine_status.fitnessmachinestatus attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatus.NEW_HEART_RATE"]], "new_inclination (pycycling.ftms_parsers.fitness_machine_status.fitnessmachinestatus attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatus.NEW_INCLINATION"]], "new_indoor_bike_simulation_parameters (pycycling.ftms_parsers.fitness_machine_status.fitnessmachinestatus attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatus.NEW_INDOOR_BIKE_SIMULATION_PARAMETERS"]], "new_number_of_steps (pycycling.ftms_parsers.fitness_machine_status.fitnessmachinestatus attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatus.NEW_NUMBER_OF_STEPS"]], "new_number_of_strides (pycycling.ftms_parsers.fitness_machine_status.fitnessmachinestatus attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatus.NEW_NUMBER_OF_STRIDES"]], "new_power (pycycling.ftms_parsers.fitness_machine_status.fitnessmachinestatus attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatus.NEW_POWER"]], "new_resistance (pycycling.ftms_parsers.fitness_machine_status.fitnessmachinestatus attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatus.NEW_RESISTANCE"]], "new_speed (pycycling.ftms_parsers.fitness_machine_status.fitnessmachinestatus attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatus.NEW_SPEED"]], "new_spin_down_status (pycycling.ftms_parsers.fitness_machine_status.fitnessmachinestatus attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatus.NEW_SPIN_DOWN_STATUS"]], "new_target_cadence (pycycling.ftms_parsers.fitness_machine_status.fitnessmachinestatus attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatus.NEW_TARGET_CADENCE"]], "new_three_heart_rate_zone_target_time (pycycling.ftms_parsers.fitness_machine_status.fitnessmachinestatus attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatus.NEW_THREE_HEART_RATE_ZONE_TARGET_TIME"]], "new_training_time (pycycling.ftms_parsers.fitness_machine_status.fitnessmachinestatus attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatus.NEW_TRAINING_TIME"]], "new_two_heart_rate_zone_target_time (pycycling.ftms_parsers.fitness_machine_status.fitnessmachinestatus attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatus.NEW_TWO_HEART_RATE_ZONE_TARGET_TIME"]], "new_wheel_circumference (pycycling.ftms_parsers.fitness_machine_status.fitnessmachinestatus attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatus.NEW_WHEEL_CIRCUMFERENCE"]], "paused_by_user (pycycling.ftms_parsers.fitness_machine_status.fitnessmachinestatus attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatus.PAUSED_BY_USER"]], "reserved_for_future_use (pycycling.ftms_parsers.fitness_machine_status.fitnessmachinestatus attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatus.RESERVED_FOR_FUTURE_USE"]], "reserved_for_future_use (pycycling.ftms_parsers.fitness_machine_status.spindownstatusvalue attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.SpinDownStatusValue.RESERVED_FOR_FUTURE_USE"]], "reset (pycycling.ftms_parsers.fitness_machine_status.fitnessmachinestatus attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatus.RESET"]], "spin_down_requested (pycycling.ftms_parsers.fitness_machine_status.spindownstatusvalue attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.SpinDownStatusValue.SPIN_DOWN_REQUESTED"]], "started_by_user (pycycling.ftms_parsers.fitness_machine_status.fitnessmachinestatus attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatus.STARTED_BY_USER"]], "stopped_by_safety_key (pycycling.ftms_parsers.fitness_machine_status.fitnessmachinestatus attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatus.STOPPED_BY_SAFETY_KEY"]], "stopped_by_user (pycycling.ftms_parsers.fitness_machine_status.fitnessmachinestatus attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatus.STOPPED_BY_USER"]], "stop_pedaling (pycycling.ftms_parsers.fitness_machine_status.spindownstatusvalue attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.SpinDownStatusValue.STOP_PEDALING"]], "success (pycycling.ftms_parsers.fitness_machine_status.spindownstatusvalue attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.SpinDownStatusValue.SUCCESS"]], "spindownstatusvalue (class in pycycling.ftms_parsers.fitness_machine_status)": [[10, "pycycling.ftms_parsers.fitness_machine_status.SpinDownStatusValue"]], "threezonehr (class in pycycling.ftms_parsers.fitness_machine_status)": [[10, "pycycling.ftms_parsers.fitness_machine_status.ThreeZoneHR"]], "twozonehr (class in pycycling.ftms_parsers.fitness_machine_status)": [[10, "pycycling.ftms_parsers.fitness_machine_status.TwoZoneHR"]], "coefficient_of_rolling_resistance (pycycling.ftms_parsers.fitness_machine_status.indoorbikesimulationparameters attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.IndoorBikeSimulationParameters.coefficient_of_rolling_resistance"]], "fat_burn (pycycling.ftms_parsers.fitness_machine_status.twozonehr attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.TwoZoneHR.fat_burn"]], "fitness (pycycling.ftms_parsers.fitness_machine_status.twozonehr attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.TwoZoneHR.fitness"]], "grade (pycycling.ftms_parsers.fitness_machine_status.indoorbikesimulationparameters attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.IndoorBikeSimulationParameters.grade"]], "hard (pycycling.ftms_parsers.fitness_machine_status.fivezonehr attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FiveZoneHR.hard"]], "light (pycycling.ftms_parsers.fitness_machine_status.fivezonehr attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FiveZoneHR.light"]], "light (pycycling.ftms_parsers.fitness_machine_status.threezonehr attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.ThreeZoneHR.light"]], "maximum (pycycling.ftms_parsers.fitness_machine_status.fivezonehr attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FiveZoneHR.maximum"]], "moderate (pycycling.ftms_parsers.fitness_machine_status.fivezonehr attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FiveZoneHR.moderate"]], "moderate (pycycling.ftms_parsers.fitness_machine_status.threezonehr attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.ThreeZoneHR.moderate"]], "parse_fitness_machine_status() (in module pycycling.ftms_parsers.fitness_machine_status)": [[10, "pycycling.ftms_parsers.fitness_machine_status.parse_fitness_machine_status"]], "pycycling.ftms_parsers.fitness_machine_status": [[10, "module-pycycling.ftms_parsers.fitness_machine_status"]], "status (pycycling.ftms_parsers.fitness_machine_status.fitnessmachinestatusmessage attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatusMessage.status"]], "unit (pycycling.ftms_parsers.fitness_machine_status.fitnessmachinestatusmessage attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatusMessage.unit"]], "value (pycycling.ftms_parsers.fitness_machine_status.fitnessmachinestatusmessage attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatusMessage.value"]], "very_light (pycycling.ftms_parsers.fitness_machine_status.fivezonehr attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FiveZoneHR.very_light"]], "very_light (pycycling.ftms_parsers.fitness_machine_status.threezonehr attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.ThreeZoneHR.very_light"]], "wind_resistance_coefficient (pycycling.ftms_parsers.fitness_machine_status.indoorbikesimulationparameters attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.IndoorBikeSimulationParameters.wind_resistance_coefficient"]], "wind_speed (pycycling.ftms_parsers.fitness_machine_status.indoorbikesimulationparameters attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.IndoorBikeSimulationParameters.wind_speed"]], "indoorbikedata (class in pycycling.ftms_parsers.indoor_bike_data)": [[11, "pycycling.ftms_parsers.indoor_bike_data.IndoorBikeData"]], "average_cadence (pycycling.ftms_parsers.indoor_bike_data.indoorbikedata attribute)": [[11, "pycycling.ftms_parsers.indoor_bike_data.IndoorBikeData.average_cadence"]], "average_power (pycycling.ftms_parsers.indoor_bike_data.indoorbikedata attribute)": [[11, "pycycling.ftms_parsers.indoor_bike_data.IndoorBikeData.average_power"]], "average_speed (pycycling.ftms_parsers.indoor_bike_data.indoorbikedata attribute)": [[11, "pycycling.ftms_parsers.indoor_bike_data.IndoorBikeData.average_speed"]], "elapsed_time (pycycling.ftms_parsers.indoor_bike_data.indoorbikedata attribute)": [[11, "pycycling.ftms_parsers.indoor_bike_data.IndoorBikeData.elapsed_time"]], "energy_per_hour (pycycling.ftms_parsers.indoor_bike_data.indoorbikedata attribute)": [[11, "pycycling.ftms_parsers.indoor_bike_data.IndoorBikeData.energy_per_hour"]], "energy_per_minute (pycycling.ftms_parsers.indoor_bike_data.indoorbikedata attribute)": [[11, "pycycling.ftms_parsers.indoor_bike_data.IndoorBikeData.energy_per_minute"]], "heart_rate (pycycling.ftms_parsers.indoor_bike_data.indoorbikedata attribute)": [[11, "pycycling.ftms_parsers.indoor_bike_data.IndoorBikeData.heart_rate"]], "instant_cadence (pycycling.ftms_parsers.indoor_bike_data.indoorbikedata attribute)": [[11, "pycycling.ftms_parsers.indoor_bike_data.IndoorBikeData.instant_cadence"]], "instant_power (pycycling.ftms_parsers.indoor_bike_data.indoorbikedata attribute)": [[11, "pycycling.ftms_parsers.indoor_bike_data.IndoorBikeData.instant_power"]], "instant_speed (pycycling.ftms_parsers.indoor_bike_data.indoorbikedata attribute)": [[11, "pycycling.ftms_parsers.indoor_bike_data.IndoorBikeData.instant_speed"]], "metabolic_equivalent (pycycling.ftms_parsers.indoor_bike_data.indoorbikedata attribute)": [[11, "pycycling.ftms_parsers.indoor_bike_data.IndoorBikeData.metabolic_equivalent"]], "parse_indoor_bike_data() (in module pycycling.ftms_parsers.indoor_bike_data)": [[11, "pycycling.ftms_parsers.indoor_bike_data.parse_indoor_bike_data"]], "pycycling.ftms_parsers.indoor_bike_data": [[11, "module-pycycling.ftms_parsers.indoor_bike_data"]], "remaining_time (pycycling.ftms_parsers.indoor_bike_data.indoorbikedata attribute)": [[11, "pycycling.ftms_parsers.indoor_bike_data.IndoorBikeData.remaining_time"]], "resistance_level (pycycling.ftms_parsers.indoor_bike_data.indoorbikedata attribute)": [[11, "pycycling.ftms_parsers.indoor_bike_data.IndoorBikeData.resistance_level"]], "total_distance (pycycling.ftms_parsers.indoor_bike_data.indoorbikedata attribute)": [[11, "pycycling.ftms_parsers.indoor_bike_data.IndoorBikeData.total_distance"]], "total_energy (pycycling.ftms_parsers.indoor_bike_data.indoorbikedata attribute)": [[11, "pycycling.ftms_parsers.indoor_bike_data.IndoorBikeData.total_energy"]], "cool_down (pycycling.ftms_parsers.training_status.trainingstatus attribute)": [[12, "pycycling.ftms_parsers.training_status.TrainingStatus.COOL_DOWN"]], "fitness_test (pycycling.ftms_parsers.training_status.trainingstatus attribute)": [[12, "pycycling.ftms_parsers.training_status.TrainingStatus.FITNESS_TEST"]], "heart_rate_control (pycycling.ftms_parsers.training_status.trainingstatus attribute)": [[12, "pycycling.ftms_parsers.training_status.TrainingStatus.HEART_RATE_CONTROL"]], "high_intensity_interval (pycycling.ftms_parsers.training_status.trainingstatus attribute)": [[12, "pycycling.ftms_parsers.training_status.TrainingStatus.HIGH_INTENSITY_INTERVAL"]], "idle (pycycling.ftms_parsers.training_status.trainingstatus attribute)": [[12, "pycycling.ftms_parsers.training_status.TrainingStatus.IDLE"]], "isometric (pycycling.ftms_parsers.training_status.trainingstatus attribute)": [[12, "pycycling.ftms_parsers.training_status.TrainingStatus.ISOMETRIC"]], "low_intensity_interval (pycycling.ftms_parsers.training_status.trainingstatus attribute)": [[12, "pycycling.ftms_parsers.training_status.TrainingStatus.LOW_INTENSITY_INTERVAL"]], "manual_mode (pycycling.ftms_parsers.training_status.trainingstatus attribute)": [[12, "pycycling.ftms_parsers.training_status.TrainingStatus.MANUAL_MODE"]], "other (pycycling.ftms_parsers.training_status.trainingstatus attribute)": [[12, "pycycling.ftms_parsers.training_status.TrainingStatus.OTHER"]], "post_workout (pycycling.ftms_parsers.training_status.trainingstatus attribute)": [[12, "pycycling.ftms_parsers.training_status.TrainingStatus.POST_WORKOUT"]], "pre_workout (pycycling.ftms_parsers.training_status.trainingstatus attribute)": [[12, "pycycling.ftms_parsers.training_status.TrainingStatus.PRE_WORKOUT"]], "recovery_interval (pycycling.ftms_parsers.training_status.trainingstatus attribute)": [[12, "pycycling.ftms_parsers.training_status.TrainingStatus.RECOVERY_INTERVAL"]], "reserved (pycycling.ftms_parsers.training_status.trainingstatus attribute)": [[12, "pycycling.ftms_parsers.training_status.TrainingStatus.RESERVED"]], "speed_outside_control_region_high (pycycling.ftms_parsers.training_status.trainingstatus attribute)": [[12, "pycycling.ftms_parsers.training_status.TrainingStatus.SPEED_OUTSIDE_CONTROL_REGION_HIGH"]], "speed_outside_control_region_low (pycycling.ftms_parsers.training_status.trainingstatus attribute)": [[12, "pycycling.ftms_parsers.training_status.TrainingStatus.SPEED_OUTSIDE_CONTROL_REGION_LOW"]], "trainingstatus (class in pycycling.ftms_parsers.training_status)": [[12, "pycycling.ftms_parsers.training_status.TrainingStatus"]], "trainingstatusmessage (class in pycycling.ftms_parsers.training_status)": [[12, "pycycling.ftms_parsers.training_status.TrainingStatusMessage"]], "warming_up (pycycling.ftms_parsers.training_status.trainingstatus attribute)": [[12, "pycycling.ftms_parsers.training_status.TrainingStatus.WARMING_UP"]], "watt_control (pycycling.ftms_parsers.training_status.trainingstatus attribute)": [[12, "pycycling.ftms_parsers.training_status.TrainingStatus.WATT_CONTROL"]], "param (pycycling.ftms_parsers.training_status.trainingstatusmessage attribute)": [[12, "pycycling.ftms_parsers.training_status.TrainingStatusMessage.param"]], "parse_training_status() (in module pycycling.ftms_parsers.training_status)": [[12, "pycycling.ftms_parsers.training_status.parse_training_status"]], "pycycling.ftms_parsers.training_status": [[12, "module-pycycling.ftms_parsers.training_status"]], "string (pycycling.ftms_parsers.training_status.trainingstatusmessage attribute)": [[12, "pycycling.ftms_parsers.training_status.TrainingStatusMessage.string"]], "heartratemeasurement (class in pycycling.heart_rate_service)": [[13, "pycycling.heart_rate_service.HeartRateMeasurement"]], "heartrateservice (class in pycycling.heart_rate_service)": [[13, "pycycling.heart_rate_service.HeartRateService"]], "bpm (pycycling.heart_rate_service.heartratemeasurement attribute)": [[13, "pycycling.heart_rate_service.HeartRateMeasurement.bpm"]], "disable_hr_measurement_notifications() (pycycling.heart_rate_service.heartrateservice method)": [[13, "pycycling.heart_rate_service.HeartRateService.disable_hr_measurement_notifications"]], "enable_hr_measurement_notifications() (pycycling.heart_rate_service.heartrateservice method)": [[13, "pycycling.heart_rate_service.HeartRateService.enable_hr_measurement_notifications"]], "energy_expended (pycycling.heart_rate_service.heartratemeasurement attribute)": [[13, "pycycling.heart_rate_service.HeartRateMeasurement.energy_expended"]], "pycycling.heart_rate_service": [[13, "module-pycycling.heart_rate_service"]], "rr_interval (pycycling.heart_rate_service.heartratemeasurement attribute)": [[13, "pycycling.heart_rate_service.HeartRateMeasurement.rr_interval"]], "sensor_contact (pycycling.heart_rate_service.heartratemeasurement attribute)": [[13, "pycycling.heart_rate_service.HeartRateMeasurement.sensor_contact"]], "set_hr_measurement_handler() (pycycling.heart_rate_service.heartrateservice method)": [[13, "pycycling.heart_rate_service.HeartRateService.set_hr_measurement_handler"]], "radarmeasurement (class in pycycling.rear_view_radar)": [[14, "pycycling.rear_view_radar.RadarMeasurement"]], "rearviewradarservice (class in pycycling.rear_view_radar)": [[14, "pycycling.rear_view_radar.RearViewRadarService"]], "disable_radar_measurement_notifications() (pycycling.rear_view_radar.rearviewradarservice method)": [[14, "pycycling.rear_view_radar.RearViewRadarService.disable_radar_measurement_notifications"]], "distance (pycycling.rear_view_radar.radarmeasurement attribute)": [[14, "pycycling.rear_view_radar.RadarMeasurement.distance"]], "enable_radar_measurement_notifications() (pycycling.rear_view_radar.rearviewradarservice method)": [[14, "pycycling.rear_view_radar.RearViewRadarService.enable_radar_measurement_notifications"]], "pycycling.rear_view_radar": [[14, "module-pycycling.rear_view_radar"]], "set_radar_measurement_handler() (pycycling.rear_view_radar.rearviewradarservice method)": [[14, "pycycling.rear_view_radar.RearViewRadarService.set_radar_measurement_handler"]], "speed (pycycling.rear_view_radar.radarmeasurement attribute)": [[14, "pycycling.rear_view_radar.RadarMeasurement.speed"]], "threat_id (pycycling.rear_view_radar.radarmeasurement attribute)": [[14, "pycycling.rear_view_radar.RadarMeasurement.threat_id"]], "sterzo (class in pycycling.sterzo)": [[15, "pycycling.sterzo.Sterzo"]], "disable_steering_measurement_notifications() (pycycling.sterzo.sterzo method)": [[15, "pycycling.sterzo.Sterzo.disable_steering_measurement_notifications"]], "enable_steering_measurement_notifications() (pycycling.sterzo.sterzo method)": [[15, "pycycling.sterzo.Sterzo.enable_steering_measurement_notifications"]], "pycycling.sterzo": [[15, "module-pycycling.sterzo"]], "set_steering_measurement_callback() (pycycling.sterzo.sterzo method)": [[15, "pycycling.sterzo.Sterzo.set_steering_measurement_callback"]], "brick_road (pycycling.tacx_trainer_control.roadsurface attribute)": [[16, "pycycling.tacx_trainer_control.RoadSurface.BRICK_ROAD"]], "cattle_grid (pycycling.tacx_trainer_control.roadsurface attribute)": [[16, "pycycling.tacx_trainer_control.RoadSurface.CATTLE_GRID"]], "cobblestones_hard (pycycling.tacx_trainer_control.roadsurface attribute)": [[16, "pycycling.tacx_trainer_control.RoadSurface.COBBLESTONES_HARD"]], "cobblestones_soft (pycycling.tacx_trainer_control.roadsurface attribute)": [[16, "pycycling.tacx_trainer_control.RoadSurface.COBBLESTONES_SOFT"]], "concrete_plates (pycycling.tacx_trainer_control.roadsurface attribute)": [[16, "pycycling.tacx_trainer_control.RoadSurface.CONCRETE_PLATES"]], "commandstatus (class in pycycling.tacx_trainer_control)": [[16, "pycycling.tacx_trainer_control.CommandStatus"]], "commandstatusdata (class in pycycling.tacx_trainer_control)": [[16, "pycycling.tacx_trainer_control.CommandStatusData"]], "equipmenttype (class in pycycling.tacx_trainer_control)": [[16, "pycycling.tacx_trainer_control.EquipmentType"]], "festate (class in pycycling.tacx_trainer_control)": [[16, "pycycling.tacx_trainer_control.FEState"]], "gravel (pycycling.tacx_trainer_control.roadsurface attribute)": [[16, "pycycling.tacx_trainer_control.RoadSurface.GRAVEL"]], "generalfedata (class in pycycling.tacx_trainer_control)": [[16, "pycycling.tacx_trainer_control.GeneralFEData"]], "ice (pycycling.tacx_trainer_control.roadsurface attribute)": [[16, "pycycling.tacx_trainer_control.RoadSurface.ICE"]], "off_road (pycycling.tacx_trainer_control.roadsurface attribute)": [[16, "pycycling.tacx_trainer_control.RoadSurface.OFF_ROAD"]], "roadsurface (class in pycycling.tacx_trainer_control)": [[16, "pycycling.tacx_trainer_control.RoadSurface"]], "simulation_off (pycycling.tacx_trainer_control.roadsurface attribute)": [[16, "pycycling.tacx_trainer_control.RoadSurface.SIMULATION_OFF"]], "specifictrainerdata (class in pycycling.tacx_trainer_control)": [[16, "pycycling.tacx_trainer_control.SpecificTrainerData"]], "tacxtrainercontrol (class in pycycling.tacx_trainer_control)": [[16, "pycycling.tacx_trainer_control.TacxTrainerControl"]], "targetpowerlimit (class in pycycling.tacx_trainer_control)": [[16, "pycycling.tacx_trainer_control.TargetPowerLimit"]], "wooden_boards (pycycling.tacx_trainer_control.roadsurface attribute)": [[16, "pycycling.tacx_trainer_control.RoadSurface.WOODEN_BOARDS"]], "accumulated_power (pycycling.tacx_trainer_control.specifictrainerdata attribute)": [[16, "pycycling.tacx_trainer_control.SpecificTrainerData.accumulated_power"]], "climber (pycycling.tacx_trainer_control.equipmenttype attribute)": [[16, "pycycling.tacx_trainer_control.EquipmentType.climber"]], "command_status (pycycling.tacx_trainer_control.commandstatusdata attribute)": [[16, "pycycling.tacx_trainer_control.CommandStatusData.command_status"]], "data (pycycling.tacx_trainer_control.commandstatusdata attribute)": [[16, "pycycling.tacx_trainer_control.CommandStatusData.data"]], "disable_fec_notifications() (pycycling.tacx_trainer_control.tacxtrainercontrol method)": [[16, "pycycling.tacx_trainer_control.TacxTrainerControl.disable_fec_notifications"]], "distance_travelled (pycycling.tacx_trainer_control.generalfedata attribute)": [[16, "pycycling.tacx_trainer_control.GeneralFEData.distance_travelled"]], "elapsed_time (pycycling.tacx_trainer_control.generalfedata attribute)": [[16, "pycycling.tacx_trainer_control.GeneralFEData.elapsed_time"]], "elliptical (pycycling.tacx_trainer_control.equipmenttype attribute)": [[16, "pycycling.tacx_trainer_control.EquipmentType.elliptical"]], "enable_fec_notifications() (pycycling.tacx_trainer_control.tacxtrainercontrol method)": [[16, "pycycling.tacx_trainer_control.TacxTrainerControl.enable_fec_notifications"]], "equipment_type (pycycling.tacx_trainer_control.generalfedata attribute)": [[16, "pycycling.tacx_trainer_control.GeneralFEData.equipment_type"]], "fail (pycycling.tacx_trainer_control.commandstatus attribute)": [[16, "pycycling.tacx_trainer_control.CommandStatus.fail"]], "fe_state (pycycling.tacx_trainer_control.generalfedata attribute)": [[16, "pycycling.tacx_trainer_control.GeneralFEData.fe_state"]], "fe_state (pycycling.tacx_trainer_control.specifictrainerdata attribute)": [[16, "pycycling.tacx_trainer_control.SpecificTrainerData.fe_state"]], "finished (pycycling.tacx_trainer_control.festate attribute)": [[16, "pycycling.tacx_trainer_control.FEState.finished"]], "heart_rate (pycycling.tacx_trainer_control.generalfedata attribute)": [[16, "pycycling.tacx_trainer_control.GeneralFEData.heart_rate"]], "in_use (pycycling.tacx_trainer_control.festate attribute)": [[16, "pycycling.tacx_trainer_control.FEState.in_use"]], "instantaneous_cadence (pycycling.tacx_trainer_control.specifictrainerdata attribute)": [[16, "pycycling.tacx_trainer_control.SpecificTrainerData.instantaneous_cadence"]], "instantaneous_power (pycycling.tacx_trainer_control.specifictrainerdata attribute)": [[16, "pycycling.tacx_trainer_control.SpecificTrainerData.instantaneous_power"]], "lap_toggle (pycycling.tacx_trainer_control.generalfedata attribute)": [[16, "pycycling.tacx_trainer_control.GeneralFEData.lap_toggle"]], "lap_toggle (pycycling.tacx_trainer_control.specifictrainerdata attribute)": [[16, "pycycling.tacx_trainer_control.SpecificTrainerData.lap_toggle"]], "last_received_command (pycycling.tacx_trainer_control.commandstatusdata attribute)": [[16, "pycycling.tacx_trainer_control.CommandStatusData.last_received_command"]], "limit_reached (pycycling.tacx_trainer_control.targetpowerlimit attribute)": [[16, "pycycling.tacx_trainer_control.TargetPowerLimit.limit_reached"]], "nordic_skier (pycycling.tacx_trainer_control.equipmenttype attribute)": [[16, "pycycling.tacx_trainer_control.EquipmentType.nordic_skier"]], "not_supported (pycycling.tacx_trainer_control.commandstatus attribute)": [[16, "pycycling.tacx_trainer_control.CommandStatus.not_supported"]], "operating_at_target_or_no_target_set (pycycling.tacx_trainer_control.targetpowerlimit attribute)": [[16, "pycycling.tacx_trainer_control.TargetPowerLimit.operating_at_target_or_no_target_set"]], "power_calibration_required (pycycling.tacx_trainer_control.specifictrainerdata attribute)": [[16, "pycycling.tacx_trainer_control.SpecificTrainerData.power_calibration_required"]], "pycycling.tacx_trainer_control": [[16, "module-pycycling.tacx_trainer_control"]], "ready (pycycling.tacx_trainer_control.festate attribute)": [[16, "pycycling.tacx_trainer_control.FEState.ready"]], "rejected (pycycling.tacx_trainer_control.commandstatus attribute)": [[16, "pycycling.tacx_trainer_control.CommandStatus.rejected"]], "request_data_page() (pycycling.tacx_trainer_control.tacxtrainercontrol method)": [[16, "pycycling.tacx_trainer_control.TacxTrainerControl.request_data_page"]], "reserved (pycycling.tacx_trainer_control.equipmenttype attribute)": [[16, "pycycling.tacx_trainer_control.EquipmentType.reserved"]], "reserved (pycycling.tacx_trainer_control.festate attribute)": [[16, "pycycling.tacx_trainer_control.FEState.reserved"]], "resistance_calibration_required (pycycling.tacx_trainer_control.specifictrainerdata attribute)": [[16, "pycycling.tacx_trainer_control.SpecificTrainerData.resistance_calibration_required"]], "rower (pycycling.tacx_trainer_control.equipmenttype attribute)": [[16, "pycycling.tacx_trainer_control.EquipmentType.rower"]], "set_basic_resistance() (pycycling.tacx_trainer_control.tacxtrainercontrol method)": [[16, "pycycling.tacx_trainer_control.TacxTrainerControl.set_basic_resistance"]], "set_command_status_data_page_handler() (pycycling.tacx_trainer_control.tacxtrainercontrol method)": [[16, "pycycling.tacx_trainer_control.TacxTrainerControl.set_command_status_data_page_handler"]], "set_general_fe_data_page_handler() (pycycling.tacx_trainer_control.tacxtrainercontrol method)": [[16, "pycycling.tacx_trainer_control.TacxTrainerControl.set_general_fe_data_page_handler"]], "set_neo_modes() (pycycling.tacx_trainer_control.tacxtrainercontrol method)": [[16, "pycycling.tacx_trainer_control.TacxTrainerControl.set_neo_modes"]], "set_specific_trainer_data_page_handler() (pycycling.tacx_trainer_control.tacxtrainercontrol method)": [[16, "pycycling.tacx_trainer_control.TacxTrainerControl.set_specific_trainer_data_page_handler"]], "set_target_power() (pycycling.tacx_trainer_control.tacxtrainercontrol method)": [[16, "pycycling.tacx_trainer_control.TacxTrainerControl.set_target_power"]], "set_track_resistance() (pycycling.tacx_trainer_control.tacxtrainercontrol method)": [[16, "pycycling.tacx_trainer_control.TacxTrainerControl.set_track_resistance"]], "set_user_configuration() (pycycling.tacx_trainer_control.tacxtrainercontrol method)": [[16, "pycycling.tacx_trainer_control.TacxTrainerControl.set_user_configuration"]], "set_wind_resistance() (pycycling.tacx_trainer_control.tacxtrainercontrol method)": [[16, "pycycling.tacx_trainer_control.TacxTrainerControl.set_wind_resistance"]], "speed (pycycling.tacx_trainer_control.generalfedata attribute)": [[16, "pycycling.tacx_trainer_control.GeneralFEData.speed"]], "success (pycycling.tacx_trainer_control.commandstatus attribute)": [[16, "pycycling.tacx_trainer_control.CommandStatus.success"]], "target_power_limits (pycycling.tacx_trainer_control.specifictrainerdata attribute)": [[16, "pycycling.tacx_trainer_control.SpecificTrainerData.target_power_limits"]], "trainer (pycycling.tacx_trainer_control.equipmenttype attribute)": [[16, "pycycling.tacx_trainer_control.EquipmentType.trainer"]], "trainer_status (pycycling.tacx_trainer_control.specifictrainerdata attribute)": [[16, "pycycling.tacx_trainer_control.SpecificTrainerData.trainer_status"]], "treadmill (pycycling.tacx_trainer_control.equipmenttype attribute)": [[16, "pycycling.tacx_trainer_control.EquipmentType.treadmill"]], "uninitialized (pycycling.tacx_trainer_control.commandstatus attribute)": [[16, "pycycling.tacx_trainer_control.CommandStatus.uninitialized"]], "update_event_count (pycycling.tacx_trainer_control.specifictrainerdata attribute)": [[16, "pycycling.tacx_trainer_control.SpecificTrainerData.update_event_count"]], "user_configuration_required (pycycling.tacx_trainer_control.specifictrainerdata attribute)": [[16, "pycycling.tacx_trainer_control.SpecificTrainerData.user_configuration_required"]], "user_speed_too_high (pycycling.tacx_trainer_control.targetpowerlimit attribute)": [[16, "pycycling.tacx_trainer_control.TargetPowerLimit.user_speed_too_high"]], "user_speed_too_low (pycycling.tacx_trainer_control.targetpowerlimit attribute)": [[16, "pycycling.tacx_trainer_control.TargetPowerLimit.user_speed_too_low"]]}}) \ No newline at end of file +Search.setIndex({"alltitles": {"Contents:": [[0, null]], "Example": [[2, "example"], [3, "example"], [6, "example"], [14, "example"], [17, "example"]], "Indices and tables": [[0, "indices-and-tables"]], "Module contents": [[1, "module-pycycling"], [5, "module-pycycling.data"], [7, "module-pycycling.ftms_parsers"]], "Obtaining the address of your device": [[1, "obtaining-the-address-of-your-device"]], "Smart trainer modes of operation": [[17, "smart-trainer-modes-of-operation"]], "Submodules": [[1, "submodules"], [7, "submodules"]], "Subpackages": [[1, "subpackages"]], "Welcome to pycycling\u2019s documentation!": [[0, "welcome-to-pycycling-s-documentation"]], "pycycling package": [[1, "pycycling-package"]], "pycycling.battery_service module": [[2, "module-pycycling.battery_service"]], "pycycling.cycling_power_service module": [[3, "module-pycycling.cycling_power_service"]], "pycycling.cycling_speed_cadence_service module": [[4, "module-pycycling.cycling_speed_cadence_service"]], "pycycling.data package": [[5, "pycycling-data-package"]], "pycycling.fitness_machine_service module": [[6, "module-pycycling.fitness_machine_service"]], "pycycling.ftms_parsers package": [[7, "pycycling-ftms-parsers-package"]], "pycycling.ftms_parsers.control_point module": [[8, "module-pycycling.ftms_parsers.control_point"]], "pycycling.ftms_parsers.fitness_machine_feature module": [[9, "module-pycycling.ftms_parsers.fitness_machine_feature"]], "pycycling.ftms_parsers.fitness_machine_status module": [[10, "module-pycycling.ftms_parsers.fitness_machine_status"]], "pycycling.ftms_parsers.indoor_bike_data module": [[11, "module-pycycling.ftms_parsers.indoor_bike_data"]], "pycycling.ftms_parsers.training_status module": [[12, "module-pycycling.ftms_parsers.training_status"]], "pycycling.heart_rate_service module": [[13, "module-pycycling.heart_rate_service"]], "pycycling.rear_view_radar module": [[14, "module-pycycling.rear_view_radar"]], "pycycling.rizer module": [[15, "module-pycycling.rizer"]], "pycycling.sterzo module": [[16, "module-pycycling.sterzo"]], "pycycling.tacx_trainer_control module": [[17, "module-pycycling.tacx_trainer_control"]]}, "docnames": ["index", "pycycling", "pycycling.battery_service", "pycycling.cycling_power_service", "pycycling.cycling_speed_cadence_service", "pycycling.data", "pycycling.fitness_machine_service", "pycycling.ftms_parsers", "pycycling.ftms_parsers.control_point", "pycycling.ftms_parsers.fitness_machine_feature", "pycycling.ftms_parsers.fitness_machine_status", "pycycling.ftms_parsers.indoor_bike_data", "pycycling.ftms_parsers.training_status", "pycycling.heart_rate_service", "pycycling.rear_view_radar", "pycycling.rizer", "pycycling.sterzo", "pycycling.tacx_trainer_control"], "envversion": {"sphinx": 61, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.todo": 2, "sphinx.ext.viewcode": 1}, "filenames": ["index.rst", "pycycling.rst", "pycycling.battery_service.rst", "pycycling.cycling_power_service.rst", "pycycling.cycling_speed_cadence_service.rst", "pycycling.data.rst", "pycycling.fitness_machine_service.rst", "pycycling.ftms_parsers.rst", "pycycling.ftms_parsers.control_point.rst", "pycycling.ftms_parsers.fitness_machine_feature.rst", "pycycling.ftms_parsers.fitness_machine_status.rst", "pycycling.ftms_parsers.indoor_bike_data.rst", "pycycling.ftms_parsers.training_status.rst", "pycycling.heart_rate_service.rst", "pycycling.rear_view_radar.rst", "pycycling.rizer.rst", "pycycling.sterzo.rst", "pycycling.tacx_trainer_control.rst"], "indexentries": {"accumulated_energy (pycycling.cycling_power_service.cyclingpowermeasurement attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerMeasurement.accumulated_energy", false]], "accumulated_energy_supported (pycycling.cycling_power_service.cyclingpowerfeature attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerFeature.accumulated_energy_supported", false]], "accumulated_power (pycycling.tacx_trainer_control.specifictrainerdata attribute)": [[17, "pycycling.tacx_trainer_control.SpecificTrainerData.accumulated_power", false]], "accumulated_torque (pycycling.cycling_power_service.cyclingpowermeasurement attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerMeasurement.accumulated_torque", false]], "accumulated_torque_supported (pycycling.cycling_power_service.cyclingpowerfeature attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerFeature.accumulated_torque_supported", false]], "average_cadence (pycycling.ftms_parsers.indoor_bike_data.indoorbikedata attribute)": [[11, "pycycling.ftms_parsers.indoor_bike_data.IndoorBikeData.average_cadence", false]], "average_power (pycycling.ftms_parsers.indoor_bike_data.indoorbikedata attribute)": [[11, "pycycling.ftms_parsers.indoor_bike_data.IndoorBikeData.average_power", false]], "average_speed (pycycling.ftms_parsers.indoor_bike_data.indoorbikedata attribute)": [[11, "pycycling.ftms_parsers.indoor_bike_data.IndoorBikeData.average_speed", false]], "avg_speed_supported (pycycling.ftms_parsers.fitness_machine_feature.fitnessmachinefeature attribute)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.FitnessMachineFeature.avg_speed_supported", false]], "batteryservice (class in pycycling.battery_service)": [[2, "pycycling.battery_service.BatteryService", false]], "bottom_dead_spot_angle (pycycling.cycling_power_service.cyclingpowermeasurement attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerMeasurement.bottom_dead_spot_angle", false]], "bpm (pycycling.heart_rate_service.heartratemeasurement attribute)": [[13, "pycycling.heart_rate_service.HeartRateMeasurement.bpm", false]], "brick_road (pycycling.tacx_trainer_control.roadsurface attribute)": [[17, "pycycling.tacx_trainer_control.RoadSurface.BRICK_ROAD", false]], "cadence_supported (pycycling.ftms_parsers.fitness_machine_feature.fitnessmachinefeature attribute)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.FitnessMachineFeature.cadence_supported", false]], "cattle_grid (pycycling.tacx_trainer_control.roadsurface attribute)": [[17, "pycycling.tacx_trainer_control.RoadSurface.CATTLE_GRID", false]], "chain_length_adjustment_supported (pycycling.cycling_power_service.cyclingpowerfeature attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerFeature.chain_length_adjustment_supported", false]], "chain_ring (pycycling.cycling_power_service.sensorlocation attribute)": [[3, "pycycling.cycling_power_service.SensorLocation.chain_ring", false]], "chain_weight_adjustment_supported (pycycling.cycling_power_service.cyclingpowerfeature attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerFeature.chain_weight_adjustment_supported", false]], "chainstay (pycycling.cycling_power_service.sensorlocation attribute)": [[3, "pycycling.cycling_power_service.SensorLocation.chainstay", false]], "chest (pycycling.cycling_power_service.sensorlocation attribute)": [[3, "pycycling.cycling_power_service.SensorLocation.chest", false]], "climber (pycycling.tacx_trainer_control.equipmenttype attribute)": [[17, "pycycling.tacx_trainer_control.EquipmentType.climber", false]], "cobblestones_hard (pycycling.tacx_trainer_control.roadsurface attribute)": [[17, "pycycling.tacx_trainer_control.RoadSurface.COBBLESTONES_HARD", false]], "cobblestones_soft (pycycling.tacx_trainer_control.roadsurface attribute)": [[17, "pycycling.tacx_trainer_control.RoadSurface.COBBLESTONES_SOFT", false]], "coefficient_of_rolling_resistance (pycycling.ftms_parsers.fitness_machine_status.indoorbikesimulationparameters attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.IndoorBikeSimulationParameters.coefficient_of_rolling_resistance", false]], "command_status (pycycling.tacx_trainer_control.commandstatusdata attribute)": [[17, "pycycling.tacx_trainer_control.CommandStatusData.command_status", false]], "commandstatus (class in pycycling.tacx_trainer_control)": [[17, "pycycling.tacx_trainer_control.CommandStatus", false]], "commandstatusdata (class in pycycling.tacx_trainer_control)": [[17, "pycycling.tacx_trainer_control.CommandStatusData", false]], "concrete_plates (pycycling.tacx_trainer_control.roadsurface attribute)": [[17, "pycycling.tacx_trainer_control.RoadSurface.CONCRETE_PLATES", false]], "control_not_permitted (pycycling.ftms_parsers.control_point.ftmscontrolpointresponseresultcode attribute)": [[8, "pycycling.ftms_parsers.control_point.FTMSControlPointResponseResultCode.CONTROL_NOT_PERMITTED", false]], "control_permission_lost (pycycling.ftms_parsers.fitness_machine_status.fitnessmachinestatus attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatus.CONTROL_PERMISSION_LOST", false]], "controlpointresponse (class in pycycling.ftms_parsers.control_point)": [[8, "pycycling.ftms_parsers.control_point.ControlPointResponse", false]], "cool_down (pycycling.ftms_parsers.training_status.trainingstatus attribute)": [[12, "pycycling.ftms_parsers.training_status.TrainingStatus.COOL_DOWN", false]], "crank_length_adjustment_supported (pycycling.cycling_power_service.cyclingpowerfeature attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerFeature.crank_length_adjustment_supported", false]], "crank_rev_supported (pycycling.cycling_power_service.cyclingpowerfeature attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerFeature.crank_rev_supported", false]], "crank_rev_supported (pycycling.cycling_speed_cadence_service.cscfeature attribute)": [[4, "pycycling.cycling_speed_cadence_service.CSCFeature.crank_rev_supported", false]], "cscfeature (class in pycycling.cycling_speed_cadence_service)": [[4, "pycycling.cycling_speed_cadence_service.CSCFeature", false]], "cscmeasurement (class in pycycling.cycling_speed_cadence_service)": [[4, "pycycling.cycling_speed_cadence_service.CSCMeasurement", false]], "cumulative_crank_revs (pycycling.cycling_power_service.cyclingpowermeasurement attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerMeasurement.cumulative_crank_revs", false]], "cumulative_crank_revs (pycycling.cycling_power_service.cyclingpowervector attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerVector.cumulative_crank_revs", false]], "cumulative_crank_revs (pycycling.cycling_speed_cadence_service.cscmeasurement attribute)": [[4, "pycycling.cycling_speed_cadence_service.CSCMeasurement.cumulative_crank_revs", false]], "cumulative_wheel_revs (pycycling.cycling_power_service.cyclingpowermeasurement attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerMeasurement.cumulative_wheel_revs", false]], "cumulative_wheel_revs (pycycling.cycling_speed_cadence_service.cscmeasurement attribute)": [[4, "pycycling.cycling_speed_cadence_service.CSCMeasurement.cumulative_wheel_revs", false]], "cycling_power_measurement_content_masking_supported (pycycling.cycling_power_service.cyclingpowerfeature attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerFeature.cycling_power_measurement_content_masking_supported", false]], "cyclingpowerfeature (class in pycycling.cycling_power_service)": [[3, "pycycling.cycling_power_service.CyclingPowerFeature", false]], "cyclingpowermeasurement (class in pycycling.cycling_power_service)": [[3, "pycycling.cycling_power_service.CyclingPowerMeasurement", false]], "cyclingpowerservice (class in pycycling.cycling_power_service)": [[3, "pycycling.cycling_power_service.CyclingPowerService", false]], "cyclingpowervector (class in pycycling.cycling_power_service)": [[3, "pycycling.cycling_power_service.CyclingPowerVector", false]], "cyclingspeedcadenceservice (class in pycycling.cycling_speed_cadence_service)": [[4, "pycycling.cycling_speed_cadence_service.CyclingSpeedCadenceService", false]], "data (pycycling.tacx_trainer_control.commandstatusdata attribute)": [[17, "pycycling.tacx_trainer_control.CommandStatusData.data", false]], "dead_spot_angles_supported (pycycling.cycling_power_service.cyclingpowerfeature attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerFeature.dead_spot_angles_supported", false]], "disable_control_point_indicate() (pycycling.fitness_machine_service.fitnessmachineservice method)": [[6, "pycycling.fitness_machine_service.FitnessMachineService.disable_control_point_indicate", false]], "disable_csc_measurement_notifications() (pycycling.cycling_speed_cadence_service.cyclingspeedcadenceservice method)": [[4, "pycycling.cycling_speed_cadence_service.CyclingSpeedCadenceService.disable_csc_measurement_notifications", false]], "disable_cycling_power_measurement_notifications() (pycycling.cycling_power_service.cyclingpowerservice method)": [[3, "pycycling.cycling_power_service.CyclingPowerService.disable_cycling_power_measurement_notifications", false]], "disable_cycling_power_vector_notifications() (pycycling.cycling_power_service.cyclingpowerservice method)": [[3, "pycycling.cycling_power_service.CyclingPowerService.disable_cycling_power_vector_notifications", false]], "disable_fec_notifications() (pycycling.tacx_trainer_control.tacxtrainercontrol method)": [[17, "pycycling.tacx_trainer_control.TacxTrainerControl.disable_fec_notifications", false]], "disable_fitness_machine_status_notify() (pycycling.fitness_machine_service.fitnessmachineservice method)": [[6, "pycycling.fitness_machine_service.FitnessMachineService.disable_fitness_machine_status_notify", false]], "disable_hr_measurement_notifications() (pycycling.heart_rate_service.heartrateservice method)": [[13, "pycycling.heart_rate_service.HeartRateService.disable_hr_measurement_notifications", false]], "disable_indoor_bike_data_notify() (pycycling.fitness_machine_service.fitnessmachineservice method)": [[6, "pycycling.fitness_machine_service.FitnessMachineService.disable_indoor_bike_data_notify", false]], "disable_radar_measurement_notifications() (pycycling.rear_view_radar.rearviewradarservice method)": [[14, "pycycling.rear_view_radar.RearViewRadarService.disable_radar_measurement_notifications", false]], "disable_steering_measurement_notifications() (pycycling.rizer.rizer method)": [[15, "pycycling.rizer.Rizer.disable_steering_measurement_notifications", false]], "disable_steering_measurement_notifications() (pycycling.sterzo.sterzo method)": [[16, "pycycling.sterzo.Sterzo.disable_steering_measurement_notifications", false]], "disable_training_status_notify() (pycycling.fitness_machine_service.fitnessmachineservice method)": [[6, "pycycling.fitness_machine_service.FitnessMachineService.disable_training_status_notify", false]], "distance (pycycling.rear_view_radar.radarmeasurement attribute)": [[14, "pycycling.rear_view_radar.RadarMeasurement.distance", false]], "distance_travelled (pycycling.tacx_trainer_control.generalfedata attribute)": [[17, "pycycling.tacx_trainer_control.GeneralFEData.distance_travelled", false]], "distribute_system_support (pycycling.cycling_power_service.cyclingpowerfeature attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerFeature.distribute_system_support", false]], "distributed_system_support (pycycling.cycling_power_service.distributesystemsupport attribute)": [[3, "pycycling.cycling_power_service.DistributeSystemSupport.distributed_system_support", false]], "distributesystemsupport (class in pycycling.cycling_power_service)": [[3, "pycycling.cycling_power_service.DistributeSystemSupport", false]], "elapsed_time (pycycling.ftms_parsers.indoor_bike_data.indoorbikedata attribute)": [[11, "pycycling.ftms_parsers.indoor_bike_data.IndoorBikeData.elapsed_time", false]], "elapsed_time (pycycling.tacx_trainer_control.generalfedata attribute)": [[17, "pycycling.tacx_trainer_control.GeneralFEData.elapsed_time", false]], "elapsed_time_supported (pycycling.ftms_parsers.fitness_machine_feature.fitnessmachinefeature attribute)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.FitnessMachineFeature.elapsed_time_supported", false]], "elevation_gain_supported (pycycling.ftms_parsers.fitness_machine_feature.fitnessmachinefeature attribute)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.FitnessMachineFeature.elevation_gain_supported", false]], "elliptical (pycycling.tacx_trainer_control.equipmenttype attribute)": [[17, "pycycling.tacx_trainer_control.EquipmentType.elliptical", false]], "enable_control_point_indicate() (pycycling.fitness_machine_service.fitnessmachineservice method)": [[6, "pycycling.fitness_machine_service.FitnessMachineService.enable_control_point_indicate", false]], "enable_csc_measurement_notifications() (pycycling.cycling_speed_cadence_service.cyclingspeedcadenceservice method)": [[4, "pycycling.cycling_speed_cadence_service.CyclingSpeedCadenceService.enable_csc_measurement_notifications", false]], "enable_cycling_power_measurement_notifications() (pycycling.cycling_power_service.cyclingpowerservice method)": [[3, "pycycling.cycling_power_service.CyclingPowerService.enable_cycling_power_measurement_notifications", false]], "enable_cycling_power_vector_notifications() (pycycling.cycling_power_service.cyclingpowerservice method)": [[3, "pycycling.cycling_power_service.CyclingPowerService.enable_cycling_power_vector_notifications", false]], "enable_fec_notifications() (pycycling.tacx_trainer_control.tacxtrainercontrol method)": [[17, "pycycling.tacx_trainer_control.TacxTrainerControl.enable_fec_notifications", false]], "enable_fitness_machine_status_notify() (pycycling.fitness_machine_service.fitnessmachineservice method)": [[6, "pycycling.fitness_machine_service.FitnessMachineService.enable_fitness_machine_status_notify", false]], "enable_hr_measurement_notifications() (pycycling.heart_rate_service.heartrateservice method)": [[13, "pycycling.heart_rate_service.HeartRateService.enable_hr_measurement_notifications", false]], "enable_indoor_bike_data_notify() (pycycling.fitness_machine_service.fitnessmachineservice method)": [[6, "pycycling.fitness_machine_service.FitnessMachineService.enable_indoor_bike_data_notify", false]], "enable_radar_measurement_notifications() (pycycling.rear_view_radar.rearviewradarservice method)": [[14, "pycycling.rear_view_radar.RearViewRadarService.enable_radar_measurement_notifications", false]], "enable_steering_measurement_notifications() (pycycling.rizer.rizer method)": [[15, "pycycling.rizer.Rizer.enable_steering_measurement_notifications", false]], "enable_steering_measurement_notifications() (pycycling.sterzo.sterzo method)": [[16, "pycycling.sterzo.Sterzo.enable_steering_measurement_notifications", false]], "enable_training_status_notify() (pycycling.fitness_machine_service.fitnessmachineservice method)": [[6, "pycycling.fitness_machine_service.FitnessMachineService.enable_training_status_notify", false]], "energy_expended (pycycling.heart_rate_service.heartratemeasurement attribute)": [[13, "pycycling.heart_rate_service.HeartRateMeasurement.energy_expended", false]], "energy_per_hour (pycycling.ftms_parsers.indoor_bike_data.indoorbikedata attribute)": [[11, "pycycling.ftms_parsers.indoor_bike_data.IndoorBikeData.energy_per_hour", false]], "energy_per_minute (pycycling.ftms_parsers.indoor_bike_data.indoorbikedata attribute)": [[11, "pycycling.ftms_parsers.indoor_bike_data.IndoorBikeData.energy_per_minute", false]], "enhanced_offset_compensation_supported (pycycling.cycling_power_service.cyclingpowerfeature attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerFeature.enhanced_offset_compensation_supported", false]], "equipment_type (pycycling.tacx_trainer_control.generalfedata attribute)": [[17, "pycycling.tacx_trainer_control.GeneralFEData.equipment_type", false]], "equipmenttype (class in pycycling.tacx_trainer_control)": [[17, "pycycling.tacx_trainer_control.EquipmentType", false]], "error (pycycling.ftms_parsers.fitness_machine_status.spindownstatusvalue attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.SpinDownStatusValue.ERROR", false]], "expended_energy_supported (pycycling.ftms_parsers.fitness_machine_feature.fitnessmachinefeature attribute)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.FitnessMachineFeature.expended_energy_supported", false]], "extreme_magnitudes_supported (pycycling.cycling_power_service.cyclingpowerfeature attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerFeature.extreme_magnitudes_supported", false]], "factory_calibration_date_supported (pycycling.cycling_power_service.cyclingpowerfeature attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerFeature.factory_calibration_date_supported", false]], "fail (pycycling.tacx_trainer_control.commandstatus attribute)": [[17, "pycycling.tacx_trainer_control.CommandStatus.fail", false]], "fat_burn (pycycling.ftms_parsers.fitness_machine_status.twozonehr attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.TwoZoneHR.fat_burn", false]], "fe_state (pycycling.tacx_trainer_control.generalfedata attribute)": [[17, "pycycling.tacx_trainer_control.GeneralFEData.fe_state", false]], "fe_state (pycycling.tacx_trainer_control.specifictrainerdata attribute)": [[17, "pycycling.tacx_trainer_control.SpecificTrainerData.fe_state", false]], "festate (class in pycycling.tacx_trainer_control)": [[17, "pycycling.tacx_trainer_control.FEState", false]], "finished (pycycling.tacx_trainer_control.festate attribute)": [[17, "pycycling.tacx_trainer_control.FEState.finished", false]], "first_crank_measurement_angle (pycycling.cycling_power_service.cyclingpowervector attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerVector.first_crank_measurement_angle", false]], "fitness (pycycling.ftms_parsers.fitness_machine_status.twozonehr attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.TwoZoneHR.fitness", false]], "fitness_test (pycycling.ftms_parsers.training_status.trainingstatus attribute)": [[12, "pycycling.ftms_parsers.training_status.TrainingStatus.FITNESS_TEST", false]], "fitnessmachinefeature (class in pycycling.ftms_parsers.fitness_machine_feature)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.FitnessMachineFeature", false]], "fitnessmachineservice (class in pycycling.fitness_machine_service)": [[6, "pycycling.fitness_machine_service.FitnessMachineService", false]], "fitnessmachinestatus (class in pycycling.ftms_parsers.fitness_machine_status)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatus", false]], "fitnessmachinestatusmessage (class in pycycling.ftms_parsers.fitness_machine_status)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatusMessage", false]], "fivezonehr (class in pycycling.ftms_parsers.fitness_machine_status)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FiveZoneHR", false]], "force_based (pycycling.cycling_power_service.sensormeasurementcontext attribute)": [[3, "pycycling.cycling_power_service.SensorMeasurementContext.force_based", false]], "force_on_belt_and_power_output_supported (pycycling.ftms_parsers.fitness_machine_feature.fitnessmachinefeature attribute)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.FitnessMachineFeature.force_on_belt_and_power_output_supported", false]], "form_ftms_control_command() (in module pycycling.ftms_parsers.control_point)": [[8, "pycycling.ftms_parsers.control_point.form_ftms_control_command", false]], "front_hub (pycycling.cycling_power_service.sensorlocation attribute)": [[3, "pycycling.cycling_power_service.SensorLocation.front_hub", false]], "front_wheel (pycycling.cycling_power_service.sensorlocation attribute)": [[3, "pycycling.cycling_power_service.SensorLocation.front_wheel", false]], "ftmscontrolpointopcode (class in pycycling.ftms_parsers.control_point)": [[8, "pycycling.ftms_parsers.control_point.FTMSControlPointOpCode", false]], "ftmscontrolpointresponseresultcode (class in pycycling.ftms_parsers.control_point)": [[8, "pycycling.ftms_parsers.control_point.FTMSControlPointResponseResultCode", false]], "generalfedata (class in pycycling.tacx_trainer_control)": [[17, "pycycling.tacx_trainer_control.GeneralFEData", false]], "get_battery_level() (pycycling.battery_service.batteryservice method)": [[2, "pycycling.battery_service.BatteryService.get_battery_level", false]], "get_csc_feature() (pycycling.cycling_speed_cadence_service.cyclingspeedcadenceservice method)": [[4, "pycycling.cycling_speed_cadence_service.CyclingSpeedCadenceService.get_csc_feature", false]], "get_cycling_power_feature() (pycycling.cycling_power_service.cyclingpowerservice method)": [[3, "pycycling.cycling_power_service.CyclingPowerService.get_cycling_power_feature", false]], "get_fitness_machine_feature() (pycycling.fitness_machine_service.fitnessmachineservice method)": [[6, "pycycling.fitness_machine_service.FitnessMachineService.get_fitness_machine_feature", false]], "get_sensor_location() (pycycling.cycling_power_service.cyclingpowerservice method)": [[3, "pycycling.cycling_power_service.CyclingPowerService.get_sensor_location", false]], "get_supported_power_range() (pycycling.fitness_machine_service.fitnessmachineservice method)": [[6, "pycycling.fitness_machine_service.FitnessMachineService.get_supported_power_range", false]], "get_supported_resistance_level_range() (pycycling.fitness_machine_service.fitnessmachineservice method)": [[6, "pycycling.fitness_machine_service.FitnessMachineService.get_supported_resistance_level_range", false]], "grade (pycycling.ftms_parsers.fitness_machine_status.indoorbikesimulationparameters attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.IndoorBikeSimulationParameters.grade", false]], "gravel (pycycling.tacx_trainer_control.roadsurface attribute)": [[17, "pycycling.tacx_trainer_control.RoadSurface.GRAVEL", false]], "hard (pycycling.ftms_parsers.fitness_machine_status.fivezonehr attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FiveZoneHR.hard", false]], "heart_rate (pycycling.ftms_parsers.indoor_bike_data.indoorbikedata attribute)": [[11, "pycycling.ftms_parsers.indoor_bike_data.IndoorBikeData.heart_rate", false]], "heart_rate (pycycling.tacx_trainer_control.generalfedata attribute)": [[17, "pycycling.tacx_trainer_control.GeneralFEData.heart_rate", false]], "heart_rate_control (pycycling.ftms_parsers.training_status.trainingstatus attribute)": [[12, "pycycling.ftms_parsers.training_status.TrainingStatus.HEART_RATE_CONTROL", false]], "heart_rate_measurement_supported (pycycling.ftms_parsers.fitness_machine_feature.fitnessmachinefeature attribute)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.FitnessMachineFeature.heart_rate_measurement_supported", false]], "heart_rate_target_setting_supported (pycycling.ftms_parsers.fitness_machine_feature.targetsettingfeatures attribute)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.TargetSettingFeatures.heart_rate_target_setting_supported", false]], "heartratemeasurement (class in pycycling.heart_rate_service)": [[13, "pycycling.heart_rate_service.HeartRateMeasurement", false]], "heartrateservice (class in pycycling.heart_rate_service)": [[13, "pycycling.heart_rate_service.HeartRateService", false]], "high_intensity_interval (pycycling.ftms_parsers.training_status.trainingstatus attribute)": [[12, "pycycling.ftms_parsers.training_status.TrainingStatus.HIGH_INTENSITY_INTERVAL", false]], "hip (pycycling.cycling_power_service.sensorlocation attribute)": [[3, "pycycling.cycling_power_service.SensorLocation.hip", false]], "ice (pycycling.tacx_trainer_control.roadsurface attribute)": [[17, "pycycling.tacx_trainer_control.RoadSurface.ICE", false]], "idle (pycycling.ftms_parsers.training_status.trainingstatus attribute)": [[12, "pycycling.ftms_parsers.training_status.TrainingStatus.IDLE", false]], "in_shoe (pycycling.cycling_power_service.sensorlocation attribute)": [[3, "pycycling.cycling_power_service.SensorLocation.in_shoe", false]], "in_use (pycycling.tacx_trainer_control.festate attribute)": [[17, "pycycling.tacx_trainer_control.FEState.in_use", false]], "inclination_supported (pycycling.ftms_parsers.fitness_machine_feature.fitnessmachinefeature attribute)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.FitnessMachineFeature.inclination_supported", false]], "inclination_target_setting_supported (pycycling.ftms_parsers.fitness_machine_feature.targetsettingfeatures attribute)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.TargetSettingFeatures.inclination_target_setting_supported", false]], "incorrect_parameter (pycycling.ftms_parsers.control_point.ftmscontrolpointresponseresultcode attribute)": [[8, "pycycling.ftms_parsers.control_point.FTMSControlPointResponseResultCode.INCORRECT_PARAMETER", false]], "indoor_bike_simulation_parameters_supported (pycycling.ftms_parsers.fitness_machine_feature.targetsettingfeatures attribute)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.TargetSettingFeatures.indoor_bike_simulation_parameters_supported", false]], "indoorbikedata (class in pycycling.ftms_parsers.indoor_bike_data)": [[11, "pycycling.ftms_parsers.indoor_bike_data.IndoorBikeData", false]], "indoorbikesimulationparameters (class in pycycling.ftms_parsers.fitness_machine_status)": [[10, "pycycling.ftms_parsers.fitness_machine_status.IndoorBikeSimulationParameters", false]], "instant_cadence (pycycling.ftms_parsers.indoor_bike_data.indoorbikedata attribute)": [[11, "pycycling.ftms_parsers.indoor_bike_data.IndoorBikeData.instant_cadence", false]], "instant_power (pycycling.ftms_parsers.indoor_bike_data.indoorbikedata attribute)": [[11, "pycycling.ftms_parsers.indoor_bike_data.IndoorBikeData.instant_power", false]], "instant_speed (pycycling.ftms_parsers.indoor_bike_data.indoorbikedata attribute)": [[11, "pycycling.ftms_parsers.indoor_bike_data.IndoorBikeData.instant_speed", false]], "instantaneous_cadence (pycycling.tacx_trainer_control.specifictrainerdata attribute)": [[17, "pycycling.tacx_trainer_control.SpecificTrainerData.instantaneous_cadence", false]], "instantaneous_force_magnitudes (pycycling.cycling_power_service.cyclingpowervector attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerVector.instantaneous_force_magnitudes", false]], "instantaneous_measurement_direction (pycycling.cycling_power_service.cyclingpowervector attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerVector.instantaneous_measurement_direction", false]], "instantaneous_measurement_direction_supported (pycycling.cycling_power_service.cyclingpowerfeature attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerFeature.instantaneous_measurement_direction_supported", false]], "instantaneous_power (pycycling.cycling_power_service.cyclingpowermeasurement attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerMeasurement.instantaneous_power", false]], "instantaneous_power (pycycling.tacx_trainer_control.specifictrainerdata attribute)": [[17, "pycycling.tacx_trainer_control.SpecificTrainerData.instantaneous_power", false]], "instantaneous_torque_magnitudes (pycycling.cycling_power_service.cyclingpowervector attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerVector.instantaneous_torque_magnitudes", false]], "instantaneousmeasurementdirection (class in pycycling.cycling_power_service)": [[3, "pycycling.cycling_power_service.InstantaneousMeasurementDirection", false]], "isometric (pycycling.ftms_parsers.training_status.trainingstatus attribute)": [[12, "pycycling.ftms_parsers.training_status.TrainingStatus.ISOMETRIC", false]], "lap_toggle (pycycling.tacx_trainer_control.generalfedata attribute)": [[17, "pycycling.tacx_trainer_control.GeneralFEData.lap_toggle", false]], "lap_toggle (pycycling.tacx_trainer_control.specifictrainerdata attribute)": [[17, "pycycling.tacx_trainer_control.SpecificTrainerData.lap_toggle", false]], "last_crank_event_time (pycycling.cycling_power_service.cyclingpowermeasurement attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerMeasurement.last_crank_event_time", false]], "last_crank_event_time (pycycling.cycling_power_service.cyclingpowervector attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerVector.last_crank_event_time", false]], "last_crank_event_time (pycycling.cycling_speed_cadence_service.cscmeasurement attribute)": [[4, "pycycling.cycling_speed_cadence_service.CSCMeasurement.last_crank_event_time", false]], "last_received_command (pycycling.tacx_trainer_control.commandstatusdata attribute)": [[17, "pycycling.tacx_trainer_control.CommandStatusData.last_received_command", false]], "last_wheel_event_time (pycycling.cycling_power_service.cyclingpowermeasurement attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerMeasurement.last_wheel_event_time", false]], "last_wheel_event_time (pycycling.cycling_speed_cadence_service.cscmeasurement attribute)": [[4, "pycycling.cycling_speed_cadence_service.CSCMeasurement.last_wheel_event_time", false]], "lateral_component (pycycling.cycling_power_service.instantaneousmeasurementdirection attribute)": [[3, "pycycling.cycling_power_service.InstantaneousMeasurementDirection.lateral_component", false]], "left_crank (pycycling.cycling_power_service.sensorlocation attribute)": [[3, "pycycling.cycling_power_service.SensorLocation.left_crank", false]], "left_pedal (pycycling.cycling_power_service.sensorlocation attribute)": [[3, "pycycling.cycling_power_service.SensorLocation.left_pedal", false]], "light (pycycling.ftms_parsers.fitness_machine_status.fivezonehr attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FiveZoneHR.light", false]], "light (pycycling.ftms_parsers.fitness_machine_status.threezonehr attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.ThreeZoneHR.light", false]], "limit_reached (pycycling.tacx_trainer_control.targetpowerlimit attribute)": [[17, "pycycling.tacx_trainer_control.TargetPowerLimit.limit_reached", false]], "low_intensity_interval (pycycling.ftms_parsers.training_status.trainingstatus attribute)": [[12, "pycycling.ftms_parsers.training_status.TrainingStatus.LOW_INTENSITY_INTERVAL", false]], "manual_mode (pycycling.ftms_parsers.training_status.trainingstatus attribute)": [[12, "pycycling.ftms_parsers.training_status.TrainingStatus.MANUAL_MODE", false]], "maximum (pycycling.ftms_parsers.fitness_machine_status.fivezonehr attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FiveZoneHR.maximum", false]], "maximum_force_magnitude (pycycling.cycling_power_service.cyclingpowermeasurement attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerMeasurement.maximum_force_magnitude", false]], "maximum_power (pycycling.fitness_machine_service.supportedpowerrange attribute)": [[6, "pycycling.fitness_machine_service.SupportedPowerRange.maximum_power", false]], "maximum_resistance (pycycling.fitness_machine_service.supportedresistancelevelrange attribute)": [[6, "pycycling.fitness_machine_service.SupportedResistanceLevelRange.maximum_resistance", false]], "maximum_torque_magnitude (pycycling.cycling_power_service.cyclingpowermeasurement attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerMeasurement.maximum_torque_magnitude", false]], "metabolic_equivalent (pycycling.ftms_parsers.indoor_bike_data.indoorbikedata attribute)": [[11, "pycycling.ftms_parsers.indoor_bike_data.IndoorBikeData.metabolic_equivalent", false]], "metabolic_equivalent_supported (pycycling.ftms_parsers.fitness_machine_feature.fitnessmachinefeature attribute)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.FitnessMachineFeature.metabolic_equivalent_supported", false]], "minimum_force_magnitude (pycycling.cycling_power_service.cyclingpowermeasurement attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerMeasurement.minimum_force_magnitude", false]], "minimum_increment (pycycling.fitness_machine_service.supportedpowerrange attribute)": [[6, "pycycling.fitness_machine_service.SupportedPowerRange.minimum_increment", false]], "minimum_increment (pycycling.fitness_machine_service.supportedresistancelevelrange attribute)": [[6, "pycycling.fitness_machine_service.SupportedResistanceLevelRange.minimum_increment", false]], "minimum_power (pycycling.fitness_machine_service.supportedpowerrange attribute)": [[6, "pycycling.fitness_machine_service.SupportedPowerRange.minimum_power", false]], "minimum_resistance (pycycling.fitness_machine_service.supportedresistancelevelrange attribute)": [[6, "pycycling.fitness_machine_service.SupportedResistanceLevelRange.minimum_resistance", false]], "minimum_torque_magnitude (pycycling.cycling_power_service.cyclingpowermeasurement attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerMeasurement.minimum_torque_magnitude", false]], "moderate (pycycling.ftms_parsers.fitness_machine_status.fivezonehr attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FiveZoneHR.moderate", false]], "moderate (pycycling.ftms_parsers.fitness_machine_status.threezonehr attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.ThreeZoneHR.moderate", false]], "module": [[1, "module-pycycling", false], [2, "module-pycycling.battery_service", false], [3, "module-pycycling.cycling_power_service", false], [4, "module-pycycling.cycling_speed_cadence_service", false], [5, "module-pycycling.data", false], [6, "module-pycycling.fitness_machine_service", false], [7, "module-pycycling.ftms_parsers", false], [8, "module-pycycling.ftms_parsers.control_point", false], [9, "module-pycycling.ftms_parsers.fitness_machine_feature", false], [10, "module-pycycling.ftms_parsers.fitness_machine_status", false], [11, "module-pycycling.ftms_parsers.indoor_bike_data", false], [12, "module-pycycling.ftms_parsers.training_status", false], [13, "module-pycycling.heart_rate_service", false], [14, "module-pycycling.rear_view_radar", false], [15, "module-pycycling.rizer", false], [16, "module-pycycling.sterzo", false], [17, "module-pycycling.tacx_trainer_control", false]], "multiple_locations_supported (pycycling.cycling_power_service.cyclingpowerfeature attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerFeature.multiple_locations_supported", false]], "multiple_locations_supported (pycycling.cycling_speed_cadence_service.cscfeature attribute)": [[4, "pycycling.cycling_speed_cadence_service.CSCFeature.multiple_locations_supported", false]], "new_distance (pycycling.ftms_parsers.fitness_machine_status.fitnessmachinestatus attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatus.NEW_DISTANCE", false]], "new_expended_energy (pycycling.ftms_parsers.fitness_machine_status.fitnessmachinestatus attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatus.NEW_EXPENDED_ENERGY", false]], "new_five_heart_rate_zone_target_time (pycycling.ftms_parsers.fitness_machine_status.fitnessmachinestatus attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatus.NEW_FIVE_HEART_RATE_ZONE_TARGET_TIME", false]], "new_heart_rate (pycycling.ftms_parsers.fitness_machine_status.fitnessmachinestatus attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatus.NEW_HEART_RATE", false]], "new_inclination (pycycling.ftms_parsers.fitness_machine_status.fitnessmachinestatus attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatus.NEW_INCLINATION", false]], "new_indoor_bike_simulation_parameters (pycycling.ftms_parsers.fitness_machine_status.fitnessmachinestatus attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatus.NEW_INDOOR_BIKE_SIMULATION_PARAMETERS", false]], "new_number_of_steps (pycycling.ftms_parsers.fitness_machine_status.fitnessmachinestatus attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatus.NEW_NUMBER_OF_STEPS", false]], "new_number_of_strides (pycycling.ftms_parsers.fitness_machine_status.fitnessmachinestatus attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatus.NEW_NUMBER_OF_STRIDES", false]], "new_power (pycycling.ftms_parsers.fitness_machine_status.fitnessmachinestatus attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatus.NEW_POWER", false]], "new_resistance (pycycling.ftms_parsers.fitness_machine_status.fitnessmachinestatus attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatus.NEW_RESISTANCE", false]], "new_speed (pycycling.ftms_parsers.fitness_machine_status.fitnessmachinestatus attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatus.NEW_SPEED", false]], "new_spin_down_status (pycycling.ftms_parsers.fitness_machine_status.fitnessmachinestatus attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatus.NEW_SPIN_DOWN_STATUS", false]], "new_target_cadence (pycycling.ftms_parsers.fitness_machine_status.fitnessmachinestatus attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatus.NEW_TARGET_CADENCE", false]], "new_three_heart_rate_zone_target_time (pycycling.ftms_parsers.fitness_machine_status.fitnessmachinestatus attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatus.NEW_THREE_HEART_RATE_ZONE_TARGET_TIME", false]], "new_training_time (pycycling.ftms_parsers.fitness_machine_status.fitnessmachinestatus attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatus.NEW_TRAINING_TIME", false]], "new_two_heart_rate_zone_target_time (pycycling.ftms_parsers.fitness_machine_status.fitnessmachinestatus attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatus.NEW_TWO_HEART_RATE_ZONE_TARGET_TIME", false]], "new_wheel_circumference (pycycling.ftms_parsers.fitness_machine_status.fitnessmachinestatus attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatus.NEW_WHEEL_CIRCUMFERENCE", false]], "no_distributed_system_support (pycycling.cycling_power_service.distributesystemsupport attribute)": [[3, "pycycling.cycling_power_service.DistributeSystemSupport.no_distributed_system_support", false]], "nordic_skier (pycycling.tacx_trainer_control.equipmenttype attribute)": [[17, "pycycling.tacx_trainer_control.EquipmentType.nordic_skier", false]], "not_supported (pycycling.ftms_parsers.control_point.ftmscontrolpointresponseresultcode attribute)": [[8, "pycycling.ftms_parsers.control_point.FTMSControlPointResponseResultCode.NOT_SUPPORTED", false]], "not_supported (pycycling.tacx_trainer_control.commandstatus attribute)": [[17, "pycycling.tacx_trainer_control.CommandStatus.not_supported", false]], "off_road (pycycling.tacx_trainer_control.roadsurface attribute)": [[17, "pycycling.tacx_trainer_control.RoadSurface.OFF_ROAD", false]], "offset_compensation_supported (pycycling.cycling_power_service.cyclingpowerfeature attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerFeature.offset_compensation_supported", false]], "operating_at_target_or_no_target_set (pycycling.tacx_trainer_control.targetpowerlimit attribute)": [[17, "pycycling.tacx_trainer_control.TargetPowerLimit.operating_at_target_or_no_target_set", false]], "operation_failed (pycycling.ftms_parsers.control_point.ftmscontrolpointresponseresultcode attribute)": [[8, "pycycling.ftms_parsers.control_point.FTMSControlPointResponseResultCode.OPERATION_FAILED", false]], "other (pycycling.cycling_power_service.sensorlocation attribute)": [[3, "pycycling.cycling_power_service.SensorLocation.other", false]], "other (pycycling.ftms_parsers.training_status.trainingstatus attribute)": [[12, "pycycling.ftms_parsers.training_status.TrainingStatus.OTHER", false]], "pace_supported (pycycling.ftms_parsers.fitness_machine_feature.fitnessmachinefeature attribute)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.FitnessMachineFeature.pace_supported", false]], "param (pycycling.ftms_parsers.training_status.trainingstatusmessage attribute)": [[12, "pycycling.ftms_parsers.training_status.TrainingStatusMessage.param", false]], "parse_all_features() (in module pycycling.ftms_parsers.fitness_machine_feature)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.parse_all_features", false]], "parse_control_point_response() (in module pycycling.ftms_parsers.control_point)": [[8, "pycycling.ftms_parsers.control_point.parse_control_point_response", false]], "parse_fitness_machine_feature() (in module pycycling.ftms_parsers.fitness_machine_feature)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.parse_fitness_machine_feature", false]], "parse_fitness_machine_status() (in module pycycling.ftms_parsers.fitness_machine_status)": [[10, "pycycling.ftms_parsers.fitness_machine_status.parse_fitness_machine_status", false]], "parse_indoor_bike_data() (in module pycycling.ftms_parsers.indoor_bike_data)": [[11, "pycycling.ftms_parsers.indoor_bike_data.parse_indoor_bike_data", false]], "parse_target_setting_features() (in module pycycling.ftms_parsers.fitness_machine_feature)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.parse_target_setting_features", false]], "parse_training_status() (in module pycycling.ftms_parsers.training_status)": [[12, "pycycling.ftms_parsers.training_status.parse_training_status", false]], "paused_by_user (pycycling.ftms_parsers.fitness_machine_status.fitnessmachinestatus attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatus.PAUSED_BY_USER", false]], "pedal_power_balance (pycycling.cycling_power_service.cyclingpowermeasurement attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerMeasurement.pedal_power_balance", false]], "pedal_power_balance_supported (pycycling.cycling_power_service.cyclingpowerfeature attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerFeature.pedal_power_balance_supported", false]], "post_workout (pycycling.ftms_parsers.training_status.trainingstatus attribute)": [[12, "pycycling.ftms_parsers.training_status.TrainingStatus.POST_WORKOUT", false]], "power_calibration_required (pycycling.tacx_trainer_control.specifictrainerdata attribute)": [[17, "pycycling.tacx_trainer_control.SpecificTrainerData.power_calibration_required", false]], "power_measurement_supported (pycycling.ftms_parsers.fitness_machine_feature.fitnessmachinefeature attribute)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.FitnessMachineFeature.power_measurement_supported", false]], "power_target_setting_supported (pycycling.ftms_parsers.fitness_machine_feature.targetsettingfeatures attribute)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.TargetSettingFeatures.power_target_setting_supported", false]], "pre_workout (pycycling.ftms_parsers.training_status.trainingstatus attribute)": [[12, "pycycling.ftms_parsers.training_status.TrainingStatus.PRE_WORKOUT", false]], "pycycling": [[1, "module-pycycling", false]], "pycycling.battery_service": [[2, "module-pycycling.battery_service", false]], "pycycling.cycling_power_service": [[3, "module-pycycling.cycling_power_service", false]], "pycycling.cycling_speed_cadence_service": [[4, "module-pycycling.cycling_speed_cadence_service", false]], "pycycling.data": [[5, "module-pycycling.data", false]], "pycycling.fitness_machine_service": [[6, "module-pycycling.fitness_machine_service", false]], "pycycling.ftms_parsers": [[7, "module-pycycling.ftms_parsers", false]], "pycycling.ftms_parsers.control_point": [[8, "module-pycycling.ftms_parsers.control_point", false]], "pycycling.ftms_parsers.fitness_machine_feature": [[9, "module-pycycling.ftms_parsers.fitness_machine_feature", false]], "pycycling.ftms_parsers.fitness_machine_status": [[10, "module-pycycling.ftms_parsers.fitness_machine_status", false]], "pycycling.ftms_parsers.indoor_bike_data": [[11, "module-pycycling.ftms_parsers.indoor_bike_data", false]], "pycycling.ftms_parsers.training_status": [[12, "module-pycycling.ftms_parsers.training_status", false]], "pycycling.heart_rate_service": [[13, "module-pycycling.heart_rate_service", false]], "pycycling.rear_view_radar": [[14, "module-pycycling.rear_view_radar", false]], "pycycling.rizer": [[15, "module-pycycling.rizer", false]], "pycycling.sterzo": [[16, "module-pycycling.sterzo", false]], "pycycling.tacx_trainer_control": [[17, "module-pycycling.tacx_trainer_control", false]], "radarmeasurement (class in pycycling.rear_view_radar)": [[14, "pycycling.rear_view_radar.RadarMeasurement", false]], "radial_component (pycycling.cycling_power_service.instantaneousmeasurementdirection attribute)": [[3, "pycycling.cycling_power_service.InstantaneousMeasurementDirection.radial_component", false]], "ready (pycycling.tacx_trainer_control.festate attribute)": [[17, "pycycling.tacx_trainer_control.FEState.ready", false]], "rear_dropout (pycycling.cycling_power_service.sensorlocation attribute)": [[3, "pycycling.cycling_power_service.SensorLocation.rear_dropout", false]], "rear_hub (pycycling.cycling_power_service.sensorlocation attribute)": [[3, "pycycling.cycling_power_service.SensorLocation.rear_hub", false]], "rear_wheel (pycycling.cycling_power_service.sensorlocation attribute)": [[3, "pycycling.cycling_power_service.SensorLocation.rear_wheel", false]], "rearviewradarservice (class in pycycling.rear_view_radar)": [[14, "pycycling.rear_view_radar.RearViewRadarService", false]], "recovery_interval (pycycling.ftms_parsers.training_status.trainingstatus attribute)": [[12, "pycycling.ftms_parsers.training_status.TrainingStatus.RECOVERY_INTERVAL", false]], "rejected (pycycling.tacx_trainer_control.commandstatus attribute)": [[17, "pycycling.tacx_trainer_control.CommandStatus.rejected", false]], "remaining_time (pycycling.ftms_parsers.indoor_bike_data.indoorbikedata attribute)": [[11, "pycycling.ftms_parsers.indoor_bike_data.IndoorBikeData.remaining_time", false]], "remaining_time_supported (pycycling.ftms_parsers.fitness_machine_feature.fitnessmachinefeature attribute)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.FitnessMachineFeature.remaining_time_supported", false]], "request_code_enum (pycycling.ftms_parsers.control_point.controlpointresponse attribute)": [[8, "pycycling.ftms_parsers.control_point.ControlPointResponse.request_code_enum", false]], "request_control (pycycling.ftms_parsers.control_point.ftmscontrolpointopcode attribute)": [[8, "pycycling.ftms_parsers.control_point.FTMSControlPointOpCode.REQUEST_CONTROL", false]], "request_control() (pycycling.fitness_machine_service.fitnessmachineservice method)": [[6, "pycycling.fitness_machine_service.FitnessMachineService.request_control", false]], "request_data_page() (pycycling.tacx_trainer_control.tacxtrainercontrol method)": [[17, "pycycling.tacx_trainer_control.TacxTrainerControl.request_data_page", false]], "reserved (pycycling.ftms_parsers.training_status.trainingstatus attribute)": [[12, "pycycling.ftms_parsers.training_status.TrainingStatus.RESERVED", false]], "reserved (pycycling.tacx_trainer_control.equipmenttype attribute)": [[17, "pycycling.tacx_trainer_control.EquipmentType.reserved", false]], "reserved (pycycling.tacx_trainer_control.festate attribute)": [[17, "pycycling.tacx_trainer_control.FEState.reserved", false]], "reserved_for_future_use (pycycling.ftms_parsers.fitness_machine_status.fitnessmachinestatus attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatus.RESERVED_FOR_FUTURE_USE", false]], "reserved_for_future_use (pycycling.ftms_parsers.fitness_machine_status.spindownstatusvalue attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.SpinDownStatusValue.RESERVED_FOR_FUTURE_USE", false]], "reset (pycycling.ftms_parsers.control_point.ftmscontrolpointopcode attribute)": [[8, "pycycling.ftms_parsers.control_point.FTMSControlPointOpCode.RESET", false]], "reset (pycycling.ftms_parsers.fitness_machine_status.fitnessmachinestatus attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatus.RESET", false]], "reset() (pycycling.fitness_machine_service.fitnessmachineservice method)": [[6, "pycycling.fitness_machine_service.FitnessMachineService.reset", false]], "resistance_calibration_required (pycycling.tacx_trainer_control.specifictrainerdata attribute)": [[17, "pycycling.tacx_trainer_control.SpecificTrainerData.resistance_calibration_required", false]], "resistance_level (pycycling.ftms_parsers.indoor_bike_data.indoorbikedata attribute)": [[11, "pycycling.ftms_parsers.indoor_bike_data.IndoorBikeData.resistance_level", false]], "resistance_level_supported (pycycling.ftms_parsers.fitness_machine_feature.fitnessmachinefeature attribute)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.FitnessMachineFeature.resistance_level_supported", false]], "resistance_target_setting_supported (pycycling.ftms_parsers.fitness_machine_feature.targetsettingfeatures attribute)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.TargetSettingFeatures.resistance_target_setting_supported", false]], "response_code (pycycling.ftms_parsers.control_point.ftmscontrolpointopcode attribute)": [[8, "pycycling.ftms_parsers.control_point.FTMSControlPointOpCode.RESPONSE_CODE", false]], "result_code_enum (pycycling.ftms_parsers.control_point.controlpointresponse attribute)": [[8, "pycycling.ftms_parsers.control_point.ControlPointResponse.result_code_enum", false]], "rfu (pycycling.cycling_power_service.distributesystemsupport attribute)": [[3, "pycycling.cycling_power_service.DistributeSystemSupport.rfu", false]], "right_crank (pycycling.cycling_power_service.sensorlocation attribute)": [[3, "pycycling.cycling_power_service.SensorLocation.right_crank", false]], "right_pedal (pycycling.cycling_power_service.sensorlocation attribute)": [[3, "pycycling.cycling_power_service.SensorLocation.right_pedal", false]], "rizer (class in pycycling.rizer)": [[15, "pycycling.rizer.Rizer", false]], "roadsurface (class in pycycling.tacx_trainer_control)": [[17, "pycycling.tacx_trainer_control.RoadSurface", false]], "rower (pycycling.tacx_trainer_control.equipmenttype attribute)": [[17, "pycycling.tacx_trainer_control.EquipmentType.rower", false]], "rr_interval (pycycling.heart_rate_service.heartratemeasurement attribute)": [[13, "pycycling.heart_rate_service.HeartRateMeasurement.rr_interval", false]], "sensor_contact (pycycling.heart_rate_service.heartratemeasurement attribute)": [[13, "pycycling.heart_rate_service.HeartRateMeasurement.sensor_contact", false]], "sensor_measurement_context (pycycling.cycling_power_service.cyclingpowerfeature attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerFeature.sensor_measurement_context", false]], "sensorlocation (class in pycycling.cycling_power_service)": [[3, "pycycling.cycling_power_service.SensorLocation", false]], "sensormeasurementcontext (class in pycycling.cycling_power_service)": [[3, "pycycling.cycling_power_service.SensorMeasurementContext", false]], "set_basic_resistance() (pycycling.tacx_trainer_control.tacxtrainercontrol method)": [[17, "pycycling.tacx_trainer_control.TacxTrainerControl.set_basic_resistance", false]], "set_center() (pycycling.rizer.rizer method)": [[15, "pycycling.rizer.Rizer.set_center", false]], "set_command_status_data_page_handler() (pycycling.tacx_trainer_control.tacxtrainercontrol method)": [[17, "pycycling.tacx_trainer_control.TacxTrainerControl.set_command_status_data_page_handler", false]], "set_control_point_response_handler() (pycycling.fitness_machine_service.fitnessmachineservice method)": [[6, "pycycling.fitness_machine_service.FitnessMachineService.set_control_point_response_handler", false]], "set_csc_measurement_handler() (pycycling.cycling_speed_cadence_service.cyclingspeedcadenceservice method)": [[4, "pycycling.cycling_speed_cadence_service.CyclingSpeedCadenceService.set_csc_measurement_handler", false]], "set_cycling_power_measurement_handler() (pycycling.cycling_power_service.cyclingpowerservice method)": [[3, "pycycling.cycling_power_service.CyclingPowerService.set_cycling_power_measurement_handler", false]], "set_cycling_power_vector_handler() (pycycling.cycling_power_service.cyclingpowerservice method)": [[3, "pycycling.cycling_power_service.CyclingPowerService.set_cycling_power_vector_handler", false]], "set_fitness_machine_status_handler() (pycycling.fitness_machine_service.fitnessmachineservice method)": [[6, "pycycling.fitness_machine_service.FitnessMachineService.set_fitness_machine_status_handler", false]], "set_general_fe_data_page_handler() (pycycling.tacx_trainer_control.tacxtrainercontrol method)": [[17, "pycycling.tacx_trainer_control.TacxTrainerControl.set_general_fe_data_page_handler", false]], "set_hr_measurement_handler() (pycycling.heart_rate_service.heartrateservice method)": [[13, "pycycling.heart_rate_service.HeartRateService.set_hr_measurement_handler", false]], "set_indoor_bike_data_handler() (pycycling.fitness_machine_service.fitnessmachineservice method)": [[6, "pycycling.fitness_machine_service.FitnessMachineService.set_indoor_bike_data_handler", false]], "set_indoor_bike_simulation_parameters (pycycling.ftms_parsers.control_point.ftmscontrolpointopcode attribute)": [[8, "pycycling.ftms_parsers.control_point.FTMSControlPointOpCode.SET_INDOOR_BIKE_SIMULATION_PARAMETERS", false]], "set_neo_modes() (pycycling.tacx_trainer_control.tacxtrainercontrol method)": [[17, "pycycling.tacx_trainer_control.TacxTrainerControl.set_neo_modes", false]], "set_radar_measurement_handler() (pycycling.rear_view_radar.rearviewradarservice method)": [[14, "pycycling.rear_view_radar.RearViewRadarService.set_radar_measurement_handler", false]], "set_simulation_parameters() (pycycling.fitness_machine_service.fitnessmachineservice method)": [[6, "pycycling.fitness_machine_service.FitnessMachineService.set_simulation_parameters", false]], "set_specific_trainer_data_page_handler() (pycycling.tacx_trainer_control.tacxtrainercontrol method)": [[17, "pycycling.tacx_trainer_control.TacxTrainerControl.set_specific_trainer_data_page_handler", false]], "set_spin_down_control (pycycling.ftms_parsers.control_point.ftmscontrolpointopcode attribute)": [[8, "pycycling.ftms_parsers.control_point.FTMSControlPointOpCode.SET_SPIN_DOWN_CONTROL", false]], "set_spin_down_control() (pycycling.fitness_machine_service.fitnessmachineservice method)": [[6, "pycycling.fitness_machine_service.FitnessMachineService.set_spin_down_control", false]], "set_steering_measurement_callback() (pycycling.rizer.rizer method)": [[15, "pycycling.rizer.Rizer.set_steering_measurement_callback", false]], "set_steering_measurement_callback() (pycycling.sterzo.sterzo method)": [[16, "pycycling.sterzo.Sterzo.set_steering_measurement_callback", false]], "set_target_heart_rate (pycycling.ftms_parsers.control_point.ftmscontrolpointopcode attribute)": [[8, "pycycling.ftms_parsers.control_point.FTMSControlPointOpCode.SET_TARGET_HEART_RATE", false]], "set_target_heart_rate() (pycycling.fitness_machine_service.fitnessmachineservice method)": [[6, "pycycling.fitness_machine_service.FitnessMachineService.set_target_heart_rate", false]], "set_target_incline (pycycling.ftms_parsers.control_point.ftmscontrolpointopcode attribute)": [[8, "pycycling.ftms_parsers.control_point.FTMSControlPointOpCode.SET_TARGET_INCLINE", false]], "set_target_incline() (pycycling.fitness_machine_service.fitnessmachineservice method)": [[6, "pycycling.fitness_machine_service.FitnessMachineService.set_target_incline", false]], "set_target_power (pycycling.ftms_parsers.control_point.ftmscontrolpointopcode attribute)": [[8, "pycycling.ftms_parsers.control_point.FTMSControlPointOpCode.SET_TARGET_POWER", false]], "set_target_power() (pycycling.fitness_machine_service.fitnessmachineservice method)": [[6, "pycycling.fitness_machine_service.FitnessMachineService.set_target_power", false]], "set_target_power() (pycycling.tacx_trainer_control.tacxtrainercontrol method)": [[17, "pycycling.tacx_trainer_control.TacxTrainerControl.set_target_power", false]], "set_target_resistance_level (pycycling.ftms_parsers.control_point.ftmscontrolpointopcode attribute)": [[8, "pycycling.ftms_parsers.control_point.FTMSControlPointOpCode.SET_TARGET_RESISTANCE_LEVEL", false]], "set_target_resistance_level() (pycycling.fitness_machine_service.fitnessmachineservice method)": [[6, "pycycling.fitness_machine_service.FitnessMachineService.set_target_resistance_level", false]], "set_target_speed (pycycling.ftms_parsers.control_point.ftmscontrolpointopcode attribute)": [[8, "pycycling.ftms_parsers.control_point.FTMSControlPointOpCode.SET_TARGET_SPEED", false]], "set_target_speed() (pycycling.fitness_machine_service.fitnessmachineservice method)": [[6, "pycycling.fitness_machine_service.FitnessMachineService.set_target_speed", false]], "set_targeted_cadence (pycycling.ftms_parsers.control_point.ftmscontrolpointopcode attribute)": [[8, "pycycling.ftms_parsers.control_point.FTMSControlPointOpCode.SET_TARGETED_CADENCE", false]], "set_targeted_cadence() (pycycling.fitness_machine_service.fitnessmachineservice method)": [[6, "pycycling.fitness_machine_service.FitnessMachineService.set_targeted_cadence", false]], "set_targeted_distance (pycycling.ftms_parsers.control_point.ftmscontrolpointopcode attribute)": [[8, "pycycling.ftms_parsers.control_point.FTMSControlPointOpCode.SET_TARGETED_DISTANCE", false]], "set_targeted_distance() (pycycling.fitness_machine_service.fitnessmachineservice method)": [[6, "pycycling.fitness_machine_service.FitnessMachineService.set_targeted_distance", false]], "set_targeted_expended_energy (pycycling.ftms_parsers.control_point.ftmscontrolpointopcode attribute)": [[8, "pycycling.ftms_parsers.control_point.FTMSControlPointOpCode.SET_TARGETED_EXPENDED_ENERGY", false]], "set_targeted_expended_energy() (pycycling.fitness_machine_service.fitnessmachineservice method)": [[6, "pycycling.fitness_machine_service.FitnessMachineService.set_targeted_expended_energy", false]], "set_targeted_number_of_steps (pycycling.ftms_parsers.control_point.ftmscontrolpointopcode attribute)": [[8, "pycycling.ftms_parsers.control_point.FTMSControlPointOpCode.SET_TARGETED_NUMBER_OF_STEPS", false]], "set_targeted_number_of_steps() (pycycling.fitness_machine_service.fitnessmachineservice method)": [[6, "pycycling.fitness_machine_service.FitnessMachineService.set_targeted_number_of_steps", false]], "set_targeted_number_of_strides (pycycling.ftms_parsers.control_point.ftmscontrolpointopcode attribute)": [[8, "pycycling.ftms_parsers.control_point.FTMSControlPointOpCode.SET_TARGETED_NUMBER_OF_STRIDES", false]], "set_targeted_number_of_strides() (pycycling.fitness_machine_service.fitnessmachineservice method)": [[6, "pycycling.fitness_machine_service.FitnessMachineService.set_targeted_number_of_strides", false]], "set_targeted_time_in_five_heart_rate_zones (pycycling.ftms_parsers.control_point.ftmscontrolpointopcode attribute)": [[8, "pycycling.ftms_parsers.control_point.FTMSControlPointOpCode.SET_TARGETED_TIME_IN_FIVE_HEART_RATE_ZONES", false]], "set_targeted_time_in_five_heart_rate_zones() (pycycling.fitness_machine_service.fitnessmachineservice method)": [[6, "pycycling.fitness_machine_service.FitnessMachineService.set_targeted_time_in_five_heart_rate_zones", false]], "set_targeted_time_in_three_heart_rate_zones (pycycling.ftms_parsers.control_point.ftmscontrolpointopcode attribute)": [[8, "pycycling.ftms_parsers.control_point.FTMSControlPointOpCode.SET_TARGETED_TIME_IN_THREE_HEART_RATE_ZONES", false]], "set_targeted_time_in_three_heart_rate_zones() (pycycling.fitness_machine_service.fitnessmachineservice method)": [[6, "pycycling.fitness_machine_service.FitnessMachineService.set_targeted_time_in_three_heart_rate_zones", false]], "set_targeted_time_in_two_heart_rate_zones (pycycling.ftms_parsers.control_point.ftmscontrolpointopcode attribute)": [[8, "pycycling.ftms_parsers.control_point.FTMSControlPointOpCode.SET_TARGETED_TIME_IN_TWO_HEART_RATE_ZONES", false]], "set_targeted_time_in_two_heart_rate_zones() (pycycling.fitness_machine_service.fitnessmachineservice method)": [[6, "pycycling.fitness_machine_service.FitnessMachineService.set_targeted_time_in_two_heart_rate_zones", false]], "set_targeted_training_time (pycycling.ftms_parsers.control_point.ftmscontrolpointopcode attribute)": [[8, "pycycling.ftms_parsers.control_point.FTMSControlPointOpCode.SET_TARGETED_TRAINING_TIME", false]], "set_targeted_training_time() (pycycling.fitness_machine_service.fitnessmachineservice method)": [[6, "pycycling.fitness_machine_service.FitnessMachineService.set_targeted_training_time", false]], "set_track_resistance() (pycycling.tacx_trainer_control.tacxtrainercontrol method)": [[17, "pycycling.tacx_trainer_control.TacxTrainerControl.set_track_resistance", false]], "set_training_status_handler() (pycycling.fitness_machine_service.fitnessmachineservice method)": [[6, "pycycling.fitness_machine_service.FitnessMachineService.set_training_status_handler", false]], "set_transmission_rate() (pycycling.rizer.rizer method)": [[15, "pycycling.rizer.Rizer.set_transmission_rate", false]], "set_user_configuration() (pycycling.tacx_trainer_control.tacxtrainercontrol method)": [[17, "pycycling.tacx_trainer_control.TacxTrainerControl.set_user_configuration", false]], "set_wheel_circumference (pycycling.ftms_parsers.control_point.ftmscontrolpointopcode attribute)": [[8, "pycycling.ftms_parsers.control_point.FTMSControlPointOpCode.SET_WHEEL_CIRCUMFERENCE", false]], "set_wheel_circumference() (pycycling.fitness_machine_service.fitnessmachineservice method)": [[6, "pycycling.fitness_machine_service.FitnessMachineService.set_wheel_circumference", false]], "set_wind_resistance() (pycycling.tacx_trainer_control.tacxtrainercontrol method)": [[17, "pycycling.tacx_trainer_control.TacxTrainerControl.set_wind_resistance", false]], "simulation_off (pycycling.tacx_trainer_control.roadsurface attribute)": [[17, "pycycling.tacx_trainer_control.RoadSurface.SIMULATION_OFF", false]], "span_length_adjustment_supported (pycycling.cycling_power_service.cyclingpowerfeature attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerFeature.span_length_adjustment_supported", false]], "specifictrainerdata (class in pycycling.tacx_trainer_control)": [[17, "pycycling.tacx_trainer_control.SpecificTrainerData", false]], "speed (pycycling.rear_view_radar.radarmeasurement attribute)": [[14, "pycycling.rear_view_radar.RadarMeasurement.speed", false]], "speed (pycycling.tacx_trainer_control.generalfedata attribute)": [[17, "pycycling.tacx_trainer_control.GeneralFEData.speed", false]], "speed_outside_control_region_high (pycycling.ftms_parsers.training_status.trainingstatus attribute)": [[12, "pycycling.ftms_parsers.training_status.TrainingStatus.SPEED_OUTSIDE_CONTROL_REGION_HIGH", false]], "speed_outside_control_region_low (pycycling.ftms_parsers.training_status.trainingstatus attribute)": [[12, "pycycling.ftms_parsers.training_status.TrainingStatus.SPEED_OUTSIDE_CONTROL_REGION_LOW", false]], "speed_target_setting_supported (pycycling.ftms_parsers.fitness_machine_feature.targetsettingfeatures attribute)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.TargetSettingFeatures.speed_target_setting_supported", false]], "spider (pycycling.cycling_power_service.sensorlocation attribute)": [[3, "pycycling.cycling_power_service.SensorLocation.spider", false]], "spin_down_control_supported (pycycling.ftms_parsers.fitness_machine_feature.targetsettingfeatures attribute)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.TargetSettingFeatures.spin_down_control_supported", false]], "spin_down_requested (pycycling.ftms_parsers.fitness_machine_status.spindownstatusvalue attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.SpinDownStatusValue.SPIN_DOWN_REQUESTED", false]], "spindownstatusvalue (class in pycycling.ftms_parsers.fitness_machine_status)": [[10, "pycycling.ftms_parsers.fitness_machine_status.SpinDownStatusValue", false]], "start_or_resume (pycycling.ftms_parsers.control_point.ftmscontrolpointopcode attribute)": [[8, "pycycling.ftms_parsers.control_point.FTMSControlPointOpCode.START_OR_RESUME", false]], "start_or_resume() (pycycling.fitness_machine_service.fitnessmachineservice method)": [[6, "pycycling.fitness_machine_service.FitnessMachineService.start_or_resume", false]], "started_by_user (pycycling.ftms_parsers.fitness_machine_status.fitnessmachinestatus attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatus.STARTED_BY_USER", false]], "status (pycycling.ftms_parsers.fitness_machine_status.fitnessmachinestatusmessage attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatusMessage.status", false]], "step_count_supported (pycycling.ftms_parsers.fitness_machine_feature.fitnessmachinefeature attribute)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.FitnessMachineFeature.step_count_supported", false]], "sterzo (class in pycycling.sterzo)": [[16, "pycycling.sterzo.Sterzo", false]], "stop_or_pause (pycycling.ftms_parsers.control_point.ftmscontrolpointopcode attribute)": [[8, "pycycling.ftms_parsers.control_point.FTMSControlPointOpCode.STOP_OR_PAUSE", false]], "stop_or_pause() (pycycling.fitness_machine_service.fitnessmachineservice method)": [[6, "pycycling.fitness_machine_service.FitnessMachineService.stop_or_pause", false]], "stop_pedaling (pycycling.ftms_parsers.fitness_machine_status.spindownstatusvalue attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.SpinDownStatusValue.STOP_PEDALING", false]], "stopped_by_safety_key (pycycling.ftms_parsers.fitness_machine_status.fitnessmachinestatus attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatus.STOPPED_BY_SAFETY_KEY", false]], "stopped_by_user (pycycling.ftms_parsers.fitness_machine_status.fitnessmachinestatus attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatus.STOPPED_BY_USER", false]], "stride_count_supported (pycycling.ftms_parsers.fitness_machine_feature.fitnessmachinefeature attribute)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.FitnessMachineFeature.stride_count_supported", false]], "string (pycycling.ftms_parsers.training_status.trainingstatusmessage attribute)": [[12, "pycycling.ftms_parsers.training_status.TrainingStatusMessage.string", false]], "success (pycycling.ftms_parsers.control_point.ftmscontrolpointresponseresultcode attribute)": [[8, "pycycling.ftms_parsers.control_point.FTMSControlPointResponseResultCode.SUCCESS", false]], "success (pycycling.ftms_parsers.fitness_machine_status.spindownstatusvalue attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.SpinDownStatusValue.SUCCESS", false]], "success (pycycling.tacx_trainer_control.commandstatus attribute)": [[17, "pycycling.tacx_trainer_control.CommandStatus.success", false]], "supportedpowerrange (class in pycycling.fitness_machine_service)": [[6, "pycycling.fitness_machine_service.SupportedPowerRange", false]], "supportedresistancelevelrange (class in pycycling.fitness_machine_service)": [[6, "pycycling.fitness_machine_service.SupportedResistanceLevelRange", false]], "tacxtrainercontrol (class in pycycling.tacx_trainer_control)": [[17, "pycycling.tacx_trainer_control.TacxTrainerControl", false]], "tangential_component (pycycling.cycling_power_service.instantaneousmeasurementdirection attribute)": [[3, "pycycling.cycling_power_service.InstantaneousMeasurementDirection.tangential_component", false]], "target_power_limits (pycycling.tacx_trainer_control.specifictrainerdata attribute)": [[17, "pycycling.tacx_trainer_control.SpecificTrainerData.target_power_limits", false]], "targeted_cadence_configuration_supported (pycycling.ftms_parsers.fitness_machine_feature.targetsettingfeatures attribute)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.TargetSettingFeatures.targeted_cadence_configuration_supported", false]], "targeted_distance_configuration_supported (pycycling.ftms_parsers.fitness_machine_feature.targetsettingfeatures attribute)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.TargetSettingFeatures.targeted_distance_configuration_supported", false]], "targeted_expended_energy_configuration_supported (pycycling.ftms_parsers.fitness_machine_feature.targetsettingfeatures attribute)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.TargetSettingFeatures.targeted_expended_energy_configuration_supported", false]], "targeted_step_number_configuration_supported (pycycling.ftms_parsers.fitness_machine_feature.targetsettingfeatures attribute)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.TargetSettingFeatures.targeted_step_number_configuration_supported", false]], "targeted_stride_number_configuration_supported (pycycling.ftms_parsers.fitness_machine_feature.targetsettingfeatures attribute)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.TargetSettingFeatures.targeted_stride_number_configuration_supported", false]], "targeted_time_in_five_heart_rate_zones_configuration_supported (pycycling.ftms_parsers.fitness_machine_feature.targetsettingfeatures attribute)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.TargetSettingFeatures.targeted_time_in_five_heart_rate_zones_configuration_supported", false]], "targeted_time_in_three_heart_rate_zones_configuration_supported (pycycling.ftms_parsers.fitness_machine_feature.targetsettingfeatures attribute)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.TargetSettingFeatures.targeted_time_in_three_heart_rate_zones_configuration_supported", false]], "targeted_time_in_two_heart_rate_zones_configuration_supported (pycycling.ftms_parsers.fitness_machine_feature.targetsettingfeatures attribute)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.TargetSettingFeatures.targeted_time_in_two_heart_rate_zones_configuration_supported", false]], "targeted_training_time_configuration_supported (pycycling.ftms_parsers.fitness_machine_feature.targetsettingfeatures attribute)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.TargetSettingFeatures.targeted_training_time_configuration_supported", false]], "targetpowerlimit (class in pycycling.tacx_trainer_control)": [[17, "pycycling.tacx_trainer_control.TargetPowerLimit", false]], "targetsettingfeatures (class in pycycling.ftms_parsers.fitness_machine_feature)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.TargetSettingFeatures", false]], "threat_id (pycycling.rear_view_radar.radarmeasurement attribute)": [[14, "pycycling.rear_view_radar.RadarMeasurement.threat_id", false]], "threezonehr (class in pycycling.ftms_parsers.fitness_machine_status)": [[10, "pycycling.ftms_parsers.fitness_machine_status.ThreeZoneHR", false]], "top_dead_spot_angle (pycycling.cycling_power_service.cyclingpowermeasurement attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerMeasurement.top_dead_spot_angle", false]], "top_of_shoe (pycycling.cycling_power_service.sensorlocation attribute)": [[3, "pycycling.cycling_power_service.SensorLocation.top_of_shoe", false]], "torque_based (pycycling.cycling_power_service.sensormeasurementcontext attribute)": [[3, "pycycling.cycling_power_service.SensorMeasurementContext.torque_based", false]], "total_distance (pycycling.ftms_parsers.indoor_bike_data.indoorbikedata attribute)": [[11, "pycycling.ftms_parsers.indoor_bike_data.IndoorBikeData.total_distance", false]], "total_distance_supported (pycycling.ftms_parsers.fitness_machine_feature.fitnessmachinefeature attribute)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.FitnessMachineFeature.total_distance_supported", false]], "total_energy (pycycling.ftms_parsers.indoor_bike_data.indoorbikedata attribute)": [[11, "pycycling.ftms_parsers.indoor_bike_data.IndoorBikeData.total_energy", false]], "trainer (pycycling.tacx_trainer_control.equipmenttype attribute)": [[17, "pycycling.tacx_trainer_control.EquipmentType.trainer", false]], "trainer_status (pycycling.tacx_trainer_control.specifictrainerdata attribute)": [[17, "pycycling.tacx_trainer_control.SpecificTrainerData.trainer_status", false]], "trainingstatus (class in pycycling.ftms_parsers.training_status)": [[12, "pycycling.ftms_parsers.training_status.TrainingStatus", false]], "trainingstatusmessage (class in pycycling.ftms_parsers.training_status)": [[12, "pycycling.ftms_parsers.training_status.TrainingStatusMessage", false]], "treadmill (pycycling.tacx_trainer_control.equipmenttype attribute)": [[17, "pycycling.tacx_trainer_control.EquipmentType.treadmill", false]], "twozonehr (class in pycycling.ftms_parsers.fitness_machine_status)": [[10, "pycycling.ftms_parsers.fitness_machine_status.TwoZoneHR", false]], "uninitialized (pycycling.tacx_trainer_control.commandstatus attribute)": [[17, "pycycling.tacx_trainer_control.CommandStatus.uninitialized", false]], "unit (pycycling.ftms_parsers.fitness_machine_status.fitnessmachinestatusmessage attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatusMessage.unit", false]], "unknown (pycycling.cycling_power_service.instantaneousmeasurementdirection attribute)": [[3, "pycycling.cycling_power_service.InstantaneousMeasurementDirection.unknown", false]], "unspecified (pycycling.cycling_power_service.distributesystemsupport attribute)": [[3, "pycycling.cycling_power_service.DistributeSystemSupport.unspecified", false]], "update_event_count (pycycling.tacx_trainer_control.specifictrainerdata attribute)": [[17, "pycycling.tacx_trainer_control.SpecificTrainerData.update_event_count", false]], "user_configuration_required (pycycling.tacx_trainer_control.specifictrainerdata attribute)": [[17, "pycycling.tacx_trainer_control.SpecificTrainerData.user_configuration_required", false]], "user_data_retention_supported (pycycling.ftms_parsers.fitness_machine_feature.fitnessmachinefeature attribute)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.FitnessMachineFeature.user_data_retention_supported", false]], "user_speed_too_high (pycycling.tacx_trainer_control.targetpowerlimit attribute)": [[17, "pycycling.tacx_trainer_control.TargetPowerLimit.user_speed_too_high", false]], "user_speed_too_low (pycycling.tacx_trainer_control.targetpowerlimit attribute)": [[17, "pycycling.tacx_trainer_control.TargetPowerLimit.user_speed_too_low", false]], "value (pycycling.ftms_parsers.fitness_machine_status.fitnessmachinestatusmessage attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatusMessage.value", false]], "very_light (pycycling.ftms_parsers.fitness_machine_status.fivezonehr attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.FiveZoneHR.very_light", false]], "very_light (pycycling.ftms_parsers.fitness_machine_status.threezonehr attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.ThreeZoneHR.very_light", false]], "warming_up (pycycling.ftms_parsers.training_status.trainingstatus attribute)": [[12, "pycycling.ftms_parsers.training_status.TrainingStatus.WARMING_UP", false]], "watt_control (pycycling.ftms_parsers.training_status.trainingstatus attribute)": [[12, "pycycling.ftms_parsers.training_status.TrainingStatus.WATT_CONTROL", false]], "wheel_circumference_configuration_supported (pycycling.ftms_parsers.fitness_machine_feature.targetsettingfeatures attribute)": [[9, "pycycling.ftms_parsers.fitness_machine_feature.TargetSettingFeatures.wheel_circumference_configuration_supported", false]], "wheel_rev_supported (pycycling.cycling_power_service.cyclingpowerfeature attribute)": [[3, "pycycling.cycling_power_service.CyclingPowerFeature.wheel_rev_supported", false]], "wheel_rev_supported (pycycling.cycling_speed_cadence_service.cscfeature attribute)": [[4, "pycycling.cycling_speed_cadence_service.CSCFeature.wheel_rev_supported", false]], "wind_resistance_coefficient (pycycling.ftms_parsers.fitness_machine_status.indoorbikesimulationparameters attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.IndoorBikeSimulationParameters.wind_resistance_coefficient", false]], "wind_speed (pycycling.ftms_parsers.fitness_machine_status.indoorbikesimulationparameters attribute)": [[10, "pycycling.ftms_parsers.fitness_machine_status.IndoorBikeSimulationParameters.wind_speed", false]], "wooden_boards (pycycling.tacx_trainer_control.roadsurface attribute)": [[17, "pycycling.tacx_trainer_control.RoadSurface.WOODEN_BOARDS", false]]}, "objects": {"": [[1, 0, 0, "-", "pycycling"]], "pycycling": [[2, 0, 0, "-", "battery_service"], [3, 0, 0, "-", "cycling_power_service"], [4, 0, 0, "-", "cycling_speed_cadence_service"], [5, 0, 0, "-", "data"], [6, 0, 0, "-", "fitness_machine_service"], [7, 0, 0, "-", "ftms_parsers"], [13, 0, 0, "-", "heart_rate_service"], [14, 0, 0, "-", "rear_view_radar"], [15, 0, 0, "-", "rizer"], [16, 0, 0, "-", "sterzo"], [17, 0, 0, "-", "tacx_trainer_control"]], "pycycling.battery_service": [[2, 1, 1, "", "BatteryService"]], "pycycling.battery_service.BatteryService": [[2, 2, 1, "", "get_battery_level"]], "pycycling.cycling_power_service": [[3, 1, 1, "", "CyclingPowerFeature"], [3, 1, 1, "", "CyclingPowerMeasurement"], [3, 1, 1, "", "CyclingPowerService"], [3, 1, 1, "", "CyclingPowerVector"], [3, 1, 1, "", "DistributeSystemSupport"], [3, 1, 1, "", "InstantaneousMeasurementDirection"], [3, 1, 1, "", "SensorLocation"], [3, 1, 1, "", "SensorMeasurementContext"]], "pycycling.cycling_power_service.CyclingPowerFeature": [[3, 3, 1, "", "accumulated_energy_supported"], [3, 3, 1, "", "accumulated_torque_supported"], [3, 3, 1, "", "chain_length_adjustment_supported"], [3, 3, 1, "", "chain_weight_adjustment_supported"], [3, 3, 1, "", "crank_length_adjustment_supported"], [3, 3, 1, "", "crank_rev_supported"], [3, 3, 1, "", "cycling_power_measurement_content_masking_supported"], [3, 3, 1, "", "dead_spot_angles_supported"], [3, 3, 1, "", "distribute_system_support"], [3, 3, 1, "", "enhanced_offset_compensation_supported"], [3, 3, 1, "", "extreme_magnitudes_supported"], [3, 3, 1, "", "factory_calibration_date_supported"], [3, 3, 1, "", "instantaneous_measurement_direction_supported"], [3, 3, 1, "", "multiple_locations_supported"], [3, 3, 1, "", "offset_compensation_supported"], [3, 3, 1, "", "pedal_power_balance_supported"], [3, 3, 1, "", "sensor_measurement_context"], [3, 3, 1, "", "span_length_adjustment_supported"], [3, 3, 1, "", "wheel_rev_supported"]], "pycycling.cycling_power_service.CyclingPowerMeasurement": [[3, 3, 1, "", "accumulated_energy"], [3, 3, 1, "", "accumulated_torque"], [3, 3, 1, "", "bottom_dead_spot_angle"], [3, 3, 1, "", "cumulative_crank_revs"], [3, 3, 1, "", "cumulative_wheel_revs"], [3, 3, 1, "", "instantaneous_power"], [3, 3, 1, "", "last_crank_event_time"], [3, 3, 1, "", "last_wheel_event_time"], [3, 3, 1, "", "maximum_force_magnitude"], [3, 3, 1, "", "maximum_torque_magnitude"], [3, 3, 1, "", "minimum_force_magnitude"], [3, 3, 1, "", "minimum_torque_magnitude"], [3, 3, 1, "", "pedal_power_balance"], [3, 3, 1, "", "top_dead_spot_angle"]], "pycycling.cycling_power_service.CyclingPowerService": [[3, 2, 1, "", "disable_cycling_power_measurement_notifications"], [3, 2, 1, "", "disable_cycling_power_vector_notifications"], [3, 2, 1, "", "enable_cycling_power_measurement_notifications"], [3, 2, 1, "", "enable_cycling_power_vector_notifications"], [3, 2, 1, "", "get_cycling_power_feature"], [3, 2, 1, "", "get_sensor_location"], [3, 2, 1, "", "set_cycling_power_measurement_handler"], [3, 2, 1, "", "set_cycling_power_vector_handler"]], "pycycling.cycling_power_service.CyclingPowerVector": [[3, 3, 1, "", "cumulative_crank_revs"], [3, 3, 1, "", "first_crank_measurement_angle"], [3, 3, 1, "", "instantaneous_force_magnitudes"], [3, 3, 1, "", "instantaneous_measurement_direction"], [3, 3, 1, "", "instantaneous_torque_magnitudes"], [3, 3, 1, "", "last_crank_event_time"]], "pycycling.cycling_power_service.DistributeSystemSupport": [[3, 3, 1, "", "distributed_system_support"], [3, 3, 1, "", "no_distributed_system_support"], [3, 3, 1, "", "rfu"], [3, 3, 1, "", "unspecified"]], "pycycling.cycling_power_service.InstantaneousMeasurementDirection": [[3, 3, 1, "", "lateral_component"], [3, 3, 1, "", "radial_component"], [3, 3, 1, "", "tangential_component"], [3, 3, 1, "", "unknown"]], "pycycling.cycling_power_service.SensorLocation": [[3, 3, 1, "", "chain_ring"], [3, 3, 1, "", "chainstay"], [3, 3, 1, "", "chest"], [3, 3, 1, "", "front_hub"], [3, 3, 1, "", "front_wheel"], [3, 3, 1, "", "hip"], [3, 3, 1, "", "in_shoe"], [3, 3, 1, "", "left_crank"], [3, 3, 1, "", "left_pedal"], [3, 3, 1, "", "other"], [3, 3, 1, "", "rear_dropout"], [3, 3, 1, "", "rear_hub"], [3, 3, 1, "", "rear_wheel"], [3, 3, 1, "", "right_crank"], [3, 3, 1, "", "right_pedal"], [3, 3, 1, "", "spider"], [3, 3, 1, "", "top_of_shoe"]], "pycycling.cycling_power_service.SensorMeasurementContext": [[3, 3, 1, "", "force_based"], [3, 3, 1, "", "torque_based"]], "pycycling.cycling_speed_cadence_service": [[4, 1, 1, "", "CSCFeature"], [4, 1, 1, "", "CSCMeasurement"], [4, 1, 1, "", "CyclingSpeedCadenceService"]], "pycycling.cycling_speed_cadence_service.CSCFeature": [[4, 3, 1, "", "crank_rev_supported"], [4, 3, 1, "", "multiple_locations_supported"], [4, 3, 1, "", "wheel_rev_supported"]], "pycycling.cycling_speed_cadence_service.CSCMeasurement": [[4, 3, 1, "", "cumulative_crank_revs"], [4, 3, 1, "", "cumulative_wheel_revs"], [4, 3, 1, "", "last_crank_event_time"], [4, 3, 1, "", "last_wheel_event_time"]], "pycycling.cycling_speed_cadence_service.CyclingSpeedCadenceService": [[4, 2, 1, "", "disable_csc_measurement_notifications"], [4, 2, 1, "", "enable_csc_measurement_notifications"], [4, 2, 1, "", "get_csc_feature"], [4, 2, 1, "", "set_csc_measurement_handler"]], "pycycling.fitness_machine_service": [[6, 1, 1, "", "FitnessMachineService"], [6, 1, 1, "", "SupportedPowerRange"], [6, 1, 1, "", "SupportedResistanceLevelRange"]], "pycycling.fitness_machine_service.FitnessMachineService": [[6, 2, 1, "", "disable_control_point_indicate"], [6, 2, 1, "", "disable_fitness_machine_status_notify"], [6, 2, 1, "", "disable_indoor_bike_data_notify"], [6, 2, 1, "", "disable_training_status_notify"], [6, 2, 1, "", "enable_control_point_indicate"], [6, 2, 1, "", "enable_fitness_machine_status_notify"], [6, 2, 1, "", "enable_indoor_bike_data_notify"], [6, 2, 1, "", "enable_training_status_notify"], [6, 2, 1, "", "get_fitness_machine_feature"], [6, 2, 1, "", "get_supported_power_range"], [6, 2, 1, "", "get_supported_resistance_level_range"], [6, 2, 1, "", "request_control"], [6, 2, 1, "", "reset"], [6, 2, 1, "", "set_control_point_response_handler"], [6, 2, 1, "", "set_fitness_machine_status_handler"], [6, 2, 1, "", "set_indoor_bike_data_handler"], [6, 2, 1, "", "set_simulation_parameters"], [6, 2, 1, "", "set_spin_down_control"], [6, 2, 1, "", "set_target_heart_rate"], [6, 2, 1, "", "set_target_incline"], [6, 2, 1, "", "set_target_power"], [6, 2, 1, "", "set_target_resistance_level"], [6, 2, 1, "", "set_target_speed"], [6, 2, 1, "", "set_targeted_cadence"], [6, 2, 1, "", "set_targeted_distance"], [6, 2, 1, "", "set_targeted_expended_energy"], [6, 2, 1, "", "set_targeted_number_of_steps"], [6, 2, 1, "", "set_targeted_number_of_strides"], [6, 2, 1, "", "set_targeted_time_in_five_heart_rate_zones"], [6, 2, 1, "", "set_targeted_time_in_three_heart_rate_zones"], [6, 2, 1, "", "set_targeted_time_in_two_heart_rate_zones"], [6, 2, 1, "", "set_targeted_training_time"], [6, 2, 1, "", "set_training_status_handler"], [6, 2, 1, "", "set_wheel_circumference"], [6, 2, 1, "", "start_or_resume"], [6, 2, 1, "", "stop_or_pause"]], "pycycling.fitness_machine_service.SupportedPowerRange": [[6, 3, 1, "", "maximum_power"], [6, 3, 1, "", "minimum_increment"], [6, 3, 1, "", "minimum_power"]], "pycycling.fitness_machine_service.SupportedResistanceLevelRange": [[6, 3, 1, "", "maximum_resistance"], [6, 3, 1, "", "minimum_increment"], [6, 3, 1, "", "minimum_resistance"]], "pycycling.ftms_parsers": [[8, 0, 0, "-", "control_point"], [9, 0, 0, "-", "fitness_machine_feature"], [10, 0, 0, "-", "fitness_machine_status"], [11, 0, 0, "-", "indoor_bike_data"], [12, 0, 0, "-", "training_status"]], "pycycling.ftms_parsers.control_point": [[8, 1, 1, "", "ControlPointResponse"], [8, 1, 1, "", "FTMSControlPointOpCode"], [8, 1, 1, "", "FTMSControlPointResponseResultCode"], [8, 4, 1, "", "form_ftms_control_command"], [8, 4, 1, "", "parse_control_point_response"]], "pycycling.ftms_parsers.control_point.ControlPointResponse": [[8, 3, 1, "", "request_code_enum"], [8, 3, 1, "", "result_code_enum"]], "pycycling.ftms_parsers.control_point.FTMSControlPointOpCode": [[8, 3, 1, "", "REQUEST_CONTROL"], [8, 3, 1, "", "RESET"], [8, 3, 1, "", "RESPONSE_CODE"], [8, 3, 1, "", "SET_INDOOR_BIKE_SIMULATION_PARAMETERS"], [8, 3, 1, "", "SET_SPIN_DOWN_CONTROL"], [8, 3, 1, "", "SET_TARGETED_CADENCE"], [8, 3, 1, "", "SET_TARGETED_DISTANCE"], [8, 3, 1, "", "SET_TARGETED_EXPENDED_ENERGY"], [8, 3, 1, "", "SET_TARGETED_NUMBER_OF_STEPS"], [8, 3, 1, "", "SET_TARGETED_NUMBER_OF_STRIDES"], [8, 3, 1, "", "SET_TARGETED_TIME_IN_FIVE_HEART_RATE_ZONES"], [8, 3, 1, "", "SET_TARGETED_TIME_IN_THREE_HEART_RATE_ZONES"], [8, 3, 1, "", "SET_TARGETED_TIME_IN_TWO_HEART_RATE_ZONES"], [8, 3, 1, "", "SET_TARGETED_TRAINING_TIME"], [8, 3, 1, "", "SET_TARGET_HEART_RATE"], [8, 3, 1, "", "SET_TARGET_INCLINE"], [8, 3, 1, "", "SET_TARGET_POWER"], [8, 3, 1, "", "SET_TARGET_RESISTANCE_LEVEL"], [8, 3, 1, "", "SET_TARGET_SPEED"], [8, 3, 1, "", "SET_WHEEL_CIRCUMFERENCE"], [8, 3, 1, "", "START_OR_RESUME"], [8, 3, 1, "", "STOP_OR_PAUSE"]], "pycycling.ftms_parsers.control_point.FTMSControlPointResponseResultCode": [[8, 3, 1, "", "CONTROL_NOT_PERMITTED"], [8, 3, 1, "", "INCORRECT_PARAMETER"], [8, 3, 1, "", "NOT_SUPPORTED"], [8, 3, 1, "", "OPERATION_FAILED"], [8, 3, 1, "", "SUCCESS"]], "pycycling.ftms_parsers.fitness_machine_feature": [[9, 1, 1, "", "FitnessMachineFeature"], [9, 1, 1, "", "TargetSettingFeatures"], [9, 4, 1, "", "parse_all_features"], [9, 4, 1, "", "parse_fitness_machine_feature"], [9, 4, 1, "", "parse_target_setting_features"]], "pycycling.ftms_parsers.fitness_machine_feature.FitnessMachineFeature": [[9, 3, 1, "", "avg_speed_supported"], [9, 3, 1, "", "cadence_supported"], [9, 3, 1, "", "elapsed_time_supported"], [9, 3, 1, "", "elevation_gain_supported"], [9, 3, 1, "", "expended_energy_supported"], [9, 3, 1, "", "force_on_belt_and_power_output_supported"], [9, 3, 1, "", "heart_rate_measurement_supported"], [9, 3, 1, "", "inclination_supported"], [9, 3, 1, "", "metabolic_equivalent_supported"], [9, 3, 1, "", "pace_supported"], [9, 3, 1, "", "power_measurement_supported"], [9, 3, 1, "", "remaining_time_supported"], [9, 3, 1, "", "resistance_level_supported"], [9, 3, 1, "", "step_count_supported"], [9, 3, 1, "", "stride_count_supported"], [9, 3, 1, "", "total_distance_supported"], [9, 3, 1, "", "user_data_retention_supported"]], "pycycling.ftms_parsers.fitness_machine_feature.TargetSettingFeatures": [[9, 3, 1, "", "heart_rate_target_setting_supported"], [9, 3, 1, "", "inclination_target_setting_supported"], [9, 3, 1, "", "indoor_bike_simulation_parameters_supported"], [9, 3, 1, "", "power_target_setting_supported"], [9, 3, 1, "", "resistance_target_setting_supported"], [9, 3, 1, "", "speed_target_setting_supported"], [9, 3, 1, "", "spin_down_control_supported"], [9, 3, 1, "", "targeted_cadence_configuration_supported"], [9, 3, 1, "", "targeted_distance_configuration_supported"], [9, 3, 1, "", "targeted_expended_energy_configuration_supported"], [9, 3, 1, "", "targeted_step_number_configuration_supported"], [9, 3, 1, "", "targeted_stride_number_configuration_supported"], [9, 3, 1, "", "targeted_time_in_five_heart_rate_zones_configuration_supported"], [9, 3, 1, "", "targeted_time_in_three_heart_rate_zones_configuration_supported"], [9, 3, 1, "", "targeted_time_in_two_heart_rate_zones_configuration_supported"], [9, 3, 1, "", "targeted_training_time_configuration_supported"], [9, 3, 1, "", "wheel_circumference_configuration_supported"]], "pycycling.ftms_parsers.fitness_machine_status": [[10, 1, 1, "", "FitnessMachineStatus"], [10, 1, 1, "", "FitnessMachineStatusMessage"], [10, 1, 1, "", "FiveZoneHR"], [10, 1, 1, "", "IndoorBikeSimulationParameters"], [10, 1, 1, "", "SpinDownStatusValue"], [10, 1, 1, "", "ThreeZoneHR"], [10, 1, 1, "", "TwoZoneHR"], [10, 4, 1, "", "parse_fitness_machine_status"]], "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatus": [[10, 3, 1, "", "CONTROL_PERMISSION_LOST"], [10, 3, 1, "", "NEW_DISTANCE"], [10, 3, 1, "", "NEW_EXPENDED_ENERGY"], [10, 3, 1, "", "NEW_FIVE_HEART_RATE_ZONE_TARGET_TIME"], [10, 3, 1, "", "NEW_HEART_RATE"], [10, 3, 1, "", "NEW_INCLINATION"], [10, 3, 1, "", "NEW_INDOOR_BIKE_SIMULATION_PARAMETERS"], [10, 3, 1, "", "NEW_NUMBER_OF_STEPS"], [10, 3, 1, "", "NEW_NUMBER_OF_STRIDES"], [10, 3, 1, "", "NEW_POWER"], [10, 3, 1, "", "NEW_RESISTANCE"], [10, 3, 1, "", "NEW_SPEED"], [10, 3, 1, "", "NEW_SPIN_DOWN_STATUS"], [10, 3, 1, "", "NEW_TARGET_CADENCE"], [10, 3, 1, "", "NEW_THREE_HEART_RATE_ZONE_TARGET_TIME"], [10, 3, 1, "", "NEW_TRAINING_TIME"], [10, 3, 1, "", "NEW_TWO_HEART_RATE_ZONE_TARGET_TIME"], [10, 3, 1, "", "NEW_WHEEL_CIRCUMFERENCE"], [10, 3, 1, "", "PAUSED_BY_USER"], [10, 3, 1, "", "RESERVED_FOR_FUTURE_USE"], [10, 3, 1, "", "RESET"], [10, 3, 1, "", "STARTED_BY_USER"], [10, 3, 1, "", "STOPPED_BY_SAFETY_KEY"], [10, 3, 1, "", "STOPPED_BY_USER"]], "pycycling.ftms_parsers.fitness_machine_status.FitnessMachineStatusMessage": [[10, 3, 1, "", "status"], [10, 3, 1, "", "unit"], [10, 3, 1, "", "value"]], "pycycling.ftms_parsers.fitness_machine_status.FiveZoneHR": [[10, 3, 1, "", "hard"], [10, 3, 1, "", "light"], [10, 3, 1, "", "maximum"], [10, 3, 1, "", "moderate"], [10, 3, 1, "", "very_light"]], "pycycling.ftms_parsers.fitness_machine_status.IndoorBikeSimulationParameters": [[10, 3, 1, "", "coefficient_of_rolling_resistance"], [10, 3, 1, "", "grade"], [10, 3, 1, "", "wind_resistance_coefficient"], [10, 3, 1, "", "wind_speed"]], "pycycling.ftms_parsers.fitness_machine_status.SpinDownStatusValue": [[10, 3, 1, "", "ERROR"], [10, 3, 1, "", "RESERVED_FOR_FUTURE_USE"], [10, 3, 1, "", "SPIN_DOWN_REQUESTED"], [10, 3, 1, "", "STOP_PEDALING"], [10, 3, 1, "", "SUCCESS"]], "pycycling.ftms_parsers.fitness_machine_status.ThreeZoneHR": [[10, 3, 1, "", "light"], [10, 3, 1, "", "moderate"], [10, 3, 1, "", "very_light"]], "pycycling.ftms_parsers.fitness_machine_status.TwoZoneHR": [[10, 3, 1, "", "fat_burn"], [10, 3, 1, "", "fitness"]], "pycycling.ftms_parsers.indoor_bike_data": [[11, 1, 1, "", "IndoorBikeData"], [11, 4, 1, "", "parse_indoor_bike_data"]], "pycycling.ftms_parsers.indoor_bike_data.IndoorBikeData": [[11, 3, 1, "", "average_cadence"], [11, 3, 1, "", "average_power"], [11, 3, 1, "", "average_speed"], [11, 3, 1, "", "elapsed_time"], [11, 3, 1, "", "energy_per_hour"], [11, 3, 1, "", "energy_per_minute"], [11, 3, 1, "", "heart_rate"], [11, 3, 1, "", "instant_cadence"], [11, 3, 1, "", "instant_power"], [11, 3, 1, "", "instant_speed"], [11, 3, 1, "", "metabolic_equivalent"], [11, 3, 1, "", "remaining_time"], [11, 3, 1, "", "resistance_level"], [11, 3, 1, "", "total_distance"], [11, 3, 1, "", "total_energy"]], "pycycling.ftms_parsers.training_status": [[12, 1, 1, "", "TrainingStatus"], [12, 1, 1, "", "TrainingStatusMessage"], [12, 4, 1, "", "parse_training_status"]], "pycycling.ftms_parsers.training_status.TrainingStatus": [[12, 3, 1, "", "COOL_DOWN"], [12, 3, 1, "", "FITNESS_TEST"], [12, 3, 1, "", "HEART_RATE_CONTROL"], [12, 3, 1, "", "HIGH_INTENSITY_INTERVAL"], [12, 3, 1, "", "IDLE"], [12, 3, 1, "", "ISOMETRIC"], [12, 3, 1, "", "LOW_INTENSITY_INTERVAL"], [12, 3, 1, "", "MANUAL_MODE"], [12, 3, 1, "", "OTHER"], [12, 3, 1, "", "POST_WORKOUT"], [12, 3, 1, "", "PRE_WORKOUT"], [12, 3, 1, "", "RECOVERY_INTERVAL"], [12, 3, 1, "", "RESERVED"], [12, 3, 1, "", "SPEED_OUTSIDE_CONTROL_REGION_HIGH"], [12, 3, 1, "", "SPEED_OUTSIDE_CONTROL_REGION_LOW"], [12, 3, 1, "", "WARMING_UP"], [12, 3, 1, "", "WATT_CONTROL"]], "pycycling.ftms_parsers.training_status.TrainingStatusMessage": [[12, 3, 1, "", "param"], [12, 3, 1, "", "string"]], "pycycling.heart_rate_service": [[13, 1, 1, "", "HeartRateMeasurement"], [13, 1, 1, "", "HeartRateService"]], "pycycling.heart_rate_service.HeartRateMeasurement": [[13, 3, 1, "", "bpm"], [13, 3, 1, "", "energy_expended"], [13, 3, 1, "", "rr_interval"], [13, 3, 1, "", "sensor_contact"]], "pycycling.heart_rate_service.HeartRateService": [[13, 2, 1, "", "disable_hr_measurement_notifications"], [13, 2, 1, "", "enable_hr_measurement_notifications"], [13, 2, 1, "", "set_hr_measurement_handler"]], "pycycling.rear_view_radar": [[14, 1, 1, "", "RadarMeasurement"], [14, 1, 1, "", "RearViewRadarService"]], "pycycling.rear_view_radar.RadarMeasurement": [[14, 3, 1, "", "distance"], [14, 3, 1, "", "speed"], [14, 3, 1, "", "threat_id"]], "pycycling.rear_view_radar.RearViewRadarService": [[14, 2, 1, "", "disable_radar_measurement_notifications"], [14, 2, 1, "", "enable_radar_measurement_notifications"], [14, 2, 1, "", "set_radar_measurement_handler"]], "pycycling.rizer": [[15, 1, 1, "", "Rizer"]], "pycycling.rizer.Rizer": [[15, 2, 1, "", "disable_steering_measurement_notifications"], [15, 2, 1, "", "enable_steering_measurement_notifications"], [15, 2, 1, "", "set_center"], [15, 2, 1, "", "set_steering_measurement_callback"], [15, 2, 1, "", "set_transmission_rate"]], "pycycling.sterzo": [[16, 1, 1, "", "Sterzo"]], "pycycling.sterzo.Sterzo": [[16, 2, 1, "", "disable_steering_measurement_notifications"], [16, 2, 1, "", "enable_steering_measurement_notifications"], [16, 2, 1, "", "set_steering_measurement_callback"]], "pycycling.tacx_trainer_control": [[17, 1, 1, "", "CommandStatus"], [17, 1, 1, "", "CommandStatusData"], [17, 1, 1, "", "EquipmentType"], [17, 1, 1, "", "FEState"], [17, 1, 1, "", "GeneralFEData"], [17, 1, 1, "", "RoadSurface"], [17, 1, 1, "", "SpecificTrainerData"], [17, 1, 1, "", "TacxTrainerControl"], [17, 1, 1, "", "TargetPowerLimit"]], "pycycling.tacx_trainer_control.CommandStatus": [[17, 3, 1, "", "fail"], [17, 3, 1, "", "not_supported"], [17, 3, 1, "", "rejected"], [17, 3, 1, "", "success"], [17, 3, 1, "", "uninitialized"]], "pycycling.tacx_trainer_control.CommandStatusData": [[17, 3, 1, "", "command_status"], [17, 3, 1, "", "data"], [17, 3, 1, "", "last_received_command"]], "pycycling.tacx_trainer_control.EquipmentType": [[17, 3, 1, "", "climber"], [17, 3, 1, "", "elliptical"], [17, 3, 1, "", "nordic_skier"], [17, 3, 1, "", "reserved"], [17, 3, 1, "", "rower"], [17, 3, 1, "", "trainer"], [17, 3, 1, "", "treadmill"]], "pycycling.tacx_trainer_control.FEState": [[17, 3, 1, "", "finished"], [17, 3, 1, "", "in_use"], [17, 3, 1, "", "ready"], [17, 3, 1, "", "reserved"]], "pycycling.tacx_trainer_control.GeneralFEData": [[17, 3, 1, "", "distance_travelled"], [17, 3, 1, "", "elapsed_time"], [17, 3, 1, "", "equipment_type"], [17, 3, 1, "", "fe_state"], [17, 3, 1, "", "heart_rate"], [17, 3, 1, "", "lap_toggle"], [17, 3, 1, "", "speed"]], "pycycling.tacx_trainer_control.RoadSurface": [[17, 3, 1, "", "BRICK_ROAD"], [17, 3, 1, "", "CATTLE_GRID"], [17, 3, 1, "", "COBBLESTONES_HARD"], [17, 3, 1, "", "COBBLESTONES_SOFT"], [17, 3, 1, "", "CONCRETE_PLATES"], [17, 3, 1, "", "GRAVEL"], [17, 3, 1, "", "ICE"], [17, 3, 1, "", "OFF_ROAD"], [17, 3, 1, "", "SIMULATION_OFF"], [17, 3, 1, "", "WOODEN_BOARDS"]], "pycycling.tacx_trainer_control.SpecificTrainerData": [[17, 3, 1, "", "accumulated_power"], [17, 3, 1, "", "fe_state"], [17, 3, 1, "", "instantaneous_cadence"], [17, 3, 1, "", "instantaneous_power"], [17, 3, 1, "", "lap_toggle"], [17, 3, 1, "", "power_calibration_required"], [17, 3, 1, "", "resistance_calibration_required"], [17, 3, 1, "", "target_power_limits"], [17, 3, 1, "", "trainer_status"], [17, 3, 1, "", "update_event_count"], [17, 3, 1, "", "user_configuration_required"]], "pycycling.tacx_trainer_control.TacxTrainerControl": [[17, 2, 1, "", "disable_fec_notifications"], [17, 2, 1, "", "enable_fec_notifications"], [17, 2, 1, "", "request_data_page"], [17, 2, 1, "", "set_basic_resistance"], [17, 2, 1, "", "set_command_status_data_page_handler"], [17, 2, 1, "", "set_general_fe_data_page_handler"], [17, 2, 1, "", "set_neo_modes"], [17, 2, 1, "", "set_specific_trainer_data_page_handler"], [17, 2, 1, "", "set_target_power"], [17, 2, 1, "", "set_track_resistance"], [17, 2, 1, "", "set_user_configuration"], [17, 2, 1, "", "set_wind_resistance"]], "pycycling.tacx_trainer_control.TargetPowerLimit": [[17, 3, 1, "", "limit_reached"], [17, 3, 1, "", "operating_at_target_or_no_target_set"], [17, 3, 1, "", "user_speed_too_high"], [17, 3, 1, "", "user_speed_too_low"]]}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "function", "Python function"]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:attribute", "4": "py:function"}, "terms": {"": 17, "0": [2, 3, 4, 6, 8, 9, 10, 11, 12, 13, 14, 17], "0x80": 6, "1": [1, 2, 3, 4, 6, 8, 9, 10, 11, 12, 13, 14, 17], "10": [3, 6, 8, 9, 10, 11, 12, 17], "100": [2, 6, 17], "1000": 6, "11": [3, 8, 9, 10, 11, 12], "12": [3, 8, 9, 10, 11, 12], "128": 8, "13": [3, 8, 9, 10, 11, 12], "14": [3, 8, 9, 10, 11, 12], "15": [3, 8, 9, 10, 12], "16": [3, 8, 9, 10, 12, 15], "17": [3, 8, 10], "18": [3, 8, 10], "19": [8, 10], "2": [3, 4, 6, 8, 9, 10, 11, 12, 13, 14, 17], "20": [8, 10, 17], "2022": 14, "21": 10, "22": 10, "23": 10, "25": 6, "255": 17, "3": [3, 4, 6, 8, 9, 10, 11, 12, 13, 17], "30": [3, 6, 14], "32": 15, "4": [3, 6, 8, 9, 10, 11, 12, 17], "40": 17, "4d77": [3, 17], "5": [3, 6, 8, 9, 10, 11, 12, 17], "50": [6, 17], "6": [3, 8, 9, 10, 11, 12, 17], "6760": [3, 17], "7": [3, 8, 9, 10, 11, 12, 17], "8": [3, 8, 9, 10, 11, 12, 15, 17], "8ddac1cc9a": [3, 17], "9": [3, 8, 9, 10, 11, 12, 17], "961e": [3, 17], "A": [2, 3, 10, 14, 17], "For": 17, "In": 17, "It": 17, "The": [1, 6, 17], "Then": 6, "These": 17, "To": [6, 17], "__main__": [1, 2, 3, 6, 14, 17], "__name__": [1, 2, 3, 6, 14, 17], "_asdict": 6, "abl": 6, "abov": 6, "acceler": 17, "accumulated_energi": [1, 3], "accumulated_energy_support": [1, 3], "accumulated_pow": [1, 17], "accumulated_torqu": [1, 3], "accumulated_torque_support": [1, 3], "across": 9, "act": 17, "activ": 17, "ad": 2, "address": [0, 2, 3, 6, 14, 17], "adjust": [6, 17], "against": 17, "air": 17, "alia": [3, 4, 6, 8, 9, 10, 11, 12, 13, 14, 17], "all": [1, 6], "allow": 17, "along": 17, "also": [2, 3, 6, 14, 17], "alter": 17, "an": [1, 2], "ani": 17, "ant": 17, "appli": 17, "applic": 17, "ar": [9, 14, 17], "area": 17, "around": [1, 2, 6], "associ": 10, "assum": 17, "async": [1, 2, 3, 4, 6, 13, 14, 15, 16, 17], "asyncio": [1, 2, 3, 6, 14, 17], "att": 6, "automat": 6, "avail": 1, "average_cad": [7, 11], "average_pow": [7, 11], "average_spe": [7, 11], "avg_speed_support": [7, 9], "await": [1, 2, 3, 6, 14, 17], "back": 17, "backend": 2, "base": [2, 3, 4, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "basebleakcli": 2, "basic": 17, "batteri": 2, "battery_level": 2, "battery_servic": [0, 1], "batteryservic": [0, 1, 2], "becaus": 17, "befor": [6, 17], "behind": 17, "being": 6, "between": [6, 17], "bicycl": 17, "bicycle_weight": 17, "bicycle_wheel_diamet": 17, "bike": [6, 17], "bit": 9, "ble": 17, "bleak": [1, 2, 3, 6, 14, 17], "bleakclient": [2, 3, 6, 14, 17], "bleakdbuserror": 6, "bluetooth": [1, 2, 3, 6, 14, 17], "bluez": 6, "bool": 6, "both": 17, "bottom_dead_spot_angl": [1, 3], "boundari": [3, 8, 10, 12, 17], "bpm": [1, 13], "brake": 17, "break": 6, "brick_road": [1, 17], "bring": 17, "broadcast": [3, 14], "bryton": 14, "bug": 6, "bytearrai": [8, 9, 10, 12], "c": 17, "cadenc": [6, 17], "cadence_support": [7, 9], "callback": [3, 4, 6, 13, 14, 15, 16, 17], "can": [1, 17], "case": 17, "cattle_grid": [1, 17], "chain": 17, "chain_length_adjustment_support": [1, 3], "chain_r": [1, 3], "chain_weight_adjustment_support": [1, 3], "chainstai": [1, 3], "chang": 17, "characterist": 6, "charg": 2, "chest": [1, 3], "circumfer": 6, "class": [1, 2, 3, 4, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "client": [1, 2, 3, 4, 6, 13, 14, 15, 16, 17], "climber": [1, 17], "coast": 17, "cobblestones_hard": [1, 17], "cobblestones_soft": [1, 17], "code": [1, 6], "coeffici": 17, "coefficient_of_rolling_resist": [7, 10, 17], "cog": 17, "come": 17, "command": [6, 8], "command_statu": [1, 17], "commandstatu": [0, 1, 17], "commandstatusdata": [0, 1, 17], "common": 17, "compat": 6, "comput": 17, "concrete_pl": [1, 17], "configur": 17, "connect": 6, "consol": [2, 3, 14, 17], "constant": 17, "continu": 6, "control": [6, 8], "control_not_permit": [7, 8], "control_permission_lost": [7, 10], "control_point": [1, 7], "controlpointrespons": [1, 7, 8], "cool_down": [7, 12], "correct": 17, "counter": 17, "crank_length_adjustment_support": [1, 3], "crank_rev_support": [1, 3, 4], "cross": 1, "crr": 6, "cscfeatur": [0, 1, 4], "cscmeasur": [0, 1, 4], "cumulative_crank_rev": [1, 3, 4], "cumulative_wheel_rev": [1, 3, 4], "current": 2, "cw": 6, "cycl": [1, 3, 6, 17], "cycling_power_measurement_content_masking_support": [1, 3], "cycling_power_servic": [0, 1], "cycling_speed_cadence_servic": [0, 1], "cyclingpowerfeatur": [0, 1, 3], "cyclingpowermeasur": [0, 1, 3], "cyclingpowerservic": [0, 1, 3], "cyclingpowervector": [0, 1, 3], "cyclingspeedcadenceservic": [0, 1, 4], "cyclist": 17, "d": 1, "damag": 17, "data": [0, 1, 3, 6, 10, 14, 17], "dead_spot_angles_support": [1, 3], "decreas": 6, "def": [1, 2, 3, 6, 14, 17], "defin": 17, "demonstr": [1, 6, 17], "densiti": 17, "detail": 17, "devic": [0, 2, 3, 6, 14, 17], "device_address": [1, 2, 3, 6, 14, 17], "device_address_her": 14, "diamet": 17, "dictionari": 10, "differ": 17, "dimensionless": 17, "directli": 17, "disable_control_point_ind": [1, 6], "disable_csc_measurement_notif": [1, 4], "disable_cycling_power_measurement_notif": [1, 3], "disable_cycling_power_vector_notif": [1, 3], "disable_fec_notif": [1, 17], "disable_fitness_machine_status_notifi": [1, 6], "disable_hr_measurement_notif": [1, 13], "disable_indoor_bike_data_notifi": [1, 6], "disable_radar_measurement_notif": [1, 14], "disable_steering_measurement_notif": [1, 15, 16], "disable_training_status_notifi": [1, 6], "discharg": 2, "discov": 1, "distanc": [1, 6, 14], "distance_travel": [1, 17], "distribute_system_support": [1, 3], "distributed_system_support": [1, 3], "distributesystemsupport": [0, 1, 3], "document": 1, "doe": 17, "down": 17, "draft": 17, "drafting_factor": 17, "drag": 17, "dynam": 17, "e": 6, "eaaa3d1f": [3, 17], "each": [1, 17], "elapsed_tim": [1, 7, 11, 17], "elapsed_time_support": [7, 9], "electromagnet": 17, "elevation_gain_support": [7, 9], "elit": 6, "ellipt": [1, 17], "enabl": 17, "enable_control_point_ind": [1, 6], "enable_csc_measurement_notif": [1, 4], "enable_cycling_power_measurement_notif": [1, 3], "enable_cycling_power_vector_notif": [1, 3], "enable_fec_notif": [1, 17], "enable_fitness_machine_status_notifi": [1, 6], "enable_hr_measurement_notif": [1, 13], "enable_indoor_bike_data_notifi": [1, 6], "enable_radar_measurement_notif": [1, 14], "enable_steering_measurement_notif": [1, 15, 16], "enable_training_status_notifi": [1, 6], "energi": 6, "energy_expend": [1, 13], "energy_per_hour": [7, 11], "energy_per_minut": [7, 11], "enhanced_offset_compensation_support": [1, 3], "enum": [3, 8, 10, 12, 17], "environ": [1, 2, 3, 6, 14, 17], "equat": 17, "equipment_typ": [1, 17], "equipmenttyp": [0, 1, 17], "erg": 17, "error": [6, 7, 10], "etc": 17, "even": 17, "exampl": [0, 1], "exc": 6, "except": 6, "exert": 17, "expect": 14, "expended_energy_support": [7, 9], "explain": 17, "extreme_magnitudes_support": [1, 3], "f": [2, 6], "facilit": 17, "factory_calibration_date_support": [1, 3], "fail": [1, 6, 17], "fairli": 17, "fals": 17, "fat_burn": [7, 10], "favour": 17, "fe": 17, "fe_stat": [1, 17], "featur": [6, 17], "feel": [6, 17], "festat": [0, 1, 17], "few": 17, "field": [3, 4, 6, 8, 9, 10, 11, 12, 13, 14, 17], "final": 6, "finalis": 17, "finish": [1, 17], "first": [6, 17], "first_crank_measurement_angl": [1, 3], "fit": [6, 7, 10], "fitness_machine_featur": [1, 6, 7], "fitness_machine_servic": [0, 1], "fitness_machine_statu": [1, 7], "fitness_test": [7, 12], "fitnessmachinefeatur": [1, 6, 7, 9], "fitnessmachineservic": [0, 1, 6], "fitnessmachinestatu": [1, 7, 10], "fitnessmachinestatusmessag": [1, 7, 10], "fivezonehr": [1, 7, 10], "flag": 9, "flywheel": 17, "follow": 1, "forc": 17, "force_bas": [1, 3], "force_on_belt_and_power_output_support": [7, 9], "form": 8, "form_ftms_control_command": [1, 7, 8], "from": [1, 2, 3, 6, 14, 17], "front": 17, "front_hub": [1, 3], "front_wheel": [1, 3], "frontal": 17, "ftm": [6, 8, 17], "ftms_parser": [0, 1], "ftmscontrolpointopcod": [1, 7, 8], "ftmscontrolpointresponseresultcod": [1, 7, 8], "full": 17, "fulli": 2, "function": 6, "fundament": 17, "gardia": 14, "garmin": 14, "gear": 17, "gear_ratio": 17, "generalfedata": [0, 1, 17], "german": 14, "get": 17, "get_battery_level": [1, 2], "get_csc_featur": [1, 4], "get_cycling_power_featur": [1, 3], "get_event_loop": [1, 2, 3, 6, 14, 17], "get_fitness_machine_featur": [1, 6], "get_sensor_loc": [1, 3], "get_supported_power_rang": [1, 6], "get_supported_resistance_level_rang": [1, 6], "given": [3, 8, 10, 12, 17], "go": 17, "grade": [6, 7, 10, 17], "gravel": [1, 17], "gravit": 17, "h": 17, "ha": [1, 17], "hard": [7, 10, 17], "hardcod": 1, "harder": 17, "head": 17, "heart_rat": [1, 6, 7, 11, 17], "heart_rate_control": [7, 12], "heart_rate_measurement_support": [7, 9], "heart_rate_servic": [0, 1], "heart_rate_target_setting_support": [7, 9], "heartratemeasur": [0, 1, 13], "heartrateservic": [0, 1, 13], "heavi": 17, "heavier": 17, "help": 17, "here": [2, 6, 17], "high_intensity_interv": [7, 12], "hip": [1, 3], "howev": 17, "hz": 15, "i": [1, 2, 3, 14, 17], "ic": [1, 17], "id": 1, "idl": [7, 12], "import": [1, 2, 3, 6, 14, 17], "in_sho": [1, 3], "in_us": [1, 17], "inclin": [6, 17], "inclination_support": [7, 9], "inclination_target_setting_support": [7, 9], "includ": 1, "incorrect": 17, "incorrect_paramet": [7, 8], "increas": 6, "index": 0, "indic": [2, 6], "indoor": 6, "indoor_bike_data": [1, 7], "indoor_bike_simulation_parameters_support": [6, 7, 9], "indoorbikedata": [1, 7, 11], "indoorbikesimulationparamet": [1, 7, 10], "inerti": 17, "info": 17, "inform": [2, 3, 6, 14, 17], "initi": 17, "instant_cad": [7, 11], "instant_pow": [7, 11], "instant_spe": [7, 11], "instantaneous_cad": [1, 17], "instantaneous_force_magnitud": [1, 3], "instantaneous_measurement_direct": [1, 3], "instantaneous_measurement_direction_support": [1, 3], "instantaneous_pow": [1, 3, 17], "instantaneous_torque_magnitud": [1, 3], "instantaneousmeasurementdirect": [0, 1, 3], "instead": 17, "int": [2, 6, 8, 15], "intens": 17, "interact": [1, 2, 3, 6, 14, 17], "intermitt": 6, "intern": 17, "is_connect": [3, 14, 17], "isokinet": 17, "isokinetic_mod": 17, "isokinetic_spe": 17, "isometr": [7, 12], "isoton": 17, "item": [6, 10], "its": 6, "jason": 14, "just": 6, "kei": 6, "keyboardinterrupt": 6, "kg": 17, "kilogram": 17, "km": 17, "l508": 14, "lap_toggl": [1, 17], "last_crank_event_tim": [1, 3, 4], "last_received_command": [1, 17], "last_wheel_event_tim": [1, 3, 4], "later": 17, "lateral_compon": [1, 3], "law": 17, "le": [6, 14], "left_crank": [1, 3], "left_ped": [1, 3], "leg": 6, "level": [2, 6], "light": [7, 10], "like": 6, "limit_reach": [1, 17], "list": [1, 6, 8], "littl": 17, "ll": 17, "loop": [1, 2, 3, 6, 14, 17], "low_intensity_interv": [7, 12], "m": 17, "machin": 6, "magen": 14, "mai": 17, "maintain": [6, 17], "make": 17, "mani": 17, "manual_mod": [7, 12], "market": 14, "mass": 17, "max_pow": 6, "max_resist": 6, "maximum": [6, 7, 10], "maximum_force_magnitud": [1, 3], "maximum_pow": [1, 6], "maximum_resist": [1, 6], "maximum_torque_magnitud": [1, 3], "mean": 17, "measur": 3, "messag": [6, 8, 9, 10, 11, 12], "metabolic_equival": [7, 11], "metabolic_equivalent_support": [7, 9], "meter": 3, "method": 2, "metr": 17, "minimum_force_magnitud": [1, 3], "minimum_incr": [1, 6], "minimum_pow": [1, 6], "minimum_resist": [1, 6], "minimum_torque_magnitud": [1, 3], "mode": [0, 1], "model": 14, "moder": [7, 10], "modifi": 6, "modul": 0, "most": [3, 17], "multiple_locations_support": [1, 3, 4], "must": 6, "my_measurement_handl": [3, 14], "my_page_handl": 17, "name": [3, 8, 10, 12, 17], "namedtupl": 10, "need": 1, "neg": 17, "neo": 17, "new_dist": [7, 10], "new_expended_energi": [7, 10], "new_five_heart_rate_zone_target_tim": [7, 10], "new_heart_r": [7, 10], "new_inclin": [7, 10], "new_indoor_bike_simulation_paramet": [7, 10], "new_number_of_step": [7, 10], "new_number_of_strid": [7, 10], "new_pow": [7, 10], "new_resist": [7, 10], "new_spe": [7, 10], "new_spin_down_statu": [7, 10], "new_target_cad": [7, 10], "new_three_heart_rate_zone_target_tim": [7, 10], "new_training_tim": [7, 10], "new_two_heart_rate_zone_target_tim": [7, 10], "new_wheel_circumfer": [7, 10], "newton": 17, "no_distributed_system_support": [1, 3], "none": [3, 6, 8, 10, 12, 17], "nordic_ski": [1, 17], "not_support": [1, 7, 8, 17], "note": 17, "notif": 6, "notifi": 6, "now": 17, "number": [1, 3, 4, 6, 8, 9, 10, 11, 12, 13, 14, 17], "o": [1, 2, 3, 6, 14, 17], "object": [1, 2, 3, 4, 6, 13, 14, 15, 16, 17], "obtain": [0, 2, 3, 6, 14, 17], "off_road": [1, 17], "offset_compensation_support": [1, 3], "onli": 17, "opcod": 8, "oper": [0, 1, 6], "operating_at_target_or_no_target_set": [1, 17], "operation_fail": [7, 8], "oppon": 17, "order": 17, "org": 6, "other": [1, 3, 7, 12, 14, 17], "output": 17, "pace_support": [7, 9], "packag": 0, "page": 0, "page_numb": 17, "param": [7, 8, 12], "paramet": [2, 6, 8, 17], "parse_all_featur": [1, 7, 9], "parse_control_point_respons": [1, 7, 8], "parse_fitness_machine_featur": [1, 7, 9], "parse_fitness_machine_statu": [1, 7, 10], "parse_indoor_bike_data": [1, 7, 11], "parse_target_setting_featur": [1, 7, 9], "parse_training_statu": [1, 7, 12], "paus": 6, "paused_by_us": [7, 10], "pedal": [6, 17], "pedal_power_bal": [1, 3], "pedal_power_balance_support": [1, 3], "percent": 6, "percentag": 2, "peripher": 1, "physic": 17, "plai": 17, "platform": 1, "pleas": [2, 3, 6, 14, 17], "point": 6, "posit": [15, 17], "post_workout": [7, 12], "power": [3, 6, 17], "power_calibration_requir": [1, 17], "power_level": 6, "power_measurement_support": [7, 9], "power_target_setting_support": [6, 7, 9], "pre_workout": [7, 12], "preset": 17, "print": [1, 2, 3, 6, 14, 17], "print_control_point_respons": 6, "print_featur": 6, "print_fitness_machine_statu": 6, "print_indoor_bike_data": 6, "print_training_statu": 6, "product": 17, "protocol": 17, "provid": 1, "python": 1, "pythonasynciodebug": [1, 2, 3, 6, 14, 17], "qualnam": [3, 8, 10, 12, 17], "r300": 14, "radar": 14, "radar_servic": 14, "radarmeasur": [0, 1, 14], "radial_compon": [1, 3], "rang": 6, "rate": 15, "rather": 17, "ratio": 17, "rct715": 14, "rdr": 14, "read": 6, "readi": [1, 17], "rear": 17, "rear_dropout": [1, 3], "rear_hub": [1, 3], "rear_view_radar": [0, 1], "rear_wheel": [1, 3], "rearviewradarservic": [0, 1, 14], "receiv": 6, "recommend": [6, 17], "recovery_interv": [7, 12], "refer": 17, "reject": [1, 17], "relat": 6, "releas": 17, "remaining_tim": [7, 11], "remaining_time_support": [7, 9], "replac": 1, "repres": [2, 17], "request": 6, "request_code_enum": [7, 8], "request_control": [1, 6, 7, 8], "request_data_pag": [1, 17], "requir": 17, "reserv": [1, 7, 12, 17], "reserved_for_future_us": [7, 10], "reset": [1, 6, 7, 8, 10], "resist": [6, 17], "resistance_calibration_requir": [1, 17], "resistance_level": [7, 11], "resistance_level_support": [7, 9], "resistance_target_setting_support": [6, 7, 9], "respons": 6, "response_cod": [7, 8], "result_code_enum": [7, 8], "retri": 6, "return": [2, 8], "rfu": [1, 3], "rider": 17, "right_crank": [1, 3], "right_ped": [1, 3], "ring": 17, "rizer": [0, 1, 6], "road": 17, "road_surface_pattern": 17, "road_surface_pattern_intens": 17, "roadsurfac": [0, 1, 17], "roll": 17, "rower": [1, 17], "rr_interv": [1, 13], "rtr515": 14, "rtr516": 14, "run": [1, 2, 3, 6, 14, 17], "run_until_complet": [1, 2, 3, 6, 14, 17], "rvr315": 14, "same": 6, "scalar": 8, "scale": 17, "script": [1, 6], "search": 0, "second": 17, "see": [2, 3, 6, 14, 17], "sensor_contact": [1, 13], "sensor_measurement_context": [1, 3], "sensorloc": [0, 1, 3], "sensormeasurementcontext": [0, 1, 3], "servic": [2, 3, 6, 14], "set": [6, 9, 15, 17], "set_basic_resist": [1, 17], "set_cent": [1, 15], "set_command_status_data_page_handl": [1, 17], "set_control_point_response_handl": [1, 6], "set_csc_measurement_handl": [1, 4], "set_cycling_power_measurement_handl": [1, 3], "set_cycling_power_vector_handl": [1, 3], "set_fitness_machine_status_handl": [1, 6], "set_general_fe_data_page_handl": [1, 17], "set_hr_measurement_handl": [1, 13], "set_indoor_bike_data_handl": [1, 6], "set_indoor_bike_simulation_paramet": [7, 8], "set_neo_mod": [1, 17], "set_radar_measurement_handl": [1, 14], "set_simulation_paramet": [1, 6], "set_specific_trainer_data_page_handl": [1, 17], "set_spin_down_control": [1, 6, 7, 8], "set_steering_measurement_callback": [1, 15, 16], "set_target_heart_r": [1, 6, 7, 8], "set_target_inclin": [1, 6, 7, 8], "set_target_pow": [1, 6, 7, 8, 17], "set_target_resistance_level": [1, 6, 7, 8], "set_target_spe": [1, 6, 7, 8], "set_targeted_cad": [1, 6, 7, 8], "set_targeted_dist": [1, 6, 7, 8], "set_targeted_expended_energi": [1, 6, 7, 8], "set_targeted_number_of_step": [1, 6, 7, 8], "set_targeted_number_of_strid": [1, 6, 7, 8], "set_targeted_time_in_five_heart_rate_zon": [1, 6, 7, 8], "set_targeted_time_in_three_heart_rate_zon": [1, 6, 7, 8], "set_targeted_time_in_two_heart_rate_zon": [1, 6, 7, 8], "set_targeted_training_tim": [1, 6, 7, 8], "set_track_resist": [1, 17], "set_training_status_handl": [1, 6], "set_transmission_r": [1, 15], "set_user_configur": [1, 17], "set_wheel_circumfer": [1, 6, 7, 8], "set_wind_resist": [1, 17], "should": 6, "simpl": 17, "simul": [6, 17], "simulation_off": [1, 17], "sleep": [3, 6, 14, 17], "slope": 17, "slow": 17, "small": 17, "smart": [0, 1], "snippet": 1, "so": 17, "sohn": 14, "some": [3, 6], "somewhat": 17, "sourc": [2, 3, 4, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "span_length_adjustment_support": [1, 3], "special": 17, "specif": [2, 17], "specifi": 17, "specifictrainerdata": [0, 1, 17], "speed": [1, 6, 14, 17], "speed_outside_control_region_high": [7, 12], "speed_outside_control_region_low": [7, 12], "speed_target_setting_support": [7, 9], "spider": [1, 3], "spin_down_control_support": [7, 9], "spin_down_request": [7, 10], "spindownstatusvalu": [1, 7, 10], "standard": 17, "start": [3, 6, 8, 10, 12, 17], "start_or_resum": [1, 6, 7, 8], "started_by_us": [7, 10], "statu": [6, 7, 10], "step": 6, "step_count_support": [7, 9], "sterzo": [0, 1], "stop": 17, "stop_or_paus": [1, 6, 7, 8], "stop_ped": [7, 10], "stopped_by_safety_kei": [7, 10], "stopped_by_us": [7, 10], "str": [1, 2, 3, 6, 14, 17], "stream": 6, "stride": 6, "stride_count_support": [7, 9], "string": [7, 12], "strongli": 17, "submodul": 0, "subpackag": 0, "success": [1, 7, 8, 10, 17], "support": [2, 3, 6, 14, 17], "supported_power_rang": 6, "supported_resistance_level_rang": 6, "supportedpowerrang": [0, 1, 6], "supportedresistancelevelrang": [0, 1, 6], "surfac": 17, "t": 6, "tacx": 17, "tacx_trainer_control": [0, 1], "tacxtrainercontrol": [0, 1, 17], "tail": 17, "tangential_compon": [1, 3], "target": [6, 17], "target_pow": 17, "target_power_limit": [1, 17], "target_setting_featur": 6, "targeted_cadence_configuration_support": [7, 9], "targeted_distance_configuration_support": [7, 9], "targeted_expended_energy_configuration_support": [7, 9], "targeted_step_number_configuration_support": [7, 9], "targeted_stride_number_configuration_support": [7, 9], "targeted_time_in_five_heart_rate_zones_configuration_support": [7, 9], "targeted_time_in_three_heart_rate_zones_configuration_support": [7, 9], "targeted_time_in_two_heart_rate_zones_configuration_support": [7, 9], "targeted_training_time_configuration_support": [7, 9], "targetpowerlimit": [0, 1, 17], "targetsettingfeatur": [1, 7, 9], "teeth": 17, "test": 14, "than": 17, "thei": 17, "theori": 17, "therefor": 17, "thi": [1, 2, 3, 6, 14, 17], "think": 17, "threat_id": [1, 14], "three": 10, "threezonehr": [1, 7, 10], "through": 17, "time": 6, "timeout": 6, "top_dead_spot_angl": [1, 3], "top_of_sho": [1, 3], "torque_bas": [1, 3], "total_dist": [7, 11], "total_distance_support": [7, 9], "total_energi": [7, 11], "track": 17, "train": [6, 17], "trainer": [0, 1, 3, 6], "trainer_statu": [1, 17], "training_statu": [1, 7], "trainingstatu": [1, 7, 12], "trainingstatusmessag": [1, 7, 12], "transmiss": 15, "treadmil": [1, 17], "true": 6, "try": [6, 17], "tupl": [3, 4, 6, 8, 9, 10, 11, 12, 13, 14, 17], "turbo": [3, 17], "two": [9, 17], "twozonehr": [1, 7, 10], "type": [3, 8, 10, 12, 17], "typic": 17, "understand": 17, "uniniti": [1, 17], "uniqu": 17, "unit": [7, 10, 17], "unknown": [1, 3, 6], "unresolv": 6, "unspecifi": [1, 3], "untest": 17, "update_event_count": [1, 17], "us": [1, 17], "usag": 1, "user": 17, "user_configuration_requir": [1, 17], "user_data_retention_support": [7, 9], "user_speed_too_high": [1, 17], "user_speed_too_low": [1, 17], "user_weight": 17, "util": 2, "valid": 2, "valu": [2, 3, 6, 7, 8, 10, 12, 17], "varia": 14, "variat": 17, "variou": 1, "veloc": 17, "versa": 6, "version": 14, "very_light": [7, 10], "vice": 6, "virtual": 17, "w": 6, "wa": 17, "warming_up": [7, 12], "watt": 17, "watt_control": [7, 12], "weight": 17, "what": 17, "wheel": 17, "wheel_circumference_configuration_support": [7, 9], "wheel_rev_support": [1, 3, 4], "when": [6, 17], "where": 17, "which": [1, 2, 3, 6, 14, 17], "while": [2, 6, 17], "wind": 17, "wind_resistance_coeffici": [7, 10, 17], "wind_spe": [6, 7, 10, 17], "wooden_board": [1, 17], "word": 17, "work": [6, 17], "would": 17, "wrap": 1, "wrapper": 2, "write": 6, "you": [1, 17], "your": [0, 2, 3, 6, 14, 17], "zero": [15, 17], "zwift": 17}, "titles": ["Welcome to pycycling\u2019s documentation!", "pycycling package", "pycycling.battery_service module", "pycycling.cycling_power_service module", "pycycling.cycling_speed_cadence_service module", "pycycling.data package", "pycycling.fitness_machine_service module", "pycycling.ftms_parsers package", "pycycling.ftms_parsers.control_point module", "pycycling.ftms_parsers.fitness_machine_feature module", "pycycling.ftms_parsers.fitness_machine_status module", "pycycling.ftms_parsers.indoor_bike_data module", "pycycling.ftms_parsers.training_status module", "pycycling.heart_rate_service module", "pycycling.rear_view_radar module", "pycycling.rizer module", "pycycling.sterzo module", "pycycling.tacx_trainer_control module"], "titleterms": {"": 0, "address": 1, "battery_servic": 2, "content": [0, 1, 5, 7], "control_point": 8, "cycling_power_servic": 3, "cycling_speed_cadence_servic": 4, "data": 5, "devic": 1, "document": 0, "exampl": [2, 3, 6, 14, 17], "fitness_machine_featur": 9, "fitness_machine_servic": 6, "fitness_machine_statu": 10, "ftms_parser": [7, 8, 9, 10, 11, 12], "heart_rate_servic": 13, "indic": 0, "indoor_bike_data": 11, "mode": 17, "modul": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "obtain": 1, "oper": 17, "packag": [1, 5, 7], "pycycl": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "rear_view_radar": 14, "rizer": 15, "smart": 17, "sterzo": 16, "submodul": [1, 7], "subpackag": 1, "tabl": 0, "tacx_trainer_control": 17, "trainer": 17, "training_statu": 12, "welcom": 0, "your": 1}}) \ No newline at end of file