我正在尝试使用bluez的gatttool在BLE自定义板上编写一些演示特性。具体来说,我希望写到一个特性,并把值读出来。下面是我正在做的事情( 0x25是特征的句柄):
bluepy$ gatttool -b EC:24:B8:23:1C:39 -I
[ ][EC:24:B8:23:1C:39][LE]> connect
[CON][EC:24:B8:23:1C:39][LE]> char-read-hnd 0x0025
[CON][EC:24:B8:23:1C:39][LE]> Characteristic value/descriptor: 01
[CON][EC:24:B8:23:1C:39][LE]> char-write-cmd 0x25 0x02
[CON][EC:24:B8:23:1C:39][LE]> char-read-hnd 0x0025
[CON][EC:24:B8:23:1C:39][LE]> Characteristic value/descriptor: 00有人知道为什么特征值读取为00而不是02 (char-write-cmd的第二个参数)吗?
任何帮助都将不胜感激。
发布于 2015-12-21 13:48:35
尽管BLE有规则和标准,但底层设备可以简单地忽略这些规则和标准,并做自己的事情。因此,它可能会将属性列出为读-写,并似乎接受新的值,但随后只是删除这些值。它不应该这样做,但它没有理由不能。
但是,您应该确保它确实发送了正确的数据,问题是设备.正如注释中提到的,gatttool在解释输入时可能有点混乱(新版本比旧版本要好),所以尝试使用02或2而不是0x02。您也可以尝试使用btmon来检查gatttool是否确实发送了您想要的值。
发布于 2020-02-03 15:55:40
检查是否有其他软件没有访问蓝牙。
我在尝试读取特征时也遇到了类似的问题,节点红色也在访问相同的设备。与设备连接但无法与读/写通信的gatttool。当我停止节点红色时,它就开始工作了。
https://stackoverflow.com/questions/34379972
复制相似问题