Skip to content

GATT Service paradigm / Generic Access characteristics #177

@thecubic

Description

@thecubic

Hi, I'm trying to use a GATT device (a CGM transmitter, a "Dexcom G6")

discovering characteristics shows this:

Characteristic { uuid: 00002a05-0000-1000-8000-00805f9b34fb, properties: INDICATE }
Characteristic { uuid: 00002a29-0000-1000-8000-00805f9b34fb, properties: READ }
Characteristic { uuid: 00002a24-0000-1000-8000-00805f9b34fb, properties: READ }
Characteristic { uuid: 00002a26-0000-1000-8000-00805f9b34fb, properties: READ }
Characteristic { uuid: f8083533-849e-531c-c594-30f1f86a4ea5, properties: READ | NOTIFY }
Characteristic { uuid: f8083538-849e-531c-c594-30f1f86a4ea5, properties: READ | NOTIFY }
Characteristic { uuid: f8083534-849e-531c-c594-30f1f86a4ea5, properties: WRITE | INDICATE }
Characteristic { uuid: f8083535-849e-531c-c594-30f1f86a4ea5, properties: WRITE | INDICATE }
Characteristic { uuid: f8083536-849e-531c-c594-30f1f86a4ea5, properties: NOTIFY }
Characteristic { uuid: f8083537-849e-531c-c594-30f1f86a4ea5, properties: READ }

the problem is that this is across 3 different services, and a fourth service - the generic access service, mandatory by the GATT spec, is somehow missing, along with 4 characteristics. Manually constructing a characteristic in that service (e.g. 0x2a00) structs and attempting a read fails.

The generic access service is advertised:

ServicesAdvertisement:<addr>, ["0x1800", "0x1801", "0x180a", "f8083532-849e-531c-c594-30f1f86a4ea5"]

I think the standard paradigm is device -> N services -> N characteristics -> N descriptors, but this seems to go straight from device to characteristics. I can read those characteristics from other BLE packages (using BlueZ as a provider)

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions