Python 嵌入式ARM设备上的BlueZ-4.101
我正在嵌入式设备上实现蓝牙,对BlueZ协议栈有一些问题。我使用的是Python 嵌入式ARM设备上的BlueZ-4.101,python,linux,bluetooth,linux-kernel,bluez,Python,Linux,Bluetooth,Linux Kernel,Bluez,我正在嵌入式设备上实现蓝牙,对BlueZ协议栈有一些问题。我使用的是BlueZ-4.101(没有升级到BlueZ-5)并且没有可用的Python 在花了一些时间研究BlueZ之后,以下是我的问题: 在我的情况下需要蓝牙吗?就像在中一样,它只是一个处理用户空间和内核之间的Pythondbus消息的守护进程,还是更多?我浏览了一下,只能找到大部分与dbus相关的调用 如何确定/etc/bluetooth/main.conf中DeviceID的值?我发现了这些,但它们是用于使用Bluez5的不同平台的
BlueZ-4.101
(没有升级到BlueZ-5
)并且没有可用的Python
在花了一些时间研究BlueZ之后,以下是我的问题:
dbus
消息的守护进程,还是更多?我浏览了一下,只能找到大部分与dbus相关的调用/etc/bluetooth/main.conf
中DeviceID
的值?我发现了这些,但它们是用于使用Bluez5的不同平台的sdptool
是否可以在不设置DeviceID
值的情况下工作?我尝试了以下命令并每次接收超时(仅适用于我的本地设备):
libbluetooth
替换所有pythonsimple agent
脚本,还是需要尝试将它们移植到受支持的脚本语言如果需要更多日志,我可以尝试获取它们。Bluetooth实现bluez DBUS API。从技术上讲,如果您能够使用低级别的HCI调用重新实现所需的功能,则可以绕过它。但是dbusapi是唯一官方支持的api。
libbluetooth
中的不是。因此,您需要分析您的“情况”,以了解libbluetooth是否确实提供了您所需要的一切。就个人而言,我认为如果你在做生产工作,这是一条危险的道路——无论是在所需的时间/精力上,还是在无法实现所需功能的可能性上,这都是危险的。另一方面,bluez4已不再受支持。所以我想DBUSAPI和libbluetooth之间的“官方支持”考虑因素并没有太大不同。无论哪种方式,如果它不能满足您的要求,那么您基本上只能依靠自己。所谓“官方支持”,您是指通过蓝牙SIG认证,还是指由BlueZ社区维护?我已经在使用BlueZ4了,BlueZ开发人员现在认为它是不推荐使用的,但是应该保存一些测试,因为它已经通过了Bluetooth认证。就我的需求而言,我需要配对支持(duh)和一些音频配置文件。我的意思是由bluez开发人员提供官方支持。如果您需要配对和配置文件,那么我认为您需要dbusapi。您可能会得出不同的结论,但当我查看类似的路径时,我得出结论,如果没有主要的开发和测试,使用libbluetooth进行任何比基本rfcomm/l2cap套接字连接更复杂的连接都是不可行的。关于认证,我不认为说你正在使用bluez会真的减少你的认证时间(一直是这样),文档不是bluez的优点。了解我发现的最好的方法是阅读各种客户机程序的源代码,看看它们如何与dbus交互。FWIW,我为另一个答案写了一个简单的例子,它进行基本扫描,然后收集给定设备的RSSI值。这可能会让你开始探索之旅:
# sdptool browse local
Browsing FF:FF:FF:00:00:00 ...
Service Search failed: Connection timed out