def parse_and_execute(hhm, sample_stage, batch, plans_dict): tm = trajectory_manager(hhm) for ii in range(batch.rowCount()): experiment = batch.item(ii) print(experiment.item_type) repeat = experiment.repeat print(repeat) for jj in range(experiment.rowCount()): sample = experiment.child(jj) print(' ' + sample.name) print(' ' + str(sample.x)) print(' ' + str(sample.y)) yield from mv(sample_stage.x, sample.x, sample_stage.y, sample.y) for kk in range(sample.rowCount()): scan = sample.child(kk) traj_index = scan.trajectory print(' ' + scan.scan_type) plan = plans_dict[scan.scan_type] kwargs = { 'name': sample.name, 'comment': '', 'delay': 0, 'n_cycles': repeat } tm.init(traj_index + 1) yield from plan(**kwargs)
def __init__(self, hhm=None, run_prep_traj=None, *args, **kwargs): super().__init__(*args, **kwargs) self.setupUi(self) self.addCanvas() self.element = 'Scandium (21)' self.e0 = '4492' self.edge = 'K' self.widget_energy_selector = isstools.widgets.widget_energy_selector.UIEnergySelector( ) self.layout_energy_selector_trajectory.addWidget( self.widget_energy_selector) #communication between the Energy Selector widget and Trajectory Manager self.widget_energy_selector.edit_E0.textChanged.connect(self.update_E0) self.widget_energy_selector.comboBox_edge.currentTextChanged.connect( self.update_edge) self.widget_energy_selector.comboBox_element.currentTextChanged.connect( self.update_element) self.run_prep_traj = run_prep_traj self.hhm = hhm self.hhm.angle_offset.subscribe(self.update_angle_offset) self.traj_manager = trajectory_manager(hhm) self.comboBox_slot_to_load_trajectory.addItems( ['1', '2', '3', '4', '5', '6', '7', '8']) self.comboBox_slot_to_init_trajectory.addItems( ['1', '2', '3', '4', '5', '6', '7', '8']) self.comboBox_slot_to_init_trajectory.setCurrentIndex( self.traj_manager.current_lut() - 1) try: pass # self.trajectories = self.traj_manager.read_info(silent=True) # self.trajectories = collections.OrderedDict(sorted(self.trajectories.items())) except OSError as err: print('Error loading:', err) self.traj_creator = trajectory(self.hhm) self.trajectory_path = self.hhm.traj_filepath #'/GPFS/xf08id/trajectory/' self.push_build_trajectory.clicked.connect(self.build_trajectory) self.push_save_trajectory.clicked.connect(self.save_trajectory) self.push_update_offset.clicked.connect(self.update_offset) self.push_select_traj_file.clicked.connect(self.get_traj_names) self.push_load_trajectory.clicked.connect(self.load_trajectory) self.push_init_trajectory.clicked.connect(self.init_trajectory) self.push_read_traj_info.clicked.connect(self.read_trajectory_info) self.push_prepare_trajectory.clicked.connect(self.run_prep_traj) self.push_plot_traj.clicked.connect(self.plot_traj_file) self.push_plot_traj.setDisabled(True) self.push_save_trajectory.setDisabled(True) self.checkBox_traj_single_dir.stateChanged.connect( self.update_repetitions_spinbox) self.checkBox_traj_single_dir.stateChanged.connect( self.checkBox_traj_revert.setEnabled)
def __init__(self, excel_file='/nsls2/xf08id/Sandbox/ISS-Sample-Spreadsheet.xlsx', skiprows=1, hhm=None): self.excel_file = excel_file self.name = os.path.basename(excel_file) self._skiprows = skiprows self.hhm = hhm self.trajectory_manager = trajectory_manager(self.hhm) self.experiments = [] self.trajectory_folder = '/nsls2/xf08id/trajectory' # Loaded pandas dataframe: self.experiment_table = None # List of all found trajectories from the file: self.trajectories = [] # Unique trajectories derived from trajectories: self.unique_trajectories = [] self.trajectory_filenames = [] self.read_excel()