1.1 UUID
"GATT层”中定义的所有属性都有一个UUID值, UUID是全球唯一的128位的号码, 它用来识别不同的特性。
1.2 蓝牙技术联盟UUID
蓝牙核心规范制定了两种不同的UUID,一种是基本的UUID, -种是代替基本UUID的16位UUID。
所有的蓝牙技术联盟定义UUID共用了一个基本的UUID:
0x0000xxxx-0000-1000-8000-00805F9B34FB
为了进一步简化基本UUID, 每一个蓝牙技术联盟定义的属性有一个唯-的16位UUID,以代替.上面的基本UUID的’x’ 部分。 例如,心率测量特性使用0X2A37作为它的16位UUID,因此它完整的128位UUID为:
0x00002A37-0000-1000-8000-00805F9B34FB
虽然蓝牙技术联盟使用相同的基本UUID,但是16位的UUID足够唯一地识别蓝 牙技术联盟所定义的各种属性。
蓝牙技术联盟所用的基本UUID不能用于任何定制的属性、服务和特性。对于定制的属性,必须使用另外完整的128位UUID。
2.1 供应商特定的UUID
SoftDevice根据蓝牙技术联盟定义UUID类似的方式定义UUID:先增加一个特定的基本UUID,再定义-个16位的UUID (类似于一个别名), 再加载在基本UUID之上。这种采用为所有的定制属性定义一个共用的基本UUID的方式使得应用变为更加简单,至少在同一服务中更是如此。
使用软件nRFgo Studio非常容易产生一个新的基本UUID:
例如,在LED BUTTON示例中,采用0x0000xxx-1212-EFDE-1523-785FEABCD123作为基本UUID.
蓝牙核心规范没有任何规则或是建议如何对加入基本UUID的16位UUID进行分配,因此你可以按照你的意图来任意分配。
例如,在LED BUTTON示例中,0x1523作为服务的UUID, 0x1524作为LED特性的UUID,0x1525作为按键状态特性的UUID.