如何将二进制数据进行分包发送
最近忙的比较少更新,中秋佳节即将来临,祝大家 中秋节快乐!
- 前段时间有个需求,读取
.bin
文件,完成设备升级功能…,记得当时读取文件大小约9万多个字节,必然少不了对传输数据进行分包的操作。 - 今天分享如何对数据分割为所需的大小,如果没有别的需求的,就可以直接用于向设备写入数据即可;调用
writeBLECharacteristicValue
方法,具体蓝牙BLE交互流程等 可以查看我之前分享的文章,感谢大家,仅供参考;
/**
* 分割二进制数组
* array: 数组源
* chunkSize: 分割大小
*/
function splitBinaryArray(array, chunkSize) {
let offset = 0;
let chunks = [];
while (offset < array.length) {
chunks.push(array.subarray(offset, Math.min(offset + chunkSize, array.length)));
offset += chunkSize;
}
return chunks;
}
使用
// 假设二进制数组
let binaryArray = new Uint8Array([48, 96, 0, 32, 81, 107, 0, 8, 47, 124, 0, 8, 1, 107, 0, 8]);
// 假设每个分割后的数组大小为5
let chunks = splitBinaryArray(binaryArray, 5);