copy current SwissMX.conf, minor fixes

This commit is contained in:
2022-09-21 16:11:03 +02:00
parent 1393269ceb
commit d8399e901c
8 changed files with 61 additions and 27 deletions

View File

@@ -76,11 +76,10 @@ pyqtgraph.examples.run()
```
Deploy stuff (22.8.22) quick and dirty
----------------------
Deploy stuff (22.8.22) quick and dirty (21.9.22 rewworked)
----------------------------------------------------------
```
DST=/sf/cristallina/applications/mx/zamofing_t/
# /sf/cristallina/applications/mx
ssh saresc-cons-03 mkdir /tmp/zamofing_t/
# add '--delete' if needed
@@ -88,17 +87,15 @@ rsync -vai ~/Documents/prj/SwissFEL/epics_ioc_modules/ESB_MX saresc-cons-03:$DST
rsync -vai ~/Documents/prj/SwissFEL/PBTools saresc-cons-03:$DST
cd /sf/cristallina/applications/mx/zamofing_t/ESB_MX/python/SwissMX/
/opt/gfa/python-3.7/latest/bin/python swissmx.py
/opt/gfa/python-3.8/latest/bin/pip install qtawesome --user
/opt/gfa/python-3.8/latest/bin/pip install opencv-python
/opt/gfa/python-3.8/latest/bin/python swissmx.py
rsync -vai gac-cristall@saresc-cons-03:~/.config/PSI/SwissMX.conf /home/zamofing_t/Documents/prj/SwissFEL/epics_ioc_modules/ESB_MX/python/SwissMX/
cd $DST
/opt/gfa/python-3.8/latest/bin/python -m pdb swissmx.py
rsync -vai saresc-cons-03:/tmp/image*.png ~/Documents/prj/SwissFEL/epics_ioc_modules/ESB_MX/python/SwissMX/scratch/
/home/zamofing_t/Documents/prj/SwissFEL/epics_ioc_modules/ESB_MX/python/SwissMX/scratch/autofocus2
```
@@ -119,6 +116,7 @@ localhost:10001:10002 (instead SAR-CPPM-EXPMX1)
```
----------------------------------- SCRATCH -----------------------------------
14.9.22 external code:
----------------------
@@ -326,8 +324,10 @@ caput SAR-ESPMX:MOT_FX 0.001
caput SAR-ESPMX:MOT_FY 0.001
---------- TODO ----------
caput SAR-ESPMX:MOT_FX.VELO 16
caput SAR-ESPMX:MOT_FY.VELO 16
caput SAR-EXPMX:MOT_FX.VELO 0.001
caput SAR-EXPMX:MOT_FX.MDEL 0.001
caput SAR-EXPMX:MOT_FY.MDEL 0.001
caput SAR-EXPMX:MOT_CZ.MDEL 0.001

31
SwissMX.conf Normal file
View File

@@ -0,0 +1,31 @@
[General]
last_active=1663769422.4605258
[default_position]
backlight="{'pos_in': -29000.0, 'pos_out': 0.0}"
collimator="{'x_in': 10.00044, 'y_in': -2.322981, 'x_out': 10.00044, 'y_out': -2.322981}"
detector="{'pos_in': 5.0, 'pos_out': 10.0}"
post_sample_tube="{'x_in_us': -0.15010000000000012, 'y_in_us': -5.887284999999999, 'x_in_ds': -0.06905500000000053, 'y_in_ds': -5.831288, 'x_out_delta': 0.0, 'y_out_delta': -5.0, 'z_in': -3.53931, 'z_out': -3.53931}"
[deltatau]
host=SAR-CPPM-EXPMX1
miscellaneous="{'show_plots': true, 'vel_scl': 1.0, 'pt2pt_time': 10.0, 'sync_mode': 1, 'sync_flag': 3, 'verbose': 89}"
[geometry]
autofocus="{'range': 1.0, 'velocity': 0.3, 'steps': 40, 'mode': 0}"
beam_pos=86.37327847910599, 189.0894517936895
beam_size=30.2, 25.6
cam_param="{'gain': 10.0, 'exposure': 3.0, 'binning': [1, 1], 'roi': [500, 1000, 1200, 1000], 'mono8': true}"
cam_trf="[[-1, 0, 0], [0, -1, 0], [0, 0, 1]]"
find_fiducial="{'sz': 101, 'brd': 8, 'pitch': 120, 'mode': 0}"
opt_ctr=737.1648014091753, 30.84271709492559
pix2pos="[[1.0, 200.0, 400.0, 600.0, 800.0, 1000.0], [[[0.0011874776687831395, -3.874764193468664e-05], [-5.4202986411567655e-05, -0.0012020847338041858]], [[0.0008127767655446629, -2.5687142750131126e-05], [-3.525888389999674e-05, -0.000811545167142383]], [[0.0004932915647684639, -1.956448914762613e-05], [-2.260500843716497e-05, -0.0004979981531104616]], [[0.0002968132362841801, -1.3764033542843857e-05], [-1.1834139121941054e-05, -0.00030116315471687166]], [[0.00017925202767093252, -6.260148136189963e-06], [-7.57394284404282e-06, -0.00018089723447695783]], [[0.00010341140632662017, -6.93242588696217e-06], [-4.854849034530776e-06, -0.00010722678626793494]]]]"
[global]
device_prefix=SAR-EXPMX, SARES30-ESBMX
miscellaneous={'img_trace_len': 16}
[window]
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x2\0\0\0\0\x4\xc0\0\0\x2\xa0\0\0\v\xd5\0\0\ax\0\0\x4\xc0\0\0\x2\xc5\0\0\v\xd5\0\0\ax\0\0\0\0\0\0\0\0\xf\0)
splitter=534, 871, 397
state=@ByteArray(\0\0\0\xff\0\0\0\0\xfd\0\0\0\0\0\0\a\x16\0\0\x4<\0\0\0\x4\0\0\0\x4\0\0\0\b\0\0\0\b\xfc\0\0\0\x1\0\0\0\x2\0\0\0\x1\0\0\0\xe\0t\0o\0o\0l\0\x42\0\x61\0r\x1\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0)

View File

@@ -96,7 +96,7 @@ class AppCfg(QSettings):
if AppCfg.GEO_FND_FID not in keys:
dflt.append((AppCfg.GEO_FND_FID, {'sz':101, 'brd':8, 'pitch':120, 'mode':0}))
if AppCfg.GEO_AUTOFOC not in keys:
dflt.append((AppCfg.GEO_AUTOFOC, {'range':.4, 'vel':0.3, 'steps':40, 'mode':0}))
dflt.append((AppCfg.GEO_AUTOFOC, {'range':.4, 'velocity':0.3, 'steps':40, 'mode':0}))
if AppCfg.GEO_OPT_CTR not in keys:
dflt.append((AppCfg.GEO_OPT_CTR, np.array([603.28688025, 520.01112846]) ))
if AppCfg.GEO_CAM_TRF not in keys:
@@ -279,10 +279,10 @@ verbose bits:
{'name':'mode', 'value':geo_fnd_fid['mode'], 'type':'int', 'step':1,'tip':'feature not yet used!'},
]},
{'name':AppCfg.GEO_AUTOFOC, 'title':'autofocus parameters', 'type':'group', 'expanded':True, 'children':[
{'name':'range', 'value':geo_af['range'], 'type':'float', 'limits':(0 ,3 ),'step':0.05,'suffix':'mm','decimals':3,'tip':'autofocus range (-rng/2 mm..+rng/2 mm..'},
{'name':'velocity', 'value':geo_af['vel'] , 'type':'float', 'limits':(0 ,2), 'step':0.05,'suffix':'mm/s','decimals':3},
{'name':'steps', 'value':geo_af['steps'], 'type':'int', 'limits':(0 ,50),'tip':'numbers of measurements in the range'},
{'name':'mode', 'value':geo_af['mode'], 'type':'int', 'step':1,'tip':'feature not yet used!'},
{'name':'range', 'value':geo_af['range'], 'type':'float', 'limits':(0 ,6 ),'step':0.05,'suffix':'mm','decimals':3,'tip':'autofocus range (-rng/2 mm..+rng/2 mm..'},
{'name':'velocity', 'value':geo_af['velocity'], 'type':'float', 'limits':(0 ,2), 'step':0.05,'suffix':'mm/s','decimals':3},
{'name':'steps', 'value':geo_af['steps'], 'type':'int', 'limits':(0 ,50),'tip':'numbers of measurements in the range'},
{'name':'mode', 'value':geo_af['mode'], 'type':'int', 'step':1,'tip':'feature not yet used!'},
]},
]},
@@ -430,7 +430,7 @@ verbose bits:
cfg.setValue(par_nm, v)
elif nm in (AppCfg.DT_HOST):
cfg.setValue(nm, param.value())
elif par_nm in (AppCfg.GBL_MISC,AppCfg.DT_MISC):
elif par_nm in (AppCfg.GBL_MISC,AppCfg.DT_MISC,AppCfg.GEO_FND_FID,AppCfg.GEO_AUTOFOC):
d=dict(map(lambda x:(x.name(),x.value()), parent.children()))
cfg.setValue(par_nm, d)
if par_nm in (AppCfg.GBL_MISC):

View File

@@ -32,7 +32,7 @@ def assert_tweaker_positions(targets, timeout=60.0):
motor, target, tolerance=m
name=motor.short_name
pend_event()
cur=motor.get_position()
cur=motor.get_rbv()
done=motor.is_done()
_log.debug("check {}[done={}]: {} == {}".format(name, done, cur, target))
summary.append("{}[done={}]: {} == {}".format(name, done, cur, target))
@@ -69,7 +69,7 @@ def assert_motor_positions(targets, timeout=60.0):
motor, target, tolerance=m
name=motor._prefix
pend_event()
cur=motor.get_position(readback=True)
cur=motor.get_rbv(readback=True)
done=motor.done_moving
_log.debug("check {}[done={}]: {} == {}".format(name, done, cur, target))
summary.append("{}[done={}]: {} == {}".format(name, done, cur, target))

View File

@@ -8,9 +8,8 @@ from PyQt5.QtGui import QPainter, QBrush, QColor, QPainterPath, QPen, QDoubleVal
from PyQt5.QtWidgets import QMenu, QInputDialog, QAction
from PyQt5.uic import loadUiType
from epics import Motor
from epics.ca import pend_event
from app_utils import assert_motor_positions
from app_utils import assert_tweaker_positions
Ui_MotorTweak, QWidget = loadUiType('epics_widgets/MotorTweak.ui')
SPMG_STOP = 0
@@ -150,7 +149,7 @@ class MotorTweak(QWidget, Ui_MotorTweak):
m=self._motor
m.move(drive, wait=wait, ignore_limits=True, relative=False)
if assert_position:
assert_motor_positions([(m, drive, 0.1)], timeout=1)
assert_tweaker_positions([(self, drive, 0.1)], timeout=1)
def emit_signals(self, **kw):
'''

View File

@@ -7,7 +7,7 @@ from PyQt5.QtWidgets import QMenu, QInputDialog, QAction
from PyQt5.uic import loadUiType
from epics import PV
from epics.ca import pend_event
from motor_utils import assert_tweaker_positions
from app_utils import assert_tweaker_positions
Ui_MotorTweak, QWidget = loadUiType('epics_widgets/MotorTweak.ui')
logger = logging.getLogger(__name__)

View File

@@ -88,12 +88,13 @@ class Jungfrau:
self._pv_pulse_id.connect()
def acquire(self,run_name, n_pulses, wait=False):
self._pulse_id_start=int(self._pv_pulse_id.value)
if self._daq is not None:
self._pulse_id_start=self._pv_pulse_id.value
self._daq.acquire( run_name, n_pulses=n_pulses, wait=False)
self._daq.acquire(run_name, n_pulses=n_pulses, wait=False)
pass
def gather_upload(self):
self._pulse_id_end=self._pv_pulse_id.value
self._pulse_id_end=int(self._pv_pulse_id.value)
_log.debug(f'pulse_id: {self._pulse_id_start}..{self._pulse_id_end}')

View File

@@ -1616,7 +1616,7 @@ Author Thierry Zamofing (thierry.zamofing@psi.ch)
af_range=cfg['range']
n=cfg['steps']
vel=cfg['vel']
vel=cfg['velocity']
rng=(-af_range/2, af_range/2)
#geo.autofocus(app._camera, self.tweakers['base_z'],rng, n,dlg)
af=geometry.autofocus(app._camera, self.tweakers['base_z'])
@@ -2090,7 +2090,7 @@ Author Thierry Zamofing (thierry.zamofing@psi.ch)
geo.least_square_plane(ptFitPlane)
def cb_progress(self,i,sz,dlg):
dlg.setValue(int(sz*90/i))
dlg.setValue(int(i*90/sz))
if dlg.wasCanceled():
raise AttributeError('canceled')
@@ -2160,7 +2160,10 @@ Author Thierry Zamofing (thierry.zamofing@psi.ch)
dlg.setMaximum(sp.points.shape[0])
while True:
p=sp.progress()
if p<0 or dlg.wasCanceled():
if p<0:
break
elif dlg.wasCanceled():
dt._comm.gpascii.send_block('&1a;Gather.Enable=0')
break
#_log.info(f'progress {p}/{sp.points.shape[0]}')
dlg.setValue(p)