Files
x11ma/script/devices/diag.py
gac-x11ma 5225f36124 Tilt scan
2021-04-27 10:47:50 +02:00

144 lines
4.4 KiB
Python
Executable File

from collections import OrderedDict
diag_channels_names = { \
#"photon energy": "X11MA-PGM:rbkenergy", \
#"grating number": "X11MA-PGM:grating", \
#"cff value": "X11MA-PGM:rbkcff", \
"diffraction order": "X11MA-PGM:difforder0", \
#"exit slit size":"X11MA-OP2-SL:TRY.VAL", \
"front end size":"X11MA-FE-DSAPER", \
"status fast shutter":"X11MA-VME-ES1:FAST-SHTR", \
"girder x": "X11MA-HG:X1", \
"girder y": "X11MA-HG:Y1", \
"girder z": "X11MA-HG:Z1", \
"girder pitch": "X11MA-HG:PITCH1", \
"girder yaw": "X11MA-HG:YAW1", \
"girder roll set": "X11MA-HG:ROLL_SET", \
"CMU ox": "X11MA-OP-CM:ox", \
"CMU oy": "X11MA-OP-CM:oy", \
"CMU oz": "X11MA-OP-CM:oz", \
"CMU oRx": "X11MA-OP-CM:oRx", \
"CMU oRy": "X11MA-OP-CM:oRy", \
"CMU oRz": "X11MA-OP-CM:oRz", \
"CMU TRB": "X11MA-OP2-CM:TRB.RBV", \
#"mode": "X11PHS-E:OPT", \
#"id1 mode": "X11MA-ID1:MODE", \
#"id1 offset": "X11MA-ID1:ENERGY-OFFS", \
#"id1 alpha": "X11MA-ID1:ALPHA", \
#"id1 harmonic": "X11MA-ID1:HARMONIC", \
#"id1 gap": "X11MA-ID1-GAP:READ", \
#"id1 shift": "X11MA-ID1-SHIFT:READ", \
#"id2 mode": "X11MA-ID2:MODE", \
#"id2 offset": "X11MA-ID2:ENERGY-OFFS", \
#"id2 alpha": "X11MA-ID2:ALPHA", \
#"id2 harmonic": "X11MA-ID2:HARMONIC", \
#"id2 gap": "X11MA-ID2-GAP:READ", \
#"id2 shift": "X11MA-ID2-SHIFT:READ", \
"keithley 10 IO": "X11Keithley1-read", \
#"ring current": "ARIDI-PCT:CURRENT", \
#"PEEM high voltage": "X11MA-ES1-PEEM:UMON", \
"PEEM leakage current": "X11MA-ES1-PEEM:IMON", \
"Pressure in PEEM": "X11MA-ES1-MAIN:PRESSURE", \
"Pressure in Column": "X11MA-ES1-COLU:PRESSURE", \
"Sample temperature": "X11MA-PC-SW:Pt100-K", \
"Pt100 resistance": "X11MA-PC-SW:Pt100-R", \
}
eiger_diag_channels_names = { \
"high voltage": "X11MA-ES1-SD1:cam1:HighVoltage_RBV", \
}
diag_channels = {}
eiger_diag_channels = {}
for k in diag_channels_names.keys():
try:
diag_channels[k]=Channel(diag_channels_names[k],'s', monitored=True)
except:
msg = "Error creating diagnostic channel: " + str(k)
log(msg, False)
print msg
for k in eiger_diag_channels_names.keys():
try:
eiger_diag_channels[k]=Channel(eiger_diag_channels_names[k],'s', monitored=True)
except:
msg = "Error creating diagnostic channel: " + str(k)
log(msg, False)
print msg
diag_devices = {
"photon energy": energy_rbk, \
"grating number": Grating, \
"cff value": cff, \
"exit slit size": ES, \
"mode": energy_opt, \
"id1 mode": id1_mode, \
"id1 offset": id1_offset, \
"id1 alpha": id1_alpha, \
"id1 harmonic": id1_harmonic, \
"id1 gap": id1_gap, \
"id1 shift": id1_shift, \
"id2 mode": id2_mode, \
"id2 offset": id2_offset, \
"id2 alpha": id2_alpha, \
"id2 harmonic": id2_harmonic, \
"id2 gap": id2_gap, \
"id2 shift": id2_shift, \
"ring current": machine_cur, \
"PEEM high voltage": microscope.high_voltage,
}
def get_microscope_diags():
try:
ret = microscope.get_values()
except:
return {}
try:
ret["Preset Label"] = microscope.get_preset_label()
except:
pass
return ret
def get_diags():
ret = {}
for k,v in diag_devices.items():
try:
if type(v) is Channel:
ret[k]=str(v.get())
else:
ret[k]=str(v.value)
except:
ret[k]="Error: " + str(sys.exc_info()[1])
for k,v in diag_channels.items():
try:
ret[k]=v.get() #caget(v,'s') #v.get()
except:
ret[k]="Error: " + str(sys.exc_info()[1])
if eiger.initialized:
try:
ret["exposure time"] = str(eiger.getExposure())
except:
ret[k]="Error: " + str(sys.exc_info()[1])
for k,v in eiger_diag_channels.items():
try:
ret[k]=v.get() #caget(v,'s')
except:
ret[k]="Error: " + str(sys.exc_info()[1])
if microscope.initialized and microscope.client.isConnected():
for k,v in get_microscope_diags().items():
ret["Microscope " + k] = str(v)
return OrderedDict(sorted(ret.items(), key=lambda i: i[0].lower()))
def print_diags():
diags = get_diags()
for k in diags.keys():
print k + ": " + diags[k]