首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在iOS上协商BLE MTU

在iOS上协商BLE MTU
EN

Stack Overflow用户
提问于 2017-02-01 18:46:34
回答 3查看 8.4K关注 0票数 7

我目前正在为iOS开发一个BLE应用程序。在我的应用程序中,我需要实现一个分段协议,以便使用BLE发送大量数据。我的应用程序需要有中心角色。

我的问题是我不能得到协商的MTU。我可以得到我的外围设备的maximumWriteValueLength,但是它比我的要大,并且找不到我的中心对象的maximumWriteValueLength

是否有人知道如何查找协商的MTU或如何访问我的CBCentralManagerCBCentral对象

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-02-03 16:13:31

我会为有同样问题的人回答。

目前(2017年2月),外围角色中iPhone的MTU值始终为158。因此,我在简短的解决方案中发现(只是为了进行一些测试)是将中央MTU与158进行比较,并采用较小的那个。对于更稳定的解决方案,外设将在连接后读取的特定特征中写入MTU大小。

票数 0
EN

Stack Overflow用户

发布于 2017-02-20 11:28:43

iOS在连接时自动启动MTU交换。

运行iOS < 10的设备将请求的MTU大小为158。运行iOS 10的较新设备将请求的MTU大小为185。

假设您所连接的设备支持这些大小,这就是您应该看到的。

您应该能够通过查看CBCentralmaximumUpdateValueLength属性来确定协商的最大有效负载大小。(请注意,这将比ATT MTU少3个字节,因为这是ATT通知/指示的开销)

票数 13
EN

Stack Overflow用户

发布于 2019-09-04 21:25:11

不知道你是不是在找这个。但在我的例子中,我请求发送此消息的外围设备:

代码语言:javascript
运行
复制
print("Max write value: \(peripheral.maximumWriteValueLength(for: .withResponse))")
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41977767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档