GATT API bluez - MI乐队2

问题描述 投票:0回答: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读取特征值的过程是什么。

bluetooth-lowenergy bluez gatt
2个回答
0
投票

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


0
投票

您的设备正在使用采用的心率配置文件,看到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命令的更多信息: -

我希望这有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.