我正在使用 USB 蓝牙适配器在 Raspberry Pi 上使用 BlueZ 进行编程。
我需要能够以编程方式连接到 Arduino BT,问题是 Arduino 的蓝牙模块仍在使用传统配对,因此每当我尝试打开设备的套接字时,我都会收到Permission Denied
。
如何发送 PIN 码以通过 BlueZ 完成配对请求?
您可能想查看main.c
文件在client http://git.kernel.org/cgit/bluetooth/bluez.git/tree/client最新 Bluez 源代码的文件夹。这是bluetoothctl 工具的源代码。也运行一下吧源代码准确地展示了他们如何使用GDBus,包括代理、代理、调用方法,如API中描述的(/doc文件夹 http://git.kernel.org/cgit/bluetooth/bluez.git/tree/doc)等等。它采用 C 语言并使用高级 API。
我建议您单步执行代码,因为我花了 2 周时间无休止地尝试理解 C 中的 Bluez,而且事实上没有文档,但当我阅读 main.c 文件时,我一天之内就准备好了。阅读正确的 Dbus API 文档,更重要的是阅读概念。一些对我有帮助的文件:
gdbus工具:https://developer.gnome.org/gio/stable/gdbus.html https://developer.gnome.org/gio/stable/gdbus.html
这些包含对 gdbus 和对象中的所有调用main.c
归档并很好地解释它们。https://developer.gnome.org/gio/stable/gdbus-convenience.html https://developer.gnome.org/gio/stable/gdbus-convenience.html
D-Feet,一个用于检查和了解系统上 Dbus 的宝贵工具。尝试查看 /bluez 总线。
or
sudo apt-get install d-feet
教程不多,但值得阅读以了解一些概念,因为 bluetoothctl 工具适合他们在这里所说的内容。http://dbus.freedesktop.org/doc/dbus-tutorial.html http://dbus.freedesktop.org/doc/dbus-tutorial.html
不过,bluetoothctl 创建了一个交互式 shell,因此浪费时间尝试适应您的代码可能并不明智,而只需从中选择您需要的内容即可。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)