from slic.core.adjustable import PVAdjustable, PVEnumAdjustable from slic.core.device import SimpleDevice from slic.utils import as_shortcut class PVStringAdjustable(PVAdjustable): def get_current_value(self): return self.pvs.readback.get(as_string=True).strip() n_unds = [ 6, 7, 8, 9, 10, 11, 12, 13, # 14 is the CHIC 15, 16, 17, 18, 19, 20, 21, 22 ] undulator_info = {} for i in n_unds: undulator_info[f"energy{i}"] = PVAdjustable(f"SATUN{i:02}-UIND030:FELPHOTENE", internal=True) undulator_info[f"polarisation{i}"] = PVEnumAdjustable(f"SATUN{i:02}-UIND030:POL-SET", internal=True) spreadsheet_info = dict( # standa = standa, # exp_delay = exp_delay, # laser_delay = laser_delay, # LXT = lxt, FELrepRate = PVAdjustable("SWISSFEL-STATUS:Bunch-2-Appl-Freq-RB", internal=True), # PaddleChamber1MaskX = PVAdjustable("SATES21-XSMA166:MOT7:MOTRBV", internal=True), # PaddleChamber1MaskY = PVAdjustable("SATES21-XSMA166:MOT8:MOTRBV", internal=True), # PaddleChamber1FrameX = PVAdjustable("SATES21-XSMA166:MOT4:MOTRBV", internal=True), # PaddleChamber1YagY = PVAdjustable("SATES21-XSMA166:MOT6:MOTRBV", internal=True), # PaddleChamber1z = PVAdjustable("SATES21-XSMA166:MOT3:MOTRBV", internal=True), # PaddleChamber1YagX = PVAdjustable("SLAAT21-LMOT-M711:MOT.RBV", internal=True), # AttenuationLaser = PVAdjustable("SLAAT21-LMOT-M702:MOT.RBV", internal=True), # Timedelay = PVAdjustable("SLAAT01-LTIM-PDLY:DELAY", internal=True), # SmartActTTx = PVAdjustable("SATES22-XSMA168:MOT10:MOTRBV", internal=True), # SmartActTTy = PVAdjustable("SATES22-XSMA168:MOT11:MOTRBV", internal=True), # SmartActTTz = PVAdjustable("SATES22-XSMA168:MOT12:MOTRBV", internal=True), # ToFV1m = PVAdjustable("SATES21-XSHV166:V-1-S-CH0", internal=True), # ToFV1p = PVAdjustable("SATES21-XSHV166:V-0-S-CH0", internal=True), # ToFV2m = PVAdjustable("SATES21-XSHV166:V-1-S-CH1", internal=True), # ToFV2p = PVAdjustable("SATES21-XSHV166:V-0-S-CH1", internal=True), # ToFV3m = PVAdjustable("SATES21-XSHV166:V-1-S-CH2", internal=True), # ToFV3p = PVAdjustable("SATES21-XSHV166:V-0-S-CH2", internal=True), # energy1 = PVAdjustable("SATUN06-UIND030:FELPHOTENE", internal=True), # energy2 = PVAdjustable("SATUN15-UIND030:FELPHOTENE", internal=True), # manip2needleESy = PVAdjustable("SATES20-MANIP2:MOTOR_2.VAL", internal=True), # manip3ESy = PVAdjustable("SATES20-MANIP3:MOTOR_2.VAL", internal=True), # manip7ESy = PVAdjustable("SATES20-MANIP7:MOTOR_1.VAL", internal=True), # manip2needleESy = PVAdjustable("SATES20-MANIP2:MOTOR_2.VAL", internal=True), # manip2needleESz = PVAdjustable("SATES20-MANIP2:MOTOR_3.VAL", internal=True), # pol1 = PVEnumAdjustable("SATUN06-UIND030:POL-SET", internal=True), # pol2 = PVEnumAdjustable("SATUN15-UIND030:POL-SET", internal=True), Manip1_x = PVAdjustable("SATES20-MANIP1:MOTOR_1.RBV", internal = True), Manip1_y = PVAdjustable("SATES20-MANIP1:MOTOR_2.RBV", internal = True), # Manip1_z = PVAdjustable("SATES20-MANIP1:MOTOR_3.RBV", internal = True), # Manip4_x = PVAdjustable("SATES20-MANIP4:MOTOR_1.RBV", internal = True), # Manip4_y = PVAdjustable("SATES20-MANIP4:MOTOR_3.RBV", internal = True), pressChamb1 = PVAdjustable("SATES21-VM-VT1010:PRESSURE", internal=True), pressJF = PVAdjustable("SATES21-VM-VT1020:PRESSURE", internal=True), # pressChamb2 = PVAdjustable("SATES21-VM-VT2020:PRESSURE", internal=True), # pressChamb3 = PVAdjustable("SATES21-VM-VT3010:PRESSURE", internal=True), # pressSmallChamber = PVAdjustable("SATES21-VM-VT3030:PRESSURE", internal=True), # pressChamb3GasCell = PVAdjustable("SATES21-VM-VT3040:PRESSURE", internal=True), # standaChamber3 = PVAdjustable("SLAAT21-LMOT-M707:MOT.RBV", internal=True), # LshapeRakX = PVAdjustable("SATES24-XSMA171:MOT4:MOTRBV", internal=True), # LshapeRakY = PVAdjustable("SATES24-XSMA171:MOT5:MOTRBV", internal=True), # LshapeRakZ = PVAdjustable("SATES24-XSMA171:MOT6:MOTRBV", internal=True), # LshapeDoorX = PVAdjustable("SATES24-XSMA171:MOT7:MOTRBV", internal=True), # LshapeDoorY = PVAdjustable("SATES24-XSMA171:MOT8:MOTRBV", internal=True), # YagX = PVAdjustable("SATES24-XSMA171:MOT9:MOTRBV", internal=True), # YagY = PVAdjustable("SATES24-XSMA171:MOT10:MOTRBV", internal=True), timeStamp = PVAdjustable("SF-CPCL-TIM:TIME", internal=True), # empty="", # just an example! photonEnergy = PVAdjustable("SATUN:FELPHOTENE", internal=True), pulse_energy = PVAdjustable("SATFE10-PEPG046:PHOTON-ENERGY-PER-PULSE-AVG", internal=True), # pressure_sample = PVAdjustable("SATES21-VM-VT2020:PRESSURE", internal=True), # pressure_hemi = PVAdjustable("SATES21-VM-VT2010:PRESSURE", internal=True), # Manip2_y = PVAdjustable("SATES20-MANIP2:MOTOR_2.RBV", internal=True), # PressureGasAtt= PVAdjustable("ATFE10-VMCP054-A050:PRESSURE", internal=True), # VoltsSetGasAtt= PVAdjustable("SATFE10-VVRE054-A010:SET_VAL-UI", internal=True), # chicane_current_rb = PVAdjustable("SATUN14-MBND100:I-READ", internal=True), # chicane_current_sv = PVAdjustable("SATUN14-MBND100:I-SET", internal=True), # TOF_ext_neg = PVAdjustable("SATES21-XSHV166:V-0-S-CH13", internal=True), # TOF_Behlke_lessneg = PVAdjustable("SATES21-XSHV166:V-0-S-CH14", internal=True), # TOF_MCP_front = PVAdjustable("SATES21-XSHV166:V-0-S-CH15", internal=True), # TOF_ext_pos = PVAdjustable("SATES21-XSHV166:V-1-S-CH13", internal=True), # TOF_rep_pos = PVAdjustable("SATES21-XSHV166:V-1-S-CH14", internal=True), # TOF_unused = PVAdjustable("SATES21-XSHV166:V-1-S-CH15", internal=True), # ToFMCPRupp = PVAdjustable("SATES21-XSHV166:V-2-S-CH3", internal=True), # ToFrepelerRupp = PVAdjustable("SATES21-XSHV166:V-3-S-CH3", internal=True), # trigger14Delay = PVAdjustable("SATES20-CVME-EVR0:Pul14-Delay-RB", internal=True), # pressSkimmer = PVAdjustable("SATES21-VM-VT1030:PRESSURE", internal=True), # SourceTemp = PVAdjustable("SLAAT21-LENG-LAKE1:GET_TEMP", internal=True), # skimmerRuppUpstream = PVAdjustable("SATES22-XSMA168:MOT1:MOTRBV", internal=True), # skimmerRuppDownstream = PVAdjustable("SATES22-XSMA168:MOT2:MOTRBV", internal=True), # pressattn40 = PVAdjustable("SATFE10-VMFR054-A050:PRESSURE", internal=True), # inc_mirror_tip = PVAdjustable("SATES20-XSMA165:MOT16:MOTRBV", internal=True),### # # inc_mirror_tip = PVAdjustable("SATES20-XSMA165:MOT16:MOTRBV", internal=True), # inc_mirror_tilt = PVAdjustable("SATES20-XSMA165:MOT17:MOTRBV", internal=True), mic_linear = PVAdjustable("SATES21-XSMA166:MOT2:MOTRBV", internal=True), mic_paddle_y = PVAdjustable("SATES21-XSMA166:MOT4:MOTRBV", internal=True), mic_paddle_x = PVAdjustable("SATES21-XSMA166:MOT5:MOTRBV", internal=True), mic_paddle_z = PVAdjustable("SATES21-XSMA166:MOT6:MOTRBV", internal=True), zigzag_y = PVAdjustable("SATES21-XSMA166:MOT7:MOTRBV", internal=True), zigzag_x = PVAdjustable("SATES21-XSMA166:MOT8:MOTRBV", internal=True), zigzag_z = PVAdjustable("SATES21-XSMA166:MOT9:MOTRBV", internal=True), slit_downstream_top = PVAdjustable("SATES21-XSMA166:MOT10:MOTRBV", internal=True), slit_downstream_x = PVAdjustable("SATES21-XSMA166:MOT11:MOTRBV", internal=True), slit_downstream_bottom = PVAdjustable("SATES21-XSMA166:MOT12:MOTRBV", internal=True), slit_front_xneg = PVAdjustable("SATES21-XSMA166:MOT13:MOTRBV", internal=True), slit_front_xpos = PVAdjustable("SATES21-XSMA166:MOT14:MOTRBV", internal=True), pulse_energy_attgas = PVStringAdjustable("SATFE10-OGAT053:pulseenergy", internal=True), transmission_attgas = PVStringAdjustable("SATFE10-OGAT053:transmission", internal=True), att64 = PVStringAdjustable("SATFE10-OATT064:MOT2TRANS.VALD", internal=True), att65 = PVStringAdjustable("SATFE10-OATT065:MOT2TRANS.VALD", internal=True), # LaserIn = PVAdjustable("SLAAT21-LDIO-LAS6291:SET_BO01.DESC", internal=True), # Holography beamtime # sample_stage_x = PVAdjustable("SATES23-XSMA169:MOT7:MOTRBV", internal=True), # sample_stage_y = PVAdjustable("SATES23-XSMA169:MOT8:MOTRBV", internal=True), # sample_stage_z = PVAdjustable("SATES23-XSMA169:MOT9:MOTRBV", internal=True), # diode_x = PVAdjustable("SATES23-XSMA169:MOT10:MOTRBV", internal=True), # diode_y = PVAdjustable("SATES23-XSMA169:MOT11:MOTRBV", internal=True), # diode_z = PVAdjustable("SATES23-XSMA169:MOT12:MOTRBV", internal=True), # beam_block = PVAdjustable("SATES23-XSMA169:MOT6:MOTRBV", internal=True), # pressChamb3 = PVAdjustable("SATES21-VM-VT3010:PRESSURE", internal=True), # pressChamb3bis = PVAdjustable("SATES21-VM-VT3012:PRESSURE", internal=True), **undulator_info ) overview = SimpleDevice("Maloja Overview", **spreadsheet_info) @as_shortcut def print_overview(): print(overview) @as_shortcut def print_line_for_spreadsheet(): ov = overview.__dict__ def get(i): if i in ov: return str(ov[i].get()) return "" res = [get(i) for i in spreadsheet_line] res = ",".join(res) print(res)