Skip to content
AF

Glucose Measurement Context (0x2A34): byte layout

GATT characteristic · org.bluetooth.characteristic.glucose_measurement_context · read from the Bluetooth SIG’s repository on 2026-10-17 · commit 408f4a0 (2026-10-14)

Glucose Measurement Context is Bluetooth GATT characteristic 0x2A34, org.bluetooth.characteristic.glucose_measurement_context in the Bluetooth SIG's assigned numbers. The SIG's GATT Specification Supplement file lays its value out as 12 fields: Flags, Sequence Number, Extended Flags, Carbohydrate ID, Carbohydrate and 7 more. The first, Flags, is a boolean[8]; 10 of the others are present only when a bit of it is set as the field's text states, so after the first of those, a field's offset depends on which bits are set.

UUID
0x2A34
Identifier
org.bluetooth.characteristic.glucose_measurement_context
The SIG’s description
The Glucose Measurement Context characteristic is used to represent context information associated with a glucose measurement record.The structure of this characteristic is defined below.
Service the SIG’s files tie it to
None: no file in the repository lists this characteristic under a service.
Source file
gss/org.bluetooth.characteristic.glucose_measurement_context.yaml

Byte layout: 12 fields

In the order the SIG’s structure lists them. Type and size are as published; sizes count octets except where a struct is marked as sized in bits. The offset is printed only where every earlier field has a fixed size; where an earlier field can be absent or vary, the cell names what it depends on. “Present when” is read from the field’s own “Present if” line, shown in full in the field notes below.

OffsetFieldTypeSizePresent whenUnit
0Flagsboolean[8]1Always (fixed size)—
1Sequence Numberuint162Always (fixed size)—
3Extended Flagsboolean[8]0 or 1Bit 7 of Flags is 1—
Depends on Flags (bit 7)Carbohydrate IDuint80 or 1Bit 0 of Flags is 1—
Depends on Flags (bits 0 and 7)Carbohydratemedfloat160 or 2Bit 0 of Flags is 1mass (kilogram)org.bluetooth.unit.mass.kilogram
Depends on Flags (bits 0 and 7)Mealuint80 or 1Bit 1 of Flags is 1—
Depends on Flags (bits 0, 1 and 7)Tester-Healthstruct0 or 1Bit 2 of Flags is 1—
+0 bits↳ Testeruint44 bitsAlways (fixed size)unitlessorg.bluetooth.unit.unitless
+4 bits↳ Healthuint44 bitsAlways (fixed size)unitlessorg.bluetooth.unit.unitless
Depends on Flags (bits 0, 1, 2 and 7)Exercise Durationuint160 or 2Bit 3 of Flags is 1time (second)org.bluetooth.unit.time.second
Depends on Flags (bits 0, 1, 2, 3 and 7)Exercise Intensityuint80 or 1Bit 3 of Flags is 1percentageorg.bluetooth.unit.percentage
Depends on Flags (bits 0, 1, 2, 3 and 7)Medication IDuint80 or 1Bit 4 of Flags is 1—
Depends on Flags (bits 0, 1, 2, 3, 4 and 7)Medicationmedfloat160 or 2Bit 4 of Flags is 1mass (kilogram)org.bluetooth.unit.mass.kilogramvolume (litre)org.bluetooth.unit.volume.litre
Depends on Flags (bits 0, 1, 2, 3, 4 and 7)HbA1cmedfloat160 or 2Bit 6 of Flags is 1percentageorg.bluetooth.unit.percentage

Field notes

Each field’s text in the SIG’s file, line by line.

Flags boolean[8] · 1
See Flags
Sequence Number uint16 · 2
Contains the sequence number of the corresponding Glucose Measurement as defined by the service.
Extended Flags boolean[8] · 0 or 1
See Extended FlagsPresent if bit 7 of Flags field is set to 1
Carbohydrate ID uint8 · 0 or 1
See Carbohydrate IDPresent if bit 0 of Flags field is set to 1
Carbohydrate medfloat16 · 0 or 2
Unit: org.bluetooth.unit.mass.kilogramPresent if bit 0 of Flags field is set to 1
Meal uint8 · 0 or 1
See MealPresent if bit 1 of Flags field is set to 1
Tester-Health struct · 0 or 1
See Tester-HealthPresent if bit 2 of Flags field is set to 1
Exercise Duration uint16 · 0 or 2
See Exercise DurationUnit: org.bluetooth.unit.time.secondPresent if bit 3 of Flags field is set to 1
Exercise Intensity uint8 · 0 or 1
Unit: org.bluetooth.unit.percentagePresent if bit 3 of Flags field is set to 1
Medication ID uint8 · 0 or 1
See Medication IDPresent if bit 4 of Flags field is set to 1
Medication medfloat16 · 0 or 2
If bit 5 of Flags field is set to 0,Unit: org.bluetooth.unit.mass.kilogramIf bit 5 of Flags field is set to 1,Unit: org.bluetooth.unit.volume.litrePresent if bit 4 of Flags field is set to 1
HbA1c medfloat16 · 0 or 2
Unit: org.bluetooth.unit.percentagePresent if bit 6 of Flags field is set to 1

Flags and value tables

The definitions the SIG’s file gives for its fields, every row as published. On a flags table the last column lists the fields whose “Present if” line names that bit.

Flags

The bits of this field are defined below.

BitDescriptionFields its condition names
0Carbohydrates Flag:0 = Carbohydrate ID and Carbohydrate fields not present1 = Carbohydrate ID and Carbohydrate fields presentCarbohydrate ID when 1Carbohydrate when 1
1Meal Flag:0 = Meal field not present1 = Meal field presentMeal when 1
2Tester-Health Flag:0 = Tester-Health field not present1 = Tester-Health field presentTester-Health when 1
3Exercise Flag:0 = Exercise Duration and Exercise Intensity fields not present1 = Exercise Duration and Exercise Intensity fields presentExercise Duration when 1Exercise Intensity when 1
4Medication Flag:0 = Medication ID and Medication fields not present1 = Medication ID and Medication fields presentMedication ID when 1Medication when 1
5Medication Units Flag:0 = Medication value in units of milligrams1 = Medication value in units of milliliters—
6HbA1c Flag:0 = HbA1c field not present1 = HbA1c field presentHbA1c when 1
7Extended Flags:0 = Extended Flags field not present1 = Extended Flags field presentExtended Flags when 1

Extended Flags

The bits of this field are defined below.

BitDescriptionFields its condition names
0–7Reserved for Future Use—

Carbohydrate ID

The values of this field are defined below.

ValueDescription
0x00Reserved for Future Use
0x01Breakfast
0x02Lunch
0x03Dinner
0x04Snack
0x05Drink
0x06Supper
0x07Brunch
0x08–0xFFReserved for Future Use

Meal

The values of this field are defined below.

ValueDescription
0x00Reserved for Future Use
0x01Preprandial (before meal)
0x02Postprandial (after meal)
0x03Fasting
0x04Casual (snacks, drinks, etc.)
0x05Bedtime
0x06–0xFFReserved for Future Use

Tester-Health(sizes in bits, as the file marks)

The structure of this field is defined below.

FieldData typeSizeDescription
Testeruint44Unit: org.bluetooth.unit.unitlessSee Tester
Healthuint44Unit: org.bluetooth.unit.unitlessSee Health

Tester

The values of this field are defined below.

ValueDescription
0x0Reserved for Future Use
0x1Self
0x2Health Care Professional
0x3Lab test
0x4–0xEReserved for Future Use
0xFTester value not available

Health

The values of this field are defined below.

ValueDescription
0x0Reserved for Future Use
0x1Minor health issues
0x2Major health issues
0x3During menses
0x4Under stress
0x5No health issues
0x6–0xEReserved for Future Use
0xFHealth value not available

Exercise Duration

The values of this field are defined below.

ValueDescription
0x0000–0xFFFEExercise Duration in seconds
0xFFFFOverrun

Medication ID

The values of this field are defined below.

ValueDescription
0x00Reserved for Future Use
0x01Rapid acting insulin
0x02Short acting insulin
0x03Intermediate acting insulin
0x04Long acting insulin
0x05Pre-mixed insulin
0x06–0xFFReserved for Future Use

Guides on this site

The metric Glucose Measurement Context carries, on every platform this site covers — each type quoted in its platform's own words:

No guide on this site names 0x2A34 yet. The connected-devices guides cover pairing, subscribing and testing for the device types they do name.

Questions

What is the UUID of the Glucose Measurement Context characteristic?
0x2A34. The Bluetooth SIG's characteristic_uuids.yaml lists Glucose Measurement Context as 0x2A34 with the identifier org.bluetooth.characteristic.glucose_measurement_context. No file in the SIG's repository ties it to a service: the repository lists service and characteristic UUIDs separately.
Which Glucose Measurement Context fields are optional?
10 of its 12 fields have a published size that can be zero: Extended Flags (0 or 1; Present if bit 7 of Flags field is set to 1); Carbohydrate ID (0 or 1; Present if bit 0 of Flags field is set to 1); Carbohydrate (0 or 2; Present if bit 0 of Flags field is set to 1); Meal (0 or 1; Present if bit 1 of Flags field is set to 1); Tester-Health (0 or 1; Present if bit 2 of Flags field is set to 1); Exercise Duration (0 or 2; Present if bit 3 of Flags field is set to 1); Exercise Intensity (0 or 1; Present if bit 3 of Flags field is set to 1); Medication ID (0 or 1; Present if bit 4 of Flags field is set to 1); Medication (0 or 2; Present if bit 4 of Flags field is set to 1); HbA1c (0 or 2; Present if bit 6 of Flags field is set to 1). Flags (1) and Sequence Number (2) have a fixed size.
What units does Glucose Measurement Context use?
The SIG's text names a unit for 5 of the 12 fields: Carbohydrate: mass (kilogram) (org.bluetooth.unit.mass.kilogram); Exercise Duration: time (second) (org.bluetooth.unit.time.second); Exercise Intensity: percentage (org.bluetooth.unit.percentage); Medication: mass (kilogram) (org.bluetooth.unit.mass.kilogram) and volume (litre) (org.bluetooth.unit.volume.litre), each on its own line of the field's text with the condition it states; HbA1c: percentage (org.bluetooth.unit.percentage).
What do the bits of the Glucose Measurement Context Flags field mean?
The SIG defines them as: bit 0, Carbohydrates Flag: 0 = Carbohydrate ID and Carbohydrate fields not present; 1 = Carbohydrate ID and Carbohydrate fields present (Carbohydrate ID when 1, Carbohydrate when 1); bit 1, Meal Flag: 0 = Meal field not present; 1 = Meal field present (Meal when 1); bit 2, Tester-Health Flag: 0 = Tester-Health field not present; 1 = Tester-Health field present (Tester-Health when 1); bit 3, Exercise Flag: 0 = Exercise Duration and Exercise Intensity fields not present; 1 = Exercise Duration and Exercise Intensity fields present (Exercise Duration when 1, Exercise Intensity when 1); bit 4, Medication Flag: 0 = Medication ID and Medication fields not present; 1 = Medication ID and Medication fields present (Medication ID when 1, Medication when 1); bit 5, Medication Units Flag: 0 = Medication value in units of milligrams; 1 = Medication value in units of milliliters; bit 6, HbA1c Flag: 0 = HbA1c field not present; 1 = HbA1c field present (HbA1c when 1); bit 7, Extended Flags: 0 = Extended Flags field not present; 1 = Extended Flags field present (Extended Flags when 1).
Which values does the Glucose Measurement Context Carbohydrate ID table define?
0x01: Breakfast; 0x02: Lunch; 0x03: Dinner; 0x04: Snack; 0x05: Drink; 0x06: Supper; 0x07: Brunch. The other rows are reserved for future use or carry no text.

Source

Read on 2026-10-17 from gss/org.bluetooth.characteristic.glucose_measurement_context.yaml and assigned_numbers/uuids/characteristic_uuids.yaml in the Bluetooth SIG’s public repository (branch main, commit 408f4a0, committed 2026-10-14), by scripts/fetch-bluetooth-gatt.mjs. The file’s notice says it is proprietary to Bluetooth SIG, that furnishing it grants no licence, and that it is subject to change without notice; it is © Bluetooth SIG, Inc., and its text is quoted here for identification. Generated by AIFitnessAPI, which is not affiliated with Bluetooth SIG; the SIG’s file remains the authority. The full notice and the conventions used on these pages are on the reference hub.

← All Bluetooth GATT characteristics