1

我想知道是否有人愿意指导我。我正在尝试使用 gatttool 读取蓝牙温度计的温度,但我不知道如何使用指示属性。

我能够连接到设备,获取设备名称等,但事实证明,获取实际温度数据更具挑战性。

有人有想法吗?另外,如果您对我有更多问题,请告诉我。

4

1 回答 1

4

假设您的设备使用采用的温度计配置文件,那么您希望启用温度测量特性的指示。为此,有几个步骤:-

  1. 使用以下方法找到温度特性的句柄:-

    gatttool -b 00:11:22:33:44:55 --characteristics

将 00:11:22:33:44:55 替换为您设备的蓝牙地址。您基本上想找到包含 2a1c 的 uuid 并记下其相应的“字符值句柄”。

  1. 使用在该句柄处查找描述符

    gatttool -b 00:11:22:33:44:55 char-desc --handle=0xXX

其中 XX 是您之前记下的 char 值句柄。您应该能够在该句柄处看到几个特征描述符。记下 uuid 2902 的字符句柄。

  1. 通过在该句柄处使用写入“0200”来启用指示

    gatttool -b 00:11:22:33:44:55 --sec-level=high --char-write --handle=0xYYYY --value=0200

其中 0xYYYY 是您在步骤 2 中记下的 CCCD 描述符的句柄。一旦发生这种情况,您应该开始获取指示数据,您可以使用此处找到的温度数据结构对其进行解密。

如果您的设备不使用采用的温度计配置文件,那么您需要重复上述三个步骤,但在步骤 1 中,不要寻找具有 uuid 2a1c 的特征,而是寻找具有 'char properties = 0x20' 的特征,因为表示该特性是可指示的。

您可以在以下链接中找到有关使用 BlueZ 命令的更多信息:-

我希望这有帮助。

于 2018-01-23T09:18:37.240 回答