Example #1
0
    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
Example #2
0
    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
Example #3
0
 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)