144 lines
4.4 KiB
Python
Executable File
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]
|
|
|
|
|