Android: как получить метку времени, связанную с измеренной характеристикой службы GATT частоты сердечных сокращений BLE?

Я делаю, как сказано в руководстве, и все работает отлично отлично. Я могу обнаружить службу измерения пульса на сервере GATT, а затем получить все обновления из образцов характеристик пульса.

Однако есть ли характеристика для получения метки времени, относящаяся к каждой выборке частоты пульса? Получение System.currentMillis () всякий раз, когда я получаю образец, кажется мне слишком неточным. Я бы хотел что-то вроде этого

 if (UUID_HEART_RATE_TIMESTAMP.equals(characteristic.getUuid()))

РЕДАКТИРОВАТЬ: я имею в виду пример в строке

if (UUID_HEART_RATE_MEASUREMENT.equals(characteristic.getUuid())) {

где приложение может анализировать данные, полученные датчиками сердечного ритма. Есть ли способ проанализировать значение временной метки вместе с частотой сердечных сокращений? Результат, который мне нужен, - это что-то вроде пары значений, а не единственной частоты слышимости.

(отметка времени, частота пульса)


person user3290180    schedule 21.03.2018    source источник
comment
Можете ли вы добавить журнал перед проверкой условия, какие значения вы получаете   -  person Amjad Khan    schedule 21.03.2018
comment
Условие проверки придумано, потому что на данный момент я не знаю, какой UUID связан с меткой времени.   -  person user3290180    schedule 21.03.2018
comment
Я отредактировал вопрос, чтобы добавить больше деталей   -  person user3290180    schedule 21.03.2018


Ответы (1)


Получить точную метку времени, связанную с измерением частоты пульса BLE, невозможно, поскольку это не является частью Спецификация GATT службы измерения пульса BLE:

3.4 Требования к чувствительным ко времени данным

Характеристика измерения частоты пульса содержит данные, чувствительные ко времени, и считается временной характеристикой, поэтому применяются следующие требования:

Поскольку эта услуга не предоставляет метку времени для определения времени измерения (и возраста) данных, значение характеристики измерения частоты пульса не учитывается, если соединение не устанавливается или если уведомление не было успешно отправлено Клиенту (например, потеря связи).

Как указано в документации, вы можете предположить, что переданные измерения являются «свежими», и поэтому использование временной метки принимающего устройства по прибытии является хорошим приближением.

К сожалению, интервалы RR могут нуждаться в большей точности и содержатся в тех же измерениях без меток времени. Оценка метки времени отдельных интервалов RR может потребовать дополнительных ухищрений, поскольку несколько интервалов объединяются вместе для каждого измерения.

Если с момента последнего уведомления было измерено больше значений RR-Interval, чем уместилось в одной характеристике измерения частоты пульса, то оставшиеся значения RR-Interval должны быть включены в следующую доступную характеристику измерения частоты пульса.

Если во внутреннем буфере датчика сердечного ритма нет свободного места, он может отбросить самые старые значения RR-Interval.

Таким образом, вам, возможно, придется использовать интервал передачи, чтобы оценить, были ли отброшены измерения, что влияет на вашу способность устанавливать временные метки RR-интервалов.

В типичных приложениях характеристика измерения частоты пульса отправляется примерно 1 раз в секунду и включает поле значения измерения частоты пульса и, если поддерживается, поле RR-Interval.

person Steven Jeuris    schedule 30.10.2020