Я хотел бы буферизовать изображение из уведомления BLE.Я получаю массив длиной 20 байт в каждом уведомлении.(Пауза между уведомлениями составляет 15-20 мс.) Они идут последовательно, и я могу распознать первый и последний пакет изображения.Изображения приходят один за другим.
Моя проблема в том, что я не знаю, как реализовать это в RxJava2.У меня очень плохое решение, как вы видите ниже.Это работает, но иногда отправка изображений прерывается, поэтому я не получаю последний пакет, а новое изображение смешивается со старым.
Я бы хотел буферизовать в зависимости от значения байтового массива из первого пакетадо последней посылки.
Observable<byte[]> obs = notificationObservable()
.map(notification -> {
return notification.getBytes();
});
disposables.add(notificationObservable()
.map(notification -> {
return notification.getBytes();
})
.buffer(obs.delay(10, TimeUnit.MILLISECONDS)
.filter(bytes -> {
return bytes[2] < 0; //last package
})
)
.map(bytes -> new MyImage(bytes))
.subscribe(
imageSubject::onNext,
imageSubject::onError,
imageSubject::onComplete));