其实分包方法很简单,稍微有点js基础的就可以写出来,逻辑实现很简单。
BLE蓝牙4.0协议中规定发送数据包字节数不超过20个字节,如果超过20个字节就需要分包发送,往往在现实业务中APP端向蓝牙设备发送的数据包基本上都超过了20个字节,故分包方法如下:
一个字节两个字符串,故20个字节为40个字符串,例如字符串0102就是两个字节
function datasubpck(datahex) { var arrayObj = new Array(); for (var i = 0; i < datahex.length; i += 40) { // 预加 最大包长度,如果依然小于总数据长度,可以取最大包数据大小 if ((i + 40) < datahex.length) { arrayObj.push(datahex.substring(i, i + 40)) } else { arrayObj.push(datahex.substring(i)) } } return arrayObj; }
如上述代码,把分包数据添加进了数组中。
我们有21个字节的字符串:010203040506070809101112131415161718192021
var s="010203040506070809101112131415161718192021" var sArray = datasubpck(s) alert(sArray.length) alert("第一包:"+sArray[0]) alert("第2包:"+sArray[1]) <!--V型知识库原创 www.vxzsk.com-->
运行效果如下:
如上图所示,我们把21个字节分成了两包,其中第二包字符串为21,和我们的变量保持一致。
下一章节将结合小程序蓝牙接口利用分包方法和递归方法调用发送消息writeBLECharacteristicValue 接口。
此文章本站原创,地址 https://www.vxzsk.com/1919.html
转载请注明出处!谢谢!
感觉本站内容不错,读后有收获?小额赞助,鼓励网站分享出更好的教程