def __init__(self, dev): QtGui.QWidget.__init__(self) self.dev = dev #self.dev.devGui = self ## make this gui accessible from LaserDevice, so device can change power values. NO, BAD FORM (device is not allowed to talk to guis, it can only send signals) self.ui = Ui_Form() self.ui.setupUi(self) self.calibrateWarning = self.dev.config.get('calibrationWarning', None) self.calibrateBtnState = 0 ### configure gui self.ui.energyCalcGroup.hide() ## not using this for now self.ui.wavelengthSpin.setOpts(suffix='m', siPrefix=True, dec=False, step=5e-9) self.ui.wavelengthSpin.setValue(self.dev.getWavelength()) if not self.dev.hasTunableWavelength: self.ui.wavelengthGroup.setVisible(False) else: for x in self.dev.config.get('namedWavelengths', {}).keys(): self.ui.wavelengthCombo.addItem(x) self.ui.wavelengthSpin.setOpts( bounds=self.dev.getWavelengthRange()) if not self.dev.hasPCell: self.ui.pCellGroup.hide() else: self.ui.minVSpin.setOpts(step=0.1, minStep=0.01, siPrefix=True, dec=True) self.ui.maxVSpin.setOpts(step=0.1, minStep=0.01, siPrefix=True, dec=True) self.ui.stepsSpin.setOpts(step=1, dec=True) self.ui.measurementSpin.setOpts(suffix='s', siPrefix=True, bounds=[0.0, 5.0], dec=True, step=1, minStep=0.01) self.ui.settlingSpin.setOpts(suffix='s', siPrefix=True, value=0.1, dec=True, step=1, minStep=0.01) self.ui.expectedPowerSpin.setOpts( suffix='W', siPrefix=True, bounds=[0.0, None], value=self.dev.getParam('expectedPower'), dec=True, step=0.1, minStep=0.01) self.ui.toleranceSpin.setOpts(step=1, suffix='%', bounds=[0.1, None], value=self.dev.getParam('tolerance')) if not self.dev.hasShutter: self.ui.shutterBtn.setEnabled(False) if not self.dev.hasQSwitch: self.ui.qSwitchBtn.setEnabled(False) ### Populate device lists #self.ui.microscopeCombo.setTypes('microscope') self.ui.meterCombo.setTypes('daqChannelGroup') #defMicroscope = self.dev.config.get('scope', None) defPowerMeter = self.dev.config.get('defaultPowerMeter', None) #self.ui.microscopeCombo.setCurrentText(defMicroscope) self.ui.meterCombo.setCurrentText(defPowerMeter) #devs = self.dev.dm.listDevices() #for d in devs: #self.ui.microscopeCombo.addItem(d) #self.ui.meterCombo.addItem(d) #if d == defMicroscope: #self.ui.microscopeCombo.setCurrentIndex(self.ui.microscopeCombo.count()-1) #if d == defPowerMeter: #self.ui.meterCombo.setCurrentIndex(self.ui.meterCombo.count()-1) ## get scope device to connect objective changed signal #self.scope = getManager().getDevice(self.dev.config['scope']) #self.scope.sigObjectiveChanged.connect(self.objectiveChanged) ## Populate list of calibrations #self.microscopes = [] self.updateCalibrationList() ## get scope device to connect objective changed signal #self.scope = None #while self.scope == None: #for m in self.microscopes: #try: #self.scope = getManager().getDevice(m) #except: #pass ## make connections self.ui.calibrateBtn.focusOutEvent = self.calBtnLostFocus self.ui.calibrateBtn.clicked.connect(self.calibrateClicked) self.ui.deleteBtn.clicked.connect(self.deleteClicked) self.ui.currentPowerRadio.toggled.connect(self.currentPowerToggled) self.ui.expectedPowerRadio.toggled.connect(self.expectedPowerToggled) self.ui.expectedPowerSpin.valueChanged.connect( self.expectedPowerSpinChanged) self.ui.toleranceSpin.valueChanged.connect(self.toleranceSpinChanged) self.ui.wavelengthSpin.valueChanged.connect(self.wavelengthSpinChanged) self.ui.wavelengthCombo.currentIndexChanged.connect( self.wavelengthComboChanged) #self.ui.microscopeCombo.currentIndexChanged.connect(self.microscopeChanged) self.ui.meterCombo.currentIndexChanged.connect(self.powerMeterChanged) self.ui.channelCombo.currentIndexChanged.connect(self.channelChanged) #self.ui.measurementSpin.valueChanged.connect(self.measurmentSpinChanged) #self.ui.settlingSpin.valueChanged.connect(self.settlingSpinChanged) self.ui.shutterBtn.toggled.connect(self.shutterToggled) self.ui.qSwitchBtn.toggled.connect(self.qSwitchToggled) self.ui.checkPowerBtn.clicked.connect( lambda: self.dev.outputPower(forceUpdate=True)) self.ui.powerAlertCheck.toggled.connect(self.powerAlertToggled) self.ui.GDDEnableCheck.toggled.connect(self.GDDEnableToggled) self.ui.GDDSpin.valueChanged.connect(self.GDDSpinChanged) self.dev.sigOutputPowerChanged.connect(self.outputPowerChanged) self.dev.sigSamplePowerChanged.connect(self.samplePowerChanged) try: self.dev.outputPower() ## check laser power except: pass self.powerMeterChanged( ) ## populate channel combo for default power meter