python3.4 と pyqt5.4 を使用して Java で記述されたデーモンに対して dbus 呼び出しを実行しようとしています。呼び出しているメソッドのデーモンの署名は次のとおりです。asa{sv}
私がしている電話は
fpiudaemon = QDBusInterface("it.libersoft.FirmapiuDInterface", "/it/libersoft/FirmapiuD", interface='it.libersoft.FirmapiuDInterface' , parent=None)
result = fpiudaemon.call('sign',filepath,options)
どこ
print (filepath) -> ['/home/svalo/programmi/devel/pythondeps']
print (options) -> {'pin': '12345678', 'outdir': '/home/svalo/programmi/devel/firmapiu-gui'}
print(type(filepath)) -> <class 'list'>
print(type(options)) -> <class 'dict'>
ただし、dbusを監視すると、得られるものは
method call sender=:1.242 -> dest=it.libersoft.FirmapiuDInterface serial=67 path=/it/libersoft/FirmapiuD; インターフェイス = it.libersoft.FirmapiuDInterface; メンバー=サイン 配列 [ バリアント文字列 "/home/svalo/programmi/devel/firmapiu-gui/pythondeps" ] 配列 [ 辞書エントリ( 文字列「outdir」 バリアント文字列 "/home/svalo/programmi/devel/firmapiu-gui" ) 辞書エントリ( ひも「ピン」 バリアント文字列「12345678」 ) ]
私が手に入れたいのは
method call sender=:1.242 -> dest=it.libersoft.FirmapiuDInterface serial=67 path=/it/libersoft/FirmapiuD; インターフェイス = it.libersoft.FirmapiuDInterface; メンバー=サイン 配列 [ 文字列 "/home/svalo/programmi/devel/libersoft/firmapiu-gui/pythondeps" ] 配列 [ 辞書エントリ( 文字列「outdir」 バリアント文字列 "/home/svalo/programmi/devel/libersoft/firmapiu-gui" ) 辞書エントリ( ひも「ピン」 バリアント文字列「12345678」 ) ]
つまり、Python が文字列の配列を送信することを期待しており、代わりに文字列を含むバリアントの配列を送信しています。
デーモン devel は Java で単純なクライアントを作成し、署名を尊重して動作します
ここで何が欠けていますか?