|
|
1
2
首先,请记住,通过特性发送流数据并不是特性的目的。特征点是表示一些小的(大约20字节)信息,如当前电池电量、设备名称或当前心跳。其思想是,只有当参考底图值更改时,特征才会更改。它从未被设计成串行协议。所以你默认的假设应该是一切都由你来管理。
您不应该向特征写入的数据超过从中获取的值
你所写的每一个单独的值都会以原子的方式呈现给接收者。请记住,这些值都是单独的值,而不是从较大的数据流中分块出来的,因此重叠来自同一个特征的值是没有意义的。”原子“意味着它全部或全部到达。所以如果你的MTU可以处理100个字节,你写100个字节,另一方将收到100个字节或什么都没有。 也就是说,BLE中几乎没有错误检测,而且您绝对可以丢弃数据包。由你来验证数据是否正确到达。 如果你能瞄准iOS 11+,请看看L2CAP,它是为串行协议而不是使用GATT设计的。 如果您不能这样做,我建议您观看WWDC 2013会话703,它详细介绍了这个用例。(不过,我再也找不到它的链接了。) |
|
|
G. Thaler · PyBluez 0.22上的操作错误 8 年前 |
|
|
Torantula · 获取Android上可用蓝牙设备的列表 8 年前 |
|
|
Jeremy P · 能否同时通知Java BLE多个特征? 8 年前 |
|
|
Jocky Doe · 向配对蓝牙设备发送NearbBy API通知 8 年前 |
|
|
Roel · Bash读取套接字/开发/rfcomm0 8 年前 |