def _open_laser(self): if self.red == 'on': ha.LaserRed().on() time.sleep(7.0) self.red_monitor = ha.LaserRed().check_status() elif self.red == 'off': ha.LaserRed().off() time.sleep(1.0) self.red_monitor = ha.LaserRed().check_status()
def __init__(self): super(PLE, self).__init__() self._create_line_plot() self._create_single_line_plot() self._create_matrix_plot() self.on_trait_change(self._update_index, 'detuning_mesh', dispatch='ui') self.on_trait_change(self._update_line_data_value, 'counts', dispatch='ui') self.on_trait_change(self._update_single_line_data_value, 'single_line_counts', dispatch='ui') self.on_trait_change(self._update_matrix_data_value, 'counts_matrix', dispatch='ui') self.on_trait_change(self._update_matrix_data_index, 'n_lines,detuning', dispatch='ui') self.red_monitor = ha.LaserRed().check_status() self.red = self.red_monitor ha.LaserRed().set_output(self.current, self.wavelength) self.wavelength_monitor = ha.LaserRed().get_wavelength() self.current_monitor = ha.LaserRed().get_current() self.power_monitor = ha.LaserRed().get_power() self.detuning_monitor = ha.LaserRed().get_detuning()
def _run(self): try: self.state = 'run' self.apply_parameters() if self.run_time >= self.stop_time: self.state = 'done' return n = len(self.detuning_mesh) self.red_monitor = ha.LaserRed().check_status() if self.red_monitor == 'off': ha.LaserRed().on() time.sleep(7.0) self.red_monitor = ha.LaserRed().check_status() #ha.LaserRed().set_output(self.current, self.wavelength) ha.Microwave().setOutput(self.mw_power, self.mw_frequency) time.sleep(0.5) if self.switch == 'scan wave': ha.LaserRed().scan(self.scan_begin, self.scan_end, self.scan_rate) self.wavelength_monitor = ha.LaserRed().get_wavelength() self.detuning_monitor = ha.LaserRed().get_detuning() while self.run_time < self.stop_time: start_time = time.time() if threading.currentThread().stop_request.isSet(): break if self.green == 'pulse': if self.mw == 'on': ha.PulseGenerator().Continuous( ['mw', 'mw_x', 'red', 'green']) else: ha.PulseGenerator().Continuous(['red', 'green']) time.sleep(self.green_length) if self.mw == 'on' and self.green == 'on': ha.PulseGenerator().Continuous( ['green', 'mw', 'mw_x', 'red']) elif self.mw == 'off' and self.green == 'on': ha.PulseGenerator().Continuous(['green', 'red']) elif self.mw == 'on' and (self.green == 'off' or self.green == 'pulse'): ha.PulseGenerator().Continuous(['mw', 'mw_x', 'red']) elif self.mw == 'off' and (self.green == 'off' or self.green == 'pulse'): ha.PulseGenerator().Continuous(['red']) if self.lock_box: #voltage = ha.LaserRed()._detuning_to_voltage(self.detuning_end) step = (self.detuning_begin - self.detuning_end) / float( self.number_points) detuning_mesh = np.arange(self.detuning_end, self.detuning_begin, step) counts = ha.LaserRed().piezo_scan(detuning_mesh, self.seconds_per_point) junk = ha.LaserRed().piezo_scan(self.detuning_mesh, self.seconds_per_point) self.single_line_counts = counts self.counts += counts self.trait_property_changed('counts', self.counts) self.counts_matrix = np.vstack( (counts, self.counts_matrix[:-1, :])) time.sleep(0.1) else: counts = ha.LaserRed().piezo_scan(self.detuning_mesh, self.seconds_per_point) #ha.LaserRed().set_detuning(self.detuning_begin) #time.sleep(0.1) self.run_time += time.time() - start_time self.single_line_counts = counts self.counts += counts self.trait_property_changed('counts', self.counts) self.counts_matrix = np.vstack( (counts, self.counts_matrix[:-1, :])) """ return to origin """ voltage = ha.LaserRed()._detuning_to_voltage( self.detuning_end) junks = ha.LaserRed().ni_task.line( np.arange(voltage, -3.0, ha.LaserRed()._detuning_to_voltage(-0.1)), 0.001) ha.LaserRed().ni_task.point(-3.0) voltage = ha.LaserRed()._detuning_to_voltage( self.detuning_begin) if voltage > -2.90: junks = ha.LaserRed().ni_task.line( np.arange(-3.0, voltage, ha.LaserRed()._detuning_to_voltage(0.1)), 0.001) ha.LaserRed().ni_task.point(voltage) time.sleep(0.1) self.wavelength_monitor = ha.LaserRed().get_wavelength() self.detuning_monitor = ha.LaserRed().get_detuning() if self.run_time < self.stop_time: self.state = 'idle' else: self.state = 'done' if self.switch == 'scan wave': ha.LaserRed().stop_scan() ha.LaserRed().set_detuning(self.detuning) #ha.Microwave().setOutput(None, self.mw_frequency) if self.light == 'light': ha.PulseGenerator().Light() ha.Microwave().setOutput(None, self.mw_frequency) elif self.off_red == 'on': if self.off_green == 'on' and self.off_mw == 'on': ha.PulseGenerator().Continuous( ['mw', 'mw_x', 'red', 'green']) elif self.off_green == 'off' and self.off_mw == 'on': ha.PulseGenerator().Continuous(['mw', 'mw_x', 'red']) elif self.off_green == 'on' and self.off_mw == 'off': ha.Microwave().setOutput(None, self.mw_frequency) ha.PulseGenerator().Continuous(['red', 'green']) elif self.off_green == 'off' and self.off_mw == 'off': ha.Microwave().setOutput(None, self.mw_frequency) ha.PulseGenerator().Continuous(['red']) else: ha.Microwave().setOutput(None, self.mw_frequency) ha.PulseGenerator().Night() except: logging.getLogger().exception('Error in PLE.') self.state = 'error'
def _detuning_changed(self, detuning): """React to set laser button. Submit the Job.""" if self.go_detuning: ha.LaserRed().set_detuning(detuning) self.detuning_monitor = ha.LaserRed().get_detuning()
def _set_laser(self): """React to set laser button. Submit the Job.""" ha.LaserRed().set_output(self.current, self.wavelength) self.wavelength_monitor = ha.LaserRed().get_wavelength() self.current_monitor = ha.LaserRed().get_current() self.power_monitor = ha.LaserRed().get_power()
def _resubmit_button_fired(self): """React to start button. Submit the Job.""" if self.switch == 'scan wave': ha.LaserRed().resume_scan() self.resubmit()