bluetooth bluetoothgatt 什么范围的蓝牙UUID可以用于供应商定义的配置文件?



bluetoothgatt (4)

我想使用自定义配置文件构建一个简单的基于蓝牙低功耗的应用程序。 所采用的配置文件/服务/特性/描述符使用16位UUID,如官方网站上所示

16位UUID是对应的128位UUID的快捷方式,并被翻译为

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

其中Bluetooth_Base_UUID00000000-0000-1000-8000-00805F9B34FB(来源:蓝牙核心规范第3卷F部分3.2.1)

由于我使用自定义配置文件,我想知道什么UUID我被允许使用。

  • 哪个范围的128位UUID可以用来描述蓝牙低功耗的供应商定义的属性?

Answer #1

除非通过注册将其分配给您,否则不得使用16位或32位UUID。

使用未注册的简短UUID将导致与您的设备,未来标准和/或其他设备的注册号码不兼容。 蓝牙认证要求有效的号码。

不注册时,生成您自己的有效的128位UUID:


Answer #2

上面显示的基本UUID之上的所有16位和32位UUID都是为spec(或未来规范)中的项目保留的。 因此,供应商应用程序可以自由使用比基本UUID更少的任何128位UUID。 供应商没有使用16位或32位UUID的保留空间。



Answer #4

您可以使用Bluetooth SIG注册16位UUID: https//www.bluetooth.org/en-us/Pages/LoginRestrictedAll/16-bit-UUIDs-member.aspx如果您需要保存字节(为了空间,能量或其他性能原因)。

我对Bluetooth规范的解释是,您可以使用Bluetooth UUID Base“range” 之外的任何128位UUID,

 xxxxxxxx-0000-1000-8000-00805F9B34FB

我把范围放在引号中,因为你引用的规范的16位到128位转换公式表明最左边的字节是最重要的(大端!)。 请注意,如果您将UUID作为128位整数处理,则Bluetooth UUID基本“范围”不是连续的值范围。