#!/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)