Какой диапазон UUID Bluetooth можно использовать для профилей, определенных поставщиком?
Я хочу создать простое приложение с низким энергопотреблением Bluetooth с использованием настраиваемого профиля. Принятые профили/сервисы/характеристики/дескрипторы используют 16-битные UUID, как показано на официальном сайте .
16-разрядные UUID являются ярлыками для соответствующего 128-битного UUID и преобразуются как
128-bit UUID = 16-bit Attribute UUID * 2^96 + Bluetooth_Base_UUID
с Bluetooth_Base_UUID
00000000-0000-1000-8000-00805F9B34FB
. (Источник: спецификация ядра Bluetooth Vol 3 Part F Раздел 3.2.1)
Поскольку я использую настраиваемый профиль, мне интересно, какие UUID я могу использовать.
- Какой диапазон 128-битных UUID можно использовать для описания атрибутов, определенных поставщиком, в Bluetooth Low Energy?
Ответы
Ответ 1
Все 16-битные и 32-разрядные UUID выше базового UUID, которые вы показываете выше, зарезервированы для элементов в спецификации (или будущих спецификациях). Таким образом, приложения-поставщики могут использовать любой 128-битный UUID меньше базового UUID. Для поставщиков нет зарезервированного места для использования 16-битных или 32-разрядных UUID.
Ответ 2
Вы можете зарегистрировать 16-битные UUID с помощью Bluetooth SIG:
https://www.bluetooth.org/en-us/Pages/LoginRestrictedAll/16-bit-UUIDs-member.aspx
Это полезно, если вам нужно сохранить байты (для пробелов, энергии или других причин производительности).
Моя интерпретация спецификации Bluetooth заключается в том, что вы можете использовать любой 128-битный UUID вне диапазона "UUID Base" Bluetooth, свободно:
xxxxxxxx-0000-1000-8000-00805F9B34FB
Я помещал диапазон в кавычки, потому что формула преобразования 16-бит на 128 бит, которую вы цитировали, предполагает, что самые левые байты являются наиболее значимыми (big endian!). Обратите внимание, что если вы обрабатываете UUID как 128-битное целое число, база "UUID Base" диапазона Bluetooth не является непрерывным диапазоном значений.
Ответ 3
Вы не можете использовать 16-битные или 32-разрядные UUID, если они не назначены вам регистрация.
Использование короткого UUID, который не был зарегистрирован, приведет к несовместимости с вашим устройством и будущими стандартами и/или другими зарегистрированными номерами устройств. Для квалификации Bluetooth требуются действительные номера.
Когда вы не регистрируетесь, создайте свои собственные действительные 128-битные UUID:
Ответ 4
Вот раздел FAQ\Talk about BLE UUID
http://www.cypress.com/forum/psoc-4-ble/how-can-i-get-uuid-services-and-characteristics