gpt4 book ai didi

linux - Bluez 5 未知连接标识符

转载 作者:太空宇宙 更新时间:2023-11-04 10:22:01 25 4
gpt4 key购买 nike

我有一个运行最新 Raspbian 的 Raspberry Pi 3,并且我有从 5.23 升级 bluez。到 5.43。我正在尝试连接到 BLE以 2 秒为间隔发布广告的设备。我写了一些代码在 gatttool 上并尝试连接到这些设备。我遇到了LE 连接请求在 2 秒后被取消。因此,我收到状态为 0x02(未知连接标识符)的 LE 连接完成消息

根据我的研究,大约 15 个月前我在文件中发现了这个,

https://www.spinics.net/lists/linux-bluetooth/msg65434.html

但是在跟帖之后,我没有看到是否找到了解决方案。

我已经用我的代码、gatttool 实用程序以及使用蓝牙控制。我在列出的 btmon 中看到相同类型的事件下面:

 HCI Command: LE Set Scan Parameters (0x08|0x000b) plen 7                              [hci0] 21:45:51.917070        Type: Passive (0x00)        Interval: 60.000 msec (0x0060)        Window: 30.000 msec (0x0030)        Own address type: Public (0x00)        Filter policy: Ignore not in white list (0x01)> HCI Event: Command Complete (0x0e) plen 4                                             [hci0] 21:45:51.917819      LE Set Scan Parameters (0x08|0x000b) ncmd 1        Status: Success (0x00) HCI Event: Command Complete (0x0e) plen 4                                             [hci0] 21:45:51.918357      LE Set Scan Enable (0x08|0x000c) ncmd 1        Status: Success (0x00)> HCI Event: LE Meta Event (0x3e) plen 27                                               [hci0] 21:45:52.597503      LE Advertising Report (0x02)        Num reports: 1        Event type: Connectable undirected - ADV_IND (0x00)        Address type: Random (0x01)        Address: D3:67:2D:D1:46:46 (Static)        Data length: 15        Flags: 0x06          LE General Discoverable Mode          BR/EDR Not Supported        Company: FedEx Services (321)          Data: 070a111080d28004        RSSI: -63 dBm (0xc1) HCI Event: Command Complete (0x0e) plen 4                                             [hci0] 21:45:52.599626      LE Set Scan Enable (0x08|0x000c) ncmd 1        Status: Success (0x00) HCI Event: Command Status (0x0f) plen 4                                               [hci0] 21:45:52.600508      LE Create Connection (0x08|0x000d) ncmd 1        Status: Success (0x00) HCI Event: Command Complete (0x0e) plen 4                                             [hci0] 21:45:54.684146      LE Create Connection Cancel (0x08|0x000e) ncmd 1        Status: Success (0x00)> HCI Event: LE Meta Event (0x3e) plen 19                                               [hci0] 21:45:54.684361      LE Connection Complete (0x01)        Status: Unknown Connection Identifier (0x02)        Handle: 64        Role: Master (0x00)        Peer address type: Random (0x01)        Peer address: D3:67:2D:D1:46:46 (Static)        Connection interval: 67.50 msec (0x0036)        Connection latency: 0.00 msec (0x0000)        Supervision timeout: 420 msec (0x002a)        Master clock accuracy: 0x00@ Connect Failed: D3:67:2D:D1:46:46 (2) status 0x02

看起来代码中某处有 2 秒超时,可能是内核端。

需要注意的一点是,如果我使用 hcitool 进行连接,我能够连接大多数时候。我知道这不是 L2CAP 层,但我可以看到我能够连接。

此外,如果我将 BLE 设备的广告间隔更改为 1 秒。我可以很好地连接。 (2秒广告间隔的原因是省电)

有没有人最近遇到过这个问题,如果有的话,有什么解决办法吗?

谢谢

最佳答案

同样的问题。正如您所指出的,将广告间隔从 10 秒减少到 0.5 秒确实可以解决问题。我也需要更长的间隔来节省电池。我知道使用旧版本的 Raspbian ( 2016-03-18-raspbian-jessie kernel 4.1.19-v7+ #858 SMP, bluez 5.23 ) 工作正常,但是,我还没有得到一个更新的版本。

更新发现这篇文章后:https://www.spinics.net/lists/linux-bluetooth/msg67800.html我在 include/net/bluetooth/hci.h 中更改了以下值:

#define HCI_LE_CONN_TIMEOUT msecs_to_jiffies(22000) /* 22 seconds WAS 2 seconds */
#define HCI_LE_AUTOCONN_TIMEOUT msecs_to_jiffies(22000) /* 22 seconds WAS 2 seconds */

重新编译,现在一切正常,我的设备在最新版本的 Raspbian 内核 4.4.50 和 bluez 5.45 上以 10.24 秒的广播间隔运行。希望这会有所帮助。

关于linux - Bluez 5 未知连接标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43529336/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com