linux – Raspbian上的蓝牙LE

linux – Raspbian上的蓝牙LE,第1张

概述我从源代码安装了bluez-5.15,配置如下: $./configure --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc \--localstatedir=/var --libexecdir=/lib --disable-systemd 然后我不得不手动将gatttool复制到/usr/local/bin目录中 $sudo cp 我从源代码安装了bluez-5.15,配置如下:

$./configure --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc \--localstatedir=/var --libexecdir=/lib --disable-systemd

然后我不得不手动将gatttool复制到/usr/local/bin目录中

$sudo cp attrib/gatttool /usr/local/bin/

我重新启动了RaspBerry Pi并尝试以下连接到我的BLE设备:

$sudo hciconfig hci0 up$sudo hcitool lescanLE Scan ...  EA:FB:B5:CE:B0:13 DfuTarg$sudo hcitool lewladd EA:FB:B5:CE:B0:13$sudo hcitool lecc EA:FB:B5:CE:B0:13Could not create connection: input/output error

那么我试着用gatttool连接:

$gatttool -b EA:FB:B5:CE:B0:13 --interactive[EA:FB:B5:CE:B0:13][LE]> connectAttempting to connect to EA:FB:B5:CE:B0:13Error: connect error: Device or resource busy (16)[EA:FB:B5:CE:B0:13][LE]>

我在这里缺少什么 – 这是配置问题吗?这些错误意味着什么?

解决方法 首先,我与一位同事讨论了我的配置和Raspbian(或更具体地说是Debian),他建议使用以下配置设置:

./configure --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc --localstatedir=/var --enable-library --with-systemdsystemunitdir=/lib/systemd/system --with-systemduserunitdir=/usr/lib/systemd

之后,经过进一步检查,以下是我能够成功连接的方式.所以发生的事情是我试图连接的设备(基于NRF的BLE设备)需要将LE地址标志设置为“随机”.见下文:

gatttool -t random -b EA:FB:B5:CE:B0:13 -I

然后结果:

[EA:FB:B5:CE:B0:13][LE]> connectAttempting to connect to EA:FB:B5:CE:B0:13Connection successful[EA:FB:B5:CE:B0:13][LE]> characteristicshandle: 0x0002,char propertIEs: 0x0a,char value handle: 0x0003,uuID: 00002a00-0000-1000-8000-00805f9b34fb

好哇!此外,可能需要将安全级别设置为低于高的值:

[EA:FB:B5:CE:B0:13][LE]> sec-level medium
总结

以上是内存溢出为你收集整理的linux – Raspbian上的蓝牙LE全部内容,希望文章能够帮你解决linux – Raspbian上的蓝牙LE所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1028861.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存