gpt4 book ai didi

android - 跳过 BLE 服务发现

转载 作者:行者123 更新时间:2023-11-29 19:32:39 25 4
gpt4 key购买 nike

我正在尝试尽量减少 BLE 设备的总连接时间和写入时间。 BLE模块是我所在的公司开发的,所以我已经了解了设备的所有服务和特性。

至此,连接时间+服务发现时间过长(大概800ms,这里要求是500ms top)。我试图跳过服务发现,为此,我在代码中手动创建了特征和服务(使用反射来设置 protected 属性等),并且我可以“技术上”通过服务发现。

问题是,如果我这样做,第一个数据包大约需要 300 毫秒,而对于服务发现,发现大约需要 280 毫秒,第一个数据包需要 20 毫秒,所以似乎执行了服务发现不管怎样,只是稍后,即使我不直接调用它——我的假设对吗?如果是这样,有没有办法完全绕过发现?

非常感谢任何帮助,到目前为止我无法在网上找到任何有用的信息,而这 300 毫秒是至关重要的。

最佳答案

即使您不告诉它,Android 也会进行服务发现。

你有三个选择:

  1. 绑定(bind)您的设备。然后 android 根本不会执行任何服务发现(除了第一次连接)。
  2. 优化您的 GATT 数据库。丢弃不需要的特征和描述符,如果您有自定义服务,请尝试合并尽可能多的特征等。
  3. 如果您的硬件可行,请优化链路层,您可以在同一个连接事件(150 微秒内)中响应每个 GATT 请求,而不是在下一个连接事件中响应。理论上这应该将速度提高 2 倍。 Nordic Semiconductor 的 nrf52 就是一个可能的例子。

关于android - 跳过 BLE 服务发现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39685272/

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