3 from gi.repository import GLib
9 import dbus.mainloop.glib
11 def make_bytes_readable(bytes):
12 SUFFIXES = [ 'KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB' ]
18 for suffix in SUFFIXES:
19 if bytes > size * 1024:
23 return '%.1f %s' % (bytes / float(size), suffix)
27 def print_stats(stats):
28 keys = list(stats.keys())
33 str = " %s = %s" % (key, val)
35 if key in ["RX.Bytes", "TX.Bytes"]:
36 hstr = make_bytes_readable(val)
38 str = "%s (%s)" % (str, hstr)
42 class Counter(dbus.service.Object):
43 @dbus.service.method("net.connman.Counter",
44 in_signature='', out_signature='')
49 @dbus.service.method("net.connman.Counter",
50 in_signature='oa{sv}a{sv}', out_signature='')
51 def Usage(self, path, home, roaming):
61 if __name__ == '__main__':
62 dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
64 bus = dbus.SystemBus()
65 manager = dbus.Interface(bus.get_object('net.connman', "/"),
66 'net.connman.Manager')
72 path = "/test/counter%s" % period
73 object = Counter(bus, path)
75 manager.RegisterCounter(path, dbus.UInt32(10), dbus.UInt32(period))
77 mainloop = GLib.MainLoop()
80 #manager.UnregisterCounter(path)