在python和dbus中使用蓝牙

问题描述 投票:1回答:1

正如标题所示。

我很难为此找到一个不错的python dbus模块。途中有很多烟,镜子和陷阱。

首先,让我们看看我做了什么。

[第一个诱杀装置是dbus-python。根本无法正常工作。甚至例子都坏了。

它似乎已过时,并由pydbus代替

(两者的版权所有者/作者似乎相同)

然后让我们看看pydbus。同样,这些示例也不是很好:

from pydbus import SystemBus
bus = SystemBus()
dev = bus.get('.NetworkManager', 'Devices/0')

给予

KeyError: 'object does not export any interfaces; you might need to pass object path as the 2nd argument for get()'

但是,如果我们尝试完全与该错误消息相反的事情。。

dev = bus.get('.NetworkManager')

我们通过许多方法获得了一个不错的对象:

dir(dev)
['ActivateConnection',
 'ActivatingConnection',
 'ActiveConnections',
 'AddAndActivateConnection',
 'AllDevices',
 'Capabilities',
 'CheckConnectivity',
 'CheckPermissions',
 'CheckpointCreate',
 'CheckpointDestroy',
 'CheckpointRollback',
 'Connectivity',
 ....
 ]

到目前为止很好。让我们来看看是否可以使用该蓝牙技术:

dev = bus.get('org.bluez')
dir(dev)
['Introspect',
 'RegisterAgent',
 'RegisterProfile',
 'RequestDefaultAgent',
 'UnregisterAgent',
 'UnregisterProfile'
 ]

因此,还是带有一些方法的不错的对象。但是,大多数事情都丢失了。让我们以这个为例:

https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/doc/device-api.txt

无法通过pydbus获得提到的“连接”方法。。

[请不要建议我使用subprocess.Popen和bluetoothctl-那真是太la脚了。此外,我想学习dbus。

问题:

  • 如何访问所有蓝牙方法?
  • 将使用什么正确的dbus python绑定(实际有效)?
  • 任何工作示例都将受到高度赞赏。
  • 我想使用python实现bt配对]]
  • 一些参考:

当然有python bluez库。但这是GPL许可的。而且无法将设备与bluez配对,对吗?

正如标题所示。我很难为此找到一个不错的python dbus模块。途中有很多烟,镜子和陷阱。首先,让我们看看我做了什么。第一个...

python bluetooth dbus
1个回答
0
投票

EDIT:

© www.soinside.com 2019 - 2024. All rights reserved.