java分区字节数组到队列的相等字节数组
因此,我有一个来自服务器的字节数组动态大小,我需要将其划分为15个大小相等的字节数组,并将其添加到我的Queue<ByteArray>
。那我该怎么做呢
我需要这个来装我的BLE设备。我正在进行固件更新,我需要将字节数组转换为队列中每个字节相等的20个字节,以便顺利进行
例如,从服务器接收的字节数组是256。我想要我的
queue[0]=bytes[0-15] onpeek()
queue[1]=bytes[16-30] onPeek()
queue[2]=bytes[31-45]onPeek()
...
....
queue[n]= bytes[240-255] onPeek()
我的代码:
private val sendQueue: Queue<ByteArray> = ConcurrentLinkedQueue()
@Volatile
private var isWriting = false
fun send(
dataByte: ByteArray,
gatt: BluetoothGatt
): Int {
var data = dataByte
while (data.count() > 15) {
// todo divide into 20 equal byte array and add it to sendQueue.
}
sendQueue.add(data)
if (!isWriting) _send(gatt)
return 0 //0
}
# 1 楼答案
我不确定你是否理解你的问题,但这可以提供一个方向
将dataByte称为
Iterable
将允许您chunk将其设置为所需的大小, 然后,您只需迭代它的结果并将其添加到队列中