[tuxdroid-svn] r590 - in software/gadgets: . battery_monitor battery_monitor/trunk battery_monitor/
Status: Beta
Brought to you by:
ks156
Author: Paul_R Date: 2007-10-09 11:02:10 +0200 (Tue, 09 Oct 2007) New Revision: 590 Added: software/gadgets/battery_monitor/ software/gadgets/battery_monitor/branches/ software/gadgets/battery_monitor/tags/ software/gadgets/battery_monitor/trunk/ software/gadgets/battery_monitor/trunk/Battery_monitor.tgf software/gadgets/battery_monitor/trunk/Battery_monitor_svn/ software/gadgets/battery_monitor/trunk/Battery_monitor_svn/Pictures/ software/gadgets/battery_monitor/trunk/Battery_monitor_svn/Pictures/Icons/ software/gadgets/battery_monitor/trunk/Battery_monitor_svn/Pictures/Icons/gadget.png software/gadgets/battery_monitor/trunk/Battery_monitor_svn/Scripts/ software/gadgets/battery_monitor/trunk/Battery_monitor_svn/Scripts/Python/ software/gadgets/battery_monitor/trunk/Battery_monitor_svn/Scripts/Python/Battery_class.py software/gadgets/battery_monitor/trunk/Battery_monitor_svn/Scripts/Python/GUI/ software/gadgets/battery_monitor/trunk/Battery_monitor_svn/Scripts/Python/GUI/conf/ software/gadgets/battery_monitor/trunk/Battery_monitor_svn/Scripts/Python/GUI/conf/other.glade software/gadgets/battery_monitor/trunk/Battery_monitor_svn/Scripts/Python/GUI/conf/other.pyp software/gadgets/battery_monitor/trunk/Battery_monitor_svn/Scripts/Python/GUI/widget/ software/gadgets/battery_monitor/trunk/Battery_monitor_svn/Scripts/Python/GUI/widget/other.glade software/gadgets/battery_monitor/trunk/Battery_monitor_svn/Scripts/Python/GUI/widget/other.pyp software/gadgets/battery_monitor/trunk/Battery_monitor_svn/Scripts/Python/init.pyp software/gadgets/battery_monitor/trunk/Battery_monitor_svn/Scripts/Python/main.pyp software/gadgets/battery_monitor/trunk/Battery_monitor_svn/Scripts/Python/notify.pyp software/gadgets/battery_monitor/trunk/Battery_monitor_svn/Strings/ software/gadgets/battery_monitor/trunk/Battery_monitor_svn/Strings/fr_ALL.xml software/gadgets/battery_monitor/trunk/Battery_monitor_svn/about.xml software/gadgets/battery_monitor/trunk/Battery_monitor_svn/parts.xml software/gadgets/battery_monitor/trunk/Battery_monitor_svn/settings.xml software/gadgets/battery_monitor/trunk/Battery_monitor_svn/strings.xml Log: * Added the battery_monitor gadget. Only the function's names and the monitoring signal has been changed from the light_monitor gadget. Added: software/gadgets/battery_monitor/trunk/Battery_monitor.tgf =================================================================== (Binary files differ) Property changes on: software/gadgets/battery_monitor/trunk/Battery_monitor.tgf ___________________________________________________________________ Name: svn:executable + * Name: svn:mime-type + application/octet-stream Added: software/gadgets/battery_monitor/trunk/Battery_monitor_svn/Pictures/Icons/gadget.png =================================================================== (Binary files differ) Property changes on: software/gadgets/battery_monitor/trunk/Battery_monitor_svn/Pictures/Icons/gadget.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: software/gadgets/battery_monitor/trunk/Battery_monitor_svn/Scripts/Python/Battery_class.py =================================================================== --- software/gadgets/battery_monitor/trunk/Battery_monitor_svn/Scripts/Python/Battery_class.py (rev 0) +++ software/gadgets/battery_monitor/trunk/Battery_monitor_svn/Scripts/Python/Battery_class.py 2007-10-09 09:02:10 UTC (rev 590) @@ -0,0 +1,468 @@ +import gtk +import sys +import time +import os +import threading +import thread +sys.path.append('/opt/tuxdroid/api/python') +from tux import * + +class Graph(gtk.DrawingArea): + def __init__(self): + super(Graph, self).__init__() + self.connect("expose_event", self.expose) + self.context = None + + def expose(self, widget, event): + #when an event occur, update the context + self.context = widget.window.cairo_create() + self.context.rectangle(event.area.x, event.area.y, + event.area.width, event.area.height) + self.context.clip() + self.draw(self.context) + return False + + def refresh(self): + if self.window: + width,height = self.window.get_size() + self.window.invalidate_rect(gtk.gdk.Rectangle(0,0,width,height),False) + + def draw(self, context): + rect = self.get_allocation() + #draw axes + #draw a rectangle in the window area + context.rectangle(rect.x, rect.y, rect.width, rect.height) + #set a white background + context.set_source_rgb(1, 1, 1) + context.fill_preserve() + #draw a black border + context.set_source_rgb(0, 0, 0) + context.set_line_width(1) + context.stroke() + + #draw horizontal grid with 10 div. and 10 sub-div + for i in range(20): + y = (rect.height / 20.0) * float(i) + #place correctly the vector + context.move_to(rect.width, y) + if i % 2 == 1: + #Minor div: no text + context.set_source_rgb(0.2, 0.2, 0.2) + context.set_line_width(0.4) + context.line_to(0, y) + else: + #Major div: place text + context.set_source_rgb(0, 0, 0) + context.set_line_width(0.6) + context.line_to(0, y) + context.set_source_rgb(0.2, 0.2, 0.2) + context.show_text(str((10-(i/2))*10)+"%") + context.stroke() + + #draw the threshold line + if self.measure_graph.threshold_chk == True: + context.set_source_rgb(0,0,1) + context.set_line_width(0.9) + context.move_to(0, rect.height - (rect.height * (self.measure_graph.val_threshold / 100.0))) + context.line_to(rect.width, rect.height - (rect.height * (self.measure_graph.val_threshold / 100.0))) + context.stroke() + + #draw vertical division + #create a tab with the wanted divisions + temp_tab = [0.25, 0.5, 0.75] + for i in range(3): + context.set_source_rgb(0.2, 0.2, 0.2) + context.set_line_width(0.6) + #place correctly the vector + context.move_to(rect.width * temp_tab[i], 0) + #trace a line + context.line_to(rect.width * temp_tab[i], rect.height) + #replace the vector to draw text + context.move_to(rect.width * temp_tab[i], rect.height - 5) + #determine the time labels + context.show_text(str((self.measure_graph.rate * self.measure_graph.sample) - ((self.measure_graph.rate) * + self.measure_graph.sample * temp_tab[i])) + " sec.") + context.stroke() + + #display sample and rate + #move the vector in the bottom + context.move_to(10, rect.height - 10) + #display the rate + context.show_text("rate = "+str(self.measure_graph.rate)+" sec.") + context.move_to(10, rect.height - 20) + #and the samples + context.show_text("samples = "+str(self.measure_graph.sample)) + context.stroke() + + #determine the coefficients to adjust the curve in the window space + coeff_y = float(rect.height / 1024.00) + coeff_x = float(rect.width / (self.measure_graph.sample - 1)) + + #trace the curve + context.move_to(rect.x, rect.height) + context.set_source_rgb(1.0, 0, 0) + for i, val in enumerate(self.measure_graph.val_table): + context.line_to(rect.x + ((i) * coeff_x), rect.height - (val * coeff_y)) + context.stroke() + +class Measure(): + def __init__(self): + #Initial value + self.sample = 500.0 + self.val_table = [0] * int(self.sample + 1) + self.value = 0 + self.timecontrol = time.time() + self.rate = 1.0 + self.threshold_chk = False + + self.increase = False + self.decrease = False + self.both = False + self.drop = False + self.raising = False + self.changeD = False + self.changeU = False + + #Events flags + self.threshold_event = False + self.change_event = False + + self.GUI_on = False + self.notify = True + + self.timeout = 0 + self.start_flag = True + self.wait = 0 + #self.temp = 1124 + self.ok_flag = False + self.__on_battery_mutex = threading.Lock() + self.__timeout_mutex = threading.Lock() + + + ########################################################### + # + # Events control + # + ########################################################### + def event_control(self): + if self.GUI_on == False: + for i in range (len(self.event_tab)): + self.Threshold_control(i) + self.Change_control(i) + + #Gadget or test notifications + else: + self.test_func() + #disable gadget notifications + self.notify = False + + #goto test notification every sec. + if self.wait == 0: + self.wait = 10 + self.test_notification() + else: + self.wait -= 1 + + # To prevent notifications at startup + if self.start_flag == True: + self.change_event = False + self.threshold_event = False + self.start_flag = False + for i in range (len(self.event_tab)): + self.event_tab[i][7] = False + + + def change_control(self): + # Determine how many point must be checked for changes events + pts_per_sec = self.sample / (self.rate * self.sample) + + if self.val_drop_time >= 0.1 and self.val_drop > 0: + self.drop_point = int(self.val_drop_time * pts_per_sec) + self.set_timeout(self.drop_point) + if self.val_raise_time >= 0.1 and self.val_raise > 0: + self.raise_point = int(self.val_raise_time * pts_per_sec) + self.set_timeout(self.raise_point) + if self.val_changeD_time >= 0.1 and self.val_changeD > 0: + self.changeD_point = int(self.val_changeD_time * pts_per_sec) + self.set_timeout(self.changeD_point) + if self.val_changeU_time >= 0.1 and self.val_changeU > 0: + self.changeU_point = int(self.val_changeU_time * pts_per_sec) + self.set_timeout(self.changeU_point) + + + ########################################################### + # + # Threshold control + # + ########################################################### + def Threshold_control(self, index): + if self.event_tab[index][1] == 1: + if self.event_tab[index][7] != True: + if self.event_tab[index][2] == 0: + #Increasing threshold control + if self.Increase_control(self.event_tab[index][3]) == True: + self.event_tab[index][7] = True + elif self.event_tab[index][2] == 1: + #Decreasing threshold control + if self.Decrease_control(self.event_tab[index][3]) == True: + self.event_tab[index][7] = True + elif self.event_tab[index][2] == 2: + #Both direction theshold control + if self.Both_control(self.event_tab[index][3]) == True: + self.event_tab[index][7] = True + + def Increase_control(self, value): + val_act = (self.val_table[len(self.val_table)-1]*100) / 1024.0 + val_prev = (self.val_table[len(self.val_table)-2]*100) / 1024.0 + if val_prev <= value and val_act > value: + return True + + + def Decrease_control(self, val): + val_act = (self.val_table[len(self.val_table)-1]*100) / 1024.0 + val_prev = (self.val_table[len(self.val_table)-2]*100) / 1024.0 + if val_prev >= val and val_act < val: + return True + + def Both_control(self, val): + val_act = (self.val_table[int(len(self.val_table)-1)]*100) / 1024.0 + val_prev = (self.val_table[int(len(self.val_table)-2)]*100) / 1024.0 + if val_prev <= val and val_act > val or val_prev >= val and val_act < val: + return True + + + ########################################################### + # + # Changes control + # + ########################################################### + def Change_control(self, i): + #Changements control + if self.event_tab[i][1] == 0: + pts_per_sec = self.sample / (self.rate * self.sample) + time = int(self.event_tab[i][4] * pts_per_sec) + if self.event_tab[i][7] != True: + # Drop change part : + if self.event_tab[i][2] == 0: + if self.Drop_control(time, self.event_tab[i][3], self.event_tab[i][8], i) == True: + self.event_tab[i][7] = True + # Raise change part + if self.event_tab[i][2] == 1: + if self.Raise_control(time, self.event_tab[i][3], self.event_tab[i][8], i) == True: + self.event_tab[i][7] = True + # Drop and Raise change + if self.event_tab[i][2] == 2: + if self.ChangeD_control(time, self.event_tab[i][3], self.event_tab[i][8], i) == True: + self.event_tab[i][7] = True + # Raise and Drop change + if self.event_tab[i][2] == 3: + if self.ChangeU_control(time, self.event_tab[i][3], self.event_tab[i][8], i) == True: + self.event_tab[i][7] = True + + def Drop_control(self, time, val, timeout, index): + #timeout control : to prevent multiple notifications with the same event + if timeout != 0: + timeout -= 1 + init_val = len(self.val_table) - 1 - int(time) + timeout + try: + maximum = max(self.val_table[init_val:len(self.val_table)-1]) + except: + init_val = len(self.val_table) - 1 - int(time) + maximum = max(self.val_table[init_val:len(self.val_table)-1]) + + if maximum >= self.val_table[len(self.val_table)-1] + ((val/100)*1024): + if self.GUI_on == False: + self.event_tab[index][8] = int(time) + else: + self.set_timeout(int(time)) + return True + else: + if self.GUI_on: + self.set_timeout(timeout) + else: + self.event_tab[index][8] = timeout + + def Raise_control(self, time, val, timeout, index): + if timeout != 0: + timeout -= 1 + init_val = len(self.val_table) - 1 - int(time) + timeout + try: + maximum = max(self.val_table[init_val:len(self.val_table)-1]) + except: + init_val = len(self.val_table) - 1 - int(time) + maximum = max(self.val_table[init_val:len(self.val_table)-1]) + + minimum = min(self.val_table[init_val:(len(self.val_table)-1)]) + if minimum <= self.val_table[len(self.val_table)-1] - ((val/100)*1024): + if self.GUI_on == False: + self.event_tab[index][8] = int(time) + else: + self.set_timeout(int(time)) + return True + else: + if self.GUI_on: + self.set_timeout(timeout) + else: + self.event_tab[index][8] = timeout + + def ChangeD_control(self, time, val, timeout, index): + if timeout != 0: + timeout -= 1 + init_val = len(self.val_table) - 1 - int(time) + timeout + try: + maximum = max(self.val_table[init_val:len(self.val_table)-1]) + except: + init_val = len(self.val_table) - 1 - int(time) + maximum = max(self.val_table[init_val:len(self.val_table)-1]) + + for i in range(int(time - timeout)): + if self.val_table[int(len(self.val_table)-1-i)] <= self.val_table[len(self.val_table) - 1] - ((val/100)*1024): + maximum = max(self.val_table[init_val:len(self.val_table) - i]) + if maximum >= self.val_table[len(self.val_table) - 1 - i] + val: + if self.GUI_on == False: + self.event_tab[index][8] = int(time) + else: + self.set_timeout(int(time)) + return True + if self.GUI_on: + self.set_timeout(timeout) + else: + self.event_tab[index][8] = timeout + return False + + + def ChangeU_control(self, time, val, timeout, index): + if timeout != 0: + timeout -= 1 + init_val = len(self.val_table) - 1 - int(time) + timeout + try: + maximum = max(self.val_table[init_val:len(self.val_table)-1]) + except: + init_val = len(self.val_table) - 1 - int(time) + maximum = max(self.val_table[init_val:len(self.val_table)-1]) + + for i in range(int(time - timeout)): + if self.val_table[int(len(self.val_table)-1-i)] >= self.val_table[len(self.val_table) - 1] + ((val/100)*1024): + minimum = min(self.val_table[init_val:len(self.val_table)-i]) + if minimum <= self.val_table[len(self.val_table) - 1 - i] - val: + if self.GUI_on == False: + self.event_tab[index][8] = int(time) + else: + self.set_timeout(int(time)) + return True + if self.GUI_on: + self.set_timeout(timeout) + else: + self.event_tab[index][8] = timeout + return False + + + ########################################################### + # + # Test functions + # + ########################################################### + def test_func(self): + if self.threshold_event != True: + #Decrease threshold control + if self.decrease: + if self.Decrease_control(self.val_threshold) == True: + self.threshold_event = True + #Increasing threshold control + if self.increase: + if self.Increase_control(self.val_threshold) == True: + self.threshold_event = True + #Both direction theshold control + if self.both: + if self.Both_control(self.val_threshold) == True: + self.threshold_event = True + + #Changements control + if self.change_event != True: + timeout = self.get_timeout() + # Drop change part : + if self.drop == True and self.val_drop_time > 0.0: + if self.Drop_control(self.drop_point, self.val_drop, timeout, 0) == True: + self.change_event = True + # Raise change part + if self.raising == True and self.val_raise_time > 0.0: + if self.Raise_control(self.raise_point, self.val_raise, timeout, 0) == True: + self.change_event = True + # Drop and Raise change + if self.changeD == True and self.val_changeD_time > 0.0: + if self.ChangeD_control(self.changeD_point, self.val_changeD, timeout, 0) == True: + self.change_event = True + # Raise and Drop change + if self.changeU == True and self.val_changeU_time > 0.0: + if self.ChangeU_control(self.changeU_point, self.val_changeU, timeout, 0) == True: + self.change_event = True + + + def test_notification(self): + if self.threshold_event == True: + if self.threshold_notified: + path = self.change_behavior + path = "'%s'" % path + if self.threshold_behavior_chk and os.path.isfile(self.threshold_behavior) and os.path.exists(self.threshold_behavior): + self.threshold_event = False + tux.sys.shell_free(path) + else: + self.threshold_event = False + thread.start_new_thread(self.test_default_behavior, (self.thresholdtext,)) + else: + self.threshold_event = False + + elif self.change_event == True: + if self.change_notified: + path = self.change_behavior + path = "'%s'" % path + if self.change_behavior_chk and os.path.isfile(self.change_behavior) and os.path.exists(self.change_behavior): + self.change_event = False + tux.sys.shell_free(path) + else: + self.change_event = False + thread.start_new_thread(self.test_default_behavior, (self.changetext,)) + else: + self.change_event = False + + def test_default_behavior(self, txt): + tux.cmd.mouth_open() + tux.tts.speak(txt) + tux.cmd.mouth_close() + + + ########################################################### + # + # Acquire + # + ########################################################### + def on_battery_level(self, args): + self.__on_battery_mutex.acquire() + if self.timecontrol <= time.time(): + self.timecontrol = time.time() + self.rate + val = (args[0] * 256) + args[1] + self.val_table.append(val) + self.val_table.pop(0) + if self.GUI_on: + self.graph_measure.refresh() + self.event_control() + self.__on_battery_mutex.release() + + + ########################################################### + # + # Timeout management + # + ########################################################### + def set_timeout(self, val): + self.__timeout_mutex.acquire() + self.timeout = val + self.__timeout_mutex.release() + + def get_timeout(self): + self.__timeout_mutex.acquire() + val = self.timeout + self.__timeout_mutex.release() + return val + + Added: software/gadgets/battery_monitor/trunk/Battery_monitor_svn/Scripts/Python/GUI/conf/other.glade =================================================================== (Binary files differ) Property changes on: software/gadgets/battery_monitor/trunk/Battery_monitor_svn/Scripts/Python/GUI/conf/other.glade ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: software/gadgets/battery_monitor/trunk/Battery_monitor_svn/Scripts/Python/GUI/conf/other.pyp =================================================================== --- software/gadgets/battery_monitor/trunk/Battery_monitor_svn/Scripts/Python/GUI/conf/other.pyp (rev 0) +++ software/gadgets/battery_monitor/trunk/Battery_monitor_svn/Scripts/Python/GUI/conf/other.pyp 2007-10-09 09:02:10 UTC (rev 590) @@ -0,0 +1,407 @@ +bindtextdomain("params", "") + +class Window(SimpleGladeApp): + def __init__(self, + path=_me.get_path('root') + '/Scripts/Python/GUI/conf/other.glade', + root="window1", + domain="params", **kwargs): + SimpleGladeApp.__init__(self, path, root, domain, **kwargs) + + + def new(self): + self.measure = _me.get_param('measure') + _me.insert_funct('refresh_tree', self.refresh_tree) + self.updates_commons() + self.make_viewtree() + self.update_labels() + + def updates_commons(self): + # Window title + txt = "%s : %s" % (_me.string('name_to_read'), + _me.string('gui_conf_window_title')) + self.get_widget("window1").set_title(txt) + + # About labels + txt = _me.string('gui_conf_about_title') + self.get_widget("label7").set_text(txt) + + txt = "%s : %s" % (_me.string('gui_conf_description_lb'), + _me.get_description()) + self.get_widget("label_description").set_text(txt) + + txt = "%s : %s" % (_me.string('gui_conf_author_lb'), + _me.get_author()) + self.get_widget("label_author").set_text(txt) + + txt = "%s : %s" % (_me.string('gui_conf_version_lb'), + _me.get_version()) + self.get_widget("label_version").set_text(txt) + + # Update Frame + txt = _me.string('gui_conf_update_title') + self.get_widget("label12").set_text(txt) + + txt = "%s : " % _me.string('gui_conf_delay_lb') + self.get_widget("label13").set_text(txt) + + value = _me.get_var('notify_delay') + self.get_widget("delay_spinbutton").set_value(value) + + # Bottom buttons + txt = _me.string('gui_conf_cancel_bt') + self.get_widget("label6").set_text(txt) + + txt = _me.string('gui_conf_accept_bt') + self.get_widget("label5").set_text(txt) + + self.get_widget('txt_conf_rate').set_text(str(_me.get_param('Rate'))) + self.get_widget('txt_conf_sample').set_text(str(_me.get_param('Sample'))) + + + ########################################################### + # + # Light configuration control + # + ########################################################### + def make_viewtree(self): + self.index_column = gtk.TreeViewColumn('Index') + self.index_column.set_min_width(50) + self.index_cell = gtk.CellRendererText() + self.index_column.pack_start(self.index_cell, True) + self.index_column.add_attribute(self.index_cell, 'text', 0) + + self.event_column = gtk.TreeViewColumn(_me.string('conf_lblEvent')) + self.event_column.set_min_width(100) + self.event_cell = gtk.CellRendererText() + self.event_column.pack_start(self.event_cell, True) + self.event_column.add_attribute(self.event_cell, 'text', 1) + + self.type_column = gtk.TreeViewColumn(_me.string('conf_lblType')) + self.type_column.set_min_width(100) + self.type_cell = gtk.CellRendererText() + self.type_column.pack_start(self.type_cell, True) + self.type_column.add_attribute(self.type_cell, 'text', 2) + + self.value_column = gtk.TreeViewColumn(_me.string('conf_lblValue')) + self.value_column.set_min_width(100) + self.value_cell = gtk.CellRendererText() + self.value_column.pack_start(self.value_cell, True) + self.value_column.add_attribute(self.value_cell, 'text', 3) + + self.time_column = gtk.TreeViewColumn(_me.string('conf_lblTime')) + self.time_column.set_min_width(100) + self.time_cell = gtk.CellRendererText() + self.time_column.pack_start(self.time_cell, True) + self.time_column.add_attribute(self.time_cell, 'text', 4) + + self.notified_column = gtk.TreeViewColumn(_me.string('conf_lblNotified')) + self.notified_column.set_min_width(100) + self.notified_cell = gtk.CellRendererText() + self.notified_column.pack_start(self.notified_cell, True) + self.notified_column.add_attribute(self.notified_cell, 'text', 5) + + self.behavior_column = gtk.TreeViewColumn(_me.string('conf_lblBehavior')) + self.behavior_cell = gtk.CellRendererText() + self.behavior_column.pack_start(self.behavior_cell, True) + self.behavior_column.add_attribute(self.behavior_cell, 'text', 6) + + self.value_list = gtk.TreeStore(int, str, str, str, str, str, str) + self.gadget_viewer = gtk.TreeView(self.value_list) + self.gadget_viewer.append_column(self.index_column) + self.gadget_viewer.append_column(self.event_column) + self.gadget_viewer.append_column(self.type_column) + self.gadget_viewer.append_column(self.value_column) + self.gadget_viewer.append_column(self.time_column) + self.gadget_viewer.append_column(self.notified_column) + self.gadget_viewer.append_column(self.behavior_column) + self.get_widget("scrolledwindow1").add(self.gadget_viewer) + self.get_widget("scrolledwindow1").set_size_request(0, 150) + self.get_widget("scrolledwindow1").show_all() + self.get_widget('cbb_conf_event').set_active(0) + self.get_widget('txt_conf_value').set_text('1.0') + self.get_widget('txt_conf_time').set_text('0.1') + self.gadget_viewer.connect("row_activated", self.on_row_selected) + self.measure.event_tab = _me.get_param('config') + self.get_widget('cbb_conf_event').append_text(_me.string('conf_lblChange')) + self.get_widget('cbb_conf_event').append_text(_me.string('conf_lblThreshold')) + self.get_widget('cbb_conf_event').set_active(0) + + for i in range(len(self.measure.event_tab)): + self.add_row(i) + + + ########################################################### + # + # Update the labels + # + ########################################################### + def update_labels(self): + self.get_widget("lbl_conf_event").set_text(_me.string('conf_lblEvent')) + self.get_widget("lbl_conf_type").set_text(_me.string('conf_lblType')) + self.get_widget("lbl_conf_value").set_text(_me.string('conf_lblValue')) + self.get_widget("lbl_conf_time").set_text(_me.string('conf_lblTime')) + self.get_widget("lbl_conf_notified").set_text(_me.string('conf_lblNotified')) + self.get_widget("lbl_conf_behavior").set_text(_me.string('conf_lblBehavior')) + self.get_widget("btn_conf_add").set_label(_me.string('conf_btnAdd')) + self.get_widget("btn_conf_remove").set_label(_me.string('conf_btnRemove')) + self.get_widget("btn_conf_modify").set_label(_me.string('conf_btnModify')) + self.get_widget("btnBehavior").set_label(_me.string('conf_btnBehavior')) + self.get_widget("lbl_conf_sample").set_text(_me.string('conf_lblSample')) + self.get_widget("lbl_conf_rate").set_text(_me.string('conf_lblRate')) + self.get_widget("lblControlFrame").set_text(_me.string('conf_lblControl')) + + + ########################################################### + # + # On row selected + # + ########################################################### + def on_row_selected(self, treeview, path, view_column): + self.iter = self.value_list.get_iter(path) + index = self.value_list.get_value(self.iter, 0) + event = self.value_list.get_value(self.iter, 1) + typet = self.value_list.get_value(self.iter, 2) + value = self.value_list.get_value(self.iter, 3) + time = self.value_list.get_value(self.iter, 4) + notify = self.value_list.get_value(self.iter, 5) + behavior = self.value_list.get_value(self.iter, 6) + + if event == _me.string('conf_lblChange'): + self.get_widget('cbb_conf_event').set_active(0) + if typet == _me.string('conf_lblDrop'): + self.get_widget('cbb_conf_type').set_active(0) + if typet == _me.string('conf_lblRaise'): + self.get_widget('cbb_conf_type').set_active(1) + if typet == _me.string('conf_lblChangeD'): + self.get_widget('cbb_conf_type').set_active(2) + if typet == _me.string('conf_lblChangeU'): + self.get_widget('cbb_conf_type').set_active(3) + self.get_widget('txt_conf_value').set_text(value) + self.get_widget('txt_conf_time').set_text(time) + + else: + self.get_widget('cbb_conf_event').set_active(1) + if typet == _me.string('conf_lblIncrease'): + self.get_widget('cbb_conf_type').set_active(0) + if typet == _me.string('conf_lblDecrease'): + self.get_widget('cbb_conf_type').set_active(1) + if typet == _me.string('conf_lblBoth'): + self.get_widget('cbb_conf_type').set_active(2) + + self.get_widget('txt_conf_value').set_text(value) + self.get_widget('txt_conf_time').set_text('') + + if notify == _me.string('conf_lblNotifiedBehavior'): + self.get_widget('chk_conf_notified').set_active(True) + else: + self.get_widget('chk_conf_notified').set_active(False) + + if behavior != 'N.A.': + self.get_widget('conf_behavior').set_filename(behavior) + else: + self.get_widget('conf_behavior').set_filename('None') + + + ########################################################### + # + # On row modified + # + ########################################################### + def on_btn_conf_modify_clicked(self, widget, *args): + index = self.value_list.get_value(self.iter, 0) + + self.measure.event_tab = _me.get_param('config') + length = len(_me.get_param('config')) + self.verify_value() + + value = [] + value = [index, + self.get_widget('cbb_conf_event').get_active(), + self.get_widget('cbb_conf_type').get_active(), + float(self.get_widget('txt_conf_value').get_text()), + float(self.get_widget('txt_conf_time').get_text()), + self.get_widget('chk_conf_notified').get_active(), + str(self.get_widget('conf_behavior').get_filename()), + False, + 0] + self.measure.event_tab = _me.get_param('config') + self.measure.event_tab[(index-1)] = value + _me.set_param('config', self.measure.event_tab) + self.value_list.clear() + for i in range(len(self.measure.event_tab)): + self.add_row(i) + + ########################################################### + # + # On row deleted + # + ########################################################### + def on_btn_conf_remove_clicked(self, widget, *args): + index = self.value_list.get_value(self.iter, 0) + self.measure.event_tab =_me.get_param('config') + self.measure.event_tab.pop(index - 1) + _me.set_param('config', self.measure.event_tab) + self.iter = 0 + self.value_list.clear() + for i in range(len(self.measure.event_tab)): + self.add_row(i) + + ########################################################### + # + # On row added + # + ########################################################### + def on_btn_conf_add_clicked(self, widget, *args): + length = len(_me.get_param('config')) + self.verify_value() + value = [] + value = [(length + 1), + self.get_widget('cbb_conf_event').get_active(), + self.get_widget('cbb_conf_type').get_active(), + float(self.get_widget('txt_conf_value').get_text()), + float(self.get_widget('txt_conf_time').get_text()), + self.get_widget('chk_conf_notified').get_active(), + str(self.get_widget('conf_behavior').get_filename()), + False, + 0] + self.measure.event_tab = _me.get_param('config') + self.measure.event_tab.append(value) + self.refresh_tree() + + def refresh_tree(self): + _me.set_param('config', self.measure.event_tab) + self.value_list.clear() + for i in range(len(self.measure.event_tab)): + self.add_row(i) + + ########################################################### + # + # Add row function + # + ########################################################### + def add_row(self, tab_index): + self.measure.event_tab = _me.get_param('config') + i = tab_index + + if self.measure.event_tab[i][1] == 0: + Event = _me.string('conf_lblChange') + if self.measure.event_tab[i][2] == 0: + Type = _me.string('conf_lblDrop') + elif self.measure.event_tab[i][2] == 1: + Type = _me.string('conf_lblRaise') + elif self.measure.event_tab[i][2] == 2: + Type = _me.string('conf_lblChangeD') + elif self.measure.event_tab[i][2] == 3: + Type = _me.string('conf_lblChangeU') + Value = str(self.measure.event_tab[i][3]) + Time = str(self.measure.event_tab[i][4]) + else: + Event = _me.string('conf_lblThreshold') + if self.measure.event_tab[i][2] == 0: + Type = _me.string('conf_lblIncrease') + elif self.measure.event_tab[i][2] == 1: + Type = _me.string('conf_lblDecrease') + elif self.measure.event_tab[i][2] == 2: + Type = _me.string('conf_lblBoth') + Value = str(self.measure.event_tab[i][3]) + Time = 'N.A.' + + if self.measure.event_tab[i][5]: + Notify = _me.string('conf_lblNotifiedBehavior') + if self.measure.event_tab[i][6] ==None: + Behavior = _me.string('conf_lblDefaultBehavior') + else: + Behavior = str(self.measure.event_tab[i][6]) + else: + Notify = _me.string('conf_lblNotNotified') + Behavior = 'N.A.' + + self.value_list.append(None,[(i+1), Event, Type, Value, Time, Notify, Behavior]) + + ########################################################### + # + # On combo box event + # + ########################################################### + def on_cbb_conf_event_changed(self, widget, *args): + if self.get_widget('cbb_conf_event').get_active() == 0: + for i in range (4): + self.get_widget('cbb_conf_type').remove_text(0) + self.get_widget('cbb_conf_type').append_text(_me.string('conf_lblDrop')) + self.get_widget('cbb_conf_type').append_text(_me.string('conf_lblRaise')) + self.get_widget('cbb_conf_type').append_text(_me.string('conf_lblChangeD')) + self.get_widget('cbb_conf_type').append_text(_me.string('conf_lblChangeU')) + self.get_widget('cbb_conf_type').set_active(0) + else: + for i in range (4): + self.get_widget('cbb_conf_type').remove_text(0) + self.get_widget('cbb_conf_type').append_text(_me.string('conf_lblIncrease')) + self.get_widget('cbb_conf_type').append_text(_me.string('conf_lblDecrease')) + self.get_widget('cbb_conf_type').append_text(_me.string('conf_lblBoth')) + self.get_widget('cbb_conf_type').set_active(0) + + + ########################################################### + # + # On accept button clicked + # + ########################################################### + def on_accept_clicked(self, widget, *args): + _me.set_param('Rate', float(self.get_widget('txt_conf_rate').get_text())) + _me.set_param('Sample',float(self.get_widget('txt_conf_sample').get_text())) + self.measure.rate = _me.get_param('Rate') + self.measure.sample = _me.get_param('Sample') + + _me.set_var('notify_delay', int(self.get_widget("delay_spinbutton").get_value())) + + self.get_widget("window1").destroy() + + + ########################################################### + # + # On cancel button clicked + # + ########################################################### + def on_cancel_clicked(self, widget, *args): + self.get_widget("window1").destroy() + + ########################################################### + # + # On Clear path button clicked + # + ########################################################### + def on_btnBehavior_clicked(self, widget, *args): + self.get_widget('conf_behavior').set_filename('None') + index = self.value_list.get_value(self.iter, 0) + self.measure.event_tab[index-1][6] = None + + self.value_list.clear() + for i in range(len(self.measure.event_tab)): + self.add_row(i) + + ########################################################### + # + # Verify the value + # + ########################################################### + def verify_value(self): + try: + float(self.get_widget('txt_conf_time').get_text()) + except: + self.get_widget('txt_conf_time').set_text('1.0') + + if float(self.get_widget('txt_conf_time').get_text()) < 1.0: + self.get_widget('txt_conf_time').set_text('1.0') + if float(self.get_widget('txt_conf_time').get_text()) > self.measure.rate * self.measure.sample: + self.get_widget('txt_conf_time').set_text(str(self.measure.rate * self.measure.sample)) + + try: + float(self.get_widget('txt_conf_value').get_text()) + except: + self.get_widget('txt_conf_value').set_text('1') + + if float(self.get_widget('txt_conf_value').get_text()) < 1: + self.get_widget('txt_conf_value').set_text('1') + if float(self.get_widget('txt_conf_value').get_text()) > 100: + self.get_widget('txt_conf_value').set_text('100') + Added: software/gadgets/battery_monitor/trunk/Battery_monitor_svn/Scripts/Python/GUI/widget/other.glade =================================================================== (Binary files differ) Property changes on: software/gadgets/battery_monitor/trunk/Battery_monitor_svn/Scripts/Python/GUI/widget/other.glade ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: software/gadgets/battery_monitor/trunk/Battery_monitor_svn/Scripts/Python/GUI/widget/other.pyp =================================================================== --- software/gadgets/battery_monitor/trunk/Battery_monitor_svn/Scripts/Python/GUI/widget/other.pyp (rev 0) +++ software/gadgets/battery_monitor/trunk/Battery_monitor_svn/Scripts/Python/GUI/widget/other.pyp 2007-10-09 09:02:10 UTC (rev 590) @@ -0,0 +1,318 @@ +bindtextdomain("params", "") +sys.path.append(_me.get_path('root') + '/Scripts/Python') +from Battery_class import Graph + +class Window(SimpleGladeApp): + + def __init__(self, + path=_me.get_path('root') + '/Scripts/Python/GUI/widget/other.glade', + root="window1", + domain="params", **kwargs): + SimpleGladeApp.__init__(self, path, root, domain, **kwargs) + + ########################################################### + # + # Display the new window + # + ########################################################### + def new(self): + #Fill the text box with the previous values + self.get_widget("valDrop_percent").set_text(str(_me.get_param('drop'))) + self.get_widget("valRaise_percent").set_text(str(_me.get_param('raise'))) + self.get_widget("valChangeU_percent").set_text(str(_me.get_param('changeU'))) + self.get_widget("valChangeD_percent").set_text(str(_me.get_param('changeD'))) + self.get_widget("valDrop_time").set_text(str(_me.get_param('drop_time'))) + self.get_widget("valRaise_time").set_text(str(_me.get_param('raise_time'))) + self.get_widget("valChangeD_time").set_text(str(_me.get_param('changeD_time'))) + self.get_widget("valChangeU_time").set_text(str(_me.get_param('changeU_time'))) + self.get_widget("valThreshold").set_text(str(_me.get_param('threshold'))) + self.get_widget("txtRate").set_text(str(_me.get_param('Rate'))) + self.get_widget("txtSample").set_text(str(_me.get_param('Sample'))) + + #Restore the previous radio button status + self.get_widget('radDrop').set_active(_me.get_param('drop_rad')) + self.get_widget('radRaise').set_active(_me.get_param('raise_rad')) + self.get_widget('radChangeD').set_active(_me.get_param('changeD_rad')) + self.get_widget('radChangeU').set_active(_me.get_param('changeU_rad')) + self.get_widget('radIncrease').set_active(_me.get_param('increase_rad')) + self.get_widget('radDecrease').set_active(_me.get_param('decrease_rad')) + self.get_widget('radBoth').set_active(_me.get_param('both_rad')) + + #Restore the check boxes + self.get_widget('chkThreshold').set_active(_me.get_param('threshold_chk')) + self.get_widget('chk_ThresholdBehavior').set_active(_me.get_param('chk_ThresholdBehavior')) + self.get_widget('chk_ChangeBehavior').set_active(_me.get_param('chk_ChangeBehavior')) + self.get_widget("window1").set_title(_me.string('name_to_read')) + + #Set the labels + self.get_widget("radBoth").set_label(_me.string('widget_lblBoth')) + self.get_widget("lblBtnApply").set_text(_me.string('widget_lblBtnApply')) + self.get_widget("lblChange").set_text(_me.string('widget_lblChange')) + self.get_widget("radChangeD").set_label(_me.string('widget_lblChangeD')) + self.get_widget("radChangeU").set_label(_me.string('widget_lblChangeU')) + self.get_widget("radDecrease").set_label(_me.string('widget_lblDecrease')) + self.get_widget("radDrop").set_label(_me.string('widget_lblDrop')) + self.get_widget("lblEventChange").set_text(_me.string('widget_lblEvent')) + self.get_widget("lblEventThreshold").set_text(_me.string('widget_lblEvent')) + self.get_widget("radIncrease").set_label(_me.string('widget_lblIncrease')) + self.get_widget("radRaise").set_label(_me.string('widget_lblRaise')) + self.get_widget("lblThreshold").set_text(_me.string('widget_lblThreshold')) + self.get_widget("lblValue").set_text(_me.string('widget_lblValue')) + self.get_widget("lblControl").set_text(_me.string('widget_lblControl')) + self.get_widget("chkThreshold").set_label(_me.string('widget_lblDisplayThreshold')) + self.get_widget('chk_ThresholdBehavior').set_label(_me.string('widget_lblBehavior')) + self.get_widget('chk_ChangeBehavior').set_label(_me.string('widget_lblBehavior')) + self.get_widget('chkChangeNotified').set_label(_me.string('widget_lblNotified')) + self.get_widget('chkThresholdNotified').set_label(_me.string('widget_lblNotified')) + self.get_widget("lblRate").set_text(_me.string('gui_conf_rate_lb')) + self.get_widget("lblSample").set_text(_me.string('gui_conf_sample_lb')) + self.get_widget("lblBtnDark").set_label(_me.string('widget_lblDark')) + self.get_widget("lblBtnLight").set_label(_me.string('widget_lblLight')) + self.get_widget("btnSet").set_label(_me.string('widget_lblSet')) + + for i in range (7): + self.get_widget('cbbConfig').remove_text(0) + self.get_widget('cbbConfig').append_text(_me.string('conf_lblDrop')) + self.get_widget('cbbConfig').append_text(_me.string('conf_lblRaise')) + self.get_widget('cbbConfig').append_text(_me.string('conf_lblChangeD')) + self.get_widget('cbbConfig').append_text(_me.string('conf_lblChangeU')) + self.get_widget('cbbConfig').append_text(_me.string('conf_lblIncrease')) + self.get_widget('cbbConfig').append_text(_me.string('conf_lblDecrease')) + self.get_widget('cbbConfig').append_text(_me.string('conf_lblBoth')) + self.get_widget('cbbConfig').set_active(0) + thread.start_new_thread(self.update, ()) + + ########################################################### + # + # Update the values + # + ########################################################### + def update_value(self): + #Rate + _me.set_param('Rate', self.measure.rate) + self.get_widget("txtRate").set_text(str(_me.get_param('Rate'))) + + #Sample + _me.set_param('Sample', self.measure.sample) + self.get_widget("txtSample").set_text(str(_me.get_param('Sample'))) + + #Drop + _me.set_param('drop', self.measure.val_drop) + self.get_widget("valDrop_percent").set_text(str(_me.get_param('drop'))) + _me.set_param('drop_time', self.measure.val_drop_time) + self.get_widget("valDrop_time").set_text(str(_me.get_param('drop_time'))) + + #Raise + _me.set_param('raise', self.measure.val_raise) + self.get_widget("valRaise_percent").set_text(str(_me.get_param('raise'))) + _me.set_param('raise_time', self.measure.val_raise_time) + self.get_widget("valRaise_time").set_text(str(_me.get_param('raise_time'))) + + #Drop and raise + _me.set_param('changeD', self.measure.val_changeD) + self.get_widget("valChangeD_percent").set_text(str(_me.get_param('changeD'))) + _me.set_param('changeD_time', self.measure.val_changeD_time) + self.get_widget("valChangeD_time").set_text(str(_me.get_param('changeD_time'))) + + #Raise and drop + _me.set_param('changeU', self.measure.val_changeU) + self.get_widget("valChangeU_percent").set_text(str(_me.get_param('changeU'))) + _me.set_param('changeU_time', self.measure.val_changeU_time) + self.get_widget("valChangeU_time").set_text(str(_me.get_param('changeU_time'))) + + #Threshold + _me.set_param('threshold', self.measure.val_threshold) + self.get_widget("valThreshold").set_text(str(_me.get_param('threshold'))) + + self.measure.change_control() + + #update the radio button status + self.measure.drop = _me.get_param('drop_rad') + self.measure.raising = _me.get_param('raise_rad') + self.measure.changeD = _me.get_param('changeD_rad') + self.measure.changeU = _me.get_param('changeU_rad') + self.measure.increase = _me.get_param('increase_rad') + self.measure.decrease = _me.get_param('decrease_rad') + self.measure.both = _me.get_param('both_rad') + + self.measure.changetext = _me.string('conf_lblChange') + self.measure.thresholdtext = _me.string('conf_lblThreshold') + # '' the check boxes + self.measure.change_notified = _me.get_param('change_notified') + self.measure.threshold_notified = _me.get_param('threshold_notified') + self.measure.threshold_chk = _me.get_param('threshold_chk') + self.measure.threshold_behavior_chk = _me.get_param('chk_ThresholdBehavior') + self.measure.change_behavior_chk = _me.get_param('chk_ChangeBehavior') + + + + + + ########################################################### + # + # Event functions + # + ########################################################### + def on_window1_destroy(self, widget, *args): + _me.get_param('measure').GUI_on = False + self.measure.GUI_on = False + + + + def on_btnSet_clicked(self, widget, *args): + + if self.measure.threshold_behavior_chk: + threshold_script = self.measure.threshold_behavior + else: + threshold_script = None + + if self.measure.change_behavior_chk: + change_script = self.measure.change_behavior + else: + change_script = None + + if self.get_widget('cbbConfig').get_active() == 0: + val = [len(self.measure.event_tab)+1, 0, 0, + self.measure.val_drop, + self.measure.val_drop_time, + self.measure.change_notified, + change_script, + False, + 0] + elif self.get_widget('cbbConfig').get_active() == 1: + val = [len(self.measure.event_tab)+1, 0, 1, + self.measure.val_raise, + self.measure.val_raise_time, + self.measure.change_notified, + change_script, + False, + 0] + elif self.get_widget('cbbConfig').get_active() == 2: + val = [len(self.measure.event_tab)+1, 0, 2, + self.measure.val_changeD, + self.measure.val_changeD_time, + self.measure.change_notified, + change_script, + False, + 0] + elif self.get_widget('cbbConfig').get_active() == 3: + val = [len(self.measure.event_tab)+1, 0, 3, + self.measure.val_changeU, + self.measure.val_changeU_time, + self.measure.change_notified, + change_script, + False, + 0] + elif self.get_widget('cbbConfig').get_active() == 4: + val = [len(self.measure.event_tab)+1, 1, 0, + self.measure.val_threshold, + 0, + self.measure.threshold_notified, + threshold_script, + False, + 0] + elif self.get_widget('cbbConfig').get_active() == 5: + val = [len(self.measure.event_tab)+1, 1, 1, + self.measure.val_threshold, + 0, + self.measure.threshold_notified, + threshold_script, + False, + 0] + elif self.get_widget('cbbConfig').get_active() == 6: + val = [len(self.measure.event_tab)+1, 1, 2, + self.measure.val_threshold, + 0, + self.measure.threshold_notified, + threshold_script, + False, + 0] + self.measure.event_tab.append(val) + refresh_tree = _me.get_funct('refresh_tree') + + refresh_tree() + + def on_btnApply_clicked(self, widget, *args): + #Store the new radio buttons status + _me.set_param('drop_rad', self.get_widget('radDrop').get_active()) + _me.set_param('raise_rad', self.get_widget('radRaise').get_active()) + _me.set_param('changeD_rad', self.get_widget('radChangeD').get_active()) + _me.set_param('changeU_rad', self.get_widget('radChangeU').get_active()) + _me.set_param('increase_rad', self.get_widget('radIncrease').get_active()) + _me.set_param('decrease_rad', self.get_widget('radDecrease').get_active()) + _me.set_param('both_rad', self.get_widget('radBoth').get_active()) + _me.set_param('threshold_chk', self.get_widget('chkThreshold').get_active()) + _me.set_param('chk_ThresholdBehavior', self.get_widget('chk_ThresholdBehavior').get_active()) + _me.set_param('threshold_notified', self.get_widget('chkThresholdNotified').get_active()) + _me.set_param('change_notified', self.get_widget('chkChangeNotified').get_active()) + _me.set_param('chk_ChangeBehavior', self.get_widget('chk_ChangeBehavior').get_active()) + + temp_rate = self.check_float_value(self.get_widget('txtRate').get_text(), 1, 3600) + temp_sample = self.check_float_value(self.get_widget('txtSample').get_text(), 1, 100000) + #sample and rate param + if temp_rate != self.measure.rate or temp_sample != self.measure.sample: + self.measure.rate = temp_rate + self.measure.sample = temp_sample + self.measure.val_table = [0] * (int(self.measure.sample)+1) + + + max_time = self.measure.rate * self.measure.sample + + self.measure.val_drop = self.check_float_value(self.get_widget('valDrop_percent').get_text(), 1, 100) + self.measure.val_drop_time = self.check_float_value(self.get_widget('valDrop_time').get_text(), self.measure.rate, max_time) + self.measure.val_raise = self.check_float_value(self.get_widget('valRaise_percent').get_text(), 1, 100) + self.measure.val_raise_time = self.check_float_value(self.get_widget('valRaise_time').get_text(), self.measure.rate, max_time) + self.measure.val_changeD = self.check_float_value(self.get_widget('valChangeD_percent').get_text(), 1, 100) + self.measure.val_changeD_time = self.check_float_value(self.get_widget('valChangeD_time').get_text(), self.measure.rate, max_time) + self.measure.val_changeU = self.check_float_value(self.get_widget('valChangeU_percent').get_text(), 1, 100) + self.measure.val_changeU_time = self.check_float_value(self.get_widget('valChangeU_time').get_text(), self.measure.rate, max_time) + self.measure.val_threshold = self.check_float_value(self.get_widget('valThreshold').get_text(), 0, 100) + + #Update values + self.update_value() + + def on_threshold_selection_changed(self, widget, *args): + filename = widget.get_filename() + filename = filename.replace('%20', ' ') + _me.set_param('behavior_file_threshold', filename) + _me.get_param('measure').threshold_behavior = _me.get_param('behavior_file_threshold') + + def on_change_selection_changed(self, widget, *args): + filename = widget.get_filename() + filename = filename.replace('%20', ' ') + _me.set_param('behavior_file_change', filename) + _me.get_param('measure').change_behavior = _me.get_param('behavior_file_change') + + ########################################################### + # + # Value integrity control + # + ########################################################### + def check_float_value(self, value, minimum, maximum): + try: + value = float(value) + except: + value = float(minimum) + + if value < float(minimum): + value = float(minimum) + elif value > float(maximum): + value = float(maximum) + return value + + def update(self): + self.graph = Graph() + _me.set_param('graph', self.graph) + _me.update_informations() + self.measure = _me.get_param('measure') + _me.get_param('measure').graph_measure = self.graph + _me.get_param('graph').measure_graph = self.measure + _me.get_param('measure').GUI_on = True + self.update_value() + self.graph.set_size_request(600, 300) + gtk.gdk.threads_enter() + layout = self.get_widget('vbox2') + layout.add(self.graph) + layout.show_all() + gtk.gdk.threads_leave() + Added: software/gadgets/battery_monitor/trunk/Battery_monitor_svn/Scripts/Python/init.pyp =================================================================== --- software/gadgets/battery_monitor/trunk/Battery_monitor_svn/Scripts/Python/init.pyp (rev 0) +++ software/gadgets/battery_monitor/trunk/Battery_monitor_svn/Scripts/Python/init.pyp 2007-10-09 09:02:10 UTC (rev 590) @@ -0,0 +1,57 @@ +sys.path.append(_me.get_path('root') + '/Scripts/Python') +try: + from Battery_class import Measure +except: + print sys.exc_info() + + +measure = Measure() +_me.set_param('measure', measure) + +#update the values +measure.val_drop = float(_me.get_param('drop')) +measure.val_raise = float(_me.get_param('raise')) +measure.val_changeD = float(_me.get_param('changeD')) +measure.val_changeU = float(_me.get_param('changeU')) +measure.val_drop_time = float(_me.get_param('drop_time')) +measure.val_raise_time = float(_me.get_param('raise_time')) +measure.val_changeD_time = float(_me.get_param('changeD_time')) +measure.val_changeU_time = float(_me.get_param('changeU_time')) +measure.val_threshold = float(_me.get_param('... [truncated message content] |