diff --git a/build/lib/iexcode/instruments/ARPES.py b/build/lib/iexcode/instruments/ARPES.py index a01087d4f3175cb4cf8756491a91e712af154405..145759505fa8998c367daf2d8ce6b424e8bc2c96 100644 --- a/build/lib/iexcode/instruments/ARPES.py +++ b/build/lib/iexcode/instruments/ARPES.py @@ -202,7 +202,7 @@ def folders_ARPES(user_name,**kwargs): print("run,folder,user_name,ioc,ftp: ",run,iex.BL.folder,user_name,kwargs['scan_ioc'],kwargs['ftp']) # Create User Folder: - make_user_folders(run,iex.BL.folder,user_name,iex.BL.endstation,ftp=kwargs['ftp']) + make_user_folders(run,iex.BL.folder,user_name,iex.BL.endstation_name,ftp=kwargs['ftp']) sleep(5) if kwargs["set_folders"]: diff --git a/build/lib/iexcode/instruments/Motors.py b/build/lib/iexcode/instruments/Motors.py index 6007ef8507f03ab644b1d5338e55da9645ac6e62..b59469b4d79386207cf74dbcbcf67222b9c322fe 100644 --- a/build/lib/iexcode/instruments/Motors.py +++ b/build/lib/iexcode/instruments/Motors.py @@ -426,6 +426,15 @@ def dscanphi(start,stop,step): iex.BL.motors.scan("phi",start,stop,step,relative=True) +def scan_motors_2D(inner_loop_list,outer_loop_list,**kwargs): + """ + 2D motor scans + + usage: + scan_motors_2D(["x",-5,5,.25],["z",141.5-5,141.5+5,.25]) + """ + iex.BL.motors.scan_2D(inner_loop_list,outer_loop_list,**kwargs) + ######## mprint and mvsample ################### def mprint(name=''): """ diff --git a/iexcode/instruments/ARPES.py b/iexcode/instruments/ARPES.py index a01087d4f3175cb4cf8756491a91e712af154405..145759505fa8998c367daf2d8ce6b424e8bc2c96 100644 --- a/iexcode/instruments/ARPES.py +++ b/iexcode/instruments/ARPES.py @@ -202,7 +202,7 @@ def folders_ARPES(user_name,**kwargs): print("run,folder,user_name,ioc,ftp: ",run,iex.BL.folder,user_name,kwargs['scan_ioc'],kwargs['ftp']) # Create User Folder: - make_user_folders(run,iex.BL.folder,user_name,iex.BL.endstation,ftp=kwargs['ftp']) + make_user_folders(run,iex.BL.folder,user_name,iex.BL.endstation_name,ftp=kwargs['ftp']) sleep(5) if kwargs["set_folders"]: diff --git a/iexcode/instruments/Octupole.py b/iexcode/instruments/Octupole.py index 5f6644a51e8df349c9a1e64f70e0e5d0b40684d4..b0f473370ecf70cb6d6caa512af60654c6330881 100644 --- a/iexcode/instruments/Octupole.py +++ b/iexcode/instruments/Octupole.py @@ -32,7 +32,7 @@ from iexcode.instruments.scalers import scaler_cts,Scaler from iexcode.instruments.spec_stuff import folders_spec default_ioc = '29ide:' -global tey,tfy,pd,mesh,diag,kbh,kbv, Octupole_scaler_pv +global tey,tfy,pd,mesh,diag,kbh,kbv ############################################################################# def Octupole_init(*userName,**kwargs): @@ -86,7 +86,7 @@ def Octupole_init(*userName,**kwargs): tey = SRS("29ide:scaler1.S3", '29ide:SR570_4:') tfy = Scaler("29ide:scaler1.S4") pd = SRS("29idMZ0:scaler1.S5", '29ide:SR570_5:') - Octupole_scaler_pv = '29ide:scaler1.CNT' + #resetting everything if kwargs['reset']: @@ -94,10 +94,14 @@ def Octupole_init(*userName,**kwargs): print ('Octupole initalized') #return any detectors or other parameters that you want access to from jupyter - return tey,tfy,pd,mesh,diag,kbh,kbv, Octupole_scaler_pv + return tey,tfy,pd,mesh,diag,kbh,kbv ############################################################################################################## ############################## detectors and motors ############################## ############################################################################################################## +def Octupole_scaler_pv(): + scaler_pv = '29ide:scaler1.CNT' + return scaler_pv + def _Octupole_ca_list(): """ list of detectors to trigger @@ -218,6 +222,7 @@ def folders_Octupole(user_name,**kwargs): kwargs.setdefault('run',check_run()) kwargs.setdefault('ftp',False) kwargs.setdefault('debug',False) + kwargs.setdefault('vortex',False) run = kwargs['run'] @@ -234,9 +239,9 @@ def folders_Octupole(user_name,**kwargs): #resetting if 'reset': - Octupole_reset() + Octupole_reset(**kwargs) -def Octupole_reset(): +def Octupole_reset(**kwargs): """ resets scanRecord, current amplifiers, mono limits and lakeshore """ @@ -244,7 +249,7 @@ def Octupole_reset(): if iex.BL.mode=='staff': iex.BL.mda.detector_dictionary = staff_detector_dictionary() else: - iex.BL.mda.detector_dictionary = _Octupole_detector_dictionary() + iex.BL.mda.detector_dictionary = _Octupole_detector_dictionary(**kwargs) iex.BL.mda.trigger_dictionary = _Octupole_trigger_dictionary() iex.BL.mda.scan_before_sequence = _Octupole_scan_before_sequence() iex.BL.mda.scan_after_sequence = _Octupole_scan_after_sequence() @@ -254,7 +259,7 @@ def Octupole_reset(): iex.BL.mda.reset_all() #resetting the current amplifiers - if iex.BL.xray: + if iex.BL.xrays: ca_reset_all() #resetting mono and anyother beamline stuff @@ -344,7 +349,7 @@ def _Octupole_log_entries(): ############################################################################################################## ############################## Octupole scanRecord ############################## ############################################################################################################## -def _Octupole_scan_before_sequence(scan_ioc,scan_dim,**kwargs): +def _Octupole_scan_before_sequence(**kwargs): """ writes the user string sequence to happen at the beginning of a scan returns before_scan_pv = pv for userStringSeq for before scan @@ -357,6 +362,8 @@ def _Octupole_scan_before_sequence(scan_ioc,scan_dim,**kwargs): kwargs.setdefault('seq_num',9) seq_num=kwargs['seq_num'] + scan_ioc = iex.BL.ioc + before_scan_pv,before_scan_proc = userStringSeq_pvs(scan_ioc, seq_num) #clear and write the before scan user sequence @@ -371,7 +378,7 @@ def _Octupole_scan_before_sequence(scan_ioc,scan_dim,**kwargs): return before_scan_proc -def _Octupole_scan_after_sequence(scan_ioc,scan_dim,**kwargs): +def _Octupole_scan_after_sequence(**kwargs): """ writes the user string sequence to happen at the end of a scan returns after_scan_pv = pv for userStringSeq for after scan @@ -384,7 +391,12 @@ def _Octupole_scan_after_sequence(scan_ioc,scan_dim,**kwargs): """ kwargs.setdefault('seq_num',10) kwargs.setdefault('snake',False) - seq_num=kwargs['seq_num'] + kwargs.setdefault('scan_dim',1) + + seq_num = kwargs['seq_num'] + scan_dim = kwargs['scan_dim'] + + scan_ioc = iex.BL.ioc if 'scan_ioc' in kwargs: scan_ioc = kwargs['scan_ioc'] @@ -421,40 +433,44 @@ def _Octupole_scan_after_sequence(scan_ioc,scan_dim,**kwargs): return after_scan_proc -def _Octupole_detector_triggers_sequence(scan_ioc,scan_dim,**kwargs): # do we need to add 29idb:ca5 ??? +def _Octupole_detector_triggers_sequence(**kwargs): # do we need to add 29idb:ca5 ??? """ """ - kwargs.setdefault(seq_num,8) + kwargs.setdefault('seq_num',8) seq_num=kwargs['seq_num'] + scan_ioc = iex.BL.ioc + detector_triggers_pv,detector_triggers_proc = userStringSeq_pvs(iex.BL.ioc, seq_num) #clear the userStringSeq userStringSeq_clear(scan_ioc,seq_num=kwargs['seq_num']) caput(detector_triggers_pv+".DESC","Octupole_Trigger1") + + ca_list = _Octupole_ca_list() + last = len(ca_list) + if last !=0: + for i,ca in enumerate(ca_list): + ca_pv = Keithley_pv(ca[0], ca[1])+':read.PROC CA NMS' + caput(detector_triggers_pv+".LNK" +str(i+2),ca_pv) + caput(detector_triggers_pv+".WAIT"+str(i+2),"After"+str(last)) - scaler_pv = Octupole_scaler_pv + last+=1 + scaler_pv = Octupole_scaler_pv() caput(detector_triggers_pv+".LNK" +str(1),scaler_pv) caput(detector_triggers_pv+".WAIT"+str(1),"After"+str(last)) - - ca_list = _Octupole_ca_list() - last = len(ca_list) - for i,ca in enumerate(ca_list): - ca_pv = Keithley_pv(ca[0], ca[1])+':read.PROC CA NMS' - caput(detector_triggers_pv+".LNK" +str(i+2),ca_pv) - caput(detector_triggers_pv+".WAIT"+str(i+2),"After"+str(last)) return detector_triggers_proc -def _Octupole_trigger_dictionary(scan_ioc,scan_dim,**kwargs): +def _Octupole_trigger_dictionary(**kwargs): """ need to do something """ trigger_dictionary = { - 1:_Octupole_detector_triggers_sequence(scan_ioc,scan_dim,**kwargs), + 1:_Octupole_detector_triggers_sequence(**kwargs), } return trigger_dictionary