当前位置:  开发笔记 > 编程语言 > 正文

BlueZ D-Bus C或C++示例

如何解决《BlueZD-BusC或C++示例》经验,为你挑选了1个好方法。

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

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

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

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

(注意:已经用Google搜索了)



1> Zimano..:

您可能想要查看最新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,因此浪费时间尝试适合您的代码可能并不明智,只需从中选择您需要的内容即可.


这只是找到设备路径的问题,然后对服务节点进行内省(例如UART的`service001f`),然后将其添加到路径上并使用`g_dbus_object_manager_get_object(管理器,路径)在对象管理器上搜索后者)`.当然,Bluez的客户端也可以更容易找到服务的路径:`bluetoothctl`.
推荐阅读
有风吹过best
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有