VelocAI logo Bluetooth Explorer Documentation

Bluetooth GATT Characteristic Reference

PLX Continuous Measurement Characteristic (0x2A5F)

org.bluetooth.characteristic.plx_continuous_measurement

The PLX Continuous Measurement characteristic, if supported, is used to send periodic pulse oximetry measurements. This characteristic is a variable length structure containing the Flags field (to indicate presence of optional fields), the SpO2PR-Normal field, and depending on the contents of the Flags field, the SpO2PR-Fast field, the SpO2PR-Slow field, the Measurement Status field, the Device and Sensor Status field, and/or the Pulse Amplitude Index field.

Quick Summary

Payload length is 20 bytes. This page is generated from official GATT XML and presented as implementation-ready guidance.

At a Glance

Key reference details for BLE implementation, interoperability testing, and AI-assisted troubleshooting.

PropertyValue
NamePLX Continuous Measurement Characteristic
UUID0x2A5F
Typeorg.bluetooth.characteristic.plx_continuous_measurement
XML RootCharacteristic
Source Fileorg.bluetooth.characteristic.plx_continuous_measurement.xml
Field Count10

Field Specification

Parsed field definitions from the source XML value structure.

Field Requirement Format Unit Exponent Notes
FlagsMandatory8bit---
SpO2PR-Normal - SpO2MandatorySFLOATorg.bluetooth.unit.percentage0Unit is percentage with a resolution of 1
SpO2PR-Normal - PRMandatorySFLOATorg.bluetooth.unit.period.beats_per_minute0Unit is beats per minute with a resolution of 1
SpO2PR-Fast - SpO2C1SFLOATorg.bluetooth.unit.percentage0Unit is percentage with a resolution of 1
SpO2PR-Fast - PRC1SFLOATorg.bluetooth.unit.period.beats_per_minute0Unit is beats per minute with a resolution of 1
SpO2PR-Slow - SpO2C2SFLOATorg.bluetooth.unit.percentage0Unit is percentage with a resolution of 1
SpO2PR-Slow - PRC2SFLOATorg.bluetooth.unit.period.beats_per_minute0Unit is beats per minute with a resolution of 1
Measurement StatusC316bit---
Device and Sensor StatusC424bit---
Pulse Amplitude IndexC5SFLOATorg.bluetooth.unit.percentage0Unit is percentage with a resolution of 1

Bit Map

Bit-level enumerations extracted from the XML BitField definition.

Field Bit Size Name 0 Means 1 Means
Flags01SpO2PR?Fast field is presentFalseTrue
Flags11SpO2PR-Slow field is presentFalseTrue
Flags21Measurement Status field is presentFalseTrue
Flags31Device and Sensor Status field is presentFalseTrue
Flags41Pulse Amplitude Index field is presentFalseTrue
Measurement Status51Measurement OngoingFalseTrue
Measurement Status61Early Estimated DataFalseTrue
Measurement Status71Validated DataFalseTrue
Measurement Status81Fully Qualified DataFalseTrue
Measurement Status91Data from Measurement StorageFalseTrue
Measurement Status101Data for DemonstrationFalseTrue
Measurement Status111Data for TestingFalseTrue
Measurement Status121Calibration OngoingFalseTrue
Measurement Status131Measurement UnavailableFalseTrue
Measurement Status141Questionable Measurement DetectedFalseTrue
Measurement Status151Invalid Measurement DetectedFalseTrue
Device and Sensor Status01Extended Display Update Ongoing bit supportedFalseTrue
Device and Sensor Status11Equipment Malfunction Detected bit supportedFalseTrue
Device and Sensor Status21Signal Processing Irregularity Detected bit supportedFalseTrue
Device and Sensor Status31Inadequite Signal Detected bit supportedFalseTrue
Device and Sensor Status41Poor Signal Detected bit supportedFalseTrue
Device and Sensor Status51Low Perfusion Detected bit supportedFalseTrue
Device and Sensor Status61Erratic Signal Detected bit supportedFalseTrue
Device and Sensor Status71Nonpulsatile Signal Detected bit supportedFalseTrue
Device and Sensor Status81Questionable Pulse Detected bit supportedFalseTrue
Device and Sensor Status91Signal Analysis Ongoing bit supportedFalseTrue
Device and Sensor Status101Sensor Interference Detected bit supportedFalseTrue
Device and Sensor Status111Sensor Unconnected to User bit supportedFalseTrue
Device and Sensor Status121Unknown Sensor Connected bit supportedFalseTrue
Device and Sensor Status131Sensor Displaced bit supportedFalseTrue
Device and Sensor Status141Sensor Malfunctioning bit supportedFalseTrue
Device and Sensor Status151Sensor Disconnected bit supportedFalseTrue

Byte Layout and Decode

Payload length is 20 bytes.

function decodePayload(dataView, offset = 0) {
  // Parse flags (8bit) according to Bluetooth format rules.
  // Parse spo2pr_normal_spo2 (SFLOAT) according to Bluetooth format rules.
  // Parse spo2pr_normal_pr (SFLOAT) according to Bluetooth format rules.
  // Parse spo2pr_fast_spo2 (SFLOAT) according to Bluetooth format rules.
  // Parse spo2pr_fast_pr (SFLOAT) according to Bluetooth format rules.
  // Parse spo2pr_slow_spo2 (SFLOAT) according to Bluetooth format rules.
  // Parse spo2pr_slow_pr (SFLOAT) according to Bluetooth format rules.
  // Parse measurement_status (16bit) according to Bluetooth format rules.
  // Parse device_and_sensor_status (24bit) according to Bluetooth format rules.
  // Parse pulse_amplitude_index (SFLOAT) according to Bluetooth format rules.
  return { flags, spo2pr_normal_spo2, spo2pr_normal_pr, spo2pr_fast_spo2, spo2pr_fast_pr, spo2pr_slow_spo2 };
}

Use Cases and Integration Notes

BLE Telemetry

Map characteristic values into dashboards and alerts for device observability.

Firmware Regression

Compare decoded fields across builds to detect protocol or scaling changes.

App Integration

Build stable parsing paths that convert raw payloads into typed app models.

Implementation Checklist

  • Validate payload length and mandatory fields before decode.
  • Decode with Bluetooth-specified signedness, unit, and exponent handling.
  • Convert units at presentation boundaries to avoid drift in business logic.
  • Persist raw packets and decoded values for reproducible troubleshooting.

FAQ

What is PLX Continuous Measurement Characteristic in Bluetooth GATT?

PLX Continuous Measurement Characteristic is defined as a Bluetooth GATT characteristic entry with type org.bluetooth.characteristic.plx_continuous_measurement and UUID 0x2A5F.

What UUID identifies PLX Continuous Measurement Characteristic?

The UUID for PLX Continuous Measurement Characteristic is 0x2A5F.

How should I parse PLX Continuous Measurement Characteristic?

Payload length is 20 bytes.

Where does this definition come from?

This page is generated from the Bluetooth SIG mirror XML in the oesmith/gatt-xml repository.

How does this page support BLE implementation?

The page combines structured tables, practical Q&A, and JSON-LD metadata to help teams validate integrations and troubleshoot consistently.