Linux BlueZ dbus 通信

标签 linux dbus bluez gatt

我使用 BlueZ 5.30 和内核 3.13.0-32,我需要通过 DBus 在我的应用程序中实现读/写特征功能。

我正在使用 BlueZ 测试脚本来建立连接:

“测试发现”,然后是“测试设备连接”。

问题是我没有在 DBus (org.bluez) 中看到任何服务。使用 d-feet 应用程序我只能看到:

“/org/bluez/hci0/dev_btaddr” 接口(interface) org.bluez.Device1 org.freedesktop/DBus.Introspectable org.freedesktop.DBus.Properties

在“/var/log/syslog”中我可以看到很多:

“bluetoothd[715]:无法使用句柄 0x0045 为设备注册 GATT 服务...”

使用 gatttool 我能够读/写特征、初选等。在 hcidump 下我看到所有特征都被正确读取。

但是,从 DBus PoV 来看,只有 Device1 接口(interface)可用。

这是我的 BlueZ 配置: “ ./configure --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc --localstatedir=/var --enable-library --disable-systemd --enable-experimental --enable-维护者模式--启用调试 "

我在看这里:“http://i-miss-erin.blogspot.com/2010/12/gatt-related-dbus-api.html ”,但正如我提到的,这里没有显示任何界面或服务。

为了测试,我使用接近和隐藏设备。 在隐藏的情况下,正确连接后我可以在终端窗口(隐藏键盘设备)中看到字符,所以我认为它工作正常。

有什么建议吗?

最佳答案

您必须激活蓝牙设备的实验功能才能启用 GATT 服务。

在 Debian 系统上,您可以通过放置

NOPLUGIN_OPTION="-E"

进入 /etc/default/bluetooth 文件。

重启后,为了让我的设备 (Logitech MX Master) 在我的 Debian Stretch 上正常工作,我还必须使用 bluetoothctl 命令手动配对并信任它。我使用 Gnome 的图形蓝牙工具没有成功。

关于Linux BlueZ dbus 通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31380594/

相关文章:

linux - 在 Linux 上合并两个文件,只保留两个文件中出现的行

linux - 检查 Aerospike 集群是否空闲的条件

c++ - FlannBasedMatcher 匹配器构建

c - 基于DBusGProxy连接dbus信号失败

linux - 无需 GUI 的蓝牙配对

linux - 有什么不同?须藤重启

c++ - Windows Qt 二进制安装程序是否支持开箱即用的 DBus?

python - banshee:我如何通过 DBus 为 Banshee 上的特定轨道设置评级?

bluetooth - 使用C代码使蓝牙可发现

c - BlueZ GATT C 语言编程