我使用USB软件狗在我的Raspberry Pi上用BlueZ编程。我需要能够以编程方式连接到Arduino BT,问题是Arduino的蓝牙模块仍然使用传统配对,所以每当我尝试打开设备的插座时,我都会得到一个Permission Denied。如何发送个人识别码以通过BlueZ完成配对请求?
发布于 2015-10-06 06:15:28
您可能希望签出最新Bluez源代码的client文件夹中的main.c文件。这是bluetoothctl工具的源代码。也运行它。源代码准确地显示了它们是如何使用GDBus的,包括代理、代理、调用方法(如API (/doc folder)中描述的方法等等)。它是用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- tool是一个非常有价值的工具,可以用来检查和了解系统上的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,因此浪费时间尝试适应您的代码可能不是明智之举,而只是从中选择您需要的内容。
https://stackoverflow.com/questions/29767053
复制相似问题