dry_run = False do_elog = True if get_exec_pars().source == CommandSource.ui: bph_ref_user = 0.0 plt = None else: bph_ref_user = args[0] plt = args[1] phaseOffset_old = caget('SINEG01-RSYS:SET-VSUM-PHASE-OFFSET-BASE') phaseOffset_new = phaseOffset_old - bph_ref_user if not dry_run: caput('SINEG01-RSYS:SET-VSUM-PHASE-OFFSET-BASE', phaseOffset_new) caput('SINEG01-RSYS:CMD-LOAD-CALIB-BEAM', 1) if do_elog: log_msg = "SINEG01-RSYS:SET-VSUM-PHASE-OFFSET-BASE \n" log_msg = log_msg + "Old: %0.1f" % phaseOffset_old + "deg \n" log_msg = log_msg + "New: %0.1f" % phaseOffset_new + "deg \n" log_msg = log_msg + "Charge on-set at %0.1f" % -phaseOffset_new + "deg RF phase (0.0 deg beam phase)\n" attachments = [] if plt is not None: sleep(0.1) #Give some time to plot to be finished - it is not sync with acquisition file_name = os.path.abspath(get_context().setup.getContextPath() + "/SchottkyScanSetPlot.png") plt.saveSnapshot(file_name , "png") attachments = [file_name] elog("Set gun phase", log_msg, attachments) show_message("Success setting phase reference")