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

The PLX Spot-check Measurement characteristic, if supported, is used to send Spot-check measurements of SpO2 (Percent oxygen saturation of hemoglobin) and PR (pulse rate). This characteristic is a variable length structure containing the Flags field, the SpO2PR-Spot-Check field, and depending on the contents of the Flags field, the Timestamp field, the Measurement Status field, the Device and Sensor Status field, and/or the Pulse Amplitude Index field.

*/ export interface PlxSpotCheckMeasurement { /** * | value | description | * | ----- | ----------- | * | 0 | False | * | 1 | True | */ calibrationOngoing: number; /** * | value | description | * | ----- | ----------- | * | 0 | False | * | 1 | True | */ dataForDemonstration: number; /** * | value | description | * | ----- | ----------- | * | 0 | False | * | 1 | True | */ dataForTesting: number; /** * | value | description | * | ----- | ----------- | * | 0 | False | * | 1 | True | */ dataFromMeasurementStorage: number; /** *

Format: `24bit`

* * Bit field: * * | index | size | name | * | ----- | ---- | --------------------------------------- | * | 0 | 1 | Extended Display Update Ongoing | * | 1 | 1 | Equipment Malfunction Detected | * | 2 | 1 | Signal Processing Irregularity Detected | * | 3 | 1 | Inadequite Signal Detected | * | 4 | 1 | Poor Signal Detected | * | 5 | 1 | Low Perfusion Detected | * | 6 | 1 | Erratic Signal Detected | * | 7 | 1 | Nonpulsatile Signal Detected | * | 8 | 1 | Questionable Pulse Detected | * | 9 | 1 | Signal Analysis Ongoing | * | 10 | 1 | Sensor Interface Detected | * | 11 | 1 | Sensor Unconnected to User | * | 12 | 1 | Unknown Sensor Connected | * | 13 | 1 | Sensor Displaced | * | 14 | 1 | Sensor Malfunctioning | * | 15 | 1 | Sensor Disconnected | * | 16 | 8 | Reserved for future use | * */ deviceAndSensorStatus: number; /** * | value | description | * | ----- | ----------- | * | 0 | False | * | 1 | True | */ deviceClockIsNotSet: number; /** * | value | description | * | ----- | ----------- | * | 0 | False | * | 1 | True | */ earlyEstimatedData: number; /** * | value | description | * | ----- | ----------- | * | 0 | False | * | 1 | True | */ equipmentMalfunctionDetected: number; /** * | value | description | * | ----- | ----------- | * | 0 | False | * | 1 | True | */ erraticSignalDetected: number; /** * | value | description | * | ----- | ----------- | * | 0 | False | * | 1 | True | */ extendedDisplayUpdateOngoing: number; /** *

Format: `8bit`

*

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

* * Bit field: * * | index | size | req | name | * | ----- | ---- | --- | -------------------------------------- | * | 0 | 1 | C1 | Timestamp field is present | * | 1 | 1 | C2 | Measurement Status Field Present | * | 2 | 1 | C3 | Device and Sensor Status Field Present | * | 3 | 1 | C4 | Pulse Amplitude Index field is present | * | 4 | 1 | | Device Clock is Not Set | * | 5 | 3 | | Reserved for future use | * */ flags: number; /** * | value | description | * | ----- | ----------- | * | 0 | False | * | 1 | True | */ fullyQualifiedData: number; /** * | value | description | * | ----- | ----------- | * | 0 | False | * | 1 | True | */ inadequiteSignalDetected: number; /** * | value | description | * | ----- | ----------- | * | 0 | False | * | 1 | True | */ invalidMeasurementDetected: number; /** * | value | description | * | ----- | ----------- | * | 0 | False | * | 1 | True | */ lowPerfusionDetected: number; /** * | value | description | * | ----- | ----------- | * | 0 | False | * | 1 | True | */ measurementOngoing: number; /** *

Format: `16bit`

* * Bit field: * * | index | size | name | * | ----- | ---- | --------------------------------- | * | 5 | 1 | Measurement Ongoing | * | 6 | 1 | Early Estimated Data | * | 7 | 1 | Validated Data | * | 8 | 1 | Fully Qualified Data | * | 9 | 1 | Data from Measurement Storage | * | 10 | 1 | Data for Demonstration | * | 11 | 1 | Data for Testing | * | 12 | 1 | Calibration Ongoing | * | 13 | 1 | Measurement Unavailable | * | 14 | 1 | Questionable Measurement Detected | * | 15 | 1 | Invalid Measurement Detected | * | 0 | 5 | Reserved for future use | * */ measurementStatus: number; /** * | value | description | * | ----- | ----------- | * | 0 | False | * | 1 | True | */ measurementUnavailable: number; /** * | value | description | * | ----- | ----------- | * | 0 | False | * | 1 | True | */ nonpulsatileSignalDetected: number; /** * | value | description | * | ----- | ----------- | * | 0 | False | * | 1 | True | */ poorSignalDetected: number; /** *

Format: `SFLOAT`

*

Unit: `org.bluetooth.unit.percentage`

*

Unit is percentage with a resolution of 1

*/ pulseAmplitudeIndex?: number | undefined; /** * | value | description | * | ----- | ----------- | * | 0 | False | * | 1 | True | */ questionableMeasurementDetected: number; /** * | value | description | * | ----- | ----------- | * | 0 | False | * | 1 | True | */ questionablePulseDetected: number; /** * | value | description | * | ----- | ----------- | * | 0 | False | * | 1 | True | */ sensorDisconnected: number; /** * | value | description | * | ----- | ----------- | * | 0 | False | * | 1 | True | */ sensorDisplaced: number; /** * | value | description | * | ----- | ----------- | * | 0 | False | * | 1 | True | */ sensorInterfaceDetected: number; /** * | value | description | * | ----- | ----------- | * | 0 | False | * | 1 | True | */ sensorMalfunctioning: number; /** * | value | description | * | ----- | ----------- | * | 0 | False | * | 1 | True | */ sensorUnconnectedToUser: number; /** * | value | description | * | ----- | ----------- | * | 0 | False | * | 1 | True | */ signalAnalysisOngoing: number; /** * | value | description | * | ----- | ----------- | * | 0 | False | * | 1 | True | */ signalProcessingIrregularityDetected: number; /** *

Format: `SFLOAT`

*

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

*

Unit is beats per minute with a resolution of 1

*/ spo2prSpotCheckPR: number; /** *

Format: `SFLOAT`

*

Unit: `org.bluetooth.unit.percentage`

*

Unit is percentage with a resolution of 1

*/ spo2prSpotCheckSpO2: number; /**

Unit is smallest unit in seconds with a resolution of 1

*/ timestamp?: DateTime | undefined; /** * | value | description | * | ----- | ----------- | * | 0 | False | * | 1 | True | */ unknownSensorConnected: number; /** * | value | description | * | ----- | ----------- | * | 0 | False | * | 1 | True | */ validatedData: number; } /** @see {@link https://raw.githubusercontent.com/oesmith/gatt-xml/refs/heads/master/org.bluetooth.characteristic.plx_spot_check_measurement.xml | Plx Spot Check Measurement} */ export declare class PlxSpotCheckMeasurementImpl implements PlxSpotCheckMeasurement { static readonly UUID_PREFIX = 10846; static readonly TYPE_NAME = "org.bluetooth.characteristic.plx_spot_check_measurement"; static readonly NAME = "PLX Spot-Check Measurement"; /** Parse from a DataView into {@link PlxSpotCheckMeasurement}. */ static fromDataView(dataView: DataView | DataViewReader, indexStart?: number | undefined): PlxSpotCheckMeasurementImpl; readonly calibrationOngoing: number; readonly dataForDemonstration: number; readonly dataForTesting: number; readonly dataFromMeasurementStorage: number; readonly deviceAndSensorStatus: number; readonly deviceClockIsNotSet: number; readonly earlyEstimatedData: number; readonly equipmentMalfunctionDetected: number; readonly erraticSignalDetected: number; readonly extendedDisplayUpdateOngoing: number; readonly flags: number; readonly fullyQualifiedData: number; readonly inadequiteSignalDetected: number; readonly invalidMeasurementDetected: number; readonly lowPerfusionDetected: number; readonly measurementOngoing: number; readonly measurementStatus: number; readonly measurementUnavailable: number; readonly nonpulsatileSignalDetected: number; readonly poorSignalDetected: number; readonly pulseAmplitudeIndex?: number | undefined; readonly questionableMeasurementDetected: number; readonly questionablePulseDetected: number; readonly sensorDisconnected: number; readonly sensorDisplaced: number; readonly sensorInterfaceDetected: number; readonly sensorMalfunctioning: number; readonly sensorUnconnectedToUser: number; readonly signalAnalysisOngoing: number; readonly signalProcessingIrregularityDetected: number; readonly spo2prSpotCheckPR: number; readonly spo2prSpotCheckSpO2: number; readonly timestamp?: DateTime | undefined; readonly unknownSensorConnected: number; readonly validatedData: number; constructor(plxSpotCheckMeasurement: PlxSpotCheckMeasurement); } /** Parse from a DataView into {@link PlxSpotCheckMeasurement}. */ export declare function plxSpotCheckMeasurementFromDataView(dataView: DataView | DataViewReader, indexStart?: number): PlxSpotCheckMeasurement; //# sourceMappingURL=plx-spot-check-measurement.d.ts.map