2012-04-20 7 views
13

Voglio creare una semplice applicazione Bluetooth Low Energy utilizzando un profilo personalizzato. I profili/servizi/caratteristiche/descrittori adottati utilizzano UUID a 16 bit come visto su official site.Quale intervallo di UUID Bluetooth può essere utilizzato per profili definiti dal fornitore?

I UUID 16 bit sono collegamenti per un corrispondente 128 bit UUID ed è tradotto come

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

con Bluetooth_Base_UUID essere 00000000-0000-1000-8000-00805F9B34FB. (Origine: Bluetooth Core Specification Vol 3 Part F Sezione 3.2.1)

Poiché sto utilizzando un profilo personalizzato, mi chiedo quali UUID posso usare.

  • Quale gamma di UUID a 128-bit può essere usato per descrivere vendor attributi definiti nel Bluetooth Low Energy?

risposta

18

Tutti gli UUID a 16 bit e 32 bit sopra l'UUID di base mostrati sopra sono riservati per gli elementi nelle specifiche (o specifiche future). Quindi le app dei fornitori sono libere di utilizzare qualsiasi UUID a 128 bit inferiore all'UUID di base. Non esiste spazio riservato ai fornitori per utilizzare UUID a 16 bit o 32 bit.

+2

Potrebbe specificare un'origine in cui è confermato che tutti gli UUID inferiori all'UUID di base sono liberi di utilizzare per chiunque? – Etan

+7

Vol 3 Parte F Sezione 3.2.1 "Le applicazioni non devono convertire un UUID a 128 bit in un UUID a 16 bit per il confronto in quanto non vi è alcuna garanzia che l'UUID a 128 bit sia basato sull'UUID Bluetooth Base ; essere un UUID a 128 bit definito dal fornitore. ". Vedi anche Vol 3 Parte B 2.5, e più chiaramente indicato in https://www.bluetooth.org/Technical/AssignedNumbers/service_discovery.htm (è richiesta la registrazione) – TJD

+0

https://developer.bluetooth.org/gatt/services/Pages /ServicesHome.aspx – Tobias

8

È possibile registrare UUID a 16 bit con Bluetooth SIG: https://www.bluetooth.org/en-us/Pages/LoginRestrictedAll/16-bit-UUIDs-member.aspx Questo è utile se è necessario salvare i byte (per lo spazio, l'energia o per altri motivi di prestazioni).

La mia interpretazione della specifica Bluetooth è che è possibile utilizzare qualsiasi 128-bit UUID fuori di Bluetooth UUID Base "range", liberamente:

xxxxxxxx-0000-1000-8000-00805F9B34FB 

ho messo gamma tra virgolette, perché la formula di conversione da 16 bit a 128 bit della specifica che hai citato suggerisce che i byte più a sinistra sono i più significativi (big endian!). Si noti che se si considera l'UUID come un numero intero a 128 bit, il "range" della base UUID Bluetooth non è un intervallo continuo di valori.

0

Non è possibile utilizzare UUID a 16 bit o 32 bit a meno che non siano assegnati da registering.

L'utilizzo di un UUID breve non registrato comporta incompatibilità con il dispositivo, gli standard futuri e altri numeri registrati del dispositivo. La qualifica Bluetooth richiederà numeri validi.

Quando non si registra, generare i propri validi a 128 bit UUID:

Problemi correlati