Bluetooth GATT Characteristic Reference
CGM Status (0x2AA9)
The CGM Status allows the Collector to actively request the current status from the CGM Sensor, particularly when the CGM measurement is not running and the status cannot be given in the measurement result in the Status Annunciation.
Quick Summary
Payload length is 7 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.
| Property | Value |
|---|---|
| Name | CGM Status |
| UUID | 0x2AA9 |
| Type | org.bluetooth.characteristic.cgm_status |
| XML Root | Characteristic |
| Source File | org.bluetooth.characteristic.cgm_status.xml |
| Field Count | 3 |
Field Specification
Parsed field definitions from the source XML value structure.
| Field | Requirement | Format | Unit | Exponent | Notes |
|---|---|---|---|---|---|
| Time Offset | Mandatory | uint16 | org.bluetooth.unit.time.minute | 0 | The Time Offset Field specifies the actual relative time difference to the session start time. |
| CGM Status | Mandatory | 24bit | - | - | The structure of the CGM Status Field shall be identical to the structure of the Status Annunciation Field, as defined in the CGM Measurement Characteristic "Sensor Status Annunciation Field". It always consists of three octets regardless the value. |
| E2E-CRC | C1 | uint16 | - | - | If the device supports E2E-safety (E2E-CRC Supported bit is set in CGM Feature), the status is secured by a CRC calculated over all fields. |
Byte Layout and Decode
Payload length is 7 bytes.
function decodePayload(dataView, offset = 0) {
const time_offset = dataView.getUint16(offset + 0, true);
// Parse cgm_status (24bit) according to Bluetooth format rules.
const e2e_crc = dataView.getUint16(offset + 2, true);
return { time_offset, cgm_status, e2e_crc };
}
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 CGM Status in Bluetooth GATT?
CGM Status is defined as a Bluetooth GATT characteristic entry with type org.bluetooth.characteristic.cgm_status and UUID 0x2AA9.
What UUID identifies CGM Status?
The UUID for CGM Status is 0x2AA9.
How should I parse CGM Status?
Payload length is 7 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.