一尘不染

低功耗蓝牙:在Linux中监听通知/指示

linux

我正在尝试通过Linux机器与BLE模块进行通信(该模块正在运行心率配置文件)。到目前为止,除了监听通知和指示(例如,监听心率测量通知)之外,我已经能够做所有需要的事情。我正在使用内核版本3.5和bluez-5.3。

到目前为止已成功使用的命令:

hcitool lescan
hcitool lecc
gatttool -b <Mac Address> --primary
gatttool -b <MAC Address> --characteristics
gatttool -b <MAC Address> --char-read
gatttool -b <MAC Address> --char-desc
gatttool -b <MAC Address> --interactive

失败的命令:

gatttool -b <MAC Address> --listen

任何帮助是极大的赞赏。


阅读 418

收藏
2020-06-02

共1个答案

一尘不染

尝试这个…

gatttool -b <MAC Address> --interactive像以前一样运行。您将得到提示,然后键入connect。您应该CON在提示符中看到,表明您已连接到设备。然后输入char- read-uuid 2902。您应该获得设备上所有CCC(客户端特征配置)属性的列表。
您可以尝试将它们全部设置为0100以获取通知,将0200用于指示,将两者都设置为0300,或将0000全部关闭。
键入help以查看所有命令及其参数。

编辑:

使用--listen参数需要您将其与其他命令结合使用以打开通知和/或指示。因此,这是在Bluez 4.101中工作的示例:

gatttool -b <MAC Address> --char-write-req --handle=0x0031 --value=0100 --listen

显然,您需要将句柄更改为要为其打开通知的CCC的句柄。但是,我仍然发现仅使用交互模式会更容易。

2020-06-02