______________________________________________________________
Android BLE 框架发布,功能全面,简单易用:
https://github.com/a1anwang/okble
______________________________________________________________
蓝牙一个包最多只能发送20字节的命令,如果一个命令为30字节,那么肯定要分包发送
1字节 2个长度 如:0x01
那么分包发送需要一套规则,来让设备端解析,然后把包合起来,才能收到完整命令
比如要发送30个字节命令如下:
12345678900987654321ABCDEFFEDCBA01 23456789012345678901234567 (60个长度)
规定 0400 开头的表示 分包数据开始
那么app发送的第一个包为:0400 02 其中的02 表示,分包的总包数为2
那么第二个包为:0401 01 12345678900987654321ABCDEFFEDCBA01(17个数据字节)
其中0401 表示这是分包数据 01 表示 这是第1个包 后面的17个 字节就是第一个包的数据
第三个包为:0401 02 23456789012345678901234567 (13个数据字节)
其中0401 表示这是分包数据 02 表示 这是第2个包 后面的13个 字节就是第二个包的数据
设备那边收到这些命令 可以得到 总包数 为2 ,然后拼装起来得到总命令。
这只是一个简单的规则,大致表达了这个意思。
原文地址《Android BLE蓝牙一个包只有20个字节,我的数据超过20字节怎么办?》
发表评论