From 09bd18e5a1ddf4703fd25932b0884ea6978e9196 Mon Sep 17 00:00:00 2001 From: Chillance Date: Sat, 24 Mar 2012 16:32:24 +0100 Subject: [PATCH] Renamed Ex1 to Ex0 and Ex2 to Ex1 to better match what is said on RAMPS for instance. Changed order to draw the target line first, and then the actual line so this line is shown above the target line. Graying out graph when it's offline. --- graph.py | 93 +++++++++++++++++++++++++++----------------------- pronterface.py | 8 ++--- 2 files changed, 55 insertions(+), 46 deletions(-) diff --git a/graph.py b/graph.py index 71fdb7b..d96675f 100644 --- a/graph.py +++ b/graph.py @@ -32,10 +32,10 @@ class Graph(BufferedCanvas): self.SetSize(wx.Size(170, 100)) + self.extruder0temps = [0] + self.extruder0targettemps = [0] self.extruder1temps = [0] self.extruder1targettemps = [0] - self.extruder2temps = [0] - self.extruder2targettemps = [0] self.bedtemps = [0] self.bedtargettemps = [0] @@ -45,7 +45,7 @@ class Graph(BufferedCanvas): self.maxyvalue = 250 self.ybars = 5 self.xbars = 6 # One bar per 10 second - self.xsteps = 60 # Covering One minute in the graph + self.xsteps = 60 # Covering 1 minute in the graph self.y_offset = 1 # This is to show the line even when value is 0 and maxyvalue @@ -70,10 +70,10 @@ class Graph(BufferedCanvas): def updateTemperatures(self, event): self.AddBedTemperature(self.bedtemps[-1]) self.AddBedTargetTemperature(self.bedtargettemps[-1]) - self.AddExtruder1Temperature(self.extruder1temps[-1]) - self.AddExtruder1TargetTemperature(self.extruder1targettemps[-1]) - #self.AddExtruder2Temperature(self.extruder2temps[-1]) - #self.AddExtruder2TargetTemperature(self.extruder2targettemps[-1]) + self.AddExtruder0Temperature(self.extruder0temps[-1]) + self.AddExtruder0TargetTemperature(self.extruder0targettemps[-1]) + #self.AddExtruder1Temperature(self.extruder1temps[-1]) + #self.AddExtruder1TargetTemperature(self.extruder1targettemps[-1]) self.Refresh() @@ -131,7 +131,11 @@ class Graph(BufferedCanvas): #dc.SetPen(wx.Pen(wx.Colour(255,0,0,0), 1)) def drawtemperature(self, dc, gc, temperature_list, text, text_xoffset, r, g, b, a): - dc.SetPen(wx.Pen(wx.Colour(r,g,b,a), 1)) + if self.timer.IsRunning() == False: + dc.SetPen(wx.Pen(wx.Colour(128,128,128,128), 1)) + else: + dc.SetPen(wx.Pen(wx.Colour(r,g,b,a), 1)) + x_add = float(self.width)/self.xsteps x_pos = float(0.0) lastxvalue = float(0.0) @@ -140,6 +144,7 @@ class Graph(BufferedCanvas): y_pos = int((float(self.height-self.y_offset)/self.maxyvalue)*temperature) + self.y_offset if (x_pos > 0.0): # One need 2 points to draw a line. dc.DrawLine(lastxvalue,self.height-self._lastyvalue, x_pos, self.height-y_pos) + lastxvalue = x_pos x_pos = float(x_pos) + x_add self._lastyvalue = y_pos @@ -147,7 +152,11 @@ class Graph(BufferedCanvas): if len(text) > 0: font = wx.Font(8, wx.DEFAULT, wx.NORMAL, wx.BOLD) #font = wx.Font(8, wx.DEFAULT, wx.NORMAL, wx.NORMAL) - gc.SetFont(font, wx.Colour(r,g,b)) + if self.timer.IsRunning() == False: + gc.SetFont(font, wx.Colour(128,128,128)) + else: + gc.SetFont(font, wx.Colour(r,g,b)) + #gc.DrawText(text, self.width - (font.GetPointSize() * ((len(text) * text_xoffset + 1))), self.height - self._lastyvalue - (font.GetPointSize() / 2)) gc.DrawText(text, x_pos - x_add - (font.GetPointSize() * ((len(text) * text_xoffset + 1))), self.height - self._lastyvalue - (font.GetPointSize() / 2)) #gc.DrawText(text, self.width - (font.GetPixelSize().GetWidth() * ((len(text) * text_xoffset + 1) + 1)), self.height - self._lastyvalue - (font.GetPointSize() / 2)) @@ -160,18 +169,18 @@ class Graph(BufferedCanvas): self.drawtemperature(dc, gc, self.bedtargettemps, "Bed Target",2, 255,120,0, 128) + def drawextruder0temp(self, dc, gc): + self.drawtemperature(dc, gc, self.extruder0temps, "Ex0",1, 0,155,255, 128) + + def drawextruder0targettemp(self, dc, gc): + self.drawtemperature(dc, gc, self.extruder0targettemps, "Ex0 Target",2, 0,5,255, 128) + + def drawextruder1temp(self, dc, gc): - self.drawtemperature(dc, gc, self.extruder1temps, "Ex1",1, 0,155,255, 128) + self.drawtemperature(dc, gc, self.extruder1temps, "Ex1",3, 55,55,0, 128) def drawextruder1targettemp(self, dc, gc): - self.drawtemperature(dc, gc, self.extruder1targettemps, "Ex1 Target",2, 0,5,255, 128) - - - def drawextruder2temp(self, dc, gc): - self.drawtemperature(dc, gc, self.extruder2temps, "Ex2",3, 55,55,0, 128) - - def drawextruder2targettemp(self, dc, gc): - self.drawtemperature(dc, gc, self.extruder2targettemps, "Ex2 Target",2, 55,55,0, 128) + self.drawtemperature(dc, gc, self.extruder1targettemps, "Ex1 Target",2, 55,55,0, 128) def SetBedTemperature(self, value): @@ -194,6 +203,26 @@ class Graph(BufferedCanvas): self.bedtargettemps.pop(0) + def SetExtruder0Temperature(self, value): + self.extruder0temps.pop() + self.extruder0temps.append(value) + + def AddExtruder0Temperature(self, value): + self.extruder0temps.append(value) + if (len(self.extruder0temps)-1) * float(self.width)/self.xsteps > self.width: + self.extruder0temps.pop(0) + + + def SetExtruder0TargetTemperature(self, value): + self.extruder0targettemps.pop() + self.extruder0targettemps.append(value) + + def AddExtruder0TargetTemperature(self, value): + self.extruder0targettemps.append(value) + if (len(self.extruder0targettemps)-1) * float(self.width)/self.xsteps > self.width: + self.extruder0targettemps.pop(0) + + def SetExtruder1Temperature(self, value): self.extruder1temps.pop() self.extruder1temps.append(value) @@ -214,26 +243,6 @@ class Graph(BufferedCanvas): self.extruder1targettemps.pop(0) - def SetExtruder2Temperature(self, value): - self.extruder2temps.pop() - self.extruder2temps.append(value) - - def AddExtruder2Temperature(self, value): - self.extruder2temps.append(value) - if (len(self.extruder2temps)-1) * float(self.width)/self.xsteps > self.width: - self.extruder2temps.pop(0) - - - def SetExtruder2TargetTemperature(self, value): - self.extruder2targettemps.pop(0) - self.extruder2targettemps.append(value) - - def AddExtruder2TargetTemperature(self, value): - self.extruder2targettemps.append(value) - if (len(self.extruder2targettemps)-1) * float(self.width)/self.xsteps > self.width: - self.extruder2targettemps.pop(0) - - def StartPlotting(self, time): self.Refresh() self.timer.Start(time) @@ -248,11 +257,11 @@ class Graph(BufferedCanvas): self.width = w self.height = h self.drawgrid(dc, gc) - self.drawbedtemp(dc, gc) self.drawbedtargettemp(dc, gc) - self.drawextruder1temp(dc, gc) + self.drawbedtemp(dc, gc) + self.drawextruder0targettemp(dc, gc) + self.drawextruder0temp(dc, gc) self.drawextruder1targettemp(dc, gc) - self.drawextruder2temp(dc, gc) - self.drawextruder2targettemp(dc, gc) + self.drawextruder1temp(dc, gc) diff --git a/pronterface.py b/pronterface.py index 4efd5a4..9eb0e58 100755 --- a/pronterface.py +++ b/pronterface.py @@ -204,7 +204,7 @@ class PronterWindow(wx.Frame,pronsole.pronsole): try: temp=float(line.split("S")[1].split("*")[0]) self.hottgauge.SetTarget(temp) - self.graph.SetExtruder1TargetTemperature(temp) + self.graph.SetExtruder0TargetTemperature(temp) except: pass try: @@ -254,7 +254,7 @@ class PronterWindow(wx.Frame,pronsole.pronsole): print _("Setting hotend temperature to %f degrees Celsius.") % f self.hsetpoint=f self.hottgauge.SetTarget(int(f)) - self.graph.SetExtruder1TargetTemperature(int(f)) + self.graph.SetExtruder0TargetTemperature(int(f)) if f>0: wx.CallAfter(self.htemp.SetValue,l) self.set("last_temperature",str(f)) @@ -1202,7 +1202,7 @@ class PronterWindow(wx.Frame,pronsole.pronsole): wx.CallAfter(self.tempdisp.SetLabel,self.tempreport.strip().replace("ok ","")) try: self.hottgauge.SetValue(float(filter(lambda x:x.startswith("T:"),self.tempreport.split())[0].split(":")[1])) - self.graph.SetExtruder1Temperature(float(filter(lambda x:x.startswith("T:"),self.tempreport.split())[0].split(":")[1])) + self.graph.SetExtruder0Temperature(float(filter(lambda x:x.startswith("T:"),self.tempreport.split())[0].split(":")[1])) self.bedtgauge.SetValue(float(filter(lambda x:x.startswith("B:"),self.tempreport.split())[0].split(":")[1])) self.graph.SetBedTemperature(float(filter(lambda x:x.startswith("B:"),self.tempreport.split())[0].split(":")[1])) except: @@ -1266,7 +1266,7 @@ class PronterWindow(wx.Frame,pronsole.pronsole): wx.CallAfter(self.tempdisp.SetLabel,self.tempreport.strip().replace("ok ","")) try: self.hottgauge.SetValue(float(filter(lambda x:x.startswith("T:"),self.tempreport.split())[0].split(":")[1])) - self.graph.SetExtruder1Temperature(float(filter(lambda x:x.startswith("T:"),self.tempreport.split())[0].split(":")[1])) + self.graph.SetExtruder0Temperature(float(filter(lambda x:x.startswith("T:"),self.tempreport.split())[0].split(":")[1])) self.graph.SetBedTemperature(float(filter(lambda x:x.startswith("B:"),self.tempreport.split())[0].split(":")[1])) except: pass