def do_line_scan_shutter_closed(self): """ Does the wavelength scan. After a line scan, the different devices should be increased by 1, etc.""" scan = self.scan laser = self.devices[scan['laser']['name']] shutter = self.scan['shutter'] ni_daq = self.devices['NI-DAQ'] ni_daq.driver.digital_output(shutter['port'], False) if not isinstance(shutter['delay'], Q_): delay = Q_(shutter['delay']) else: delay = shutter['delay'] delay = delay.m_as('s') if delay > 0: time.sleep(delay) ni_daq.driver.digital_output(shutter['port'], True) print('Pumped Scan') laser.driver.execute_sweep() approx_time_to_scan = ( laser.params['stop_wavelength'] - laser.params['start_wavelength']) / laser.params[ 'wavelength_speed'] * laser.params['wavelength_sweeps'] while laser.driver.sweep_condition != 'Stop': sleep(approx_time_to_scan.m / config.monitor_read_scan) ni_daq.driver.digital_output(shutter['port'], False) laser.driver.wavelength = scan['laser']['params']['start_wavelength'] # Repeat with shutter closed to get reference scan ni_daq.driver.digital_output(shutter['port'], False) if not isinstance(shutter['delay'], Q_): delay = Q_(shutter['delay']) else: delay = shutter['delay'] delay = delay.m_as('s') if delay > 0: time.sleep(delay) print('Reference Scan') laser.driver.execute_sweep() approx_time_to_scan = ( laser.params['stop_wavelength'] - laser.params['start_wavelength']) / laser.params[ 'wavelength_speed'] * laser.params['wavelength_sweeps'] while laser.driver.sweep_condition != 'Stop': sleep(approx_time_to_scan.m / config.monitor_read_scan) laser.driver.wavelength = scan['laser']['params']['start_wavelength'] return True
def do_line_scan(self): """ Does the wavelength scan. After a line scan, the different devices should be increased by 1, etc.""" scan = self.scan laser = self.devices[scan['laser']['name']] shutter = self.scan['shutter'] ni_daq = self.devices['NI-DAQ'] daq = self.daqs['NI-DAQ'] ni_daq.driver.digital_output(shutter['port'], False) if not isinstance(shutter['delay'], Q_): delay = Q_(shutter['delay']) else: delay = shutter['delay'] delay = delay.m_as('s') if delay > 0: time.sleep(delay) ni_daq.driver.digital_output(shutter['port'], True) if ni_daq.driver.is_task_complete(daq['monitor_task']): ni_daq.driver.stop_task(daq['monitor_task']) ni_daq.driver.trigger_analog(daq['monitor_task']) laser.driver.execute_sweep() approx_time_to_scan = ( laser.params['stop_wavelength'] - laser.params['start_wavelength']) / laser.params[ 'wavelength_speed'] * laser.params['wavelength_sweeps'] while laser.driver.sweep_condition != 'Stop': sleep(approx_time_to_scan.m / config.monitor_read_scan) ni_daq.driver.digital_output(shutter['port'], False) laser.driver.wavelength = scan['laser']['params']['start_wavelength'] return True
def update_laser(self): wavelength = Q_(self.wavelength.text()) power = Q_(self.power.text()) values = { 'wavelength': wavelength, 'powermW': power, } self.wavelength_slider.setValue( (wavelength.m_as(Q_('nm')) - 1480) / 0.0001) print(values)