def __init__(self, dm, config, name): self.port = config[ 'port'] - 1 ## windows com ports start at COM1, pyserial ports start at 0 self.baud = config.get('baud', 19200) self.driver = Coherent(self.port, self.baud) self.driverLock = Mutex( QtCore.QMutex.Recursive) ## access to low level driver calls self.coherentLock = Mutex( QtCore.QMutex.Recursive) ## access to self.attributes self.coherentPower = 0 self.coherentWavelength = 0 self.mThread = CoherentThread(self, self.driver, self.driverLock) self.mThread.sigPowerChanged.connect(self.powerChanged) self.mThread.sigWavelengthChanged.connect(self.wavelengthChanged) self.mThread.start() Laser.__init__(self, dm, config, name) self.hasShutter = True self.hasTunableWavelength = True
def __init__(self, dm, config, name): self.port = config['port']-1 ## windows com ports start at COM1, pyserial ports start at 0 self.baud = config.get('baud', 19200) self.driver = Coherent(self.port, self.baud) self.driverLock = Mutex(QtCore.QMutex.Recursive) ## access to low level driver calls self.coherentLock = Mutex(QtCore.QMutex.Recursive) ## access to self.attributes self.coherentPower = 0 self.coherentWavelength = 0 self.mThread = CoherentThread(self, self.driver, self.driverLock) self.mThread.sigPowerChanged.connect(self.powerChanged) self.mThread.sigWavelengthChanged.connect(self.wavelengthChanged) self.mThread.start() Laser.__init__(self, dm, config, name) self.hasShutter = True self.hasTunableWavelength = True
class CoherentLaser(Laser): def __init__(self, dm, config, name): self.port = config['port']-1 ## windows com ports start at COM1, pyserial ports start at 0 self.baud = config.get('baud', 19200) self.driver = Coherent(self.port, self.baud) self.driverLock = Mutex(QtCore.QMutex.Recursive) ## access to low level driver calls self.coherentLock = Mutex(QtCore.QMutex.Recursive) ## access to self.attributes self.coherentPower = 0 self.coherentWavelength = 0 self.mThread = CoherentThread(self, self.driver, self.driverLock) self.mThread.sigPowerChanged.connect(self.powerChanged) self.mThread.sigWavelengthChanged.connect(self.wavelengthChanged) self.mThread.start() Laser.__init__(self, dm, config, name) self.hasShutter = True self.hasTunableWavelength = True def powerChanged(self, power): with self.coherentLock: self.coherentPower = power self.setParam(currentPower=power) powerOk = self.checkPowerValidity(power) self.sigOutputPowerChanged.emit(power, powerOk) def wavelengthChanged(self, wl): with self.coherentLock: self.coherentWavelength = wl def outputPower(self): with self.coherentLock: return self.coherentPower def getWavelength(self): with self.coherentLock: return self.coherentWavelength def setWavelength(self, wl): with self.driverLock: self.driver.setWavelength(wl*1e9) def getWavelengthRange(self): with self.driverLock: bounds = self.driver.getWavelengthRange() return bounds[0]*1e-9, bounds[1]*1e-9 def getGDDMinMax(self): with self.driverLock: gddlims = self.driver.getGDDMinMax() return gddlims def setGDD(self, value): with self.driverLock: self.driver.setGDD(value) # print 'comp is %s' % self.driver.getComp() #print 'Gdd set to %s, reading back gives %s' % (value, self.driver.getGDD()) # with self.driverLock: # print 'Gdd set to %s, reading back gives %s' % (value, self.driver.getGDD()) def clearGDD(self): with self.driverLock: self.driver.clearGDD() ## Shutter functions are disabled because coherent lasers are not really designed to ## operate their shutters this way. Use an external shutter instead. ## (excessive shutter activity can damage the shutter) #def openShutter(self): #with self.driverLock: #self.driver.setShutter(True) #Laser.openShutter(self) #def closeShutter(self): #with self.driverLock: #self.driver.setShutter(False) #Laser.closeShutter(self) #def getShutter(self): #with self.driverLock: #return self.driver.getShutter() def createTask(self, cmd, parentTask): return CoherentTask(self, cmd, parentTask)
class CoherentLaser(Laser): def __init__(self, dm, config, name): self.port = config[ 'port'] - 1 ## windows com ports start at COM1, pyserial ports start at 0 self.baud = config.get('baud', 19200) self.driver = Coherent(self.port, self.baud) self.driverLock = Mutex( QtCore.QMutex.Recursive) ## access to low level driver calls self.coherentLock = Mutex( QtCore.QMutex.Recursive) ## access to self.attributes self.coherentPower = 0 self.coherentWavelength = 0 self.mThread = CoherentThread(self, self.driver, self.driverLock) self.mThread.sigPowerChanged.connect(self.powerChanged) self.mThread.sigWavelengthChanged.connect(self.wavelengthChanged) self.mThread.start() Laser.__init__(self, dm, config, name) self.hasShutter = True self.hasTunableWavelength = True def powerChanged(self, power): with self.coherentLock: self.coherentPower = power self.setParam(currentPower=power) powerOk = self.checkPowerValidity(power) self.sigOutputPowerChanged.emit(power, powerOk) def wavelengthChanged(self, wl): with self.coherentLock: self.coherentWavelength = wl def outputPower(self): with self.coherentLock: return self.coherentPower def getWavelength(self): with self.coherentLock: return self.coherentWavelength def setWavelength(self, wl): with self.driverLock: self.driver.setWavelength(wl * 1e9) def getWavelengthRange(self): with self.driverLock: bounds = self.driver.getWavelengthRange() return bounds[0] * 1e-9, bounds[1] * 1e-9 def getGDDMinMax(self): with self.driverLock: gddlims = self.driver.getGDDMinMax() return gddlims def setGDD(self, value): with self.driverLock: self.driver.setGDD(value) # print 'comp is %s' % self.driver.getComp() #print 'Gdd set to %s, reading back gives %s' % (value, self.driver.getGDD()) # with self.driverLock: # print 'Gdd set to %s, reading back gives %s' % (value, self.driver.getGDD()) def clearGDD(self): with self.driverLock: self.driver.clearGDD() ## Shutter functions are disabled because coherent lasers are not really designed to ## operate their shutters this way. Use an external shutter instead. ## (excessive shutter activity can damage the shutter) #def openShutter(self): #with self.driverLock: #self.driver.setShutter(True) #Laser.openShutter(self) #def closeShutter(self): #with self.driverLock: #self.driver.setShutter(False) #Laser.closeShutter(self) #def getShutter(self): #with self.driverLock: #return self.driver.getShutter() def createTask(self, cmd, parentTask): return CoherentTask(self, cmd, parentTask)