web-dev-qa-db-fra.com

Quelle plage d'UUID Bluetooth peut être utilisée pour les profils définis par le fournisseur?

Je souhaite créer une application simple basée sur Bluetooth Low Energy à l'aide d'un profil personnalisé. Les profils/services/caractéristiques/descripteurs adoptés utilisent des UUID 16 bits, comme indiqué sur le site officiel .

Les UUID 16 bits sont des raccourcis pour un UUID 128 bits correspondant et sont traduits en tant que

128-bit UUID = 16-bit Attribute UUID * 2^96 + Bluetooth_Base_UUID 

avec Bluetooth_Base_UUID étant 00000000-0000-1000-8000-00805F9B34FB. (Source: Spécification de base Bluetooth, Vol. 3, partie F, section 3.2.1)}

Depuis que j'utilise un profil personnalisé, je me demande quels UUID sont autorisés à utiliser.

  • Quelle plage d'UUID 128 bits peut être utilisée pour décrire les attributs définis par le fournisseur dans Bluetooth Low Energy?
13
Etan

Tous les UUID 16 bits et 32 ​​bits situés au-dessus de l'UUID de base que vous indiquez ci-dessus sont réservés aux éléments de la spécification (ou des spécifications futures). Les applications des fournisseurs sont donc libres d'utiliser n'importe quel UUID 128 bits inférieur à celui de la base. Il n'y a pas d'espace réservé pour que les fournisseurs utilisent des UUID 16 bits ou 32 bits.

18
TJD

Vous pouvez enregistrer des UUID 16 bits avec le Bluetooth SIG: https://www.bluetooth.org/en-us/Pages/LoginRestrictedAll/16-bit-UUIDs-member.aspx Ceci est utile si vous en avez besoin. économiser les octets (pour des raisons de place, d’énergie ou d’autres performances).

Mon interprétation de la spécification Bluetooth est que vous pouvez utiliser n'importe quel UUID 128 bits en dehors de de la base UUID Bluetooth "librement":

 xxxxxxxx-0000-1000-8000-00805F9B34FB

J'ai mis range entre guillemets, car la formule de conversion de la spécification que vous avez citée de 16 bits à 128 bits suggère que les octets les plus à gauche sont les plus significatifs (big endian!). Notez que si vous traitez l'UUID comme un entier de 128 bits, la "plage" Bluetooth UUID Base n'est pas une plage continue de valeurs.

8
Martijn Thé

Vous ne pouvez pas utiliser d’UUID 16 bits ou 32 bits à moins qu’ils ne vous soient attribués par registering .

L'utilisation d'un UUID court qui n'a pas été enregistré entraînera des incompatibilités avec votre appareil et les normes futures et/ou les numéros enregistrés de l'autre appareil. La qualification Bluetooth nécessite des numéros valides.

Lorsque vous ne vous inscrivez pas, générez vos propres UUID 128 bits valides:

1
Vincent Scheib
0
Darshit Shah