объясните последний код:
перед тем, как использовать приведенный ниже код для чтения и отправки обработчика этой даты.
код для чтения двоичного файла, выделенный 8 * 12 * 1002 байт, который является сигнальными данными (содержит 12 * 1002double value)
вопрос:
как я могу использовать rx_java2 для чтения этого файла и потоковой передачи Цикл, синхронный каждые 1002, двойной синхронный для 12 наблюдателей, которые публикуют двойное значение с задержкой каждые 2 мс
class readFile {
public fun getBuffer(sigId: String): ArrayList<DoubleArray> {
val address="/data/data/com.example.amin.ecgs/Signals/Sig$sigId.bin"
lateinit var buf: DoubleBuffer
try {
val rFile = RandomAccessFile(address, "rw")
val inChannel = rFile.channel
val buf_in = ByteBuffer.allocate(8 * 12 * 1002)
buf_in.clear()
inChannel.read(buf_in, 0)
buf_in.rewind()
buf = buf_in.asDoubleBuffer()
inChannel.close()
} catch (e: IOException) {
e.printStackTrace()
}
return generateData(buf)
}
private fun generateData(buf: DoubleBuffer): ArrayList<DoubleArray> {
val arrayList = ArrayList<DoubleArray>(12)
for (n in 0..11) {
val yb = DoubleArray(1002)
buf.get(yb, n * 1002, (n + 1) * 1002)
arrayList.add(yb)
}
buf.clear()
return arrayList
}
}