无法使用Pygatt和BLE112写入BLE112特征

2024-04-29 10:57:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着用pygatt和bluegigable112d写一个自定义gatt特性,我要写的设备也是BLE112(不是加密狗)。我一直在使用以下python脚本:

import pygatt

adapter = pygatt.BGAPIBackend()

adapter = pygatt.BGAPIBackend()
adapter.start()
adapter.scan(timeout=1)

device = adapter.connect('88:6b:0f:7e:4e:66',address_type=pygatt.BLEAddressType.public)
characteristic = "8fbfa190-1af2-427c-a22b-3da61b6b7162"
device.char_write(characteristic, bytearray([0x00, 0xFF]))

#check the characteristic
value = device.char_read(characteristic)

print(value)
adapter.stop()

我尝试写入的特征配置如下:

^{pr2}$

-脚本成功地与适配器和设备连接。 -我可以很好地读取特征,写入时不会产生错误,但是当我再次读取特征时,值没有改变。 -我已经启用了日志记录并查看了输出,但是那里的所有内容都显示了成功的进程。 -我可以使用第三方BLE应用程序以及blegui应用程序来写入特性

我很确定问题出在pygatt脚本上,但是对于可能出现的问题我一无所知。在

总结一下我使用的是:Pygatt和python3通过windows10上的BLE112D连接到BLE112A。在


Tags: import脚本应用程序adaptervaluedevice特征特性
1条回答
网友
1楼 · 发布于 2024-04-29 10:57:30

这个问题通过在char_write函数中添加wait_for_response=True作为参数来解决。所以新的write函数调用是:

device.char_write(characteristic, bytearray([0x00, 0xFF]), wait_for_response=True)

我不太清楚为什么会出现这种情况,但我相信脚本是在编写新值之前从特性中读取的。

相关问题 更多 >