【问题标题】:Bluetooth LE maximum transmission size蓝牙 LE 最大传输大小
【发布时间】:2014-11-30 14:27:34
【问题描述】:

我们目前正在使用蓝牙 LE,并希望将 128 个字符的字符串发送到 gatt 服务。

现在蓝牙规范说 BLE 的最大数据包大小是 22 字节,我的字符串永远无法放入数据包中。

我们正在考虑将其分块并在迭代中发送。

这是通常的做事方式吗?

【问题讨论】:

  • 你的平台是什么?例如,在 iOS 中,数据包可能会被分割成不同的部分(iOS 单独完成,因为框架给出了高级别的)。
  • 我们正在为 android 和 iOS 进行交叉开发。我们可以轻松实现这样的功能,但我们想知道蓝牙领域的发展方向。

标签: bluetooth-lowenergy core-bluetooth android-bluetooth


【解决方案1】:

是的,您需要将数据分块成 18 个字节的片段,然后向服务器发送一系列 Prepare Write Requests。每个请求都有 3 个参数:

  • 属性句柄(2字节)
  • 属性偏移量(2 字节)
  • 数据部分(最多 18 个字节)

所以你会首先发送一个偏移量为 0 的数据包,然后是一个偏移量为 18 的数据包,然后是 36 等等。 当您这样做时,服务器会将您的所有请求排队。

最后,您发送一个Execute Write Request,然后服务器一次性写入所有字节。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-14
    • 2021-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-26
    • 2013-10-25
    相关资源
    最近更新 更多