Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 嵌入式ARM设备上的BlueZ-4.101_Python_Linux_Bluetooth_Linux Kernel_Bluez - Fatal编程技术网

Python 嵌入式ARM设备上的BlueZ-4.101

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协议栈有一些问题。我使用的是
BlueZ-4.101
(没有升级到
BlueZ-5
)并且没有可用的Python

在花了一些时间研究BlueZ之后,以下是我的问题:

  • 在我的情况下需要蓝牙吗?就像在中一样,它只是一个处理用户空间和内核之间的Python
    dbus
    消息的守护进程,还是更多?我浏览了一下,只能找到大部分与dbus相关的调用
  • 如何确定
    /etc/bluetooth/main.conf
    DeviceID
    的值?我发现了这些,但它们是用于使用Bluez5的不同平台的
  • sdptool
    是否可以在不设置
    DeviceID
    值的情况下工作?我尝试了以下命令并每次接收超时(仅适用于我的本地设备):

  • 是否可以用
    libbluetooth
    替换所有python
    simple 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