如果我想通过BLE传输大量数据(例如1MB文件),最好的方法是什么?
我控制连接的两端,但是客户端是iOS/Android,所以只能访问GATT。我不能对L2CAP做任何事。
我也迫不及待地想要蓝牙4.1、6LoWPAN、面向连接的通道或类似的东西。
我假设答案是有一个" request“特征和一个"data out”特征,“request”特征是您向其写入数据请求(“从字节0开始,给我3000字节”),“data out”特征是发送大量包含数据的20字节通知(最大特征大小)。
有没有更好的方法?
发布于 2015-09-11 00:24:24
是的,我们正在使用您提到的方法。
如果可以压缩并传输文件,请确保使用最节省空间的format.See传输所需的数据。
发布于 2015-09-11 14:14:07
在远程BLE设备中,您可以将连接间隔更新为较小值,最小为6*1.25ms。
实际上,BLE是为低能量、小分组、低数据速率而设计的。L2cap数据将以跳频方式在不同的数据信道中传输。分组TX/RX发生在每个连接间隔内,并且在一个事件中分组TX/RX的最大数量受到规范的限制,最终由制造商实现。因此,我们可以将连接间隔改得尽可能小,以提高数据速率。
请参阅BT 4.0 spec Vol 2,7.8.18 LE连接更新命令。
发布于 2016-04-27 16:01:25
尝试协商比默认值更大的MTU。那么每个通知都可以更大。即使它会被L2CAP层分成碎片,您也会获得稍微大一点的吞吐量,因为数据包报头会更小。
https://stackoverflow.com/questions/32506837
复制相似问题