了解HAL DBus事件?

时间:2012-08-18 21:32:56

标签: dbus hal

我正在观看DBus上的HAL事件,观察何时拔下/插入交流电源适配器。

通过 dbus-montior ,两个事件看起来完全相同:

拔掉活动

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 documentation并没有特别的帮助,或者我找错了地方。

1 个答案:

答案 0 :(得分:0)

  

收到更多模糊的'发生了什么'的消息后,我是否必须明确查询?

是。如果你使用像d-feet这样的DBus浏览器,你会发现AC适配器对象上的org.freedesktop.Hal.Device接口有方法

  • GetProperty(String property) -> Variant
  • GetPropertyBoolean(String property) -> Boolean - 可能对ac_adapter.present
  • 有用