問題タブ [gdbus]
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.
c++ - gdbus-codegen スケルトンの使用時に D-Bus プロパティを検証する方法
gdbus
と を使用して D-Bus でサービスを作成していますgdbus-codegen
。
イントロスペクションは次のとおりです。
私はgdbus-codegen
このように実行しています:
そして、私の main.cpp は次のようになります。
これは期待どおりに機能し、次を使用してプロパティを設定および取得できます。
と
問題:
プロパティの設定を同期的に検証し、失敗した場合にエラーを返すことができるようにしたいと考えています。gdbus-codegen
生成されたコードを使用してこれをどのように達成できますか?
PS:
コードが漏れており、通常は本番環境に対応していません。私は今のところそれで大丈夫です:-)
編集
調査を続けた結果、D-Bus プロパティは基になるGObject
プロパティ機能を使用しているようです。コードによってすべてが設定されている場合、カスタムバリデーターをインストールすることは可能gdbus-codegen
ですか?
dbus - bluez 5.35 の gdbus オブジェクト (/org/bluez/hci1) にインターフェースを追加するには?
私はアプリケーション開発に bluez5.35 を使用していますが、デバッグ中に /org/bluez/hci1 が 8 つのインターフェースしか提供しないことがわかりました (org.bluez.Adapter1、CyclingSpeedManager1、HeartRateManager1、Media1、NetworkServer1、ThermeterManager1、DBus.Introspectable、DBus.プロパティ)。
既存のセットアップに関連付けられていないインターフェース (org.bluez.Network1 など) をさらにいくつか使用したいと考えています。以下は私のセットアップのスナップショットです(スナップショットが添付されています)。
/org/bluez/hci を使用して org.bluez.Network1 インターフェースを追加するにはどうすればよいですか? 変更する必要がある構成ファイルはありますか? またはこの目標を達成するための他の方法はありますか?
dbus - 各 dbus API の代替 GDBus API は何ですか?
たとえば、g_dbus_connection_setup_with_g_main関数を使用しました。しかし、ここで、この関数は非推奨であることがわかりました。しかし、どの機能が機能を代替できるかについての情報はありません。その情報はどこで確認できますか?