1

わかりました、ここでプロットを少し見逃しているかもしれませんが、本当に助けてほしいです. 私は開発などにまったく慣れていないので、DBus(または他のプログラム間通信)を実装する必要があるところまで来ました。私は概念を理解するのが少し難しいと思っています。

私の実装は、HTML Web サイトを使用して、別のプログラムで使用される特定の変数を変更することです。これにより、プログラムの動作を動的に変更できるようになります。Raspbian を使用してラズベリー PI でこれを行っています。私は自分のウェブサイトをホストするためにウェブサーバーを実行していますが、ここで混乱が生じます.

私が理解している限り、DBus は別のプログラムでプログラムからメソッドを呼び出せるようにするサービスを実行します。これは、私の Web サイトで DBUS サービスを実行して、そこからプログラムにメソッドを呼び出せるようにする必要があるということですか? さらに複雑なことに、私は Python でコーディングしているため、DBUS サービスを実行できる Python スクリプトを Web サイトで実行できるかどうかわかりません。JavaScript を使用した方が良いでしょうか?

私にとって最も論理的な解決策は、さまざまなプログラムから何らかの方法でメソッドをインポートし、それらのメソッドを実行したい他の人がクエリできる単一の DBUS サービスを実行することです。それは可能ですか?

助けていただければ幸いです!前もって感謝します!

4

2 に答える 2

1
  • これは、私の Web サイトで DBUS サービスを実行して、そこからプログラムにメソッドを呼び出せるようにする必要があるということですか?

はい、dbus バックグラウンド プロセス (デーモン) が Web サーバー上で実行されます。実際、dbus は 2 つのデーモンを提供します。1 つは、オブジェクトがシステム情報 (例えば、プリンタの可用性など) を受信できるようにするシステム デーモンであり、もう 1 つは、一般的なユーザー アプリケーションからアプリケーションへの IPC デーモンです。これは、さまざまなアプリケーションが通信するために間違いなく使用する 2 番目のデーモンです。

  • 私は Python でコーディングしているため、Web サイトで DBUS サービスを実行できる Python スクリプトを実行できるかどうかわかりません。

Python を使用しても問題ありません。dbus には多くの言語 (Java、perl、ruby、c++、Python など) のバインディングがあります。dbus オブジェクトは python オブジェクトにマップできます。

  • 最も論理的な解決策は、さまざまなプログラムから何らかの方法でメソッドをインポートし、それらのメソッドを実行したい他の人がクエリできる単一の DBUS サービスを実行することです。それは可能ですか?

正解 - dbus は、クライアント プロセスが dbus オブジェクトを作成するメカニズムを提供します。これにより、そのプロセスが他のサービスから他の dbus 対応プロセスに移動できるようになります。

于 2013-06-24T08:57:09.433 に答える
0

これは、データストアとして機能する分離された D-Bus サービスを記述し、スクリプト内でそれと同期して通信して値を読み書きする必要があるように思えます。shelveサービスの呼び出し間で値を永続化するために使用できます。

チュートリアルの「メソッド呼び出しの作成」セクションでは同期呼び出しについて説明し、「オブジェクトのエクスポート」ではほとんどの D-Bus サービスの作成について説明しています。

于 2013-06-24T08:52:32.837 に答える