Revert "Remove temperature gauges entirely from codebase"
This reverts commit 02ef52d777
.
First step towards getting the gauges optionally back for #296.
master
parent
94d69f793c
commit
a9c3e8b442
|
@ -144,6 +144,8 @@ class LeftPane(wx.GridBagSizer):
|
|||
if( '(' not in root.htemp.Value):
|
||||
root.htemp.SetValue(root.htemp.Value + ' (user)')
|
||||
|
||||
#self.Add(root.btemp, pos = (4, 1), span = (1, 3))
|
||||
#self.Add(root.setbbtn, pos = (4, 4), span = (1, 2))
|
||||
root.tempdisp = wx.StaticText(root.panel,-1, "")
|
||||
|
||||
root.edist = wx.SpinCtrl(root.panel,-1, "5", min = 0, max = 1000, size = (60,-1))
|
||||
|
@ -163,6 +165,18 @@ class LeftPane(wx.GridBagSizer):
|
|||
root.zfeedc.Bind(wx.EVT_SPINCTRL, root.setfeeds)
|
||||
root.zfeedc.SetBackgroundColour((180, 255, 180))
|
||||
root.zfeedc.SetForegroundColour("black")
|
||||
# self.Add((10, 0), pos = (0, 11), span = (1, 1))
|
||||
|
||||
#root.hottgauge = TempGauge(root.panel, size = (200, 24), title = _("Heater:"), maxval = 230)
|
||||
#self.Add(root.hottgauge, pos = (7, 0), span = (1, 4))
|
||||
#root.bedtgauge = TempGauge(root.panel, size = (200, 24), title = _("Bed:"), maxval = 130)
|
||||
#self.Add(root.bedtgauge, pos = (8, 0), span = (1, 4))
|
||||
#def scroll_setpoint(e):
|
||||
# if e.GetWheelRotation()>0:
|
||||
# root.do_settemp(str(root.hsetpoint+1))
|
||||
# elif e.GetWheelRotation()<0:
|
||||
# root.do_settemp(str(max(0, root.hsetpoint-1)))
|
||||
#root.tgauge.Bind(wx.EVT_MOUSEWHEEL, scroll_setpoint)
|
||||
|
||||
root.graph = Graph(root.panel, wx.ID_ANY)
|
||||
self.Add(root.graph, pos = (4, 5), span = (2, 1))
|
||||
|
|
|
@ -211,6 +211,112 @@ class ButtonEdit(wx.Dialog):
|
|||
if self.name.GetValue()=="":
|
||||
self.name.SetValue(macro)
|
||||
|
||||
class TempGauge(wx.Panel):
|
||||
|
||||
def __init__(self, parent, size = (200, 22), title = "", maxval = 240, gaugeColour = None):
|
||||
wx.Panel.__init__(self, parent,-1, size = size)
|
||||
self.Bind(wx.EVT_PAINT, self.paint)
|
||||
self.SetBackgroundStyle(wx.BG_STYLE_CUSTOM)
|
||||
self.width, self.height = size
|
||||
self.title = title
|
||||
self.max = maxval
|
||||
self.gaugeColour = gaugeColour
|
||||
self.value = 0
|
||||
self.setpoint = 0
|
||||
self.recalc()
|
||||
|
||||
def recalc(self):
|
||||
mmax = max(int(self.setpoint*1.05), self.max)
|
||||
self.scale = float(self.width-2)/float(mmax)
|
||||
self.ypt = max(16, int(self.scale*max(self.setpoint, self.max/6)))
|
||||
|
||||
def SetValue(self, value):
|
||||
self.value = value
|
||||
wx.CallAfter(self.Refresh)
|
||||
|
||||
def SetTarget(self, value):
|
||||
self.setpoint = value
|
||||
self.recalc()
|
||||
wx.CallAfter(self.Refresh)
|
||||
|
||||
def interpolatedColour(self, val, vmin, vmid, vmax, cmin, cmid, cmax):
|
||||
if val < vmin: return cmin
|
||||
if val > vmax: return cmax
|
||||
if val <= vmid:
|
||||
lo, hi, val, valhi = cmin, cmid, val-vmin, vmid-vmin
|
||||
else:
|
||||
lo, hi, val, valhi = cmid, cmax, val-vmid, vmax-vmid
|
||||
vv = float(val)/valhi
|
||||
rgb = lo.Red()+(hi.Red()-lo.Red())*vv, lo.Green()+(hi.Green()-lo.Green())*vv, lo.Blue()+(hi.Blue()-lo.Blue())*vv
|
||||
rgb = map(lambda x:x*0.8, rgb)
|
||||
return wx.Colour(*map(int, rgb))
|
||||
|
||||
def paint(self, ev):
|
||||
x0, y0, x1, y1, xE, yE = 1, 1, self.ypt+1, 1, self.width+1-2, 20
|
||||
dc = wx.PaintDC(self)
|
||||
dc.SetBackground(wx.Brush((255, 255, 255)))
|
||||
dc.Clear()
|
||||
cold, medium, hot = wx.Colour(0, 167, 223), wx.Colour(239, 233, 119), wx.Colour(210, 50.100)
|
||||
gauge1, gauge2 = wx.Colour(255, 255, 210), (self.gaugeColour or wx.Colour(234, 82, 0))
|
||||
shadow1, shadow2 = wx.Colour(110, 110, 110), wx.Colour(255, 255, 255)
|
||||
gc = wx.GraphicsContext.Create(dc)
|
||||
# draw shadow first
|
||||
# corners
|
||||
gc.SetBrush(gc.CreateRadialGradientBrush(xE-7, 9, xE-7, 9, 8, shadow1, shadow2))
|
||||
gc.DrawRectangle(xE-7, 1, 8, 8)
|
||||
gc.SetBrush(gc.CreateRadialGradientBrush(xE-7, 17, xE-7, 17, 8, shadow1, shadow2))
|
||||
gc.DrawRectangle(xE-7, 17, 8, 8)
|
||||
gc.SetBrush(gc.CreateRadialGradientBrush(x0+6, 17, x0+6, 17, 8, shadow1, shadow2))
|
||||
gc.DrawRectangle(0, 17, x0+6, 8)
|
||||
# edges
|
||||
gc.SetBrush(gc.CreateLinearGradientBrush(xE-13, 0, xE-6, 0, shadow1, shadow2))
|
||||
gc.DrawRectangle(xE-6, 9, 10, 8)
|
||||
gc.SetBrush(gc.CreateLinearGradientBrush(x0, yE-2, x0, yE+5, shadow1, shadow2))
|
||||
gc.DrawRectangle(x0+6, yE-2, xE-12, 7)
|
||||
# draw gauge background
|
||||
gc.SetBrush(gc.CreateLinearGradientBrush(x0, y0, x1+1, y1, cold, medium))
|
||||
gc.DrawRoundedRectangle(x0, y0, x1+4, yE, 6)
|
||||
gc.SetBrush(gc.CreateLinearGradientBrush(x1-2, y1, xE, y1, medium, hot))
|
||||
gc.DrawRoundedRectangle(x1-2, y1, xE-x1, yE, 6)
|
||||
# draw gauge
|
||||
width = 12
|
||||
w1 = y0+9-width/2
|
||||
w2 = w1+width
|
||||
value = x0+max(10, min(self.width+1-2, int(self.value*self.scale)))
|
||||
#gc.SetBrush(gc.CreateLinearGradientBrush(x0, y0+3, x0, y0+15, gauge1, gauge2))
|
||||
#gc.SetBrush(gc.CreateLinearGradientBrush(0, 3, 0, 15, wx.Colour(255, 255, 255), wx.Colour(255, 90, 32)))
|
||||
gc.SetBrush(gc.CreateLinearGradientBrush(x0, y0+3, x0, y0+15, gauge1, self.interpolatedColour(value, x0, x1, xE, cold, medium, hot)))
|
||||
val_path = gc.CreatePath()
|
||||
val_path.MoveToPoint(x0, w1)
|
||||
val_path.AddLineToPoint(value, w1)
|
||||
val_path.AddLineToPoint(value+2, w1+width/4)
|
||||
val_path.AddLineToPoint(value+2, w2-width/4)
|
||||
val_path.AddLineToPoint(value, w2)
|
||||
#val_path.AddLineToPoint(value-4, 10)
|
||||
val_path.AddLineToPoint(x0, w2)
|
||||
gc.DrawPath(val_path)
|
||||
# draw setpoint markers
|
||||
setpoint = x0+max(10, int(self.setpoint*self.scale))
|
||||
gc.SetBrush(gc.CreateBrush(wx.Brush(wx.Colour(0, 0, 0))))
|
||||
setp_path = gc.CreatePath()
|
||||
setp_path.MoveToPoint(setpoint-4, y0)
|
||||
setp_path.AddLineToPoint(setpoint+4, y0)
|
||||
setp_path.AddLineToPoint(setpoint, y0+5)
|
||||
setp_path.MoveToPoint(setpoint-4, yE)
|
||||
setp_path.AddLineToPoint(setpoint+4, yE)
|
||||
setp_path.AddLineToPoint(setpoint, yE-5)
|
||||
gc.DrawPath(setp_path)
|
||||
# draw readout
|
||||
text = u"T\u00B0 %u/%u"%(self.value, self.setpoint)
|
||||
#gc.SetFont(gc.CreateFont(wx.Font(12, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD), wx.WHITE))
|
||||
#gc.DrawText(text, 29,-2)
|
||||
gc.SetFont(gc.CreateFont(wx.Font(10, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD), wx.WHITE))
|
||||
gc.DrawText(self.title, x0+19, y0+4)
|
||||
gc.DrawText(text, x0+119, y0+4)
|
||||
gc.SetFont(gc.CreateFont(wx.Font(10, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD)))
|
||||
gc.DrawText(self.title, x0+18, y0+3)
|
||||
gc.DrawText(text, x0+118, y0+3)
|
||||
|
||||
class SpecialButton(object):
|
||||
|
||||
label = None
|
||||
|
|
|
@ -256,6 +256,7 @@ class PronterWindow(MainWindow, pronsole.pronsole):
|
|||
if "S" in line:
|
||||
try:
|
||||
temp = float(line.split("S")[1].split("*")[0])
|
||||
#self.hottgauge.SetTarget(temp)
|
||||
wx.CallAfter(self.graph.SetExtruder0TargetTemperature, temp)
|
||||
except:
|
||||
pass
|
||||
|
@ -267,6 +268,7 @@ class PronterWindow(MainWindow, pronsole.pronsole):
|
|||
if "S" in line:
|
||||
try:
|
||||
temp = float(line.split("S")[1].split("*")[0])
|
||||
#self.bedtgauge.SetTarget(temp)
|
||||
wx.CallAfter(self.graph.SetBedTargetTemperature, temp)
|
||||
except:
|
||||
pass
|
||||
|
@ -293,6 +295,7 @@ class PronterWindow(MainWindow, pronsole.pronsole):
|
|||
|
||||
def setbedgui(self, f):
|
||||
self.bsetpoint = f
|
||||
#self.bedtgauge.SetTarget(int(f))
|
||||
wx.CallAfter(self.graph.SetBedTargetTemperature, int(f))
|
||||
if f>0:
|
||||
wx.CallAfter(self.btemp.SetValue, str(f))
|
||||
|
@ -312,6 +315,7 @@ class PronterWindow(MainWindow, pronsole.pronsole):
|
|||
|
||||
def sethotendgui(self, f):
|
||||
self.hsetpoint = f
|
||||
#self.hottgauge.SetTarget(int(f))
|
||||
wx.CallAfter(self.graph.SetExtruder0TargetTemperature, int(f))
|
||||
if f > 0:
|
||||
wx.CallAfter(self.htemp.SetValue, str(f))
|
||||
|
@ -1041,7 +1045,9 @@ class PronterWindow(MainWindow, pronsole.pronsole):
|
|||
string = ""
|
||||
wx.CallAfter(self.tempdisp.SetLabel, self.tempreport.strip().replace("ok ", ""))
|
||||
try:
|
||||
#self.hottgauge.SetValue(parse_temperature_report(self.tempreport, "T:"))
|
||||
wx.CallAfter(self.graph.SetExtruder0Temperature, parse_temperature_report(self.tempreport, "T:"))
|
||||
#self.bedtgauge.SetValue(parse_temperature_report(self.tempreport, "B:"))
|
||||
wx.CallAfter(self.graph.SetBedTemperature, parse_temperature_report(self.tempreport, "B:"))
|
||||
except:
|
||||
pass
|
||||
|
@ -1106,6 +1112,7 @@ class PronterWindow(MainWindow, pronsole.pronsole):
|
|||
self.tempreport = l
|
||||
wx.CallAfter(self.tempdisp.SetLabel, self.tempreport.strip().replace("ok ", ""))
|
||||
try:
|
||||
#self.hottgauge.SetValue(parse_temperature_report(self.tempreport, "T:"))
|
||||
wx.CallAfter(self.graph.SetExtruder0Temperature, parse_temperature_report(self.tempreport, "T:"))
|
||||
wx.CallAfter(self.graph.SetBedTemperature, parse_temperature_report(self.tempreport, "B:"))
|
||||
except:
|
||||
|
|
Loading…
Reference in New Issue