首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >断断续续地获取连接错误:与gatttool连接时未实现的功能(38)

断断续续地获取连接错误:与gatttool连接时未实现的功能(38)
EN

Stack Overflow用户
提问于 2020-05-03 04:07:12
回答 1查看 3.4K关注 0票数 0

我正在做一个项目,在这个项目中,我需要从BLE环境传感器获取数据到一个raspberry pi,并定期将它发送到服务器。我能寄得越多越好。我找到了在线脚本,它与我正在工作的特定类型的传感器一起工作,但它只读取数据一次,不更新,除非某些设备连接到传感器并断开连接。

例如,如果我连续运行脚本两次,它将包含相同的数据,但是如果我只运行一次脚本,然后用我的手机连接和断开传感器,然后再次运行脚本,它就会有新的、更新的数据。现在,我试图使这个完全自动化,我不想每次都要和我的手机保持连接和断开连接来获取新的数据,所以我发现运行gatttool和connecting的效果就像我要与我的手机连接和断开一样。因此,我想出了一个有点笨重的自动化解决方案,所有的解决方案都通过crontab运行:

  1. 运行一个脚本,该脚本使用gatttool连接并立即断开与传感器的连接。
  2. 运行数据收集脚本并将数据发送到服务器。
  3. 尽快重复

第三步是问题所在。我不能像我想的那样经常运行这个系列。理想的间隔是每30秒收集和发送数据,但出于某种原因,我间歇性地从gatttool获得一个错误:

代码语言:javascript
运行
复制
connect error: Function not implemented (38)

在cron计划的每一次迭代中,我都会得到这个错误,直到我设置了时间间隔,这样脚本就只能每2分钟运行一次,即使这样,我也会间歇性地得到错误。我需要数据是一致的,绝对不像两分钟间隔那么稀疏。1分钟将是我能负担得起的数据发送的绝对最大间隔。

我怎样才能消除这个错误?

我的连接和断开设备的脚本:

代码语言:javascript
运行
复制
import pexpect
import time

print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))

scan = pexpect.spawn("sudo hcitool lescan")
time.sleep(5)
print(scan.terminate())

child = pexpect.spawn("sudo gatttool -i hci0 -b E2:D8:9D:FF:72:A2 -I -t random")
child.sendline("connect")

child.expect("Connection successful", timeout=7)
print("connected!")


child.sendline("disconnect")
child.sendline("quit")

child.sendline("sudo hciconfig hci0 down")
child.sendline("sudo hciconfig hci0 up")

print("done!")
EN

回答 1

Stack Overflow用户

发布于 2020-07-12 21:53:22

您在问题开始时链接到的脚本似乎没有连接到传感器。我对他们剧本的理解是,它是从包含测量信息的传感器中扫描广告数据。这是一件常见的事情,你可以得到许多不同类型的信标。

我推测,当您连接和断开连接时,您将看到更频繁的测量结果,因为这是在重新设置广告,因为传感器在连接时不会做广告。

在您链接到的回购的首页上,有一些关于如何更改测量间隔的信息。您说要每30秒写一次,所以这是一个1E的值,您需要将它写入到这个特性中。

他们建议用一个应用程序来做这件事。我已经使用了那个应用程序,没有任何具体的应用程序,他们指向你。如果您想要替代方案,我发现nRF连接应用程序非常适合这些类型的活动。如果您在您的PC或Raspberry Pi上安装了Chrome或Chrome浏览器,那么如果您输入以下URL,就可以从该浏览器安装浏览器:

chrome://蓝牙-内部设备/#设备

Start Scan -> Inspect,传感器设备->,单击0C4C3010-7700-46F4-AA96D5E974E32A54服务->,单击0C4C3011-7700-46F4-AA96D5E974E32A54特性->,输入值(1E) ->按Write按钮。

这应该允许您使用他们的原始脚本与您想要的测量频率。

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

https://stackoverflow.com/questions/61569506

复制
相关文章

相似问题

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