GATTTool 无法 read/write 特性
GATTTool fails to read/write characteristics
我正在尝试使用 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
的第二个参数)?
如有任何帮助,我们将不胜感激。
虽然 BLE 有规则和标准,但底层设备可以简单地忽略这些并做自己的事情。因此,它可能将属性列为可读写并似乎接受新值,但随后只是删除了这些值。它不应该那样做,但没有理由不能。
但是,您应该确保它实际上发送了正确的数据,并且问题出在设备上......正如评论中提到的 gatttool
解释输入可能有点混乱(较新版本比旧的更好),所以尝试 02
或 2
而不是 0x02
。您也可以尝试使用 btmon
来检查 gatttool
是否确实发送了您想要的值。
检查是否有其他软件未访问蓝牙。
我在尝试读取特征时遇到了类似的问题,node-red 也在访问同一设备。 gatttool 已连接到设备但无法进行读/写通信。我一停止 node-red,它就开始工作了。
我正在尝试使用 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
的第二个参数)?
如有任何帮助,我们将不胜感激。
虽然 BLE 有规则和标准,但底层设备可以简单地忽略这些并做自己的事情。因此,它可能将属性列为可读写并似乎接受新值,但随后只是删除了这些值。它不应该那样做,但没有理由不能。
但是,您应该确保它实际上发送了正确的数据,并且问题出在设备上......正如评论中提到的 gatttool
解释输入可能有点混乱(较新版本比旧的更好),所以尝试 02
或 2
而不是 0x02
。您也可以尝试使用 btmon
来检查 gatttool
是否确实发送了您想要的值。
检查是否有其他软件未访问蓝牙。
我在尝试读取特征时遇到了类似的问题,node-red 也在访问同一设备。 gatttool 已连接到设备但无法进行读/写通信。我一停止 node-red,它就开始工作了。