【发布时间】:2023-03-11 00:17:01
【问题描述】:
所以,我有一个来自服务器的动态大小 ByteArray,我需要将它分成15 个相等大小 并将其添加到我的Queue<ByteArray>。那我该怎么做呢?
我的 BLE 设备实际上需要这个。我正在进行固件更新,我需要将 bytearray 转换为 Queue 中的每个 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
}
【问题讨论】:
-
谁说你的数组长度平分到15?
-
@GhostCat 你能看到我的编辑吗?我想我现在清楚了吗?
-
不,我不明白 3 个 15 字节的数组是如何产生 256 字节的。
-
@GhostCat 它将不断增加。直到找到匹配的数组。实际上。
-
对不起,这对我来说仍然没有意义。努力写出超级简单的句子。主语动词宾语。给我们一个“完整”的例子。 3 * 15 不是 256。
标签: java android arrays kotlin