我正在尝试通过BLE将数据从Bluno发送到树莓派(Raspian),Bluez5.50。
而连接似乎是正常的。我遇到了无法从通知句柄检索串行数据的问题。
下面是我尝试过的。
pi@raspberrypi:~ $ sudo gatttool -b <BLE-MAC-ADDRESS> -I
<BLE-MAC-ADDRESS>[LE]> connect
Attempting to connect to <BLE-MAC-ADDRESS>
Connection successful
[<BLE-MAC-ADDRESS>][LE]>
Notification handle = 0x0025 value : 32
Notification handle = 0x0025 value : 32
Notification handle = 0x0025 value : 32
Notification handle = 0x0025 value : 32
[<BLE-MAC-ADDRESS>][LE]>char-read-hnd 0x0025
handle : 0x0025 value : 01
Notification handle = 0x0025 value : 32
Notification handle = 0x0025 value : 32
[<BLE-MAC-ADDRESS>][LE]>所以这里的问题是,通知句柄监听程序‘监听’串行数据,并每隔1秒从Bluno返回一次值(2 ->十六进制:32)(按照Adurinosketch中的编程)。
但是,当我尝试通过char-read命令检索此值时(使用handle和uuid尝试),它总是返回01?!
最终,我想在我的Python代码中检索这个值(为此我使用了Pexpect )
如有任何帮助或指示,我将不胜感激。
发布于 2018-06-24 19:26:48
好的,下面是我最终在Python代码中用来检索值的方法
`
child = pexpect.spawn("sudo gatttool -b <BLUNO-MAC-ADDR> -I")
# Connect to the device.
print("Connecting to Bluno...")
child.sendline("connect")
child.expect("Connection successful", timeout=5)
print(" Connected!")
while True:
child.expect("Notification handle = 0x0025 value: ", timeout=10)
child.expect("\r\n", timeout=10)
resp = child.before
print(process_my_data(bytearray.fromhex(resp.decode("utf-8")).decode()))`
https://stackoverflow.com/questions/50810694
复制相似问题