BLE UART Циклы команды / ответа / подтверждения - PullRequest
0 голосов
/ 25 февраля 2019

Я конвертирую очень сложный цикл записи / чтения / записи, написанный на собственном стеке 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 ().Если нет, то при длительном прокачке чтения в буфер, который можно обрабатывать по одному байту за раз, и удалении только тех байтов, которые составляют действительный ответ, и чтении вместо этого.

Мысли?Это похоже на обычную схему использования, но я не смог найти ничего похожего на образцы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...