From 0d4d181a5be11b1c8a7a74f09f7e1e90b626eb2b Mon Sep 17 00:00:00 2001 From: Ilya Kulakov Date: Tue, 20 Nov 2012 15:32:34 +0700 Subject: [PATCH 1/3] Show a warning if computer is not connected to AC power. --- .gitmodules | 3 +++ Cura/gui/printWindow.py | 12 ++++++++++++ Cura/util/Power | 1 + Cura/util/__init__.py | 7 +++++++ 4 files changed, 23 insertions(+) create mode 100644 .gitmodules create mode 160000 Cura/util/Power 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..a1671e3 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,17 @@ class printWindow(wx.Frame): sb = wx.StaticBox(self.panel, label="Statistics") boxsizer = wx.StaticBoxSizer(sb, wx.VERTICAL) + + p = power.PowerManagement() + if p.get_providing_power_source_type() != power.POWER_TYPE_AC: + 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.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) 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 From fff570d24ba7449c33c2e9860ea640e19cf01ae6 Mon Sep 17 00:00:00 2001 From: Ilya Kulakov Date: Tue, 20 Nov 2012 16:23:47 +0700 Subject: [PATCH 2/3] Set up timer to check power source every 10 seconds. --- Cura/gui/printWindow.py | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/Cura/gui/printWindow.py b/Cura/gui/printWindow.py index a1671e3..26806f3 100644 --- a/Cura/gui/printWindow.py +++ b/Cura/gui/printWindow.py @@ -118,15 +118,18 @@ class printWindow(wx.Frame): sb = wx.StaticBox(self.panel, label="Statistics") boxsizer = wx.StaticBoxSizer(sb, wx.VERTICAL) - p = power.PowerManagement() - if p.get_providing_power_source_type() != power.POWER_TYPE_AC: - 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.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) From 132e6381eac12fa0a2a7be1a7117920e606d84c9 Mon Sep 17 00:00:00 2001 From: Ilya Kulakov Date: Tue, 20 Nov 2012 16:25:13 +0700 Subject: [PATCH 3/3] Add timer handler. --- Cura/gui/printWindow.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Cura/gui/printWindow.py b/Cura/gui/printWindow.py index 26806f3..0b8e2a4 100644 --- a/Cura/gui/printWindow.py +++ b/Cura/gui/printWindow.py @@ -491,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