0404ab0efb2ed24f1d07d5c9dce518ea9d0e5d23
[tablet-suite] / src / .svn / text-base / battery.py.svn-base
1 #!/usr/bin/python
2
3 # Ainda continua sendo o codigo do cara, apenas retirei as partes que nao nos interessa.
4 # Ainda tem que ver se pode usar o codigo, ou seja, olhar a licensa. 
5 # Deve ser istalado no dispositivo
6 # Otacilio Lacerda
7
8 import dbus
9 import dbus.service
10 import dbus.glib
11 import gobject
12
13 percent_left = -1
14 charging = False
15
16 loop = gobject.MainLoop()
17
18 class Request(dbus.service.Object): 
19     def __init__(self, bus_name):
20         dbus.service.Object.__init__(self, bus_name, '/com/nokia/bme/request')
21
22     @dbus.service.signal('com.nokia.bme.request')
23     def timeleft_info_req(self):
24         pass
25
26     @dbus.service.signal('com.nokia.bme.request')
27     def status_info_req(self):
28         pass
29
30 def timeleft_handler(idle_time, active_time):
31     global percent_left
32     percent_left = min(100, 100.0 * idle_time / 15000)
33     loop.quit()
34
35 def charging_on_handler():
36     global charging
37     charging = True
38     loop.quit()
39
40 def charging_off_handler():
41     global charging
42     charging = False
43     loop.quit()
44
45 def getBatteryState(request):
46     global percent_left
47     global charging
48
49     request.status_info_req()
50     loop.run()
51
52     if charging:
53         return -1
54     request.timeleft_info_req()
55     loop.run()
56     return percent_left
57
58 if __name__ == "__main__":
59
60     bus = dbus.SystemBus(private = True)
61     bus.add_signal_receiver(timeleft_handler, 'battery_timeleft')
62     bus.add_signal_receiver(charging_on_handler, 'charger_charging_on')
63     bus.add_signal_receiver(charging_on_handler, 'battery_full')
64     bus.add_signal_receiver(charging_off_handler, 'charger_charging_off')
65     bus_name = dbus.service.BusName('com.nokia.bme.request', bus)
66     request = Request(bus_name)
67
68     percent = getBatteryState(request)
69     if percent < 0:
70         print '-1'
71     else:
72         print '%.1f' % (percent)
73