首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >iOS - MTU尺寸用于iOS设备与外部附件(BluetoothWatch)之间的数据传输

iOS - MTU尺寸用于iOS设备与外部附件(BluetoothWatch)之间的数据传输
EN

Stack Overflow用户
提问于 2014-11-03 10:54:42
回答 4查看 15K关注 0票数 9

我正在工作的iOS应用程序(目标-C)的蓝牙手表使用BLE(CoreBluetooth),我的手表有关贸总协定蓝牙配置文件,iOS应用程序的最低支持来自iOS7。

我想知道如何使用核心蓝牙框架在iOS设备和外部设备之间进行数据传输。

实际上,我正在进行蓝牙手表固件升级部分的工作,我的iOS应用程序将在收到任何更新时从web服务获取固件代码(二进制数据),然后将数据发送到蓝牙手表。

我搜索并得到了一个苹果示例代码: BTLE_Transfer:转让/介绍/Intro.html

我想示例代码在我的例子中没有用,因为它有中央和外围代码,并且在两个iOS设备之间传输数据。

除了这个用于BLE数据传输的示例代码之外,还有其他方法吗?或者只有这个示例代码才有可能?(如果是的话,怎么做?)

更新:

我的设备有一个服务,它有两个特点,一个用于读,一个用于写。

根据我的工作流程,使用写特性:

  1. 使用WRITECHARACTERISTIC,我用块发送固件代码的数据

写值:NSDATACHUNK特征:WRITECHARACTERISTIC类型:CBCharacteristicWriteWithResponse;

  1. 在委托方法"didWriteValueForCharacteristic“方法中,我通知读取特性如下

  1. 在其中调用"didUpdateNotificationStateForCharacteristic“委托方法,检查READCHARACTERISTIC isNotifying是否正确,然后调用

MYDEVICEINSTANCE readValueForCharacteristic:READCHARACTERISTIC;

  1. 哪个调用委托方法"didUpdateValueForCharacteristic“和我正在使用READCHARACTERISTIC.value读取响应

My查询:

我想确认对iOS应用程序的外部设备通信所允许的最大限制,我从步骤1开始,使用writeValue从iOS应用程序发送NSDATACHUNK到BLE Watch。

我已经测试过,我可以发送NSDATACHUNK的MTU=255大小和BLE手表正在成功地接收。

我在"Apple示例代码: BTLE_Transfer“中发现他们使用的是MTU=20,但是,我猜示例代码是用于iOS设备到iOS设备通信的(如果我错了,请纠正我)。

那么,如果我使用MTU=250在我的iOS应用程序中进行BLE通信,苹果会拒绝我的申请吗?

或者有谁可以说,苹果对MTU允许的最大限制是什么?

每一个建议都会受到赞赏,

提前感谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-03-30 14:15:37

您可以使用您想要的任何MTU大小(最多512)。

连接将使用的值始终是您和他们之间的最小值。

因此,例如,如果他们想使用MTU等于,比如说,50,那么如果您的MTU低于50,那么将使用这个MTU;否则,您选择高于50的值就没有意义,因为50被选中了。

票数 5
EN

Stack Overflow用户

发布于 2014-11-03 13:57:07

连接你的设备后,你的应用程序应该写一个“特色”,用:

代码语言:javascript
运行
复制
 [YOURDEVICEINSTANCE writeValue:NSDATAVALUE forCharacteristic:YOURCHARACTESITIC type:CBCharacteristicWriteWithResponse];

我们花了很多时间使用我的自定义BLE设备,我的结论是:

  • 这种联系是不对称的。(您将花费5ms从您的BLE设备传输到您的应用程序和20 5ms从您的应用程序到您的BLE设备)
票数 1
EN

Stack Overflow用户

发布于 2016-06-27 19:03:32

在iOS设备上,可用的mtu是20,这意味着每次将数据设置为BLE外围设备时,都可以发送20字节的数据。如果您想要进行20字节以上的通信,您必须自己处理,引用APPLE外围样本代码

在您的情况下,问题不是iOS设备的mtu,而是外部的BLE设备,因为您的BLE设备是外围设备。因为你的BLE设备能够传输大量的数据- 255字节,所以拥有这个mtu是很好的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26712694

复制
相关文章

相似问题

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