2012-02-03 7 views
3

カスタムバス(つまり、SessionBusやSystemBusではなく)にdbusメソッドとシグナルを提供したいと思います。そのように、dbus-daemon man pageで説明したように、私は、コマンドラインからのdbus-デーモンのテストコピーを開始する場合:Pythonを使用してカスタムdbus上のオブジェクトをエクスポートする方法は?

 
dbus-daemon --session --print-address 

、これは例えばアドレスを返します。

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

私はこれを使用することができますd-feetのアドレスを「他のバスに接続」にしてください。そこには何もありません。さて、私はそのバス上に名前をつけてオブジェクトをエクスポートし、Pythonを使ってdbusメソッドとシグナルを提供したいと思います。私はdbus.service.BusNameのコードを読んでみましたが、通常はセッションまたはシステムバスで渡しますが、私は単に迷ってしまいます。誰でもこれを行う方法を知っています(可能であれば)。

答えて

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')) 

私は、その後のエクスポート方法ことができ、このバス上の信号を発します。

関連する問題