問題タブ [qtdbus]

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 に答える
1712 参照

qt - QDBusAbstractAdaptor オブジェクトは、実装された dbus インターフェイスをエクスポートしません

Qt とその DBus 機能を備えた BlueZ v5.5 のペアリング エージェントを実装しようとしています。

私は、PairingAgentAdaptor と呼ばれる qdbusxml2cpp ツールによって生成されたアダプター クラスと、アダプター クラスのインスタンス化のパラメーターとして与える実装されたメソッド (PairingAgent) を持つクラスを持っています。

オブジェクトを新しいエージェントとして登録することができ、BlueZ デーモンは私のエージェントが登録されていると言います。携帯電話をコンピューターとペアリングしようとすると、BlueZ デーモンは次のように言います。

何が間違っているのかわかりません。ヒントを教えてください。

敬具マイケル


コード:

main.cpp

pairingagentadaptor.h

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

c++ - D-Bus でデバイス名を取得するには?

ブルートゥース デバイス (Bluetooth ソケットやスピーカーなど) とやり取りするアプリケーションを Linux で C++ で開発しています。D-Bus コマンドを使用して、ペアリングされたデバイスのリストを取得します。

dbus-send --system --dest=org.bluez --print-reply $BTADAPTER org.bluez.Adapter.ListDevices

戻り値:

これは素晴らしいことですが、MAC だけでなく、デバイスの名前 (「linvor」や「GT-I9300」など) も必要です。

それらの名前を取得する適切な方法を教えてください。

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

c++ - QtDBUS: DBUS 経由で Enum を送信

私は c++ で qt dbus バインディングを使用しています。

現在、カスタム タイプ (クラス、構造体など) を dbus 経由で送信できますが、列挙型を送信することはできません。

こちらのリンクも試しましたが、わかりません

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

c++ - 別のコンピューター上のセッション DBus に接続する

セッション バスに接続して、Qt DBus テストを実行できます。

しかし、別のコンピューターからこの DBus に接続できますか? 私はこのようなことができることを知っています:

しかし、どうすればポートを取得できますか? 何を試しても、接続がないようです。または、ここで間違ったパスにいるので、セッション バスの代わりに Peer 2 Peer DBus を使用する必要がありますか?

私が見ることができるように、サービス名が正しいとほぼ確信していqdbusviewerます。出力を使用する場合dbus-monitor、私にとってはあまり意味がありません。ポートが表示されないなどです。

別のコンピューターから接続する方法を教えてください。

PS: SSH ( http://gabriel.sourceforge.net/howto.html )経由でトンネリングするための gabriel のようなものがあることを認識しています。これは私がやっていることではなく、「直接的なつながり」を探しています。

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 投票する
1 に答える
1236 参照

qt - 予期しない応答署名: 「oa{sv}」を取得、「(oa{sv})」を予期

C++/QtDBus の使用。次のように記述された関数への DBus 呼び出しからの応答を取得しようとしています。

typedef QPair< QDBusObjectPath, QVariantMap > Transfer; 次のように定義されたタイプを登録しました (qDBusRegisterMetaType) QDBusPendingCallWatcher:

エラーが発生します:

予期しない応答署名: 取得済み"oa{sv}"、予期された"(oa{sv})"

どうしたの?「(oa{sv})」の括弧は何ですか?

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

qt - 「D-Bus リモートコントロールカーの例」と呼ばれる dbus の例の「car.xml」ファイルはどのように生成されますか?

D-Bus を利用したプログラムを作成しようとしています。私は Qt で提供されている例をほぼ同じように調べました。「D-Bus リモート コントロール カーの例」と呼ばれるそのうちの 1 つに、次の内容の「car.xml」という名前のファイルがあります。

私が間違っていなければ、「qdbuscpp2xml」という名前のツールを使用してこのファイルを生成することになっています。このコマンドを使用してxmlを生成すると:

生成された XML ファイルで次のコンテンツを取得します。

次の行で car.xml とは異なります。

別のファイルを取得するのはなぜですか? サンプルに含まれているファイル (car.xml) は手動で作成されましたか?