Python 3.x 无法读取/写入BLE中的特征

Python 3.x 无法读取/写入BLE中的特征,python-3.x,bluetooth-gatt,gatttool,Python 3.x,Bluetooth Gatt,Gatttool,我有一个BLED112加密狗和一个BLE设备,其中包含具有服务特征的GATT配置文件。 我已安装pygatt以与我的BLE设备通信 以下是我的python代码,用于连接到我的BLE设备并读取/写入特性:- import pygatt adapter = pygatt.BGAPIBackend() #adapter = pygatt.BGAPIBackend() adapter.start() adapter.scan(timeout=1) device = adapter.connect('30

我有一个BLED112加密狗和一个BLE设备,其中包含具有服务特征的GATT配置文件。 我已安装pygatt以与我的BLE设备通信

以下是我的python代码,用于连接到我的BLE设备并读取/写入特性:-

import pygatt
adapter = pygatt.BGAPIBackend()
#adapter = pygatt.BGAPIBackend()
adapter.start()
adapter.scan(timeout=1)
device = adapter.connect('30:F5:6A:01:2D:05',address_type=pygatt.BLEAddressType.public)
characteristic = "f1126ec4-6e99-5552-5286-55bc21d65776"
device.char_write(characteristic, bytearray([0x00]), wait_for_response=True)
value = device.char_read(characteristic)
print(value)
adapter.stop()
我可以连接到我的设备。 但是,我在阅读或写作时出现以下错误:

C:\Python\Python37-32\lib\site packages\pygatt\backends\bgapi\bgapi.py“, 第570行,在任何提升exc中 pygatt.backends.bgapi.exceptions.ExpectedResponseTimeout:超时 等待10.000000秒后 []

我已经在我的写指令中包含了
wait\u for\u response=True
,但我仍然遇到了这个问题

如何在没有任何错误的情况下读取/写入特征

PS:在扫描时,我观察到上面的UUID属于一个“描述符”

这就是我出错的原因吗


有没有办法在pygatt中写入“描述符”(而不是特征)?

我最终通过将特征UUID更改为特征句柄得到了它。 以下是工作代码:-

import pygatt
import time
adapter = pygatt.BGAPIBackend()
#adapter = pygatt.BGAPIBackend()
adapter.start()
adapter.scan(timeout=1)
device = adapter.connect('30:F5:6A:01:2D:05',address_type=pygatt.BLEAddressType.public)
characteristic = "26"
device.char_write_handle(characteristic, bytearray([0x00, 0x09]), wait_for_response=True)
time.sleep(2)
value = device.char_read_handle(characteristic)
print(value)
adapter.stop()