BlueZ D-Bus C或C ++示例

时间:2015-12-02 13:23:13

标签: c++ c dbus bluez

我正在尝试编写一个搜索附近蓝牙设备并与之通信的应用程序。我的应用程序将用C ++编写,并且打算在Linux下运行。

4年前,我使用了BlueZ。但是现在,正如我所看到的,API已经发生了很大变化,现在它正在使用D-Bus。我对D-Bus没有经验。我查看了一些与客户端/服务器模型相关的教程。现在,我可以使用D-Bus。

但我找不到任何解释如何将BlueZ与D-Bus一起使用的例子。我需要一些使用BlueZ和D-Bus的指导。

在C或C ++中是否有通过D-Bus使用BlueZ的教程或示例?

(注意:已经用谷歌搜索过了)

1 个答案:

答案 0 :(得分:17)

您可能需要查看最新Bluez源代码的main.c文件夹中的client文件。它是bluetoothctl工具的源代码。也跑吧。源代码确切地显示了他们如何使用GDBus,包括代理,代理,API文档(/ doc文件夹)中描述的调用方法等等。它在C中并使用高级API。

我建议您逐步完成代码,因为我花了两周时间无休止地尝试了解C中的Bluez以及没有文档的事实,但是当我读到main.c文件时,我已经准备好了一天。阅读适当的DBus API文档,更重要的是概念。一些帮助我的文件:

gdbus工具:https://developer.gnome.org/gio/stable/gdbus.html

这些包含对main.c文件中gdbus和对象的所有调用,并对它们进行了很好的解释。 https://developer.gnome.org/gio/stable/gdbus-convenience.html

D-Feet,一种在您的系统上检查和了解Dbus的宝贵工具。尝试检查/ bluez总线。 https://wiki.gnome.org/action/show/Apps/DFeet?action=show&redirect=DFeet

sudo apt-get install d-feet

没有太多的教程,但值得阅读以理解一些概念,因为bluetoothctl工具适合他们在这里想说的内容。 http://dbus.freedesktop.org/doc/dbus-tutorial.html

bluetoothctl创建了一个交互式shell,因此浪费时间尝试适合您的代码可能不明智,只需从中选择您需要的内容。