Bluez编程

Bluez Programming

我正在 Raspberry Pi 上使用 USB 蓝牙加密狗在 BlueZ 中编程。 我需要能够以编程方式连接到 Arduino BT,问题是 Arduino 的蓝牙模块仍在使用传统配对,所以每当我尝试打开设备的套接字时,我都会得到 Permission Denied。 如何通过 BlueZ 发送 PIN 以完成配对请求?

您可能想查看 client folder of the most recent Bluez source code. It's the source code for the bluetoothctl tool. Run it too. The source code shows exactly how they use GDBus, including proxies, agents, calling methods like described in the API (/doc folder 中的 main.c 文件等等。它在 C 中并使用高级 API。

我建议您逐步完成代码,因为我花了 2 周的时间不断尝试理解 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,因此浪费时间尝试适应您的代码可能并不明智,但只需从中选择您需要的即可。