【问题标题】:BLE, the more characteristics and services the more slowlyBLE,特性和服务越多越慢
【发布时间】:2018-02-07 10:25:17
【问题描述】:

BLE和Android,特性和服务越多越慢

以下问题:

我正在使用 android (5.0+) 和 Nordic BLE chip (NRF52832) 处理一个项目,以从 android 设备上的芯片接收值。 (我不使用第三方包)

连接、读取服务和特性运行良好且快速,但是:

一旦我在通知上设置了更多特性(在 2 个服务中),值到达设备的速度就会非常慢,例如:

通知 1 个特征 = 50 毫秒/值

通知 1 服务 6 特征 = 150 – 200 毫秒/值

通知 2 个服务,10 个特征 = 400-600ms/值`

RequestConnectionPriority 不会解决我的问题。

是否有人有解决方案声明或已经有解决方案?

【问题讨论】:

  • 吞吐量可以以每秒通知数来衡量。哪个特性都没有关系。因此,如果您两次通知同一特征,则与一次通知两个特征相同。

标签: android mobile bluetooth-lowenergy


【解决方案1】:

使用多种服务和特性会减慢 BLE 中心和外围设备之间的通信速度,这是一个已知问题。

此外,就设备上消耗的内存而言,每个特性都有开销成本。

解决此问题的方法是尽量减少您使用的特征数量。

为此,您可以例如仅使用一个特征并将特征数据包的一个八位字节专用于存储您从设备发送或接收的命令 ID 或信息类型。

然后可以使用相同的特性向您的设备发送各种命令,或从设备请求各种类型的信息。

【讨论】:

  • 谢谢。意味着问题没有“真正的”解决方案。只需尽量减少特征的数量并使用一项服务。 BLE中心的不同值应该在设备上计算,拆解!?
  • 确实如此,尽量减少特征数量并使用一个服务是一种好方法。您的设备将根据您的特征的专用“命令”字节的值采取不同的行动。
猜你喜欢
  • 1970-01-01
  • 2016-11-03
  • 1970-01-01
  • 2016-03-05
  • 1970-01-01
  • 2012-07-25
  • 2020-01-23
  • 1970-01-01
  • 2023-03-12
相关资源
最近更新 更多