GATT API bluez - MI乐队2

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GATT API bluez - MI乐队2相关的知识,希望对你有一定的参考价值。

我已经尝试了几周连接到MI Band 2手表,并阅读了心率特征值,但没有运气。

当我们谈论关贸总协定时,我有点不确定程序是什么。对于API https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/doc/gatt-api.txt,我正在考虑使用org.bluez.GattCharacteristic1接口来读取值。

我可以连接并配对手表,并获取所有UUID(服务,描述符和特征)。心率测量具有以下信息:

Characteristic
    /org/bluez/hci0/dev_CD_1D_69_25_19_5E/service0027/char0028
    00002a37-0000-1000-8000-00805f9b34fb

我曾尝试使用bluetoothctl程序读取值,但获得“不允许”的反馈。

使用GATT API读取特征值的过程是什么。

答案

也许你可以试试shell程序gatttool或使用像nRF Connect这样的app来阅读。

另一答案

您的设备正在使用采用的心率配置文件,看到0x2A37是心率测量所采用的特征UUID。我建议您使用BlueZ命令行工具,如下所示: -

1.使用以下方法找到心率特征的句柄: -

gatttool -b 00:11:22:33:44:55 --characteristics

将00:11:22:33:44:55替换为您设备的蓝牙地址。你基本上想要找到包含2a37的uuid并记下它对应的'char值句柄'。

2.使用以下方法找到该句柄的描述符: -

gatttool -b 00:11:22:33:44:55 char-desc --handle=0xXX

其中XX是您之前记下的char值句柄。您应该能够在该句柄上看到几个特征描述符。记下使用uuid 2902的char句柄。

3-使用以下方法在该句柄上写'0100'启用通知: -

gatttool -b 00:11:22:33:44:55 --sec-level=high --char-write --handle=0xYYYY --value=0100

其中0xYYYY是您在步骤2中记下的CCCD描述符的句柄。一旦发生这种情况,您应该开始获取指示数据,您可以使用找到的here温度数据结构来解密。

您可以在以下链接中找到有关使用BlueZ命令的更多信息: -

我希望这有帮助。

以上是关于GATT API bluez - MI乐队2的主要内容,如果未能解决你的问题,请参考以下文章

BlueZ DBUS API - GATT 接口对 BLE 设备不可用

BlueZ示例gatt服务器

GATT 服务器不适用于 Bluez 5.32、5.37

BlueZ BLE GATT 写入请求 (0x12) 而不是 (0x16)

Bluez BLE 连接监控使用 DBUS-Python

通过 Bluez DBus API 的设备连接/断开通知