Kullanılabilir DBus arabirimi özelliklerinin listesini nasıl alabilirim?DBus arabirim özellikleri
Belirli türde USB aygıt bağlantılarını izleyen bir komut dosyası yazıyorum. Tüm usb bağlantılarından izlenecek bağlantıları ayırt etmenin bir yolu, sinyallerin arayüzlerinin özelliklerini kontrol etmektir. DBus, bir USB bağlantısı üzerinden gönderiyor. İlgili olanları seçmek için tüm bu özelliklerin listesini almak istiyorum.
Benim kodudur: Herşeyden
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)