From 381334dda139e83d4860c070da78b5cbd3a1f221 Mon Sep 17 00:00:00 2001
From: "FR@29iduser" <rodolakis@anl.gov>
Date: Mon, 19 Sep 2022 14:11:54 -0500
Subject: [PATCH] commissioning and startoftheweek

---
 iexcode/instruments/AD_utilities.py | 19 +++++++++--
 iexcode/macros/cam_macros.py        |  9 +++--
 iexcode/macros/commissioning.py     | 53 ++++++++++++-----------------
 iexcode/macros/start_of_the_week.py | 23 +++++++------
 4 files changed, 57 insertions(+), 47 deletions(-)

diff --git a/iexcode/instruments/AD_utilities.py b/iexcode/instruments/AD_utilities.py
index cbe60f3..d1e324d 100644
--- a/iexcode/instruments/AD_utilities.py
+++ b/iexcode/instruments/AD_utilities.py
@@ -17,6 +17,19 @@ from epics import caget, caput
 import iexcode.instruments.cfg as iex
 from iexcode.instruments.files_and_folders import get_next_fileNumber
 
+def AD_exposure_time(ADplugin,exp_time,**kwargs):
+    """
+    sets the aquiretime and the exposure time 
+    overwrites what is in kwargs
+    """
+    kwargs.setdefault("P",ADplugin.split(":")[0]+":")
+    kwargs.setdefault("R","cam1:")
+    kwargs.setdefault("P",ADplugin.split(":")[0]+":")
+    kwargs.setdefault("R","cam1:")
+
+    caput(kwargs["P"]+kwargs["R"]+"AcquireTime",exp_time)
+    caput(kwargs["P"]+kwargs["R"]+"AcquireTime",exp_time+.01)
+       
 
 def AD_CurrentDirectory(ADplugin):
     """
@@ -223,8 +236,7 @@ def AD_snap(ADplugin,**kwargs):
     AD_DoneSingleSave(ADplugin,**kwargs)
     
     if "ExposureTime" in kwargs:
-        caput(kwargs["P"]+kwargs["R"]+"AcquireTime",kwargs["ExposureTime"])
-        caput(kwargs["P"]+kwargs["R"]+"AcquireTime",kwargs["ExposureTime"]+.01)
+        AD_exposure_time(ADplugin,kwargs["ExposureTime"])
         
     caput(kwargs["P"]+kwargs["R"]+"Acquire","Acquire",wait=True,timeout=5*60)
     
@@ -288,6 +300,9 @@ def ADplugin_ScanSetup(ADplugin, **kwargs):
     kwargs.setdefault("R","cam1:")
 
     AD_DoneSingleSave(ADplugin,**kwargs)
+
+    if "ExposureTime" in kwargs:
+        AD_exposure_time(ADplugin,kwargs["ExposureTime"])
     
     AD_SaveFileSetup(ADplugin,**kwargs)
     AD_ScanTrigger(ADplugin, **kwargs)
diff --git a/iexcode/macros/cam_macros.py b/iexcode/macros/cam_macros.py
index 5bb7727..6ec96d1 100644
--- a/iexcode/macros/cam_macros.py
+++ b/iexcode/macros/cam_macros.py
@@ -26,8 +26,13 @@ def cam_snap(cam_num,ADtype='TIFF',**kwargs):
     ADplugin = cam_pv_dictionary()[cam_num]+ADtype+"1:"
     AD_snap(ADplugin,**kwargs)
 
-
-
+def cam_exposure_time(cam_num,ExposureTime):
+    """
+    sets the exposure and acquire times for camera
+    """
+    ADtype='TIFF' # doesn't matter which type since not saving
+    ADplugin = cam_pv_dictionary()[cam_num]+ADtype+"1:"
+    AD_exposure_time(ADplugin,ExposureTime)
 
 ##############################################################################################################
 ##############################             Scanning with a camera           ##############################
diff --git a/iexcode/macros/commissioning.py b/iexcode/macros/commissioning.py
index ab8f95e..e383283 100644
--- a/iexcode/macros/commissioning.py
+++ b/iexcode/macros/commissioning.py
@@ -1,20 +1,23 @@
 from os.path import join, isfile, exists, dirname
 from time import sleep
+import matplotlib.pyplot as plt
 
 from epics import caget, caput
 
 import  iexcode.instruments.cfg as iex
 
 from iexcode.instruments.xrays import *
+from iexcode.instruments.VLS_PGM import *
+from iexcode.instruments.IEX_VPU import *
+
 from iexcode.instruments.current_amplifiers import *
 from iexcode.instruments.diagnostics import diagnostics_all_out, diagnostics_all_in,diode_c,diode_d
 from iexcode.instruments.m3r import *
+from iexcode.instruments.slits import _slits_wide_open_dictionary
 from iexcode.instruments.slits import *
 from iexcode.instruments.utilities import *
 from iexcode.instruments.electron_analyzer import scanEA
-
-from instruments.slits import exit_slit_get, slit1A_get, slit1A_set, slits_set_size
-from instruments.xrays import apertures_set
+from iexcode.macros.cam_macros import *
 
 from .quick_plot import fit_mda, mda_1D
 
@@ -174,7 +177,7 @@ def scan_mono_vs_slit(slit='2V',slit_parameters=[0.25,-2,2,0.5],energy_parameter
     """
     hv_start,hv_stop,hv_step = energy_parameters  
     # Filling Scans:
-    mono_scan_fillin(hv_start,hv_stop,hv_step)
+    mono_scan(hv_start,hv_stop,hv_step)
     scan_narrow_slit(slit='2V',slit_parameters=[0.25,-2,2,0.5],**kwargs)
 
     # Resetting everybody to normal:
@@ -208,9 +211,7 @@ def mono_MIR_GRT_find_offset(grt,slit_list,**kwargs):
         for s in slit_list:
             exit_slit_set(s)
             print("\r")
-
-            mono_motor_scan_fillin("GRT:P",ang-0.0005*s, ang+0.0005*s ,0.00002*s)
-            iex.BL.mda.go(**kwargs)
+            mono_motor_scan("GRT:P",ang-0.0005*s, ang+0.0005*s ,0.00002*s)
 
             sleep(1)
             print("\r")
@@ -547,6 +548,8 @@ def monoVslit_quick_scan(slit_name, **kwargs):
 
     H,V = _slits_wide_open_dictionary()[slit_name]
 
+    c = mono_grating_density_get()/1200.0
+
     slits_scan_center(slit_name,'V',-V,V,0.25,size=(inf,0.25*c))
     sleep(1)
 
@@ -593,7 +596,6 @@ def check_slit1A(step=0.1):
     VAL='29idb:m'+str(m)+'.VAL'
     RBV='29idb:m'+str(m)+'.RBV'
     iex.BL.mda.fillin(VAL,RBV,-4,4.0,step)
-    iex.BL.mda.go()
     FileNum1  = iex.BL.mda.lastFileNum()
 
     #scanning inboard-blade
@@ -603,7 +605,6 @@ def check_slit1A(step=0.1):
     VAL='29idb:m'+str(m)+'.VAL'
     RBV='29idb:m'+str(m)+'.RBV' 
     iex.BL.mda.fillin(VAL,RBV,-4,4.0,step)
-    iex.BL.mda.go()
     FileNum2  = iex.BL.mda.lastFileNum()
 
     return FileNum1, FileNum2
@@ -632,7 +633,7 @@ def check_ID_steering(hv=2000):
         - beam center vs fixed aperture: given by the position of the bump in the middle
     """
     slit1A_set(0.25,0.25,0,0)
-    ID_SP_set(hv)
+    ID_set(hv)
     scan_slit_center('1H',-3,3,0.1)
     scan_slit_center('1V',-3,3,0.1)
         
@@ -789,31 +790,18 @@ def FermiEdges(Energy,Slit):
 
 def QP_curves(ID_energy,ID_mode_list,hv_start,hv_stop,hv_step):
     """
+    Sets the ID to setpoint and scans the mono for a list of polarizations
+
+    Does not set the QP_ratio first use, ID_QP_mode_set(QP_ratio)
     """
     exit_slit_set(200)
-    #Switch_Grating("MEG")
-    #print "\r"
-    #print "****************  QP OFF  ****************"
-    #for mode in list_mode:
-    #    Switch_IDMode(mode)
-    #    SetID_Raw(hv)
-    #    SetSlit_BL()
-    #    SetMono(250)
-    #    Scan_Mono(1,start,stop,step)
-    #    Scan_Go("b",1)
-    #print "\r"
-    #print "****************  QP ON  ****************"
-    #Switch_IDQP("on")
+
     for ID_mode in ID_mode_list:
         polarization(ID_mode)
-        ID_SP_set(ID_energy)
-        apertures_set()()
-        mono_energy_set(250)
-        mono_scan_fillin(hv_start,hv_stop,hv_step)
-        iex.BL.mda.go()
-    #Switch_IDQP("off")
-    #Switch_Grating("HEG")
-    #Switch_IDMode("RCP")
+        ID_set_eV(ID_energy)
+        apertures_set()
+        mono_scan(hv_start,hv_stop,hv_step)
+
 
 
 
@@ -828,7 +816,8 @@ def scan_cam_motor(motor_name,start,stop,step,cam_num,ExposureTime):
 
     Previously: Pixel_Calibration
     """    
-    cam_scan_setup(cam_num,ADtype='TIFF')
+
+    cam_scan_setup(cam_num,ADtype='TIFF',)
 
     iex.BL.motors.scan(motor_name,start,stop,step)
     cam_live()
diff --git a/iexcode/macros/start_of_the_week.py b/iexcode/macros/start_of_the_week.py
index 355cdc7..3fdeaa3 100644
--- a/iexcode/macros/start_of_the_week.py
+++ b/iexcode/macros/start_of_the_week.py
@@ -4,7 +4,7 @@ import matplotlib.pyplot as plt
 
 import iexcode.instruments.cfg as iex
 from iexcode.instruments.ARPES import ARPES_init
-from iexcode.instrumetns.kappa import kappa_init
+from iexcode.instruments.Kappa import kappa_init
 
 from iexcode.instruments.scanRecord import *
 from iexcode.instruments.diagnostics import _diagnostics_dict, diagnostics_all_out, diagnostics_all_in,diode_c,diode_d
@@ -108,7 +108,7 @@ def StartOfTheWeek(GRT,branch,wait=False,**kwargs):
         BL_init('staff',reset=False,set_folders=False)
         switch_branch(branch)
         log_name_set('StartOfTheWeek_log.txt')
-        log_print("\n\n================== Start Of The Week @ "+today('slash')+':\n',FileName=FileName)
+        log_print("\n\n================== Start Of The Week @ "+today('slash')+':\n')
          
     for scan in kwargs['scanType']: 
         if scan not in ['slit1','wire','flux','monoVslit']:
@@ -191,12 +191,13 @@ def StartOfTheWeek(GRT,branch,wait=False,**kwargs):
             #want to refit
             while flag == 3:
                 try:
-                    fitH=input('do you want to fit mda #'+str(m-1)+' ie horizontal (y or n)? >')
+                    fitH=input('do you want to fit mda #'+str(scanNum_h)+' ie horizontal (y or n)? >')
                     if fitH.lower() == 'y' or fitH.lower() ==  'yes': 
                         x1=input('x1 >')
                         x2=input('x2 >')
-                        h_position = ID_steering_plots(scanNum_h,detCA4,xrange=[float(x1),float(x2)])                    fitV=input('do you want to fit mda #'+str(m)+' ie vertical (y or n)? >')
-                    
+                        h_position = ID_steering_plots(scanNum_h,detCA4,xrange=[float(x1),float(x2)])                    
+                        
+                    fitV=input('do you want to fit mda #'+str(scanNum_v)+' ie vertical (y or n)? >')
                     if fitV.lower() == 'y' or fitV.lower() ==  'yes': 
                         x1=input('x1 >')
                         x2=input('x2 >')
@@ -242,7 +243,7 @@ def StartOfTheWeek(GRT,branch,wait=False,**kwargs):
         diagnostics_all_out(diode_stay_in=True)
         print("\n\n================== Mono/slit scans:")     
         if kwargs['monoVslit_quick']:
-            for i,slit_name in enumerate(['slit2B','slit1A'])
+            for i,slit_name in enumerate(['slit2B','slit1A']):
                 print('\n---------- Scanning '+slit_name+':\n') 
                 flag=2
                 while flag==2:
@@ -262,7 +263,7 @@ def StartOfTheWeek(GRT,branch,wait=False,**kwargs):
                     flag=interactive_fct(mirror=True)    
                     #want to refit       
                     while flag == 3:
-                        fitV2=input('do you want to FIT mda #'+str(m-1)+' ie slit2-V (y or n)? >')
+                        fitV2=input('do you want to FIT mda #'+str(scanNum_v)+' ie slit2-V (y or n)? >')
                         if fitV2.lower() == 'y' or fitV2.lower() ==  'yes': 
                             x1=input('x1 >')
                             x2=input('x2 >')
@@ -272,7 +273,7 @@ def StartOfTheWeek(GRT,branch,wait=False,**kwargs):
                             if foo.lower() == 'y' or foo.lower() ==  'yes':
                                 list_position[1]=V2
                         
-                        fitH2=input('do you want to FIT mda #'+str(m)+' ie slit2-H (y or n)? >')
+                        fitH2=input('do you want to FIT mda #'+str(scanNum_h)+' ie slit2-H (y or n)? >')
                         if fitH2.lower() == 'y' or fitH2.lower() ==  'yes': 
                             x1=input('x1 >')
                             x2=input('x2 >')
@@ -282,12 +283,12 @@ def StartOfTheWeek(GRT,branch,wait=False,**kwargs):
                             if foo.lower() == 'y' or foo.lower() ==  'yes':
                                 list_position[1]=H2
                         
-                    if slit_name = 'slit2B':
+                    if slit_name == 'slit2B':
                         M0M1_steering(H2,V2)
                         list_position[4] = V2
                         list_position[3] = H2
                         mirror = True
-                    elif slit_name: 'slit1A':
+                    elif slit_name == 'slit1A':
                         list_position[2] = V2
                         list_position[1] = H2
                         mirror = False
@@ -343,7 +344,7 @@ def StartOfTheWeek(GRT,branch,wait=False,**kwargs):
                 plot_mda(scanNum,detDiode,Flux=3);plt.show()
             except:
                 print('Unable to plot. Try:') 
-                print("plot_mda("+str(m)+","+str(detDiode)+",flux=3);plt.show()")  
+                print("plot_mda("+str(scanNum)+","+str(detDiode)+",flux=3);plt.show()")  
             flag=interactive_fct()
         if flag == '':
             return
-- 
GitLab