問題タブ [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 投票する
1 に答える
864 参照

dbus - 同じオブジェクト パス内の qdbus 複数のインターフェイス

dbus サーバーで QDbus バインディングを使用して、サービスの下の同じオブジェクト パスで複数のインターフェイスを公開する方法を知る必要があります。qdbusxml2cpp を使用してアダプタ クラスを生成します。以下の構造は、質問を明確にすることができます。

可能であれば、サンプルコードを教えてください。

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

windows - QtService アプリケーションがサービスとして実行されている場合、システム バスに接続できません

Windows用の統合dbusを使用してQtを再コンパイルしました。

さらに、QtService次のようにシステム バスにサービスとオブジェクトを登録するアプリケーションを実装しました。

パラメーターを指定してサービス アプリケーションを実行している場合-e(通常のアプリケーションとして実行)、両方とも正常に動作しdbus-monitorqdbus --system登録されたサービスとオブジェクトが表示されます。

ただし、アプリケーションを Windows サービスとして実行している場合、システム バスには何も登録されません。

サービスをデバッグするとエラー メッセージが表示される

D-Bus サーバーに接続されていません

呼び出すときregisterService(...)registerObject(...)

環境変数を設定しました:

私のsystem.confファイル:

さらに、com.mycompany.Configuration.confsystem.d フォルダーにファイルがあります。

Windows サービス自体は com.mycompany.Configuration と呼ばれ、ローカル システム アカウントとして実行されます。

さらに、dbus の詳細な出力は、Windows サービスが開始されたときに何かが起こっていることを示しています。

問題が何であるかは本当にわかりません。助けていただければ幸いです。

編集: これには同じ問題があるようです: http://comments.gmane.org/gmane.comp.freedesktop.dbus/14895

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

c++ - Qt DBus 呼び出しで QDBusMessage から返されたデータを抽出するにはどうすればよいですか?

Qt の QDBus クラス ライブラリを使用して、WPA サプリカントの DBus インターフェイスを呼び出そうとしています。特に、「Get」プロパティ呼び出しを使用して「Interfaces」プロパティ値を取得しようとしています。

「Get」の DBus 仕様 (イントロスペクションによる) は次のとおりです。

十分に単純に思えます。2 つの文字列の入力と出力はバリアントです (これらは DBus 型です)。「Interfaces」プロパティについては、バリアントがオブジェクト パスの配列 (DBus タイプ「ao」) であると予想しています。

QDBusInterface::call()を返す DBus メソッドを呼び出すために使用していますQDBusMessageが、これからデータを抽出する方法がわかりません。

QDBusMessage::arguments()を返しますQList<QVariant>。オブジェクト パスの配列を見つけようとして、このリストの項目のさまざまな変換を試みましたが、代わりに空の文字列になってしまうようです。

QVariant::type()それは役立つはずですが、 type を返すように見えるだけで、QDBusMessage明らかに間違っています。例えば:

プリント:

実際のメッセージ データを抽出するにはどうすればよいですか?

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

qt - qdbus - 構造体引数で dbus 信号に接続できない

amarok d-bus 信号 StatusChange (参照: https://xmms2.org/wiki/MPRIS#StatusChange ) に接続しようとしています。インターフェイスと構造体は問題ありません。同じインターフェイスで単純な信号 CapsChange(int) に接続でき、GetStatus dbus メソッドでステータスを取得できるため、このマーシャル構造体は問題ありません。

しかし、呼び出すとき:

メッセージを受け取りました:

Object::connect: そのような信号はありません org::freedesktop::MediaPlayer::StatusChange(AmarokStatus)

SIGNAL(StatusChange(struct)) および SIGNAL(StatusChange(QDbusargument)) および他のタイプで試しましたが、同じメッセージです

D-Feet は、StatusChange の定義は、StatusChange(Struct of (Int32, Int32, Int32, Int32)) であり、dbus-monitor と同じであると言っています。信号 TrackChange(構造体の配列) と同じ問題。だから私は間違いなく connect() メソッドで何かをいじっています。

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

c++ - Qt C++ BlueZ 5 QDbus ライブラリ

BlueZ 5 では、DBus API が大幅に変更されました。以前、これに基づいて BlueZ 4 用の QDbus コントローラー ライブラリが動作していました: https://gitorious.org/qt-bluez-demos/

私はかなりグーグルで調べましたが、BlueZ 4 ライブラリを BlueZ 5 に変換するための既存の開始点が見つかりません。

注: Qt 4.8 を使用していますが、Qt 5.0 にはいくつかの QBluetooth 名前空間があるようですが、BlueZ 5 用にまだ更新されていません。

このライブラリも BlueZ 4 のみです。

誰か既存のコードを教えてもらえますか? ありがとう!

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

c++ - この「異なるサイズの型からポインターへのキャスト」警告を解決するにはどうすればよいですか?

D-Bus を介して通信する 2 つのプログラムがあります。1 つには 2 つのパラメーター、つまりconst char* dataandを受け取る関数がint sizeあり、別のパラメーターには 型の値を返す関数がありますunsigned char。このように最初のプログラムに関数呼び出しを配置し​​ますが、サイズが異なる [-Wint-to-pointer-cast] の整数からポインターへのキャストへfunction((char*)program2->function().value(), 1)の警告が表示されます。この警告を解決するにはどうすればよいですか? また、Qt ライブラリを使用しています。

編集:

実際には を受け取る関数で、 Qt によって提供されるコンストラクターの型のサイズと型const char*を受け入れるintにデータを追加し、他のプログラムは 0 ~ 255 の範囲の数値を返すことになっているため、. 私がしていることが間違っている場合、望ましい結果を得るための最良の方法は何ですか?QByteArrayconst char*intunsinged char

また、program2->function を呼び出すと、以下が呼び出されます。

このクラスには、以下を呼び出す value() という関数があります。

注:この質問の主な目的は、プロキシクラス内で定義された関数を呼び出して返された結果への参照を作成する方法を見つけることであり、QByteArrayそれを作成に受け入れられるものに変換する方法ではないため、QByteArrayまたはQtCoreなど。