Linux BlueZ dbus通信

时间:2015-07-13 10:11:57

标签: linux dbus bluez gatt

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

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

“test-discovery”,然后是“test-device connect”。

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

“/组织/的bluez / hci0 / dev_btaddr”     接口     org.bluez.Device1     org.freedesktop / DBus.Introspectable     org.freedesktop.DBus.Properties

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

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

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

但是,从DBus PoV只有Device1接口可用。

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

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

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

有什么建议吗?

1 个答案:

答案 0 :(得分:3)

您必须激活蓝牙套装的实验性功能才能启用GATT服务。

在Debian系统上,您可以通过添加

来实现这一目标
  

NOPLUGIN_OPTION="-E"

进入/etc/default/bluetooth文件。

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