def setupWindows(self): ''' Setup all the Windows and put them in self.windows ''' self.ScanControl = ScanControl.Window(self.reactor, None) self.LabRAD = LabRADConnect.Window(self.reactor, None) self.DeviceSelect = DeviceSelect.Window(self.reactor, None) self.nSOTChar = nSOTCharacterizer.Window(self.reactor, None) self.PlottingModule = PlottingModule.CommandCenter(self.reactor, None) self.TFChar = TFCharacterizer.Window(self.reactor, None) self.Approach = Approach.Window(self.reactor, None) self.ApproachMonitor = ApproachMonitor.Window(self.reactor, None) self.PosCalibration = PositionCalibration.Window(self.reactor, None) self.FieldControl = FieldControl.Window(self.reactor, None) self.TempControl = TemperatureControl.Window(self.reactor,None) self.QRreader = QRreader.Window(self.reactor,None) self.GoToSetpoint = gotoSetpoint.Window(self.reactor, None) self.SampleCharacterizer = SampleCharacterizer.Window(self.reactor,None) self.AttocubeCoarseControl = CoarseAttocubeControl.Window(self.reactor,None) self.windows = [self.LabRAD, self.DeviceSelect, self.ScanControl, self.nSOTChar, self.PlottingModule, self.TFChar, self.Approach, self.ApproachMonitor, self.PosCalibration, self.FieldControl, self.TempControl, self.QRreader, self.GoToSetpoint, self.SampleCharacterizer, self.AttocubeCoarseControl] #This module should always be initialized last, and have the modules #That are desired to be scriptable be input self.Simulate = Simulation.ScriptSimulator(self.reactor, self, None) self.Scripting = Scripting.Window(self.reactor, None, self.ScanControl, self.Approach, self.nSOTChar, self.FieldControl, self.TempControl, self.SampleCharacterizer, self.GoToSetpoint, self.Simulate) self.windows.append(self.Scripting) self.windows.append(self.Simulate) #Connect signals between modules #When LabRAD Connect module emits all the local and remote labRAD connections, it goes to the device #select module. This module selects appropriate devices for things. That is then emitted and is distributed #among all the other modules self.LabRAD.cxnLocal.connect(self.DeviceSelect.connectLabRAD) self.LabRAD.cxnRemote.connect(self.DeviceSelect.connectRemoteLabRAD) self.DeviceSelect.newDeviceInfo.connect(self.distributeDeviceInfo) self.LabRAD.cxnDisconnected.connect(self.disconnectLabRADConnections) self.LabRAD.newSessionFolder.connect(self.distributeSessionFolder) self.TFChar.workingPointSelected.connect(self.distributeWorkingPoint) self.nSOTChar.newToeField.connect(self.FieldControl.updateToeField) self.Approach.newPLLData.connect(self.ApproachMonitor.updatePLLPlots) self.Approach.newAux2Data.connect(self.ApproachMonitor.updateAux2Plot) self.Approach.newZData.connect(self.ApproachMonitor.updateZPlot) self.Approach.updateFeedbackStatus.connect(self.ScanControl.updateFeedbackStatus) self.Approach.updateConstantHeightStatus.connect(self.ScanControl.updateConstantHeightStatus) self.PosCalibration.newTemperatureCalibration.connect(self.setVoltageCalibration) self.ScanControl.updateScanningStatus.connect(self.Approach.updateScanningStatus)