У меня есть датчик ЧСС, который периодически выдает значение (где-то между 500-3000 милли). Когда датчик ЧСС издает недетерминированный c. С RX Java я хотел бы, чтобы константа выдавала значение частоты пульса «последний раз видели», а константа выдает значение в течение 10 секунд, пока она не пометит его как слишком устаревшее и вместо этого отправит NULL. NULL означает, что датчик сердечного ритма больше не выдает показания датчика.
У меня есть следующий (kotlin) код:
val heartRateObservable: Observable<BLEDataValue> = observable
.flatMap { it.setupNotification(characteristic.uniqueIdentifier) }
.flatMap { it }
.map { BTDataPacket(characteristic.uniqueIdentifier, BleParseable(it)).btValue() }.onErrorReturn { BLEDataValueHeartRate(null) }
return Observable.combineLatest(Observable.interval(1000, TimeUnit.MILLISECONDS), heartRateObservable, BiFunction { _, t2 -> t2 })
Вопрос: Можно ли ввести способ воспроизвести последнее наблюдаемое значение частоты пульса до тех пор, пока последнее значение не станет устаревшим (то есть после отсутствия показаний пульса в течение 10 секунд) .. когда отображается значение пульса, оно воспроизводится до тех пор, пока не появится новое значение частоты пульса ИЛИ истекло время ожидания в 10 секунд, поскольку последнее значение слишком устарело?