src.bluetooth_sig.gatt.characteristics.rower_data¶
Rower Data characteristic implementation.
Implements the Rower Data characteristic (0x2AD1) from the Fitness Machine Service. A 16-bit flags field controls the presence of optional data fields.
Bit 0 (“More Data”) uses inverted logic: when bit 0 is 0 the Stroke Rate and Stroke Count fields ARE present; when bit 0 is 1 they are absent. All other bits use normal logic (1 = present).
References
Bluetooth SIG Fitness Machine Service 1.0 org.bluetooth.characteristic.rower_data (GSS YAML)
Classes¶
Name | Description |
|---|---|
Parsed data from Rower Data characteristic. |
|
Rower Data characteristic (0x2AD1). |
|
Rower Data flags as per Bluetooth SIG specification. |
Module Contents¶
- class src.bluetooth_sig.gatt.characteristics.rower_data.RowerData¶
Bases:
msgspec.StructParsed data from Rower Data characteristic.
- flags¶
Raw 16-bit flags field.
- stroke_rate¶
Instantaneous stroke rate in strokes/min (0.5 resolution).
- stroke_count¶
Total strokes since session start.
- average_stroke_rate¶
Average stroke rate in strokes/min (0.5 resolution).
- total_distance¶
Total distance in metres (uint24).
- instantaneous_pace¶
Instantaneous pace in seconds per 500 m.
- average_pace¶
Average pace in seconds per 500 m.
- instantaneous_power¶
Instantaneous power in watts (signed).
- average_power¶
Average power in watts (signed).
- resistance_level¶
Resistance level (unitless, resolution 10).
- total_energy¶
Total expended energy in kcal.
- energy_per_hour¶
Expended energy per hour in kcal.
- energy_per_minute¶
Expended energy per minute in kcal.
- heart_rate¶
Heart rate in bpm.
- metabolic_equivalent¶
MET value (0.1 resolution).
- elapsed_time¶
Elapsed time in seconds.
- remaining_time¶
Remaining time in seconds.
- flags: RowerDataFlags¶
- class src.bluetooth_sig.gatt.characteristics.rower_data.RowerDataCharacteristic(info: src.bluetooth_sig.types.CharacteristicInfo | None = None, validation: src.bluetooth_sig.gatt.characteristics.characteristic_meta.ValidationConfig | None = None)¶
Bases:
src.bluetooth_sig.gatt.characteristics.base.BaseCharacteristic[RowerData]Rower Data characteristic (0x2AD1).
Used in the Fitness Machine Service to transmit rowing workout data. A 16-bit flags field controls which optional fields are present.
- Flag-bit assignments (from GSS YAML):
Bit 0: More Data – inverted: 0 -> Stroke Rate + Count present Bit 1: Average Stroke Rate present Bit 2: Total Distance present Bit 3: Instantaneous Pace present Bit 4: Average Pace present Bit 5: Instantaneous Power present Bit 6: Average Power present Bit 7: Resistance Level present Bit 8: Expended Energy present (gates triplet: total + /hr + /min) Bit 9: Heart Rate present Bit 10: Metabolic Equivalent present Bit 11: Elapsed Time present Bit 12: Remaining Time present Bits 13-15: Reserved for Future Use
- expected_type¶
- class src.bluetooth_sig.gatt.characteristics.rower_data.RowerDataFlags¶
Bases:
enum.IntFlagRower Data flags as per Bluetooth SIG specification.
Bit 0 uses inverted logic: 0 = Stroke Rate + Stroke Count present, 1 = absent.
- AVERAGE_PACE_PRESENT = 16¶
- AVERAGE_POWER_PRESENT = 64¶
- AVERAGE_STROKE_RATE_PRESENT = 2¶
- ELAPSED_TIME_PRESENT = 2048¶
- EXPENDED_ENERGY_PRESENT = 256¶
- HEART_RATE_PRESENT = 512¶
- INSTANTANEOUS_PACE_PRESENT = 8¶
- INSTANTANEOUS_POWER_PRESENT = 32¶
- METABOLIC_EQUIVALENT_PRESENT = 1024¶
- MORE_DATA = 1¶
- REMAINING_TIME_PRESENT = 4096¶
- RESISTANCE_LEVEL_PRESENT = 128¶
- TOTAL_DISTANCE_PRESENT = 4¶