282 lines
12 KiB
Python
282 lines
12 KiB
Python
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)
|
|
|
|
|
|
overview_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),
|
|
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),
|
|
|
|
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),
|
|
|
|
# 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),
|
|
|
|
# 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", **overview_info)
|
|
|
|
|
|
|
|
spreadsheet_line = [
|
|
"FEL", "UV",
|
|
"timeStamp", "fileName", "Comments",
|
|
# "timeStamp", "name", "Comments",
|
|
# "pressJF",
|
|
# "pressattn40",
|
|
# "SourceTemp",
|
|
# "skimmerRuppUpstream",
|
|
# "skimmerRuppDownstream",
|
|
"Manip1_x",
|
|
"Manip1_y",
|
|
"Manip1_z",
|
|
"Manip4_x",
|
|
"Manip4_y", "type", "core size AAC", "core size measured", "core size estimated", "coating thickness AAC", "coating thickness expected", "uppernozzleskimmer", "lowernozzleskimmer", "entrancepressure",
|
|
# "trigger14Delay",
|
|
# "Gas cell / TOF","Sample","shots", "Two colors (Y/N)", "energy1",
|
|
# "polarisation10", "energy2",
|
|
# "polarisation19",
|
|
"photonEnergy",
|
|
"pulse_energy",
|
|
"pulse_energy_attgas",
|
|
"transmission_attgas",
|
|
"FELrepRate",
|
|
"AttenuationLaser",
|
|
"Timedelay",
|
|
# "VoltsSetGasAtt",
|
|
# "PressureGasAtt",
|
|
"pressChamb1",
|
|
"pressJF", "anotherpressure", "andanotherpressure","anotherpressure2", "andanotherpressure2",
|
|
# "PaddleChamber1MaskX",
|
|
# "PaddleChamber1MaskY",
|
|
# "PaddleChamber1FrameX",
|
|
# "PaddleChamber1YagX",
|
|
# "PaddleChamber1YagY",
|
|
# "pressChamb2", "Gas", "Slit", "Ek", "Ep", "mode",
|
|
# "manip2needleESy",
|
|
# "manip7ESy",
|
|
# "pressChamb3",
|
|
# "pressChamb3GasCell",
|
|
# "ToFV1p",
|
|
# "ToFV2p",
|
|
# "ToFV3p",
|
|
# "ToFV1m",
|
|
# "ToFV2m",
|
|
# "ToFV3m",
|
|
# "pressSmallChamber",
|
|
# "LshapeRakX",
|
|
# "LshapeRakY",
|
|
# "LshapeRakZ",
|
|
# "LshapeDoorX",
|
|
# "LshapeDoorY",
|
|
# "YagX",
|
|
# "YagY", "PhotonSpec Det", "PhotonSpec X", "PhotonSpec Y", "PhotonSpec order", "PhotonSpec slit",
|
|
# "manip3ESy",
|
|
# "chicane_current_rb",
|
|
# "chicane_current_sv",
|
|
|
|
|
|
"TOF_ext_neg",
|
|
"TOF_Behlke_lessneg",
|
|
"TOF_MCP_front",
|
|
"TOF_ext_pos",
|
|
"TOF_rep_pos",
|
|
"TOF_unused",
|
|
|
|
|
|
"att64",
|
|
"att65",
|
|
|
|
"inc_mirror_tip",
|
|
"inc_mirror_tilt",
|
|
"standaChamber3",
|
|
"mic_linear",
|
|
"mic_paddle_y",
|
|
"mic_paddle_x",
|
|
"mic_paddle_z",
|
|
"zigzag_y",
|
|
"zigzag_x",
|
|
"zigzag_z",
|
|
"slit_downstream_top",
|
|
"slit_downstream_x",
|
|
"slit_downstream_bottom",
|
|
"slit_front_xneg",
|
|
"slit_front_xpos",
|
|
|
|
"energy6",
|
|
"energy7",
|
|
"energy8",
|
|
"energy9",
|
|
"energy10",
|
|
"energy11",
|
|
"energy12",
|
|
"energy13",
|
|
"energy14",
|
|
"energy15",
|
|
"energy16",
|
|
"energy17",
|
|
"energy18",
|
|
"energy19",
|
|
"energy20",
|
|
"energy21",
|
|
"energy22",
|
|
|
|
|
|
]
|
|
|
|
|
|
spreadsheet_info = {n: v for n, v in overview_info.items() if n in spreadsheet_line}
|
|
|
|
|
|
|
|
@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)
|
|
|
|
|
|
|