0

我正在尝试通过 BLE 从 Bluno 向 Raspberry Pi (Raspian) bluez 5.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(如 Adurinosketch 中编程)返回值(2 -> Hex:32)。

但是,当我尝试通过命令 char-read(通过句柄和 uuid 尝试)检索此值时,它总是返回 01 ?!!!

最终我想在我的 Python 代码中检索这个值(我为此使用 Pexpect)

任何帮助/方向表示赞赏。

4

1 回答 1

1

好的,这是我最终在 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()))

`

于 2018-06-24T11:26:47.667 回答