From 7e6808a16abaa817c9e3ac1357b49d663fc2f4cb Mon Sep 17 00:00:00 2001 From: Leonardo Robol Date: Fri, 5 Feb 2010 16:35:52 +0100 Subject: [PATCH] =?UTF-8?q?Il=20sistema=20ora=20=C3=A8=20pi=C3=B9=20precis?= =?UTF-8?q?o.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BatteryMonitor.py | 35 +++++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/BatteryMonitor.py b/BatteryMonitor.py index 5b2f505..23f239a 100755 --- a/BatteryMonitor.py +++ b/BatteryMonitor.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -import subprocess, re, gtk, gobject +import subprocess, re, gtk, gobject, time from numpy.linalg import lstsq class BatteryMonitor(): @@ -36,7 +36,7 @@ class BatteryMonitor(): Restituisce l'energia nella batteria """ energy = float(self.GetDevKitOutput("energy:[\s|\t]*([\d|\.]*)")) - return energy + return [time.time (), energy] class BatteryIcon(): @@ -65,11 +65,23 @@ class BatteryIcon(): return "%d secondi" % int(time) elif (time < 3600): minutes = int(time/60) - return "%d minuti" % minutes + if minutes > 1: + return "%d minuti" % minutes + else: + return "%d minuto" % minutes else: hours = int(time/3600) minutes = int( (time - hours * 3600)/60) - return "%d ore %d minuti" % (hours, minutes) + if minutes == 0: + min_string = "" + elif minutes == 1: + min_string = "ed 1 minuto" + else: + min_string = "e %d minuti" % minutes + if hours > 1: + return "%d ore %s" % (hours, min_string) + else: + return "%d ora %s" % (hours, min_string) def UpdateData(self): if not self.bm.OnBattery (): @@ -81,7 +93,7 @@ class BatteryIcon(): energy = self.bm.GetEnergy () self.energy.append (energy) - if (len(self.energy) < 5): + if (len(self.energy) < 6): self.tray.set_tooltip ("Sto aspettando più dati per il calcolo") self.ScheduleNext () return @@ -90,14 +102,17 @@ class BatteryIcon(): del self.energy[0] times = [] - counter = 0 + starting = self.energy[0][0] for value in self.energy: - times.append( [ 1, counter ] ) - counter = counter + 10 + times.append( [ 1, value[0] - starting ] ) - rate = (-1) * lstsq(times, self.energy)[0][1] + values = [] + for value in self.energy: + values.append (value[1]) + + rate = (-1) * lstsq(times, values)[0][1] - time_to_discharge = energy / rate + time_to_discharge = energy[1] / rate self.tray.set_tooltip("Tempo alla scarica: %s" % self.GetTimeString(time_to_discharge)) -- 2.1.4