src.bluetooth_sig.gatt.characteristics.enhanced_blood_pressure_measurement

Enhanced Blood Pressure Measurement characteristic implementation.

Implements the Enhanced Blood Pressure Measurement characteristic (0x2B34). Extends the regular Blood Pressure Measurement with uint32 timestamps (seconds since epoch), a User Facing Time field, and an Epoch Start flag.

Flag-bit assignments (from GSS YAML):

Bit 0: Units (0=mmHg, 1=kPa) Bit 1: Time Stamp present (uint32 seconds since epoch) Bit 2: Pulse Rate present (medfloat16) Bit 3: User ID present (uint8) Bit 4: Measurement Status present (boolean[16]) Bit 5: User Facing Time present (uint32 seconds since epoch) Bit 6: Epoch Start 2000 (0=1900, 1=2000) Bit 7: Reserved

References

Bluetooth SIG Blood Pressure Service 1.1 org.bluetooth.characteristic.enhanced_blood_pressure_measurement (GSS YAML)

Classes

Name

Description

EnhancedBloodPressureData

Parsed data from Enhanced Blood Pressure Measurement characteristic.

EnhancedBloodPressureFlags

Enhanced Blood Pressure Measurement flags.

EnhancedBloodPressureMeasurementCharacteristic

Enhanced Blood Pressure Measurement characteristic (0x2B34).

EpochYear

Epoch start year for Enhanced Blood Pressure timestamps.

Module Contents

class src.bluetooth_sig.gatt.characteristics.enhanced_blood_pressure_measurement.EnhancedBloodPressureData

Bases: msgspec.Struct

Parsed data from Enhanced Blood Pressure Measurement characteristic.

flags

Raw 8-bit flags field.

systolic

Systolic pressure value.

diastolic

Diastolic pressure value.

mean_arterial_pressure

Mean arterial pressure value.

unit

Pressure unit (mmHg or kPa).

timestamp

Seconds since epoch start. None if absent.

pulse_rate

Pulse rate in BPM. None if absent.

user_id

User ID (0-255). None if absent.

measurement_status

16-bit measurement status flags. None if absent.

user_facing_time

User-facing time in seconds since epoch. None if absent.

epoch_year

Epoch start year (1900 or 2000).

diastolic: float
epoch_year: EpochYear
flags: EnhancedBloodPressureFlags
mean_arterial_pressure: float
measurement_status: src.bluetooth_sig.gatt.characteristics.blood_pressure_measurement.BloodPressureMeasurementStatus | None = None
pulse_rate: float | None = None
systolic: float
timestamp: int | None = None
unit: bluetooth_sig.types.units.PressureUnit
user_facing_time: int | None = None
user_id: int | None = None
class src.bluetooth_sig.gatt.characteristics.enhanced_blood_pressure_measurement.EnhancedBloodPressureFlags

Bases: enum.IntFlag

Enhanced Blood Pressure Measurement flags.

EPOCH_START_2000 = 64
MEASUREMENT_STATUS_PRESENT = 16
PULSE_RATE_PRESENT = 4
TIMESTAMP_PRESENT = 2
UNITS_KPA = 1
USER_FACING_TIME_PRESENT = 32
USER_ID_PRESENT = 8
class src.bluetooth_sig.gatt.characteristics.enhanced_blood_pressure_measurement.EnhancedBloodPressureMeasurementCharacteristic(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[EnhancedBloodPressureData]

Enhanced Blood Pressure Measurement characteristic (0x2B34).

Enhanced variant of Blood Pressure Measurement with uint32 timestamps (seconds since epoch) instead of 7-byte DateTime, plus a new User Facing Time field and Epoch Start 2000 flag.

allow_variable_length: bool = True
expected_type
min_length: int = 7
class src.bluetooth_sig.gatt.characteristics.enhanced_blood_pressure_measurement.EpochYear

Bases: enum.IntEnum

Epoch start year for Enhanced Blood Pressure timestamps.

EPOCH_1900 = 1900
EPOCH_2000 = 2000