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

Bluetooth 什么范围的蓝牙UUID可用于供应商定义的配置文件?,bluetooth,uuid,bluetooth-lowenergy,Bluetooth,Uuid,Bluetooth Lowenergy,我想使用自定义配置文件构建一个简单的基于蓝牙低能耗的应用程序。所采用的配置文件/服务/特征/描述符使用16位UUID,如图所示 16位UUID是对应128位UUID的快捷方式,翻译为 128-bit UUID = 16-bit Attribute UUID * 2^96 + Bluetooth_Base_UUID 使用Bluetooth\u Base\u UUID作为00000000-0000-1000-8000-00805F9B34FB。(来源:蓝牙核心规范第3卷第F部分第3.2.1节)

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

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

128-bit UUID = 16-bit Attribute UUID * 2^96 + Bluetooth_Base_UUID 
使用
Bluetooth\u Base\u UUID
作为
00000000-0000-1000-8000-00805F9B34FB
。(来源:蓝牙核心规范第3卷第F部分第3.2.1节)

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

  • 哪一范围的128位UUID可用于描述蓝牙低能耗中供应商定义的属性

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

您可以使用蓝牙SIG注册16位UUID: 如果需要保存字节(出于空间、能量或其他性能原因),这将非常有用

我对蓝牙规范的理解是,您可以自由使用蓝牙UUID基本“范围”之外的任何128位UUID


我用引号标出了范围,因为您引用的规范的16位到128位转换公式表明,最左边的字节是最重要的(大端!)。请注意,如果您将UUID视为128位整数,则蓝牙UUID基本“范围”不是一个连续的值范围。

您不能使用16位或32位UUID,除非它们由指定给您

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

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

  • 使用工具,例如
    • 或命令行工具
  • 了解UUID格式
    • 版本4变体使用随机数,您可以通过将前导的8个十六进制字符替换为0来创建自己的基本UUID

以下是常见问题解答\谈谈可扩展UUID


您能否指定一个来源,确认所有低于基本UUID的UUID都可供任何人自由使用?第3卷第F部分第3.2.1节“应用程序不得将128位UUID转换为16位UUID进行比较,因为无法保证128位UUID基于蓝牙基本UUID;它可能是一个供应商定义的128位UUID。”。另见第3卷B 2.5部分,在(需要注册)中有最清楚的说明@TJD:这很重要,就像你所分享的一样。非常感谢!@TJD:你能提供一个关于声明中“低于基本UUID”部分的参考吗?我在规范中找不到。另外,也没有真正的“低于”部分“比,因为如果将UUID视为128位整数,则UUID范围是非连续的。请参阅我的答案。您提到的链接目前不可用:-(
 xxxxxxxx-0000-1000-8000-00805F9B34FB