蓝牙低功耗服务UUID和特征UUID格式

4
我将要实现一个自定义的BLE服务。我在网上找到一些教程,它们选择了以下方式来选择他们的自定义服务UUID:
对于服务UUID,第三和第四个字节为零,例如:
3698-0000-82c9-4adb-90cd-792b53207775
相应的特征UUID在第三和第四个字节中具有不同的值。但是所有其他字节都与服务UUID相同,例如:
3698-0001-82c9-4adb-90cd-792b53207775 3698-0002-82c9-4adb-90cd-792b53207775 3698-0003-82c9-4adb-90cd-792b53207775 3698-0004-82c9-4adb-90cd-792b53207775
我的问题是:这只是一种常见做法,还是BLE规范的强制要求?

1
GATT服务UUID应该是16位(对于注册用户)或128位(对于其他用户)。没有要求。您可以使用任何数字或使用一些生成器。 - folibis
1个回答

3

毫无疑问,服务UUID和特征UUID没有必须具有相同的基础,但我已经看到过多次这样做,所以这只是常见做法。

例如,心率服务的UUID为0x180D,但其特征UUID为0x2a37(心率测量),0x2a38(身体传感器位置)和0x2a39(心率控制点)。

在蓝牙规范中,只有以下段落与特征UUID格式相关:

特征UUID字段是一个16位蓝牙UUID或128位UUID,用于描述特征值的类型。客户端应支持使用16位和128位特征UUID。客户端可以忽略任何具有未知特征UUID的特征定义。未知的特征UUID是不支持的特征的UUID。此信息可在蓝牙规范版本5.0,Vol 3,Part G,Section 3.3.1.3中找到。正如您所看到的,没有提到特征UUID与服务UUID相关联。希望这能帮到您。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接