Подтвердить что ты не робот

Какой диапазон 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?
4b9b3361

Ответ 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: