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

Eta*_*tan 14 uuid bluetooth bluetooth-lowenergy

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

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

128-bit UUID = 16-bit Attribute UUID * 2^96 + Bluetooth_Base_UUID 
Run Code Online (Sandbox Code Playgroud)

Bluetooth_Base_UUID存在00000000-0000-1000-8000-00805F9B34FB.(来源:蓝牙核心规范第3卷第F部分第3.2.1节)

由于我使用的是自定义配置文件,我想知道我可以使用哪些UUID.

  • 哪些128位UUID可用于描述蓝牙低功耗中的供应商定义属性?

TJD*_*TJD 18

您在上面显示的基本UUID之上的所有16位和32位UUID都保留用于规范(或未来规范)中的项目.因此供应商应用程序可以免费使用低于基本UUID的任何128位UUID.供应商没有预留空间来使用16位或32位UUID.

  • 第3卷第F部分第3.2.1节"应用程序不应将128位UUID转换为16位UUID进行比较,因为无法保证128位UUID基于蓝牙基础UUID;它可能是供应商定义了128位UUID." 另见Vol 3 Part B 2.5,最清楚地在https://www.bluetooth.org/Technical/AssignedNumbers/service_discovery.htm中说明(需要注册) (7认同)
  • @TJD:你能提供对语句中"少于基础UUID"部分的引用吗?我在规范中找不到.此外,实际上并不是"少",因为如果将UUID视为128位整数,则UUID范围是不连续的.看我的回答. (4认同)
  • 您是否可以指定一个来源,确认所有小于基本UUID的UUID都可以免费用于任何人? (2认同)

Mar*_*Thé 9

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

我对蓝牙规范的解释是,您可以自由地使用蓝牙UUID Base"范围" 之外的任何128位UUID :

 xxxxxxxx-0000-1000-8000-00805F9B34FB
Run Code Online (Sandbox Code Playgroud)

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