コード例 #1
0
    def __init__(self, parent, camera):
        super().__init__(parent, style=wx.BORDER_RAISED)
        self.camera = camera
        self.Sizer = wx.BoxSizer(wx.VERTICAL)
        self.button = EnableButton(self, self.camera)
        self.button.setState(self.camera.state)
        self.Sizer.Add(self.button, flag=wx.EXPAND)
        self.Sizer.AddSpacer(2)

        self.line = wx.StaticBox(self, size=(-1, 4), style=wx.LI_HORIZONTAL)
        self.line.SetBackgroundColour(
            wavelengthToColor(self.camera.wavelength or 0))
        self.Sizer.Add(self.line, flag=wx.EXPAND)
        # If there are problems here, it's because the inline function below is
        # being called outside of the main thread and needs taking out and
        # wrapping with wx.CallAfter.
        camera.addWatch('wavelength', self.onWavelengthChange)
        self.Sizer.AddSpacer(2)

        if hasattr(camera, 'modes'):
            modebutton = wx.Button(parent, label='Mode')
            self.Sizer.Add(modebutton)

        if camera.callbacks.get('makeUI', None):
            self.Sizer.Add(camera.callbacks['makeUI'](self))
        self.Sizer.AddSpacer(2)
コード例 #2
0
    def __init__(self, parent, lightToggle, lightPower=None, lightFilters=[]):
        super().__init__(parent, style=wx.BORDER_RAISED)
        self.light = lightToggle
        self.Sizer = wx.BoxSizer(wx.VERTICAL)
        self.button = EnableButton(self, self.light)
        self.button.setState(self.light.state)

        expCtrl = safeControls.SafeSpinCtrlDouble(self, inc=5)
        expCtrl.Bind(safeControls.EVT_SAFE_CONTROL_COMMIT,
                     lambda evt: self.light.setExposureTime(evt.Value))
        lightToggle.addWatch('exposureTime', expCtrl.SetValue)
        expCtrl.SetValue(lightToggle.exposureTime)

        self.Sizer.Add(self.button, flag=wx.EXPAND)
        self.Sizer.AddSpacer(2)
        line_height = int(self.GetFont().GetFractionalPointSize() / 2.0)
        line = wx.Control(self, size=(-1, line_height))
        line.SetBackgroundColour(wavelengthToColor(self.light.wavelength))
        self.Sizer.Add(line, flag=wx.EXPAND)

        self.Sizer.Add(wx.StaticText(self, label='Exposure / ms'),
                       flag=wx.ALIGN_CENTER_HORIZONTAL)
        self.Sizer.Add(expCtrl, flag=wx.EXPAND)

        if lightPower is not None:
            self.Sizer.AddSpacer(4)
            self.Sizer.Add(wx.StaticText(self, label='Power (%)'),
                           flag=wx.ALIGN_CENTER_HORIZONTAL)
            powCtrl = safeControls.SpinGauge(
                self,
                minValue=0.0,
                maxValue=100.0,
                fetch_current=lambda: lightPower.getPower() * 100.0)
            powCtrl.SetValue(lightPower.powerSetPoint * 100.0)
            lightPower.addWatch('powerSetPoint',
                                lambda p: powCtrl.SetValue(p * 100.0))
            powCtrl.Bind(safeControls.EVT_SAFE_CONTROL_COMMIT,
                         lambda evt: lightPower.setPower(evt.Value / 100.0))
            self.Sizer.Add(powCtrl)

        if lightFilters:
            self.Sizer.AddSpacer(4)
            self.Sizer.Add(wx.StaticText(self, label="Filters"),
                           flag=wx.ALIGN_CENTER_HORIZONTAL)
            for f in lightFilters:
                self.Sizer.Add(f.makeSelector(self), flag=wx.EXPAND)
コード例 #3
0
ファイル: test_colors.py プロジェクト: microphysics/cockpit
 def test_wavelenth_to_color_no_color(self):
     with self.assertRaises(TypeError):
         colors.wavelengthToColor(None)
コード例 #4
0
ファイル: test_colors.py プロジェクト: microphysics/cockpit
 def test_wavelenth_to_color_blue(self):
     R, G, B = colors.wavelengthToColor(410)
     self.assertEqual(G, 0)
     self.assertEqual(R, 0)
     self.assertGreater(B, 0)
コード例 #5
0
ファイル: test_colors.py プロジェクト: microphysics/cockpit
 def test_wavelenth_to_color_red(self):
     R, G, B = colors.wavelengthToColor(650)
     self.assertEqual(G, 0)
     self.assertEqual(B, 0)
     self.assertGreater(R, 0)
コード例 #6
0
 def onWavelengthChange(self, wl):
     """Change the colour of our wavelength indicator."""
     self.line.SetBackgroundColour(wavelengthToColor(wl or 0))
     # Explicit refresh required under MSW.
     wx.CallAfter(self.line.Refresh)