【问题标题】:Why is the MTU different for With Response vs Without Response?为什么有响应与无响应的 MTU 不同?
【发布时间】:2020-08-24 20:57:32
【问题描述】:

在 iOS 上,当我请求 MTU 时,.withoutResponse.withResponse 的值不同。我意识到它可能会有所不同,因为函数需要该参数,但为什么会有所不同?

这是在设备上(BLE 4.2):

(lldb) po peripheral.maximumWriteValueLength(for: .withoutResponse)
182

(lldb) po peripheral.maximumWriteValueLength(for: .withResponse)
512

在另一台设备 (BLE 5) 上,我得到:

(lldb) po peripheral.maximumWriteValueLength(for: .withoutResponse)
509

(lldb) po peripheral.maximumWriteValueLength(for: .withResponse)
512

【问题讨论】:

    标签: ios bluetooth core-bluetooth


    【解决方案1】:

    无响应写入与 MTU 直接相关。 (MTU - 3)。

    当您使用writeWithResponse 时,iOS 可以执行写入响应(最大值长度为 MTU - 3)或“写入长特征值”,它使用多个 ATT 事务来写入值。在后一种情况下,唯一的限制因素是特征值的最大长度,标准设置为 512 字节。

    【讨论】:

    • 谢谢!你有我可以阅读更多内容的参考吗? (或 BLE 规范中的部分)具体指定“响应”有何不同。
    • 只需阅读 GATT 章节,例如第 4.9.4 节。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-15
    • 1970-01-01
    • 2020-07-17
    • 1970-01-01
    • 2015-12-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多