我想知道是否有人愿意引导我一点。我正在尝试使用gatttool读取蓝牙温度计的温度,但我不知道如何使用指示属性。
我能够连接到设备,获取设备名称等,但事实证明获取实际温度数据更具挑战性。
有人有想法吗?如果您有更多问题,请告诉我。
答案 0 :(得分:3)
假设您的设备使用采用的温度计配置文件,则需要启用温度measurement characteristic的指示。要做到这一点,有几个步骤: -
使用找到温度特性的句柄: -
gatttool -b 00:11:22:33:44:55 --characteristics
将00:11:22:33:44:55替换为您设备的蓝牙地址。你基本上想要找到包含2a1c的uuid并记下它对应的' char值句柄'。
使用
在该句柄处查找描述符 gatttool -b 00:11:22:33:44:55 char-desc --handle=0xXX
其中XX是您之前记下的char值句柄。您应该能够在该句柄上看到几个特征描述符。使用uuid 2902记下char句柄。
通过撰写' 0200'来启用指示在该句柄使用
gatttool -b 00:11:22:33:44:55 --sec-level=high --char-write --handle=0xYYYY --value=0200
其中0xYYYY是您在步骤2中记下的CCCD描述符的句柄。一旦发生这种情况,您应该开始获取指示数据,您可以使用here找到的温度数据结构进行解密。
如果您的设备没有使用采用的温度计配置文件,那么您需要重复上述三个步骤,但是在步骤1中,不要使用uuid 2a1c查找特征,而是寻找具有“char”字符的特征properties = 0x20'因为这意味着特征可以表明。
您可以在以下链接中找到有关使用BlueZ命令的更多信息: -
我希望这会有所帮助。