#!/usr/bin/python # from dbus import SystemBus, Interface, DBusException, UInt32, Int32, UInt64, Int64, Boolean import sys import dbus def dedbustype(v): if isinstance(v, bool) or isinstance(v, dbus.Boolean): return bool(v) elif isinstance(v, float): return float(v) elif isinstance(v, int) or isinstance(v, dbus.Int64) or isinstance(v, dbus.UInt64) or isinstance(v, dbus.Int32) or isinstance(v, dbus.UInt32): return int(v) elif isinstance(v, basestring): return unicode(v) elif isinstance(v, dict): return dict([(str(n), dedbustype(m), ) for n, m in v.items()]) # use strings for names to allow ** elif isinstance(v, list) or isinstance(v, tuple): return [dedbustype(m) for m in v] else: raise Exception('unsupported type %s'% type(v)) bus = dbus.SystemBus() if len(sys.argv) == 2: path = sys.argv[1] elif len(sys.argv) == 1: manager = dbus.Interface(bus.get_object('org.ofono', '/'), 'org.ofono.Manager') modems = manager.GetModems() path = modems[0][0] else: print "%s [PATH]" % (sys.argv[0]) sys.exit(0) nwmanager = dbus.Interface(bus.get_object('org.ofono', path), 'org.ofono.NetworkRegistration') properties = nwmanager.GetProperties() dd_p = dedbustype(properties) print '--- nwreg_properties', dd_p operators = nwmanager.GetOperators() dd_o = dedbustype(operators) print '--- nwreg_operators', dd_o