Skip to content
Snippets Groups Projects
Commit 6bab6bf7 authored by 29iduser's avatar 29iduser
Browse files

debug

parent c157b7d3
No related branches found
No related tags found
No related merge requests found
___
___
[[_TOC_]]
___
___
# **APRES python - cheat sheet**
#### list of commonly used python functions for the ARPES Endstation
<br>
......
......@@ -3,7 +3,7 @@ from time import sleep
from epics import caget, caput
import iexcode.instruments.cfg as iex
from iexcode.instruments.utilities import read_dict, print_warning_message
from iexcode.instruments.utilities import read_dict, write_dict, print_warning_message, today
from iexcode.instruments.scanRecord import scan_fillin
M0M1_fpath="/home/beams22/29IDUSER/Documents/User_Macros/Macros_29id/IEX_Dictionaries/Dict_IDCal.txt"
......@@ -139,34 +139,62 @@ def FMB_mirror_scan(mirror_num,axis,start,stop,step):
caput(pv+"_SP.PREC",3)
scan_fillin(pv+"_SP",pv+"_MON",start,stop,step)
def FMB_mirror_dict(n,write=False):
"""
Update mirror position dictionary (Dict_Mn.txt)
**kwargs
write = True/False (if False then reads only)
"""
filename ='Dict_M'+str(n)+'.txt'
try:
mir_position=read_dict(filename)
print('\nCurrent dictionary:\n')
print(mir_position)
except KeyError:
print("Unable to read dictionary")
return
if write == False:
return mir_position
else:
if n in [0,1,3]:
TX,TY,TZ,RX,RY,RZ=FMB_mirror_get(n)
new_mir_position={'TX':float(TX),'TY':float(TY),'TZ':float(TZ),'RX':float(RX),'RY':float(RY),'RZ':float(TZ)}
mir_position.update(new_mir_position)
else:
print('\nInvalid mirror number. No changes made in file.')
return
d={
0:'\n======= '+today()+': \n',
1:mir_position,
2:'\n'
}
write_dict(filename,d)
return mir_position
def M0M1_table(run,mirror):
def FMB_restore_position(mirror_num,**kwargs):
"""
Prints the positions TX / TY / TZ / RX / RY / RZ for either Mirror = 0 or 1 (M0 or M1) for the specified Run
Run='default' give a reasonable starting position after homing
M0M1_SP() will put those values as the set points, you will need to push the Move button
restores the position
**kwargs
position_list to overwrite dictionary values
verbose (default = True)
execute (default = True); if false => still writes to the set point just doesn't move
"""
M0M1_Pos=read_dict(M0M1_fpath)
return M0M1_Pos[run][mirror[-1]]
kwargs.setdefault('verbose',True)
kwargs.setdefault('execute',True)
def M0M1_SP(run,mirror,Go=False):
"""
Gets the values from the mirror position from a previous run and
put values as defined by M0M1_Table as the set points
Go = True / False (default); True to moves to that position
"""
mirror_pos=M0M1_table(run,mirror).split('/')
motor=['TX','TY','TZ','RX','RY','RZ']
mirror=mirror[-1]
for i in range(len(motor)):
PV="29id_m"+str(mirror)+":"+motor[i]+"_POS_SP"
Val=mirror_pos[i] #float(MirrorPos[i])
print(PV+" = "+Val)
caput(PV,Val)
sleep(0.5)
if Go:
caput('29id_m'+str(mirror)+':MOVE_CMD.PROC',0,wait=True,timeout=18000)
if 'position_dictionary' in kwargs:
position_list = kwargs['position_dictionary']
else:
print(" caput(\'29id_m"+str(mirror)+":MOVE_CMD.PROC\',0)")
position_dictionary = FMB_mirror_dict(mirror_num,write=False)
axis_list = ['TX','TY','TZ','RX','RY','RZ']
position_list =[]
for ax in axis_list:
position_list.append(position_dictionary[ax])
FMB_mirror_move_all(mirror_num,position_list,verbose=kwargs['verbose'],execute=kwargs['execute'])
......@@ -957,42 +957,3 @@ def update_slit_dict(position_list=None, write=True):
def update_mirror_dict(n,**kwargs):
"""
Update mirror position dictionary (Dict_Mn.txt)
**kwargs
write = True/False (if False then reads only); default = True
"""
filename ='Dict_M'+str(n)+'.txt'
kwargs.setdefault("write",True)
try:
mir_position=read_dict(filename)
print('\nCurrent dictionary:\n')
print(mir_position)
except KeyError:
print("Unable to read dictionary")
return
if kwargs['write'] == False:
return mir_position
else:
if n in [0,1,3]:
TX,TY,TZ,RX,RY,RZ=FMB_mirror_get(n)
new_mir_position={'TX':float(TX),'TY':float(TY),'TZ':float(TZ),'RX':float(RX),'RY':float(RY),'RZ':float(TZ)}
mir_position.update(new_mir_position)
else:
print('\nInvalid mirror number. No changes made in file.')
return
d={
0:'\n======= '+today()+': \n',
1:mir_position,
2:'\n'
}
write_dict(filename,d)
return mir_position
......@@ -390,7 +390,7 @@ def sotw_M0M1_update_dictionary():
foo=input('Do you want to update the M1 (y or n)? >')
if foo[0].lower() == 'y':
try:
update_mirror_dict(1)
FMB_mirror_dict(1,write=True)
print_warning_message("need to debug update_mirror_dict, do by hand")
except:
print_warning_message("couldn't update the mirror dictionary, do by hand")
......@@ -445,6 +445,8 @@ def sotw_update_slit_dictionary(*list_position):
print_warning_message(" update_slit_dict(list_position)")
def sotw_check_flux(**kwargs):
"""
does a monoscan to check flux and ID calibration
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment