import { type DataViewReader } from "./data-view-reader.js"; import { type DateTime } from "./date-time.js"; /**

The Blood Pressure Measurement characteristic is a variable length structure containing a Flags field, a Blood Pressure Measurement Compound Value field, and contains additional fields such as Time Stamp, Pulse Rate and User ID as determined by the contents of the Flags field.

*/ export interface BloodPressureMeasurement { /** *

Format: `SFLOAT`

*

Unit: `org.bluetooth.unit.pressure.pascal`

*

C2: Field exists if the key of bit 0 of the Flags field is set to 1

*/ bloodPressureMeasurementCompoundValueDiastolicKPa?: number | undefined; /** *

Format: `SFLOAT`

*

Unit: `org.bluetooth.unit.pressure.millimetre_of_mercury`

*

C1: Field exists if the key of bit 0 of the Flags field is set to 0

*/ bloodPressureMeasurementCompoundValueDiastolicMmHg?: number | undefined; /** *

Format: `SFLOAT`

*

Unit: `org.bluetooth.unit.pressure.pascal`

*

C2: Field exists if the key of bit 0 of the Flags field is set to 1

*/ bloodPressureMeasurementCompoundValueMeanArterialPressureKPa?: number | undefined; /** *

Format: `SFLOAT`

*

Unit: `org.bluetooth.unit.pressure.millimetre_of_mercury`

*

C1: Field exists if the key of bit 0 of the Flags field is set to 0

*/ bloodPressureMeasurementCompoundValueMeanArterialPressureMmHg?: number | undefined; /** *

Format: `SFLOAT`

*

Unit: `org.bluetooth.unit.pressure.pascal`

*

C2: Field exists if the key of bit 0 of the Flags field is set to 1

*/ bloodPressureMeasurementCompoundValueSystolicKPa?: number | undefined; /** *

Format: `SFLOAT`

*

Unit: `org.bluetooth.unit.pressure.millimetre_of_mercury`

*

C1: Field exists if the key of bit 0 of the Flags field is set to 0

*/ bloodPressureMeasurementCompoundValueSystolicMmHg?: number | undefined; /** * | value | description | * | ----- | -------------------------------- | * | 0 | No body movement | * | 1 | Body movement during measurement | */ bodyMovementDetectionFlag: number; /** * | value | description | * | ----- | ------------------ | * | 0 | Cuff fits properly | * | 1 | Cuff too loose | */ cuffFitDetectionFlag: number; /** *

Format: `8bit`

*

These flags define which data fields are present in the Characteristic value

* * Bit field: * * | index | size | req | name | * | ----- | ---- | ------ | ------------------------- | * | 0 | 1 | C1, C2 | Blood Pressure Units Flag | * | 1 | 1 | C3 | Time Stamp Flag | * | 2 | 1 | C4 | Pulse Rate Flag | * | 3 | 1 | C5 | User ID Flag | * | 4 | 1 | C6 | Measurement Status Flag | * | 0 | 0 | | Reserved for future use | * */ flags: number; /** * | value | description | * | ----- | --------------------------- | * | 0 | No irregular pulse detected | * | 1 | Irregular pulse detected | */ irregularPulseDetectionFlag: number; /** * | value | description | * | ----- | ----------------------------- | * | 0 | Proper measurement position | * | 1 | Improper measurement position | */ measurementPositionDetectionFlag: number; /** *

Format: `16bit`

*

C6: Field exists if the key of bit 4 of the Flags field is set to 1

* * Bit field: * * | index | size | name | * | ----- | ---- | ----------------------------------- | * | 0 | 1 | Body Movement Detection Flag | * | 1 | 1 | Cuff Fit Detection Flag | * | 2 | 1 | Irregular Pulse Detection Flag | * | 3 | 2 | Pulse Rate Range Detection Flags | * | 5 | 1 | Measurement Position Detection Flag | * | 0 | 0 | Reserved for future use | * */ measurementStatus: number; /** *

Format: `SFLOAT`

*

Unit: `org.bluetooth.unit.period.beats_per_minute`

*

C4: Field exists if the key of bit 2 of the Flags field is set to 1

*/ pulseRate?: number | undefined; /** * | value | description | * | ----- | ----------------------------------- | * | 0 | Pulse rate is within the range | * | 1 | Pulse rate exceeds upper limit | * | 2 | Pulse rate is less than lower limit | */ pulseRateRangeDetectionFlags: number; /**

C3: Field exists if the key of bit 1 of the Flags field is set to 1

*/ timeStamp?: DateTime | undefined; /** *

Format: `uint8`

*

C5: Field exists if the key of bit 3 of the Flags field is set to 1

* | Key | Description | * | --- | ------------ | * | 255 | Unknown User | * */ userID?: number | undefined; } /** @see {@link https://raw.githubusercontent.com/oesmith/gatt-xml/refs/heads/master/org.bluetooth.characteristic.blood_pressure_measurement.xml | Blood Pressure Measurement} */ export declare class BloodPressureMeasurementImpl implements BloodPressureMeasurement { static readonly UUID_PREFIX = 10805; static readonly TYPE_NAME = "org.bluetooth.characteristic.blood_pressure_measurement"; static readonly NAME = "Blood Pressure Measurement"; /** Parse from a DataView into {@link BloodPressureMeasurement}. */ static fromDataView(dataView: DataView | DataViewReader, indexStart?: number | undefined): BloodPressureMeasurementImpl; readonly bloodPressureMeasurementCompoundValueDiastolicKPa?: number | undefined; readonly bloodPressureMeasurementCompoundValueDiastolicMmHg?: number | undefined; readonly bloodPressureMeasurementCompoundValueMeanArterialPressureKPa?: number | undefined; readonly bloodPressureMeasurementCompoundValueMeanArterialPressureMmHg?: number | undefined; readonly bloodPressureMeasurementCompoundValueSystolicKPa?: number | undefined; readonly bloodPressureMeasurementCompoundValueSystolicMmHg?: number | undefined; readonly bodyMovementDetectionFlag: number; readonly cuffFitDetectionFlag: number; readonly flags: number; readonly irregularPulseDetectionFlag: number; readonly measurementPositionDetectionFlag: number; readonly measurementStatus: number; readonly pulseRate?: number | undefined; readonly pulseRateRangeDetectionFlags: number; readonly timeStamp?: DateTime | undefined; readonly userID?: number | undefined; constructor(bloodPressureMeasurement: BloodPressureMeasurement); } /** Parse from a DataView into {@link BloodPressureMeasurement}. */ export declare function bloodPressureMeasurementFromDataView(dataView: DataView | DataViewReader, indexStart?: number): BloodPressureMeasurement; //# sourceMappingURL=blood-pressure-measurement.d.ts.map