Я конвертирую очень сложный цикл записи / чтения / записи, написанный на собственном стеке BLE, и мне интересно, возможен ли следующий шаблон для обработки в RxAndroidBLE (код Kotlin)
fun sendCommandList(connection: RxBleConnection, commands: Array<String>) {
Observable.fromArray(commands)
.flatMapIterable { it.asIterable() } // convert to individual commands
.map { it.toByteArray() }
.map {
connection.writeCharacteristic(TX_CHAR_UUID, it)
.flatMap { bytes -> connection.readCharacteristic((RX_CHAR_UUID)) }
.flatMap { bytes -> val ackNackBytes = processResponse(bytes); connection.writeCharacteristic(TX_CHAR_UUID, ackNackBytes) }
}
.subscribeBy( onError = { }, onComplete = { }, onNext = { })
}
IЯ просто пытаюсь проработать код до того, как получу доступ к оборудованию, поэтому не могу проверить это в данный момент, и мне интересно, возможно ли это.Я больше беспокоюсь о части чтения, если полный ответ может быть не в пределах readCharacteristic ().Если нет, то при длительном прокачке чтения в буфер, который можно обрабатывать по одному байту за раз, и удалении только тех байтов, которые составляют действительный ответ, и чтении вместо этого.
Мысли?Это похоже на обычную схему использования, но я не смог найти ничего похожего на образцы.