問題タブ [qdbus]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
609 参照

bash - 起動後にpidをqdbusサービス番号にマッピングする

プログラム (konsole) を起動して dbus メッセージを送信する bash スクリプトを作成しようとしています。これが私の実験です

これは出力します

qdbus サービス名は常にorg.kde.konsole-{pid+epsilon}ですが、イプシロンの部分は予測できません。

私の bash スクリプトで、生成したばかりの特定の konsole インスタンスの正確な qdbus サービス名を取得するにはどうすればよいですか?


これは厄介でハッキーなソリューションです

しかし、確かにもっと良い方法があります!

0 投票する
1 に答える
1866 参照

c++ - QDbus: QList を返すサービス コール

整数の配列を返すはずのサービス呼び出しから値を取得するのが困難です。インターフェース xml ファイルのメソッド呼び出しは、次のように定義されています。

qdbusxml2cpp は、次のメソッドを生成します。

私も追加しました

生成された .h ファイルの先頭にあります。main.cpp では、次の呼び出しを行っています。

プログラムを起動すると、以下に示すように、有効なデバッグ出力から結果が得られていることがわかりますが、qDebug() 行には 0 が出力されます。結果を正しく取得する方法がわかりません。

私は何が欠けていますか?どんな援助でも大歓迎です。

0 投票する
1 に答える
956 参照

python - Python DBus接続を切断する方法は?

LinuxesDBusを使用してpidginと接続するpidginクライアント用のある種の留守番電話を作成しました。コードは次のとおりです。

今度は別のプログラムのモジュールとして使いたいです。私はそれをこのように呼びました:

問題は、2番目のプログラム(これをモジュールとして持つプログラム)を停止してから再開するsegmentation faultと、DBusに別の接続を確立したいので、定期的ではないため、が発生することです。

それ以外の場合は、このモジュールを無効にする機会をユーザーに提供したいと思います。ifステートメントを使おうとしました。初めて動作します。ただし、ユーザーがモジュールを1回実行すると、それ以上無効にすることはできません。

0 投票する
1 に答える
1431 参照

c++ - QT-Dbus 信号/スロット?

サードパーティのサービスによって生成された D-BUS 信号に応答するように QT スロットをフックするにはどうすればよいですか?

次は正しいですか?

0 投票する
1 に答える
2467 参照

qt - qdbusとカスタムタイプのマーシャリング

QtDBUSAPIを介してカスタムc++クラスを送信したいと思います。protocコンパイラを使用して.protoファイルからクラスを作成し、QtCreatorのプロジェクトに追加しました。ここで、dbusAPIを介してカスタムクラスをQVariantとして送信できることを確認したいと思います。私は受信者と送信者のプログラムを持っており、Dbusが機能するように簡単なテスト文字列を送信できます。メタタイプとして追加した後、プロトコルバッファクラスを送信するのに問題があります。

私のテスト.protoファイルにはintのみが含まれています。

私が追加したプロトコルバッファクラスヘッダーファイルに:

そして、私が追加したプロトコルバッファクラスの実装ファイルに:

メインは単純に次のようになります。

私のdbussenderクラスは、次のようにリモート関数を呼び出します。

最終的に私の受信機プログラムでは、この関数が呼び出されますが、常に0を返します。

Senderプログラムの出力は次のとおりです。

そして、Receiverプログラムの出力は次のとおりです。

マーシャリング関数が2回呼び出されているように見えるのはなぜですか?そして、どうして2番目の呼び出しにはプロトコルバッファの3つのプロパティの有効な値2、3、4が含まれているように見えますが、最初の呼び出しはすべて0です。受信者はすべて0を認識しているように見え、有効な値を持つプロトコルバッファオブジェクトを受信することはありません。

マーシャリングコードに何か問題がありますか?他に何が起こっている可能性がありますか?

0 投票する
1 に答える
917 参照

dbus - qdbus で信号に接続する

qdbusメソッドを呼び出すときはかなり簡単ですが、シグナルに接続することは可能ですか? サイン:

0 投票する
0 に答える
1734 参照

c++ - Qt QDbus QVariant でカスタム型を送信する

2 つの単純なアプリケーション間で、Qt の Dbus セッション バスを介して QVariant 内のカスタム クラス ( "Span" ) を送信しようとしています。Span は、2 つの double 型のプロパティを含む単純なクラスです。カスタム クラスの QVariant を使用して以下で行おうとしているのと同じ方法で、dbus インターフェイスを介して QString のみを含む QVariant を正常に送信および回復しました。

Span には、クラス ヘッダー ファイルに QMETATYPE QVariant 登録の次の宣言が含まれています。

送信側と受信側の 2 つのテスト アプリケーションがあり、どちらもまったく同じ「スパン」クラス定義を持っています。私の送信者アプリでは、これを行います:

「setSetting」メソッドは次のように定義されています。

レシーバーでは、次のように「Span」クラスを登録します。

次に、次のように Span クラスを回復しようとします。

上記のコードでは、Span クラス プロパティの偽の値が返されます。

私は何を間違っていますか?Sender アプリで Span インスタンスをエンコードおよびデコードできますが、レシーバー クラスが dbus 経由でそれを取得すると、偽の値が取得されます。アイデアや助けをいただければ幸いです。

注: 次のように、Span クラスにストリーミング オペレーターを実装しました (レシーバー アプリとセンダー アプリの両方に同じクラスの実装が存在します)。

0 投票する
1 に答える
249 参照

dbus - サーバーとクライアントで異なる Dbus バインディング

Dbus クライアントを実装しようとしています。Dbusサーバーは実際にはサードパーティによって実装されており、どのバインディングを使用しているのかわかりません(ただし、gdbusだと思います)。Dbus サーバーで使用されているバインディングに関係なく、クライアント アプリケーションで QDbus バインディングを使用できるようになりましたか? もしそうなら、データ型 (複雑なデータ型/ユーザー定義構造) はサーバー (glib 型など) とクライアント (qt 型など) の間でどのように管理されていますか? この概念の説明をいただければ幸いです。

0 投票する
3 に答える
2528 参照

lua - Use stderr in lua io.popen to determine faulty function call

I'm making a function that can read the metadata of the current song playing in spotify. This is being programmed in lua since it is an implementation for awesome wm. I got the following line to get all the metadata that I can later use.

However when Spotify is not running I don't get the expected information and qdbus writes an error to the stderr stream. I wanted to use the fact that qdbus writes to the error stream to determine a fault and stop the program there. (This should also catch any other errors not related to wheter spotify is running or not)

My understanding is that lua popen uses popen3 that can subdivide between stdout and stderr. but all my efforts so far are fruitless and my error stream is always empty. Is it possible to check for a non nil value in the stderr in order to determine a faulty call to qdbus (or awk)?

thanks!