Qt Bluethooth Low Energy — Проблемы с использованием нестандартного GATT

У меня есть устройство, не зная используемый профиль Гатта, я только знаю, что это что-то «домашнее», а не что-то известное в базе данных Bluetooth.

В Linux команда

gatttool -i hci0  -b xx:xx:xx:xx:xx:xx  --char-read --handle=42

возвращает значение, как и ожидалось (с целевым устройством mac в xx: xx: xx: xx: xx: xx).

В Qt я использую Heartbeat-Example из http://doc-snapshot.qt-project.org/qt5-5.4/qtbluetooth-heartlistener-example.html
там они соединяются с помощью gattprofile, QBluetoothUuid :: HeartRate и QBluetoothUuid :: HeartRateMeasurement

Я не смог изменить пример кода таким образом, чтобы прочитать дескриптор 42.
Можете ли вы объяснить, где я должен указать, какие значения он подключает к «стандартному профилю», как это делает команда gattool? Если я использую gatttool в интерактивном режиме и спрашиваю основной, он возвращает два uuids, но использование их вместо QBluetoothUuid :: HeartRate не сработало.

0

Решение

Похоже, что API Qt Bluetooth Low Energy предоставляет средства для получения доступа к характеристикам на основе их значения дескриптора. (Как и Windows 8 BLE API.) Вы должны использовать UUID. Даже если это самодельное устройство, все протоколы GATT требуют, чтобы все сервисы и характеристики имели UUID. Демонстрационное приложение lowenergyscanner может обнаруживать и отображать как UUID, так и дескрипторы всех служб и характеристик устройства. Я использовал lowenergyscanner для работы с устройствами BLE, которые разрабатываю.

0

Другие решения


По вопросам рекламы [email protected]