8 import dbus.mainloop.glib
10 def make_bytes_readable(bytes):
11 SUFFIXES = [ 'KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB' ]
17 for suffix in SUFFIXES:
18 if bytes > size * 1024:
22 return '%.1f %s' % (bytes / float(size), suffix)
26 class Counter(dbus.service.Object):
27 @dbus.service.method("org.moblin.connman.Counter",
28 in_signature='', out_signature='')
33 @dbus.service.method("org.moblin.connman.Counter",
34 in_signature='oa{sv}', out_signature='')
35 def Usage(self, path, stats):
43 str = " %s = %s" % (key, val)
45 if key in ["RX.Bytes", "TX.Bytes"]:
46 hstr = make_bytes_readable(val)
48 str = "%s (%s)" % (str, hstr)
52 if __name__ == '__main__':
53 dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
55 bus = dbus.SystemBus()
56 manager = dbus.Interface(bus.get_object('org.moblin.connman', "/"),
57 'org.moblin.connman.Manager')
61 interval = sys.argv[1]
63 path = "/test/counter%s" % interval
64 object = Counter(bus, path)
66 manager.RegisterCounter(path, dbus.UInt32(interval))
68 mainloop = gobject.MainLoop()
71 #manager.UnregisterCounter(path)