如何使用Python导出自定义dbus上的对象?

时间:2012-02-03 20:47:41

标签: python dbus

我想在自定义总线上提供dbus方法和信号(即不是SessionBus或SystemBus)。如果我从命令行启动dbus-daemon的测试副本,如dbus-daemon man page中所述,如下所示:

dbus-daemon --session --print-address

然后返回例如地址:

unix:abstract=/tmp/dbus-vthAiAw4am,guid=60da6b6ef244a0dbdb9710a800002218

我可以用d-feet的这个地址来“连接到其他总线”,那里什么都没有。现在,我想在该总线上声明一个名称并导出对象以使用Python提供dbus方法和信号。我已经尝试读取dbus.service.BusName后面的代码,我通常会在会话或系统总线中传递,但我只是迷路了。任何人都知道如何做到这一点(如果可能的话)?

1 个答案:

答案 0 :(得分:3)

查看d-feet的源代码当然比查看整个dbus-python lib更容易找到答案。在声明总线名称时,可以使用地址作为参数传入dbus.bus.BusConnection对象时使用问题中的地址,如下所示:

bus_name = dbus.service.BusName('my.testbus.test', 
    dbus.bus.BusConnection('unix:abstract=/tmp/dbus-vthAiAw4am'))

然后我可以在此总线上导出方法并发出信号。

相关问题