如何使用Python在自定义数据库总线上导出对象



我想在自定义总线(即不是SessionBus或SystemBus)上提供dbus方法和信号。如果我从命令行启动dbus守护进程的测试副本,如dbus守护程序手册页中所述,如下所示:

dbus守护进程--会话--打印地址

然后返回例如地址:

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

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

查看d-feets的源代码当然比浏览整个dbus-python-lib更容易找到答案。在声明总线名称时,可以使用类似问题中的地址,方法是传入一个以地址为参数的dbus.bus.BusConnection对象,如下所示:
bus_name=dbus.service.BusName('my.testbus.test',dbus.bus.BusConnection('unix:abstract=/tmp/dbus-vthAiAw4am')

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

最新更新