【问题标题】:BLE connect interval settingBLE连接间隔设置
【发布时间】:2017-02-28 18:25:30
【问题描述】:

对于从 BLE 设备读取数据块(9000 字节)的应用程序,我需要尽可能快地修改连接间隔。

我正在使用 linux 内核 = 3.14.43 运行 BlueZ 堆栈 4.101

目前,我可以在连接设备后使用“hcitool lecup”执行此操作,但这意味着首先“连接”然后使用“hcitool con”获取连接句柄,最后使用 min 和 max= 获取“hcitool lecup” 6(最小值 = 7.5 毫秒)。

这工作正常,但“连接”需要数百毫秒后,“hcitool lecup”需要大约 600 毫秒。 设备断开连接时会重置连接参数,这意味着必须在每个连接上执行此序列。

使用 BlueZ 工具(hcitool 和 gatttool)是否可以在连接过程中直接传递连接参数,或者必须先连接,然后在第二步修改连接参数。

非常感谢

【问题讨论】:

    标签: bluetooth-lowenergy bluez


    【解决方案1】:

    可以在开始连接前通过hci内核文件系统接口设置连接间隔:

    echo  6 > /sys/kernel/debug/bluetooth/hci0/conn_min_interval
    echo 20 > /sys/kernel/debug/bluetooth/hci0/conn_max_interval
    

    (以 1.25 毫秒为单位)

    【讨论】:

      【解决方案2】:

      我一直在寻找相同问题的答案,并且能够解决设备固件中的问题(我使用的是带有灵活堆栈的 esp32)。在这种情况下,该设备充当 BLE 中心的角色。而且似乎 bluez 会尝试接受正在协商的设备,因此无需另外指定(通过写信给 dev)。所以我最终在嵌入式端进行了 ble_gap_update_params api 调用,连接间隔 min 和 max 都设置为最小值,通过这种方式它由 bluez stack 协商和确认。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-09
        • 1970-01-01
        • 1970-01-01
        • 2021-05-05
        • 1970-01-01
        相关资源
        最近更新 更多