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