add workbench autofocus.py

This commit is contained in:
2022-09-15 07:44:02 +02:00
parent 14260851cf
commit e4b3ad0b5f
6 changed files with 257 additions and 55 deletions

View File

@@ -100,8 +100,7 @@ import epics
from epics.ca import pend_event
import camera,backlight,zoom,illumination,geometry
ts.log('Import part 7/8:')
import deltatau
import detector
import psi_device
ts.log('Import part 8/8:')
def tdstamp():
@@ -362,7 +361,7 @@ class WndSwissMx(QMainWindow, Ui_MainWindow):
grp.setTransform(tr) # assign transform
#--- image ---
self._goImg=img=pg.ImageItem()
self._goImg=img=pg.ImageItem() #border=pg.mkPen('r',width=2))
grp.addItem(img)
#--- opctical center ----
@@ -1080,7 +1079,7 @@ class WndSwissMx(QMainWindow, Ui_MainWindow):
#create trace
self.add_camera_trace()
self.add_camera_trace(pFix)
_log.debug(f'dist to beam ({pFix[0]:>0.6g} {pFix[1]:>0.6g}mm)')
fx_motor=self.tweakers["fast_x"]
@@ -1301,7 +1300,7 @@ class WndSwissMx(QMainWindow, Ui_MainWindow):
grp.setTransform(tr)
grpTrc.setTransform(tr)
def add_camera_trace(self):
def add_camera_trace(self,delta_mm):
# add up to tracelen image when moveing motors to new positions
try:
tracelen=self._goTrace._tracelen
@@ -1316,7 +1315,8 @@ class WndSwissMx(QMainWindow, Ui_MainWindow):
trImg=self._goImgGrp.transform()
trTrk=self._goTracked.transform()
tr=trImg*trTrk.inverted()[0] # TODO: check if oder correct !!!
img=pg.ImageItem(self._goImg.image)
cm=pg.ColorMap((0,255),((0,0,64),(255,255,128)))#,opacity=.5)
img=pg.ImageItem(self._goImg.image,lut=cm.getLookupTable(0,255))
img.setTransform(tr)
self._goTrace.addItem(img) # automatically added to self.vb
@@ -1598,13 +1598,18 @@ Author Thierry Zamofing (thierry.zamofing@psi.ch)
plt.stem(x, y)
plt.show(block=False)
step=1
step=2
if step==0:
vb=self.vb
vb.autoRange(items=(self._goImg,))
elif step==1:
testMatplotlib()
if step==3:
elif step==2:
app=QApplication.instance()
cfg=app._cfg
geo=app._geometry
geo.autofocus(app._camera, self.tweakers['base_z'])
elif step==3:
grp=pg.ItemGroup()
vb.addItem(grp)
obj=UsrGO.Marker((100, 100), (100, 100), mode=1)
@@ -2019,11 +2024,11 @@ Author Thierry Zamofing (thierry.zamofing@psi.ch)
try:
dt=app._deltatau
except AttributeError:
app._deltatau=dt=deltatau.Deltatau()
app._deltatau=dt=psi_device.Deltatau()
try:
jf=app._jungfrau
except AttributeError:
app._jungfrau=jf=detector.Jungfrau()
app._jungfrau=jf=psi_device.Jungfrau()
sp=dt._shapepath
sp.verbose=dt_misc['verbose']
@@ -2042,7 +2047,8 @@ Author Thierry Zamofing (thierry.zamofing@psi.ch)
sp.homing() # homing if needed
sp.run() # start motion program
sp.wait_armed() # wait until motors are at first position
sp.trigger(0.5) # send a start trigger (if needed) ater given time
sp.trigger(0.5) # send a start trigger (if needed) after given time
jf.acquire('filename.tmp',sp.points.shape[0])
if not dt._comm is None:
while True:
p=sp.progress()