diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..be8ca40 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "Cura/util/Power"] + path = Cura/util/Power + url = git://github.com/GreatFruitOmsk/Power.git diff --git a/Cura/gui/printWindow.py b/Cura/gui/printWindow.py index 646992d..0b8e2a4 100644 --- a/Cura/gui/printWindow.py +++ b/Cura/gui/printWindow.py @@ -11,6 +11,7 @@ from gui import taskbar from util import machineCom from util import profile from util import gcodeInterpreter +from util import power printWindowMonitorHandle = None @@ -116,6 +117,20 @@ class printWindow(wx.Frame): sb = wx.StaticBox(self.panel, label="Statistics") boxsizer = wx.StaticBoxSizer(sb, wx.VERTICAL) + + self.powerWarningText = wx.StaticText(parent=self.panel, + id=-1, + label="Connect your computer to AC power\nIf it shuts down during printing, the product will be lost.", + style=wx.ALIGN_CENTER) + self.powerWarningText.SetBackgroundColour('red') + self.powerWarningText.SetForegroundColour('white') + boxsizer.AddF(self.powerWarningText, flags=wx.SizerFlags().Expand().Border(wx.BOTTOM, 10)) + self.powerManagement = power.PowerManagement() + self.powerWarningTimer = wx.Timer(self) + self.Bind(wx.EVT_TIMER, self.OnPowerWarningChange, self.powerWarningTimer) + self.OnPowerWarningChange(None) + self.powerWarningTimer.Start(10000) + self.statsText = wx.StaticText(self.panel, -1, "Filament: ####.##m #.##g\nEstimated print time: #####:##\nMachine state:\nDetecting baudrateXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") boxsizer.Add(self.statsText, flag=wx.LEFT, border=5) @@ -476,6 +491,15 @@ class printWindow(wx.Frame): self.termInput.SetValue(self.termHistory[self.termHistoryIdx]) e.Skip() + def OnPowerWarningChange(self, e): + type = self.powerManagement.get_providing_power_source_type() + if type == power.POWER_TYPE_AC and self.powerWarningText.IsShown(): + self.powerWarningText.Hide() + self.Layout() + elif type != power.POWER_TYPE_AC and not self.powerWarningText.IsShown(): + self.powerWarningText.Show() + self.Layout() + def LoadGCodeFile(self, filename): if self.machineCom != None and self.machineCom.isPrinting(): return diff --git a/Cura/util/Power b/Cura/util/Power new file mode 160000 index 0000000..9630adf --- /dev/null +++ b/Cura/util/Power @@ -0,0 +1 @@ +Subproject commit 9630adf08ee2de90cb3a49af53d85693060ccbff diff --git a/Cura/util/__init__.py b/Cura/util/__init__.py index e69de29..c343c1b 100644 --- a/Cura/util/__init__.py +++ b/Cura/util/__init__.py @@ -0,0 +1,7 @@ +import sys +import os + + +sys.path.append(os.path.join(os.path.dirname(os.path.abspath(__file__)), 'Power')) + +import power