我正试图通过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

非常感谢您的帮助.

推荐答案

试试这个...

像以前一样跑gatttool -b <MAC Address> --interactive.您将得到提示,然后键入connect.您应该会在提示中看到CON,指示您已连接到设备.然后输入char-read-uuid 2902.您应该获得设备上所有CCC(客户端特征配置)属性的列表.You can try setting them all to 0100 to get notifications, 0200 for indications, 0300 for both, or 0000 for everything off.键入help以查看所有命令及其参数.

编辑:

使用--listen参数需要将其与其他命令耦合,以打开通知和/或指示.下面是一个适用于Bluez 4.101的示例:

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

显然,您需要将句柄更改为要打开通知的CCC的句柄.然而,我仍然觉得使用交互模式更容易.

Linux相关问答推荐

BASH-SCRIPT-在特定行合并两个文件

为什么硬编码的阿拉伯字母与Unicode代码点不具有相同的值

列出Linux上特定目录和子目录名称的bash命令

ShellScript,有更好的方法来查找具有特定名称和日期的文件吗?

我需要从 Ubuntu 中删除 .txt 文件中以白色间距分隔的行的白色间距

如何在 Linux 上打印带有屏蔽值的环境名称?

在不编写任何代码的情况下,是否有一个命令可以检索当前 shell 的亲和力中的可用内核数?

CMake:处理静态库和共享库的正确方法

使用 sed 从文本文件中删除特定字符串

如何指定链接时使用的库版本?

使用 gdb 将地址转换为行

Bash 变量:是否区分大小写?

根据日期范围过滤日志(log)文件条目

Docker Bash 提示不显示 colored颜色 输出

将标准输出作为命令行工具的文件名传递?

根据文件名模式和文件内容列出文件名?

在 Ubuntu 中学习 OpenGL

Linux命令将一个文件复制到多个文件

`os.symlink` 与 `ln -s`

readelf vs. objdump:为什么都需要