2012-02-03 63 views
3

我想在自定義總線上(即不是SessionBus或SystemBus)提供dbus方法和信號。如果我開始從命令行DBUS守護進程的測試複印,如在dbus-daemon man page描述,像這樣:如何使用Python導出自定義dbus上的對象?

 
dbus-daemon --session --print-address 

然後這個返回例如地址:

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

我可以用這以d-英尺地址爲「連接到其他總線」,並且沒有任何東西。現在,我想在該總線上聲明一個名稱並導出對象,以使用Python提供dbus方法和信號。我曾嘗試閱讀dbus.service.BusName後面的代碼,我通常會在會話或系統總線中傳遞代碼,但我只是迷路了。任何人都知道如何做到這一點(如果可能的話)?

回答

3

看着爲d英尺的源代碼當然是去尋找答案不是瀏覽整個DBUS的Python的lib一個更簡單的方法。像在這個問題的地址可以聲稱一個總線名稱時,可以使用通過在dbus.bus.BusConnection對象傳遞與所述地址作爲參數,如下所示:

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

我可導出此方法和發射信號這個總線上。

相關問題