首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从bluno读取串行数据的BLE gatttool?

从bluno读取串行数据的BLE gatttool?
EN

Stack Overflow用户
提问于 2018-06-12 14:39:08
回答 1查看 665关注 0票数 0

我正在尝试通过BLE将数据从Bluno发送到树莓派(Raspian),Bluez5.50。

而连接似乎是正常的。我遇到了无法从通知句柄检索串行数据的问题。

下面是我尝试过的。

代码语言:javascript
复制
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 )

如有任何帮助或指示,我将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2018-06-24 19:26:48

好的,下面是我最终在Python代码中用来检索值的方法

`

代码语言:javascript
复制
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()))

`

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50810694

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档