2017-01-31 1 views
0

Im разрабатывает приложение для Android, чтобы читать температуру от термометра здоровья с Bluetooth Low Energy. Возможность подключения и анализа характеристик измерения температуры (0x2A1C) и получения значения температуры и метки времени.Android BLE - напишите временную метку на термометре здоровья

Теперь мое требование заключается в том, что временная метка на устройстве - это старое значение, игнорирующее метку времени чтения и записи. При следующем чтении метка времени должна соответствовать близкому значению.

На какой характеристике я могу написать это значение метки времени?

После успешного открытия, сервер ГАТТ дает 6 услуг (упоминая ниже только важные характеристики)

1) Generic Access (UUID: 0x1800)
характеристики: а) Имя устройства (UUID: 0x2A00) - свойства: READ, WRITE

2) Общий атрибут (UUID: 0x1801)
характеристики: а) служба Измененный (UUID: 0x2A05) - свойства: INDICATE
Дескриптор: Клиент характерной конфигурации (UUID: 0x2902) - свойства: INDICATE

3) Здоровье термометр (UUID: 1809)
характеристики: а) Измерение температуры (UUID: 0x2A1C) - свойства: INDICATE
Дескриптор: Клиент характерной конфигурации (UUID: 0x2902)

4) Батарея служба

информация

6) Кнопка Service Nordic LED 5) устройство (UUID: 00001523-1212-efde-1523-785feabcd123)
Characteri stics: a) Кнопка (UUID: 00001524-1212-efde-1523-785feabcd123) - properties: INDICATE, NOTIFY, WRITE

Может ли кто-нибудь помочь мне, по какой характеристике написать?
Если да, то как? Есть ли другой путь?

ответ

0

У меня есть решение. Напишите на последний признак 00001524-1212-efde-1523-785feabcd123

На характерном набореWriteType WRITE_TYPE_DEFAULT затем на всех его дескрипторах ENABLE_INDICATION_VALUE.

Вы получите результат в обратном вызове onCharacteristicChanged.

Создание commandlist из массива байтов размера 8.

Включить временную метку в этом наряду с другими командами. Установите это значение на характеристику и напишите на сервер GATT.

+0

Это умное решение. Однако мне интересно, почему термометр здоровья не имеет времени на обслуживание (например, Current Time Service), так что вместо этого нужно манипулировать службой кнопок. – Nebr

+0

@Nebr Это могло быть проще для операций чтения/записи, если такая служба включена. Может быть, ответ VERTICON в этом сообщении оправдывает, почему он не включен. Http://stackoverflow.com/a/38745382/7494831 – AvengerX

+0

Я еще не знал, что о CTS, но хорошо, писать время через CTS действительно было бы неправильное использование этой услуги.(Тем не менее, я все еще думаю, что какое-то время сервис должен был быть включен в термометр, если он использует отметки времени.) – Nebr

Смежные вопросы