chiark / gitweb /
Update to webcam support, support setting properties, and enable.disable timelaps...
authorDaid <daid303@gmail.com>
Mon, 1 Oct 2012 09:22:49 +0000 (11:22 +0200)
committerDaid <daid303@gmail.com>
Mon, 1 Oct 2012 09:22:49 +0000 (11:22 +0200)
Cura/gui/printWindow.py
Cura/gui/webcam.py
package.sh

index a9345dcdf10b36ad9a82a56806ed9bb5652e92ec..f2be38ca8114b1ab08b372d0e1f7a3b5254f83b1 100644 (file)
@@ -111,7 +111,7 @@ class printWindow(wx.Frame):
                \r
                sb = wx.StaticBox(self.panel, label="Statistics")\r
                boxsizer = wx.StaticBoxSizer(sb, wx.VERTICAL)\r
-               self.statsText = wx.StaticText(self.panel, -1, "Filament: ####.##m #.##g\nPrint time: #####:##\nMachine state: Detecting baudrate")\r
+               self.statsText = wx.StaticText(self.panel, -1, "Filament: ####.##m #.##g\nPrint time: #####:##\nMachine state:\nDetecting baudrateXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")\r
                boxsizer.Add(self.statsText, flag=wx.LEFT, border=5)\r
                \r
                self.sizer.Add(boxsizer, pos=(0,0), span=(5,1), flag=wx.EXPAND)\r
@@ -242,8 +242,18 @@ class printWindow(wx.Frame):
                        sizer = wx.GridBagSizer(2, 2)\r
                        self.camPage.SetSizer(sizer)\r
                        \r
+                       self.timelapsEnable = wx.CheckBox(self.camPage, -1, 'Enable timelaps')\r
+                       sizer.Add(self.timelapsEnable, pos=(0,0), span=(1,2), flag=wx.EXPAND)\r
+                       \r
+                       pages = self.cam.propertyPages()\r
+                       for page in pages:\r
+                               button = wx.Button(self.camPage, -1, page)\r
+                               button.index = pages.index(page)\r
+                               sizer.Add(button, pos=(1, pages.index(page)))\r
+                               button.Bind(wx.EVT_BUTTON, self.OnPropertyPageButton)\r
+                       \r
                        self.camPreview = wx.Panel(self.camPage)\r
-                       sizer.Add(self.camPreview, pos=(0,0), flag=wx.EXPAND)\r
+                       sizer.Add(self.camPreview, pos=(2,0), span=(1,2), flag=wx.EXPAND)\r
                        \r
                        nb.AddPage(self.camPage, 'Camera')\r
                        self.camPreview.timer = wx.Timer(self)\r
@@ -279,7 +289,7 @@ class printWindow(wx.Frame):
                #self.UpdateProgress()\r
        \r
        def OnCameraTimer(self, e):\r
-               if self.machineCom != None and not self.machineCom.isPrinting():\r
+               if self.machineCom != None and self.machineCom.isPrinting():\r
                        return\r
                self.cam.takeNewImage()\r
                self.camPreview.Refresh()\r
@@ -291,9 +301,15 @@ class printWindow(wx.Frame):
                        rect = self.GetUpdateRegion().GetBox()\r
                        dc.SetClippingRect(rect)\r
                dc.SetBackground(wx.Brush(self.camPreview.GetBackgroundColour(), wx.SOLID))\r
-               dc.Clear()\r
                if self.cam.getLastImage() != None:\r
+                       self.camPreview.SetMinSize((self.cam.getLastImage().GetWidth(), self.cam.getLastImage().GetHeight()))\r
+                       self.camPage.Fit()\r
                        dc.DrawBitmap(self.cam.getLastImage(), 0, 0)\r
+               else:\r
+                       dc.Clear()\r
+               \r
+       def OnPropertyPageButton(self, e):\r
+               self.cam.openPropertyPage(e.GetEventObject().index)\r
 \r
        def UpdateButtonStates(self):\r
                self.connectButton.Enable(self.machineCom == None or self.machineCom.isClosedOrError())\r
@@ -335,7 +351,7 @@ class printWindow(wx.Frame):
                                self.bedTemperatureLabel.Show(True)\r
                                self.bedTemperatureSelect.Show(True)\r
                                self.temperaturePanel.Layout()\r
-                       status += 'Machine state: %s\n' % (self.machineCom.getStateString())\r
+                       status += 'Machine state:%s\n' % (self.machineCom.getStateString())\r
                \r
                self.statsText.SetLabel(status.strip())\r
        \r
@@ -356,7 +372,7 @@ class printWindow(wx.Frame):
                if self.machineCom.isPrinting():\r
                        return\r
                self.currentZ = -1\r
-               if self.cam != None:\r
+               if self.cam != None and self.timelapsEnable.GetValue():\r
                        self.cam.startTimelaps(self.filename[: self.filename.rfind('.')] + ".mpg")\r
                self.machineCom.printGCode(self.gcodeList)\r
                self.UpdateButtonStates()\r
@@ -398,6 +414,8 @@ class printWindow(wx.Frame):
        \r
        def AddTermLog(self, line):\r
                self.termLog.AppendText(unicode(line, 'utf-8', 'replace'))\r
+               l = len(self.termLog.GetValue())\r
+               self.termLog.SetCaret(wx.Caret(self.termLog, (l, l)))\r
        \r
        def OnTermEnterLine(self, e):\r
                line = self.termInput.GetValue()\r
index 96d0f01cd8ae7a21c9f735fc90134c0fcefdb061..fff9b2b6a936c0daa117dd33c6cc986fa418c332 100644 (file)
@@ -47,16 +47,16 @@ class webcam(object):
        def hasCamera(self):\r
                return self._cam != None\r
        \r
-       def propertyPages():\r
+       def propertyPages(self):\r
                if self._cam == None:\r
                        return []\r
                if win32vidcap != None:\r
-                       return ['capture properties', 'pin properties']\r
+                       return ['Image properties', 'Format properties']\r
                if cv != None:\r
                        #TODO Make an OpenCV property page\r
                        return []\r
 \r
-       def openPropertyPage(pageType = 0):\r
+       def openPropertyPage(self, pageType = 0):\r
                if self._cam == None:\r
                        return\r
                if win32vidcap != None:\r
index 3a83e61b7426baf0a744d088acffa294dd9fe6eb..2b8c5623eca4fefd7f5eb95cbd88b0c4234e3e1a 100755 (executable)
@@ -86,6 +86,9 @@ if [ $BUILD_TARGET = "win32" ]; then
        if [ ! -f VideoCapture-0.9-5.zip ]; then
                curl -L -O http://videocapture.sourceforge.net/VideoCapture-0.9-5.zip
        fi
+       if [ ! -f ffmpeg-20120927-git-13f0cd6-win32-static.7z ]; then
+               curl -L -O http://ffmpeg.zeranoe.com/builds/win32/static/ffmpeg-20120927-git-13f0cd6-win32-static.7z
+       fi
        #Get pypy
        if [ ! -f "pypy-${PYPY_VERSION}-win32.zip" ]; then
                curl -L -O https://bitbucket.org/pypy/pypy/downloads/pypy-${PYPY_VERSION}-win32.zip