Public bug reported: Hello,
The CPUs load values are incorrect. Morever screenlets.sensors.cpu_get_cpu_load() is not implemented in a good way. I corrected the code directly in the applet code : here is the diff. There is also a hack to reserve space (but only works if the applet is on the right of the screen). 34d33 < import commands 45,48d43 < < last_total_time = [0,0,0,0] < last_idle_time = [0,0,0,0] < 238,245d232 < #reserve space < print "reserve space" < #self.window.window.property_change('_NET_WM_STRUT_PARTIAL', 'CARDINAL', 32, gtk.gdk.PROP_MODE_REPLACE, [ int((self.width *self.scale)), 0, 0, 0, 0, int((self.width *self.scale)), 0, 0, 0, 0, 0, 0]) < self.window.window.property_change("_NET_WM_STRUT", "CARDINAL", 32, < gtk.gdk.PROP_MODE_REPLACE, [0, int((self.width *self.scale)), 0, 0]) < < < 261,285d247 < def get_cpu_loads(self): < #print "truc" < for i in range (0,self.cpu_nb): < line = commands.getoutput("cat /proc/stat|grep cpu"+str(i)) < ss = line.split(); < < user_time = int(ss[1]) < #print str(user_time) + " " + ss[1] < nice_time = int(ss[2]) < system_time = int(ss[3]) < idle_time = int(ss[4]) < < idle_time = idle_time + nice_time < total_time = idle_time + user_time + system_time < < total_elapsed=total_time - last_total_time[i] < last_total_time[i]=total_time < idle_elapsed=idle_time - last_idle_time[i] < last_idle_time[i]=idle_time < < self.cpu_load[i] = 100 - 100 * idle_elapsed / total_elapsed < #if i==0 : < # print self.cpu_load[i] < < 304,314c266,275 < self.get_cpu_loads(); < # for i in range (0,self.cpu_nb): #Sets CPU info# < # self.new_cpu[i]=sensors.cpu_get_load(i#) < # < # self.cpu_load[i] = self.update_interval #(self.new_cpu[i]-self.old_cpu[i]) #*1.0/(1.0*self._update_interval) < # < # self.old_cpu[i] = self.new_cpu[i] < # try: < # if self.cpu_load[i] > 99: self.cpu_load[i] = 99 < # elif self.cpu_load[i] < 0: self.cpu_load[i]=0 < # except : pass --- > for i in range (0,self.cpu_nb): #Sets CPU info > self.new_cpu[i]=sensors.cpu_get_load(i) > > self.cpu_load[i] = > (self.new_cpu[i]-self.old_cpu[i])/self.update_interval > > self.old_cpu[i] = self.new_cpu[i] > try: > if self.cpu_load[i] > 99: > self.cpu_load[i] = 99 > elif self.cpu_load[i] < 0: > self.cpu_load[i]=0 > except : pass 343c304 < #self.get_variables() --- > self.get_variables() ** Affects: screenlets Importance: Undecided Status: New -- You received this bug notification because you are a member of Screenlets Dev Team, which is subscribed to Screenlets. https://bugs.launchpad.net/bugs/1040713 Title: CPUs load values are incorrect on Sysmonitor applet To manage notifications about this bug go to: https://bugs.launchpad.net/screenlets/+bug/1040713/+subscriptions _______________________________________________ Mailing list: https://launchpad.net/~screenlets-dev Post to : screenlets-dev@lists.launchpad.net Unsubscribe : https://launchpad.net/~screenlets-dev More help : https://help.launchpad.net/ListHelp