Initial commit (Vesion 0.1)
[tablet-suite] / src / .svn / text-base / battery.py.svn-base
diff --git a/src/.svn/text-base/battery.py.svn-base b/src/.svn/text-base/battery.py.svn-base
new file mode 100644 (file)
index 0000000..0404ab0
--- /dev/null
@@ -0,0 +1,73 @@
+#!/usr/bin/python
+
+# Ainda continua sendo o codigo do cara, apenas retirei as partes que nao nos interessa.
+# Ainda tem que ver se pode usar o codigo, ou seja, olhar a licensa. 
+# Deve ser istalado no dispositivo
+# Otacilio Lacerda
+
+import dbus
+import dbus.service
+import dbus.glib
+import gobject
+
+percent_left = -1
+charging = False
+
+loop = gobject.MainLoop()
+
+class Request(dbus.service.Object): 
+    def __init__(self, bus_name):
+        dbus.service.Object.__init__(self, bus_name, '/com/nokia/bme/request')
+
+    @dbus.service.signal('com.nokia.bme.request')
+    def timeleft_info_req(self):
+        pass
+
+    @dbus.service.signal('com.nokia.bme.request')
+    def status_info_req(self):
+        pass
+
+def timeleft_handler(idle_time, active_time):
+    global percent_left
+    percent_left = min(100, 100.0 * idle_time / 15000)
+    loop.quit()
+
+def charging_on_handler():
+    global charging
+    charging = True
+    loop.quit()
+
+def charging_off_handler():
+    global charging
+    charging = False
+    loop.quit()
+
+def getBatteryState(request):
+    global percent_left
+    global charging
+
+    request.status_info_req()
+    loop.run()
+
+    if charging:
+        return -1
+    request.timeleft_info_req()
+    loop.run()
+    return percent_left
+
+if __name__ == "__main__":
+
+    bus = dbus.SystemBus(private = True)
+    bus.add_signal_receiver(timeleft_handler, 'battery_timeleft')
+    bus.add_signal_receiver(charging_on_handler, 'charger_charging_on')
+    bus.add_signal_receiver(charging_on_handler, 'battery_full')
+    bus.add_signal_receiver(charging_off_handler, 'charger_charging_off')
+    bus_name = dbus.service.BusName('com.nokia.bme.request', bus)
+    request = Request(bus_name)
+
+    percent = getBatteryState(request)
+    if percent < 0:
+        print '-1'
+    else:
+        print '%.1f' % (percent)
+