0

私はDBusでHALイベントを監視しており、ACアダプターが取り外された/接続されたときを監視しています。

dbus-montiorを介して、2つのイベントはまったく同じように見えます。

イベントのプラグを抜く

signal sender=:1.85 -> dest=(null destination) serial=3698 path=/org/freedesktop/Hal/devices/computer_power_supply_ac_adapter_AC0; interface=org.freedesktop.Hal.Device; member=PropertyModified
   int32 1
   array [
      struct {
         string "ac_adapter.present"
         boolean false
         boolean false
      }
   ]

プラグインイベント

signal sender=:1.85 -> dest=(null destination) serial=3701 path=/org/freedesktop/Hal/devices/computer_power_supply_ac_adapter_AC0; interface=org.freedesktop.Hal.Device; member=PropertyModified
   int32 1
   array [
      struct {
         string "ac_adapter.present"
         boolean false
         boolean false
      }
   ]

ただし、org.freedesktop.Halのac_adapter.presentプロパティを明示的にクエリするとデバイスの状態が正しく返されます。

質問: PropertyModifiedイベントで送信されるブール値は何ですか?フィルターできるイベントがあり、アダプターの存在に関する情報が含まれていますか、それとも、よりあいまいな「何かが起こった」メッセージを受信した後に明示的に照会する必要がありますか?

HAL DBusのドキュメントは特に役に立ちませんでした。または、間違った場所を探しています。

4

1 に答える 1

0

より曖昧な「何かが起こった」メッセージを受け取った後、明示的にクエリする必要がありますか?

はい。org.freedesktop.Hal.Deviced-feetのようなDBusブラウザーを使用する場合、ACアダプターオブジェクトのインターフェースにメソッドがあることがわかります。

  • GetProperty(String property) -> Variant
  • GetPropertyBoolean(String property) -> Boolean-おそらく有用ac_adapter.present
于 2012-10-17T21:49:15.803 に答える