From be0efb272518e8c6f758ff6981365e29c7107185 Mon Sep 17 00:00:00 2001 From: jmcchesn <jmcchesn@aps.anl.gov> Date: Wed, 13 Jul 2022 09:57:10 -0500 Subject: [PATCH] fixed circular imports --- build/lib/iexcode/init_Kapp.py | 11 +++++ build/lib/iexcode/init_staff.py | 1 + build/lib/iexcode/init_xrays.py | 12 +++++ build/lib/iexcode/instruments/ARPES.py | 9 ++-- build/lib/iexcode/instruments/Kappa.py | 4 +- build/lib/iexcode/instruments/Scienta.py | 8 +++- build/lib/iexcode/instruments/__init__.py | 42 ------------------ .../iexcode/instruments/electron_analyzer.py | 26 +++++++---- build/lib/iexcode/instruments/xrays.py | 2 +- build/lib/iexcode/macros/__init__.py | 16 +++++++ iexcode.egg-info/SOURCES.txt | 3 ++ iexcode/init_ARPES | 7 +++ iexcode/init_Kapp.py | 11 +++++ iexcode/init_staff.py | 1 + iexcode/init_xrays.py | 12 +++++ iexcode/instruments/ARPES.py | 9 ++-- iexcode/instruments/Kappa.py | 4 +- iexcode/instruments/Scienta.py | 8 +++- iexcode/instruments/__init__.py | 42 ------------------ .../__pycache__/ARPES.cpython-37.pyc | Bin 22122 -> 22162 bytes .../__pycache__/Kappa.cpython-37.pyc | Bin 30672 -> 30664 bytes .../__pycache__/Scienta.cpython-37.pyc | Bin 16246 -> 16338 bytes .../__pycache__/bakeout.cpython-37.pyc | Bin 4491 -> 4491 bytes .../electron_analyzer.cpython-37.pyc | Bin 22988 -> 23226 bytes .../__pycache__/xrays.cpython-37.pyc | Bin 18094 -> 18080 bytes iexcode/instruments/electron_analyzer.py | 26 +++++++---- iexcode/instruments/xrays.py | 2 +- iexcode/macros/__init__.py | 16 +++++++ 28 files changed, 152 insertions(+), 120 deletions(-) create mode 100644 build/lib/iexcode/init_Kapp.py create mode 100644 build/lib/iexcode/init_staff.py create mode 100644 build/lib/iexcode/init_xrays.py create mode 100644 iexcode/init_ARPES create mode 100644 iexcode/init_Kapp.py create mode 100644 iexcode/init_staff.py create mode 100644 iexcode/init_xrays.py diff --git a/build/lib/iexcode/init_Kapp.py b/build/lib/iexcode/init_Kapp.py new file mode 100644 index 0000000..d2e8127 --- /dev/null +++ b/build/lib/iexcode/init_Kapp.py @@ -0,0 +1,11 @@ + +from iexcode.instruments.Kappa import * +from iexcode.instruments.Kappa_det import * +from iexcode.instruments.Kappa_Euler import * + +from iexcode.instruments.current_amplifiers import * +from iexcode.instruments.MPA import * +from iexcode.instruments.vortexs29 import * + + +from iexcode.instruments.spec_stuff import * diff --git a/build/lib/iexcode/init_staff.py b/build/lib/iexcode/init_staff.py new file mode 100644 index 0000000..7ea17bb --- /dev/null +++ b/build/lib/iexcode/init_staff.py @@ -0,0 +1 @@ +from iexcode.instruments.staff import * diff --git a/build/lib/iexcode/init_xrays.py b/build/lib/iexcode/init_xrays.py new file mode 100644 index 0000000..ed42729 --- /dev/null +++ b/build/lib/iexcode/init_xrays.py @@ -0,0 +1,12 @@ +from iexcode.instruments.beamline import * +from iexcode.instruments.diagnostics import * +from iexcode.instruments.FMB_mirrors import * +from iexcode.instruments.gate_valves import * +from iexcode.instruments.hxp_mirrors import * +from iexcode.instruments.IEX_VPU import * +from iexcode.instruments.m3r import * +from iexcode.instruments.slits import * +from iexcode.instruments.resolution import * +from iexcode.instruments.storage_ring import * +from iexcode.instruments.VLS_PGM import * +from iexcode.instruments.xrays import * \ No newline at end of file diff --git a/build/lib/iexcode/instruments/ARPES.py b/build/lib/iexcode/instruments/ARPES.py index a2337c0..68b161c 100644 --- a/build/lib/iexcode/instruments/ARPES.py +++ b/build/lib/iexcode/instruments/ARPES.py @@ -24,8 +24,11 @@ from iexcode.instruments.shutters import branch_shutter_close from iexcode.instruments.slits import slit3C_get from iexcode.instruments.Lakeshore_335 import Lakeshore_reset -from iexcode.instruments.electron_analyzer import folders_EA,EA +from iexcode.instruments.electron_analyzer import EA_init_Motors, folders_EA,EA +global BL +global tey,ca15 +global ARPES_Motors ############################################################################# def ARPES_init(set_folders=True,reset=True,**kwargs): @@ -47,18 +50,17 @@ def ARPES_init(set_folders=True,reset=True,**kwargs): ARPES_trigger_dictionary(),ARPES_scan_before_sequence(),ARPES_scan_after_sequence()) #endstation - global BL BL=Endstation('ARPES',kwargs['scan_ioc'],kwargs['xrays'],kwargs['BL_mode'],mda_scanRecord, ARPES_log_header,ARPES_log_entries,ARPES_motor_dictionary) #EA try: EA.get() + EA_init_Motors(ARPES_Motors) except: print("\n\n NOTE: Scienta IOC is not running - start IOC and %run Macros_29id/ScanFunctions_EA.py\n\n") #global detectors - global tey,ca15 tey = Keithley('c',1) ca15 = Keithley('b',15) @@ -75,7 +77,6 @@ def ARPES_init(set_folders=True,reset=True,**kwargs): ARPES_reset() #motors - global ARPES_Motors physical_motors = ['x','y','z','th','chi','phi'] psuedo_motors = ['focus'] ARPES_Motors = Motors('ARPES',ARPES_motor_dictionary(),physical_motors,psuedo_motors) diff --git a/build/lib/iexcode/instruments/Kappa.py b/build/lib/iexcode/instruments/Kappa.py index f819d12..dda262f 100644 --- a/build/lib/iexcode/instruments/Kappa.py +++ b/build/lib/iexcode/instruments/Kappa.py @@ -282,7 +282,7 @@ def Kappa_reset(): #resetting mono and anyother beamline stuff if BL.xrays: - JLM="xrays_reset()" + xrays_reset() #reseting the Kappa Lakeshore @@ -324,7 +324,7 @@ def Kappa_get_all(verbose=True): #beamline info if BL.xray: - JLM="beamline_info = xrays_get_all()" + beamline_info = xrays_get_all() #vals.update(beamline_info) mesh.get() diff --git a/build/lib/iexcode/instruments/Scienta.py b/build/lib/iexcode/instruments/Scienta.py index f493664..e49856e 100644 --- a/build/lib/iexcode/instruments/Scienta.py +++ b/build/lib/iexcode/instruments/Scienta.py @@ -80,7 +80,11 @@ class Scienta: #Camera Settings self.Frames = None - self.get() + pv = PV(self.PHV+"WorkFunction") + if pv.connect(): + self.get() + else: + print("Scienta is not connected") return def get(self,q=1): @@ -88,6 +92,7 @@ class Scienta: Gets the current Scienta parameters returns the dictionary for q!=1 """ + for key in vars(self): if key not in ["PHV","_Pcam","_savePlugin","_statsPlugin","wk","Frames","dtype"]: vars(self)[key]=caget(self.PHV+key+".VAL") @@ -100,7 +105,6 @@ class Scienta: if q !=1: for key in vars(self): print(key+" = "+str(vars(self)[key])) - return vars(self) def counts(self): diff --git a/build/lib/iexcode/instruments/__init__.py b/build/lib/iexcode/instruments/__init__.py index e244a3c..e69de29 100644 --- a/build/lib/iexcode/instruments/__init__.py +++ b/build/lib/iexcode/instruments/__init__.py @@ -1,42 +0,0 @@ - -""" from iexcode.instruments.AD_utilites import * -from iexcode.instruments.ARPES import * -from iexcode.instruments.bakeout import * -from iexcode.instruments.beamline import * -from iexcode.instruments.cameras import * -from iexcode.instruments.conversions_constants import * -from iexcode.instruments.current_amplifiers import * -from iexcode.instruments.diagnostics import * -from iexcode.instruments.electron_analyzer import * -from iexcode.instruments.encoders import * -from iexcode.instruments.files_and_folders import * -from iexcode.instruments.FMB_mirrors import * -from iexcode.instruments.gate_valves import * -from iexcode.instruments.hxp_mirrors import * -from iexcode.instruments.IEX_endstations import * -from iexcode.instruments.IEX_VPU import * -from iexcode.instruments.Kappa import * -from iexcode.instruments.Kappa_det import * -from iexcode.instruments.Kappa_Euler import * -from iexcode.instruments.Lakeshore_335 import * -from iexcode.instruments.logfile import * -from iexcode.instruments.m3r import * -from iexcode.instruments.Motors import * -from iexcode.instruments.mpa import * -from iexcode.instruments.remote_controlers import * -from iexcode.instruments.resolution import * -from iexcode.instruments.s29_temp_cntl import * -from iexcode.instruments.scalers import * -from iexcode.instruments.Scienta import * -from iexcode.instruments.shutters import * -from iexcode.instruments.slits import * -from iexcode.instruments.spec_stuff import * -from iexcode.instruments.staff import * -from iexcode.instruments.storage_ring import * -from iexcode.instruments.userCalcs import * -from iexcode.instruments.utilities import * -from iexcode.instruments.VLS_PGM import * -from iexcode.instruments.vortexs29 import * -from iexcode.instruments.xrays import * - - """ diff --git a/build/lib/iexcode/instruments/electron_analyzer.py b/build/lib/iexcode/instruments/electron_analyzer.py index 119d758..3c208d0 100644 --- a/build/lib/iexcode/instruments/electron_analyzer.py +++ b/build/lib/iexcode/instruments/electron_analyzer.py @@ -22,13 +22,21 @@ from iexcode.instruments.shutters import branch_shutter_close from iexcode.instruments.VLS_PGM import mono_energy_get from iexcode.instruments.files_and_folders import get_next_fileNumber from iexcode.instruments.logfile import * -from iexcode.instruments.ARPES import ARPES_Motors from iexcode.instruments.Scienta import * global EA -EA = Scienta() +try: + print('connecting to Scienta') + EA = Scienta() +except: + print("EA is not connected") ########################################################################### +def EA_init_Motors(Motors): + """ + Adds Motors to EA object to be used in scanning + """ + EA.Motors = Motors def EA_ioc_init(**kwargs): """ @@ -443,10 +451,10 @@ def scanFM(RoughPositions,thList,EAlist,**kwargs): if kwargs['debug']: print(x,y,z,th,chi,phi) - BL.mda.fillin_table(ARPES_Motors._motor_dictionary("th")[1],ARPES_Motors._motor_dictionary("th")[0],th,positioner_num=1) - BL.mda.fillin_table(ARPES_Motors._motor_dictionary("x")[1],ARPES_Motors._motor_dictionary("x")[0],x,positioner_num=2) - BL.mda.fillin_table(ARPES_Motors._motor_dictionary("y")[1],ARPES_Motors._motor_dictionary("y")[0],y,positioner_num=3) - BL.mda.fillin_table(ARPES_Motors._motor_dictionary("z")[1],ARPES_Motors._motor_dictionary("z")[0],z,positioner_num=4) + BL.mda.fillin_table(EA.Motors._motor_dictionary("th")[1],EA.Motors._motor_dictionary("th")[0],th,positioner_num=1) + BL.mda.fillin_table(EA.Motors._motor_dictionary("x")[1],EA.Motors._motor_dictionary("x")[0],x,positioner_num=2) + BL.mda.fillin_table(EA.Motors._motor_dictionary("y")[1],EA.Motors._motor_dictionary("y")[0],y,positioner_num=3) + BL.mda.fillin_table(EA.Motors._motor_dictionary("z")[1],EA.Motors._motor_dictionary("z")[0],z,positioner_num=4) #setting up EA EAkwargs={ @@ -518,7 +526,7 @@ def mvth_interp(RoughPositions, thVal,**kwargs): x,y,z,th,chi,phi=interpRoughPositions(RoughPositions,thVal,thVal-.1,1,**kwargs) Pos=[x[0],y[0],z[0],th[0],chi[0],phi[0]] #print("Pos = ",Pos) - ARPES_Motors.mvsample(Pos) + EA.Motors.mvsample(Pos) def scanEA_hv(hv_start_stop_step_lists,EAlist=[],**kwargs): """ @@ -615,7 +623,7 @@ def scanEA_motor(EAlist, motor,start,stop,step,mode='absolute',**kwargs): scan_dim=2 #hard coded kwargs.update({'scan_dim':scan_dim}) - ARPES_Motors.scan(motor,start,stop,step,**kwargs) + EA.Motors.scan(motor,start,stop,step,**kwargs) if kwargs['debug']: print("ScanGo scan_dim = ",scan_dim) @@ -662,7 +670,7 @@ def scanEA_Mesh(EAlist,y_start_stop_step,z_start_stop_step,**kwargs): outer_scan_dim=3 #hard coded inner_loop_list = y_start_stop_step.insert(0,"y") outer_loop_list = z_start_stop_step.insert(0,"z") - ARPES_Motors.scan_2D(inner_loop_list,outer_loop_list,outer_scan_dim,**kwargs) + EA.Motors.scan_2D(inner_loop_list,outer_loop_list,outer_scan_dim,**kwargs) if kwargs['debug']: print("ScanGo scan_dim = ",outer_scan_dim) diff --git a/build/lib/iexcode/instruments/xrays.py b/build/lib/iexcode/instruments/xrays.py index b4a4c18..23b2ddc 100644 --- a/build/lib/iexcode/instruments/xrays.py +++ b/build/lib/iexcode/instruments/xrays.py @@ -20,7 +20,7 @@ from iexcode.instruments.utilities import print_warning_message,make_table, take from iexcode.instruments.current_amplifiers import ca_average from iexcode.instruments.beamline import endstation_cams_enable -from iexcode.instruments.MPA import mpa_HV_on,mpa_HV_off +from iexcode.instruments.MPA import MPA ############################################################################################################## diff --git a/build/lib/iexcode/macros/__init__.py b/build/lib/iexcode/macros/__init__.py index 8b13789..d2a66a1 100644 --- a/build/lib/iexcode/macros/__init__.py +++ b/build/lib/iexcode/macros/__init__.py @@ -1 +1,17 @@ +from iexcode.instruments.AD_utilities import * +from iexcode.instruments.bakeout import * +from iexcode.instruments.cameras import * +from iexcode.instruments.conversions_constants import * +from iexcode.instruments.encoders import * +from iexcode.instruments.files_and_folders import * +from iexcode.instruments.IEX_endstations import * +from iexcode.instruments.logfile import * +from iexcode.instruments.Motors import * +from iexcode.instruments.remote_controlers import * +from iexcode.instruments.s29_temp_cntl import * +from iexcode.instruments.scalers import * +from iexcode.instruments.userCalcs import * +from iexcode.instruments.utilities import * + + diff --git a/iexcode.egg-info/SOURCES.txt b/iexcode.egg-info/SOURCES.txt index 4b38e09..ace7681 100644 --- a/iexcode.egg-info/SOURCES.txt +++ b/iexcode.egg-info/SOURCES.txt @@ -1,6 +1,9 @@ README.md setup.py iexcode/__init__.py +iexcode/init_Kapp.py +iexcode/init_staff.py +iexcode/init_xrays.py iexcode.egg-info/PKG-INFO iexcode.egg-info/SOURCES.txt iexcode.egg-info/dependency_links.txt diff --git a/iexcode/init_ARPES b/iexcode/init_ARPES new file mode 100644 index 0000000..060e724 --- /dev/null +++ b/iexcode/init_ARPES @@ -0,0 +1,7 @@ +from iexcode.instruments.ARPES import * +from iexcode.instruments.electron_analyzer import * +#from iexcode.instruments.Scienta import * + + +from iexcode.instruments.current_amplifiers import * +from iexcode.instruments.Lakeshore_335 import * diff --git a/iexcode/init_Kapp.py b/iexcode/init_Kapp.py new file mode 100644 index 0000000..d2e8127 --- /dev/null +++ b/iexcode/init_Kapp.py @@ -0,0 +1,11 @@ + +from iexcode.instruments.Kappa import * +from iexcode.instruments.Kappa_det import * +from iexcode.instruments.Kappa_Euler import * + +from iexcode.instruments.current_amplifiers import * +from iexcode.instruments.MPA import * +from iexcode.instruments.vortexs29 import * + + +from iexcode.instruments.spec_stuff import * diff --git a/iexcode/init_staff.py b/iexcode/init_staff.py new file mode 100644 index 0000000..7ea17bb --- /dev/null +++ b/iexcode/init_staff.py @@ -0,0 +1 @@ +from iexcode.instruments.staff import * diff --git a/iexcode/init_xrays.py b/iexcode/init_xrays.py new file mode 100644 index 0000000..ed42729 --- /dev/null +++ b/iexcode/init_xrays.py @@ -0,0 +1,12 @@ +from iexcode.instruments.beamline import * +from iexcode.instruments.diagnostics import * +from iexcode.instruments.FMB_mirrors import * +from iexcode.instruments.gate_valves import * +from iexcode.instruments.hxp_mirrors import * +from iexcode.instruments.IEX_VPU import * +from iexcode.instruments.m3r import * +from iexcode.instruments.slits import * +from iexcode.instruments.resolution import * +from iexcode.instruments.storage_ring import * +from iexcode.instruments.VLS_PGM import * +from iexcode.instruments.xrays import * \ No newline at end of file diff --git a/iexcode/instruments/ARPES.py b/iexcode/instruments/ARPES.py index a2337c0..68b161c 100644 --- a/iexcode/instruments/ARPES.py +++ b/iexcode/instruments/ARPES.py @@ -24,8 +24,11 @@ from iexcode.instruments.shutters import branch_shutter_close from iexcode.instruments.slits import slit3C_get from iexcode.instruments.Lakeshore_335 import Lakeshore_reset -from iexcode.instruments.electron_analyzer import folders_EA,EA +from iexcode.instruments.electron_analyzer import EA_init_Motors, folders_EA,EA +global BL +global tey,ca15 +global ARPES_Motors ############################################################################# def ARPES_init(set_folders=True,reset=True,**kwargs): @@ -47,18 +50,17 @@ def ARPES_init(set_folders=True,reset=True,**kwargs): ARPES_trigger_dictionary(),ARPES_scan_before_sequence(),ARPES_scan_after_sequence()) #endstation - global BL BL=Endstation('ARPES',kwargs['scan_ioc'],kwargs['xrays'],kwargs['BL_mode'],mda_scanRecord, ARPES_log_header,ARPES_log_entries,ARPES_motor_dictionary) #EA try: EA.get() + EA_init_Motors(ARPES_Motors) except: print("\n\n NOTE: Scienta IOC is not running - start IOC and %run Macros_29id/ScanFunctions_EA.py\n\n") #global detectors - global tey,ca15 tey = Keithley('c',1) ca15 = Keithley('b',15) @@ -75,7 +77,6 @@ def ARPES_init(set_folders=True,reset=True,**kwargs): ARPES_reset() #motors - global ARPES_Motors physical_motors = ['x','y','z','th','chi','phi'] psuedo_motors = ['focus'] ARPES_Motors = Motors('ARPES',ARPES_motor_dictionary(),physical_motors,psuedo_motors) diff --git a/iexcode/instruments/Kappa.py b/iexcode/instruments/Kappa.py index f819d12..dda262f 100644 --- a/iexcode/instruments/Kappa.py +++ b/iexcode/instruments/Kappa.py @@ -282,7 +282,7 @@ def Kappa_reset(): #resetting mono and anyother beamline stuff if BL.xrays: - JLM="xrays_reset()" + xrays_reset() #reseting the Kappa Lakeshore @@ -324,7 +324,7 @@ def Kappa_get_all(verbose=True): #beamline info if BL.xray: - JLM="beamline_info = xrays_get_all()" + beamline_info = xrays_get_all() #vals.update(beamline_info) mesh.get() diff --git a/iexcode/instruments/Scienta.py b/iexcode/instruments/Scienta.py index f493664..e49856e 100644 --- a/iexcode/instruments/Scienta.py +++ b/iexcode/instruments/Scienta.py @@ -80,7 +80,11 @@ class Scienta: #Camera Settings self.Frames = None - self.get() + pv = PV(self.PHV+"WorkFunction") + if pv.connect(): + self.get() + else: + print("Scienta is not connected") return def get(self,q=1): @@ -88,6 +92,7 @@ class Scienta: Gets the current Scienta parameters returns the dictionary for q!=1 """ + for key in vars(self): if key not in ["PHV","_Pcam","_savePlugin","_statsPlugin","wk","Frames","dtype"]: vars(self)[key]=caget(self.PHV+key+".VAL") @@ -100,7 +105,6 @@ class Scienta: if q !=1: for key in vars(self): print(key+" = "+str(vars(self)[key])) - return vars(self) def counts(self): diff --git a/iexcode/instruments/__init__.py b/iexcode/instruments/__init__.py index e244a3c..e69de29 100644 --- a/iexcode/instruments/__init__.py +++ b/iexcode/instruments/__init__.py @@ -1,42 +0,0 @@ - -""" from iexcode.instruments.AD_utilites import * -from iexcode.instruments.ARPES import * -from iexcode.instruments.bakeout import * -from iexcode.instruments.beamline import * -from iexcode.instruments.cameras import * -from iexcode.instruments.conversions_constants import * -from iexcode.instruments.current_amplifiers import * -from iexcode.instruments.diagnostics import * -from iexcode.instruments.electron_analyzer import * -from iexcode.instruments.encoders import * -from iexcode.instruments.files_and_folders import * -from iexcode.instruments.FMB_mirrors import * -from iexcode.instruments.gate_valves import * -from iexcode.instruments.hxp_mirrors import * -from iexcode.instruments.IEX_endstations import * -from iexcode.instruments.IEX_VPU import * -from iexcode.instruments.Kappa import * -from iexcode.instruments.Kappa_det import * -from iexcode.instruments.Kappa_Euler import * -from iexcode.instruments.Lakeshore_335 import * -from iexcode.instruments.logfile import * -from iexcode.instruments.m3r import * -from iexcode.instruments.Motors import * -from iexcode.instruments.mpa import * -from iexcode.instruments.remote_controlers import * -from iexcode.instruments.resolution import * -from iexcode.instruments.s29_temp_cntl import * -from iexcode.instruments.scalers import * -from iexcode.instruments.Scienta import * -from iexcode.instruments.shutters import * -from iexcode.instruments.slits import * -from iexcode.instruments.spec_stuff import * -from iexcode.instruments.staff import * -from iexcode.instruments.storage_ring import * -from iexcode.instruments.userCalcs import * -from iexcode.instruments.utilities import * -from iexcode.instruments.VLS_PGM import * -from iexcode.instruments.vortexs29 import * -from iexcode.instruments.xrays import * - - """ diff --git a/iexcode/instruments/__pycache__/ARPES.cpython-37.pyc b/iexcode/instruments/__pycache__/ARPES.cpython-37.pyc index 638823899b8a5742d22cc711aa7fbd24ab3aa5c6..75597a47c882b71d008e0bc4b04a61212dbc3b03 100644 GIT binary patch delta 5802 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 delta 5705 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 Iy<^{h0k^aiYXATM diff --git a/iexcode/instruments/__pycache__/Kappa.cpython-37.pyc b/iexcode/instruments/__pycache__/Kappa.cpython-37.pyc index 6a49022d4993b64ef4ab43a6b7172ca1fad232be..4cdb02de5338be6e406d459d6ab54bc1ffec6a31 100644 GIT binary patch delta 8009 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 delta 8149 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 X2oedB2*`DXtLY|y=GgH1<U9Wlwewub diff --git a/iexcode/instruments/__pycache__/Scienta.cpython-37.pyc b/iexcode/instruments/__pycache__/Scienta.cpython-37.pyc index 9008e02435a9fc2c2c5df84e805f720754feb2a6..3749ba4d74f6697e31add388485ca2ac10d6c38c 100644 GIT binary patch delta 3616 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 delta 3684 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 H@t*$xc{UC9 diff --git a/iexcode/instruments/__pycache__/bakeout.cpython-37.pyc b/iexcode/instruments/__pycache__/bakeout.cpython-37.pyc index ed7fa33afb66085ab5615af80990bfae05fdd2fe..f66bfe8286efa29bc098861333f411d46e5eddd0 100644 GIT binary patch delta 251 zcmeBH?pEe<;^pOH0D@h&H*zJgFy7jn&7#D}cx!SW>jg%g$?<H{8TB@QXFJQpD6sh` zCnGbX<mTf%N{mtwKrKa)AR-DxM1zPJ5D`0>nJ-=dU3zj6pShj@NM0XA7=Q>v5FrdA zj6j4jh%f;WrXa#>@^!w`98y50CTEe{<W>9zO7S4^1Q3x3ByKUL6zPCCU_uwflAipB Y|0tvM<U<18QhHzkxIB`|$?1YB0C4m)1ONa4 delta 238 zcmeBH?pEe<;^pOH0D|ZB8@Uo#7^604vnVk#MosQxy}+n7Ii77gqt52<Y-gDm`8OZs zWMpQP*nFHviIFo5sHG?zNK8)T6Pe7$7b5@{DT)BeMNTf_GuPt>F?B(N9*EEf5kers z07Mvq2qO?-3?fV>U*|i`Aqiw^au&%<Ud3;q6bllM0}=5+;ud2{krs#pCbU5;smXu% Yk1|S4J|xgBr2`g#%Ok0roGz#W0OX4>WB>pF diff --git a/iexcode/instruments/__pycache__/electron_analyzer.cpython-37.pyc b/iexcode/instruments/__pycache__/electron_analyzer.cpython-37.pyc index 3ebdc4fd88753351e22ad01cdee9eb50dd7c3314..f9ca29030ddab11737767a189ff852583fe69d2c 100644 GIT binary patch delta 5333 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 delta 5155 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 diff --git a/iexcode/instruments/__pycache__/xrays.cpython-37.pyc b/iexcode/instruments/__pycache__/xrays.cpython-37.pyc index 914a5f624aecb4e6115c86b8777ed70d57dd766e..39194f37bc4eab31c1f8b35004e0612b2b371888 100644 GIT binary patch delta 3525 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 delta 3562 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 LVG<PT+{FI@9cV+v diff --git a/iexcode/instruments/electron_analyzer.py b/iexcode/instruments/electron_analyzer.py index 119d758..3c208d0 100644 --- a/iexcode/instruments/electron_analyzer.py +++ b/iexcode/instruments/electron_analyzer.py @@ -22,13 +22,21 @@ from iexcode.instruments.shutters import branch_shutter_close from iexcode.instruments.VLS_PGM import mono_energy_get from iexcode.instruments.files_and_folders import get_next_fileNumber from iexcode.instruments.logfile import * -from iexcode.instruments.ARPES import ARPES_Motors from iexcode.instruments.Scienta import * global EA -EA = Scienta() +try: + print('connecting to Scienta') + EA = Scienta() +except: + print("EA is not connected") ########################################################################### +def EA_init_Motors(Motors): + """ + Adds Motors to EA object to be used in scanning + """ + EA.Motors = Motors def EA_ioc_init(**kwargs): """ @@ -443,10 +451,10 @@ def scanFM(RoughPositions,thList,EAlist,**kwargs): if kwargs['debug']: print(x,y,z,th,chi,phi) - BL.mda.fillin_table(ARPES_Motors._motor_dictionary("th")[1],ARPES_Motors._motor_dictionary("th")[0],th,positioner_num=1) - BL.mda.fillin_table(ARPES_Motors._motor_dictionary("x")[1],ARPES_Motors._motor_dictionary("x")[0],x,positioner_num=2) - BL.mda.fillin_table(ARPES_Motors._motor_dictionary("y")[1],ARPES_Motors._motor_dictionary("y")[0],y,positioner_num=3) - BL.mda.fillin_table(ARPES_Motors._motor_dictionary("z")[1],ARPES_Motors._motor_dictionary("z")[0],z,positioner_num=4) + BL.mda.fillin_table(EA.Motors._motor_dictionary("th")[1],EA.Motors._motor_dictionary("th")[0],th,positioner_num=1) + BL.mda.fillin_table(EA.Motors._motor_dictionary("x")[1],EA.Motors._motor_dictionary("x")[0],x,positioner_num=2) + BL.mda.fillin_table(EA.Motors._motor_dictionary("y")[1],EA.Motors._motor_dictionary("y")[0],y,positioner_num=3) + BL.mda.fillin_table(EA.Motors._motor_dictionary("z")[1],EA.Motors._motor_dictionary("z")[0],z,positioner_num=4) #setting up EA EAkwargs={ @@ -518,7 +526,7 @@ def mvth_interp(RoughPositions, thVal,**kwargs): x,y,z,th,chi,phi=interpRoughPositions(RoughPositions,thVal,thVal-.1,1,**kwargs) Pos=[x[0],y[0],z[0],th[0],chi[0],phi[0]] #print("Pos = ",Pos) - ARPES_Motors.mvsample(Pos) + EA.Motors.mvsample(Pos) def scanEA_hv(hv_start_stop_step_lists,EAlist=[],**kwargs): """ @@ -615,7 +623,7 @@ def scanEA_motor(EAlist, motor,start,stop,step,mode='absolute',**kwargs): scan_dim=2 #hard coded kwargs.update({'scan_dim':scan_dim}) - ARPES_Motors.scan(motor,start,stop,step,**kwargs) + EA.Motors.scan(motor,start,stop,step,**kwargs) if kwargs['debug']: print("ScanGo scan_dim = ",scan_dim) @@ -662,7 +670,7 @@ def scanEA_Mesh(EAlist,y_start_stop_step,z_start_stop_step,**kwargs): outer_scan_dim=3 #hard coded inner_loop_list = y_start_stop_step.insert(0,"y") outer_loop_list = z_start_stop_step.insert(0,"z") - ARPES_Motors.scan_2D(inner_loop_list,outer_loop_list,outer_scan_dim,**kwargs) + EA.Motors.scan_2D(inner_loop_list,outer_loop_list,outer_scan_dim,**kwargs) if kwargs['debug']: print("ScanGo scan_dim = ",outer_scan_dim) diff --git a/iexcode/instruments/xrays.py b/iexcode/instruments/xrays.py index b4a4c18..23b2ddc 100644 --- a/iexcode/instruments/xrays.py +++ b/iexcode/instruments/xrays.py @@ -20,7 +20,7 @@ from iexcode.instruments.utilities import print_warning_message,make_table, take from iexcode.instruments.current_amplifiers import ca_average from iexcode.instruments.beamline import endstation_cams_enable -from iexcode.instruments.MPA import mpa_HV_on,mpa_HV_off +from iexcode.instruments.MPA import MPA ############################################################################################################## diff --git a/iexcode/macros/__init__.py b/iexcode/macros/__init__.py index 8b13789..d2a66a1 100644 --- a/iexcode/macros/__init__.py +++ b/iexcode/macros/__init__.py @@ -1 +1,17 @@ +from iexcode.instruments.AD_utilities import * +from iexcode.instruments.bakeout import * +from iexcode.instruments.cameras import * +from iexcode.instruments.conversions_constants import * +from iexcode.instruments.encoders import * +from iexcode.instruments.files_and_folders import * +from iexcode.instruments.IEX_endstations import * +from iexcode.instruments.logfile import * +from iexcode.instruments.Motors import * +from iexcode.instruments.remote_controlers import * +from iexcode.instruments.s29_temp_cntl import * +from iexcode.instruments.scalers import * +from iexcode.instruments.userCalcs import * +from iexcode.instruments.utilities import * + + -- GitLab