2
私はデーモンを作成しました。デーモンはdbusインターフェースを提供し、そのメソッドの1つに(uu)
というシグニチャーがあります。これは2つのuint32
フィールドの構造体です。structをdbusメソッドに渡すツールはありますか?
構造体を渡すために、メソッドを呼び出すためのすぐに使えるツールはありますか? dbus-send
とd-feet
は役に立ちません。
任意のポインタ?
私はデーモンを作成しました。デーモンはdbusインターフェースを提供し、そのメソッドの1つに(uu)
というシグニチャーがあります。これは2つのuint32
フィールドの構造体です。structをdbusメソッドに渡すツールはありますか?
構造体を渡すために、メソッドを呼び出すためのすぐに使えるツールはありますか? dbus-send
とd-feet
は役に立ちません。
任意のポインタ?
gdbus
トリックを行う必要があります。次のようなものをお試しください:
gdbus call --session --dest com.example.MyTest --object-path /com/example/MyTest --method com.example.MyTest.Test "(1,2)"
...あなたの状況に合わせて正しいパラメータを入力してください。
$ dpkg -L libglib2.0-bin | grep gdbus
/usr/bin/gdbus
/usr/share/bash-completion/completions/gdbus
/usr/share/man/man1/gdbus.1.gz
:私は
libglib2.0-bin
パッケージで提供され
gdbus
によUbuntuの15.10マシンで
import gobject
import dbus
import dbus.service
from dbus.mainloop.glib import DBusGMainLoop
DBusGMainLoop(set_as_default=True)
OPATH = "/com/example/MyTest"
IFACE = "com.example.MyTest"
BUS_NAME = "com.example.MyTest"
class Example(dbus.service.Object):
def __init__(self):
bus = dbus.SessionBus()
bus.request_name(BUS_NAME)
bus_name = dbus.service.BusName(BUS_NAME, bus=bus)
dbus.service.Object.__init__(self, bus_name, OPATH)
@dbus.service.method(dbus_interface=IFACE,
in_signature="(uu)", out_signature="")
def Test(self, payload):
print "Got this from client:", payload
if __name__ == "__main__":
service = Example()
loop = gobject.MainLoop()
loop.run()
:
は、私はこのようなPythonのD-バスサービスを使用して、上記の呼び出しをテストしてみました
これが役に立ちます。
はい。これは機能します。同様に 'd-feet'も(それが判明したように)行います。 –