0

Je suis en train de développer une application qui analyse les balises à portée et affiche les données des balises à l'utilisateur. J'utilise Android Bluetooth LE API. Dans la méthode onScanResult(), j'obtiens l'objet ScanResult que j'analyse ensuite en octets bruts. Ceci est un exemple de ce que je reçois d'un de mes balises:Android Bluetooth LE API onScanResult ScanRecord octets signifiant

02:01:06:1A:FF:4C:00:02:15:74:27:8B:DA:B6:44:45:20:8F:0C:72:0E:AF:05:99:35:00:00:00:01:C5:02:0A:00:08:16:F0:FF:64:00:00:00:01:11:09:4D:69:6E:69:42:65:61:63:6F:6E:5F:33:36:38:35:30:00:00 

J'ai eu aucun problème à trouver ce que la première partie moyenne - il correspond au format IBeacon:

02:01:06:1A:FF:4C:00:02:15 - iBeacon prefix 
74:27:8B:DA:B6:44:45:20:8F:0C:72:0E:AF:05:99:35 - UUID 
00:00 - Major 
00:01 - Minor 
C5 - TX power 

Mais je Je n'ai aucune idée de ce que sont les autres octets. S'agit-il d'une sorte de données spécifiques au fabricant ou quoi? Peuvent-ils être utilisés pour obtenir des informations utiles?

02:0A:00:08:16:F0:FF:64:00:00:00:01:11:09:4D:69:6E:69:42:65:61:63:6F:6E:5F:33:36:38:35:30:00:00 
+0

Voici une bonne explication du format de trame de numérisation: https://github.com/alt236/Bluetooth-LE-Library---Android/blob/master/library/src/main/java/uk /co/alt236/bluetoothlelib/device/adrecord/AdRecord.java –

Répondre

1

paquets Bluetooth sont divisés en ce qu'on appelle PDUs. Une PDU commence avec une longueur d'un octet suivie d'un type d'un octet. L'interprétation des octets restants est spécifique au type d'unité PDU.

Certaines de ces données supplémentaires sont intéressantes (principalement le nom Bluetooth) mais la plupart ne le sont pas.

Ainsi, ces octets signifie:

02: 0A: 00 (.. PDU Flags pas grand intérêt)

08: 16: F0: FF: 64: 00: 00: 00: 01 (PDU de données de service UUID de service: FFF0, données de service: 64: 00: 00: 00: 01)

11: 09: 4D: 69: 6E: 69: 42: 65: 61: 63: 6F: 6E: 5F: 33: 36: 38: 35: 30 (nom complet local PDU: "MiniBeacon_36850")

00:00 (remplissage de tampon)

+0

Qu'est-ce qu'une PDU de données de service? Que signifient ces octets? – fragon

+1

Les octets sont arbitraires et spécifiques à l'implémentation. Ils peuvent signifier tout ce que le radiodiffuseur veut qu'ils fassent. Pour comprendre la signification, vous devez demander au fabricant de la balise. – davidgyoung