如何获取可用DBus接口属性的列表?
我正在写一个脚本,将跟踪特定类型的usb设备连接。区分要跟踪的连接和所有usb连接的一种方法是检查dbu在usb连接上发送的信号接口的属性。我想得到所有这些财产的清单来选择相关的。
我的代码是:
import sys
import dbus
from dbus.mainloop.glib import DBusGMainLoop
import gobject
def deviceAdded(udi):
device = bus.get_object("org.freedesktop.Hal", udi)
device_if = dbus.Interface(device, 'org.freedesktop.Hal.Device')
if device_if.GetPropertyString('info.subsystem') == 'usb_device':
#
# Properties can be accesed like this:
# vendor_id = device_if.GetPropertyInteger('usb_device.vendor_id')
#
# how to get the list of all properties?
#
# do something
def deviceRemoved(udi):
# do something
pass
if __name__ == "__main__":
DBusGMainLoop(set_as_default=True)
bus = dbus.SystemBus()
bus.add_signal_receiver(
deviceAdded,
'DeviceAdded',
'org.freedesktop.Hal.Manager',
'org.freedesktop.Hal',
'/org/freedesktop/Hal/Manager')
bus.add_signal_receiver(
deviceRemoved,
'DeviceRemoved',
'org.freedesktop.Hal.Manager',
'org.freedesktop.Hal',
'/org/freedesktop/Hal/Manager')
loop = gobject.MainLoop()
try:
loop.run()
except keyboardInterrupt:
print "usb-device-tracker: keyboad interrupt received, shutting down"
loop.quit()
sys.exit(0)
通常,可以在} 方法。
org.freedesktop.DBus.Properties
接口上使用^{我最近遇到了同样的问题(不是和哈尔特别)。我不确定这是否普遍适用,但它可以(至少经常)通过
org.freedesktop.DBus.Properties
接口(正如@daf建议的那样)检索。首先,检查哈尔的文件和来源,他们永远是你的朋友。
最后,您可以使用'lshal'命令找到您感兴趣的属性。
相关问题 更多 >
编程相关推荐