fix in trace and app config
This commit is contained in:
@@ -33,6 +33,7 @@ class MyJsonEncoder(json.JSONEncoder):
|
||||
class AppCfg(QSettings):
|
||||
GBL_FLD_SCR_SHOT="global/folder_screenshot"
|
||||
GBL_DEV_PREFIX="global/device_prefix" #SAR-EXPMX
|
||||
GBL_MISC="global/miscellaneous"
|
||||
|
||||
GEO_OPT_CTR='geometry/opt_ctr'
|
||||
GEO_PIX2POS='geometry/pix2pos'
|
||||
@@ -154,7 +155,8 @@ class AppCfg(QSettings):
|
||||
t=type(val)
|
||||
if key in (AppCfg.GEO_PIX2POS,AppCfg.GEO_CAM_TRF):
|
||||
val=json.dumps(val, cls=MyJsonEncoder)
|
||||
elif key in (AppCfg.GEO_CAM_PARAM,
|
||||
elif key in (AppCfg.GBL_MISC,
|
||||
AppCfg.GEO_CAM_PARAM,
|
||||
AppCfg.DFT_POS_DET,AppCfg.DFT_POS_PST,AppCfg.DFT_POS_COL,AppCfg.DFT_POS_BKLGT,
|
||||
AppCfg.DT_MISC):
|
||||
val=json.dumps(val, cls=MyJsonEncoder)
|
||||
@@ -174,7 +176,8 @@ class AppCfg(QSettings):
|
||||
elif key in (AppCfg.GEO_CAM_TRF,):
|
||||
val=json.loads(val)#, object_hook=MyJsonDecoder)
|
||||
val=np.array(val)
|
||||
elif key in (AppCfg.GEO_CAM_PARAM,
|
||||
elif key in (AppCfg.GBL_MISC,
|
||||
AppCfg.GEO_CAM_PARAM,
|
||||
AppCfg.DFT_POS_DET,AppCfg.DFT_POS_PST,AppCfg.DFT_POS_COL,AppCfg.DFT_POS_BKLGT,
|
||||
AppCfg.DT_MISC):
|
||||
if val is not None:
|
||||
@@ -183,6 +186,8 @@ class AppCfg(QSettings):
|
||||
else:
|
||||
if key==AppCfg.DT_MISC:
|
||||
val={'show_plots': True, 'vel_scl': 1.0, 'pt2pt_time': 10.0,'sync_mode':1,'sync_flag':3,'verbose':0xff}
|
||||
elif key==AppCfg.GBL_MISC:
|
||||
val={'img_trace':4}
|
||||
else:
|
||||
val={}
|
||||
elif key in (AppCfg.GEO_BEAM_SZ,AppCfg.GEO_BEAM_POS,):
|
||||
@@ -220,13 +225,14 @@ class WndParameter(QMainWindow):
|
||||
#GEO_PIX2POS
|
||||
#GEO_BEAM_POS
|
||||
#GEO_CAM_PARAM
|
||||
gbl_misc = cfg.value(AppCfg.GBL_MISC)
|
||||
gbl_dev_prefix = cfg.value(AppCfg.GBL_DEV_PREFIX)
|
||||
geo_beam_sz = cfg.value(AppCfg.GEO_BEAM_SZ)*1000
|
||||
dft_pos_pst = cfg.value(AppCfg.DFT_POS_PST)
|
||||
dft_pos_col = cfg.value(AppCfg.DFT_POS_COL)
|
||||
dft_pos_bklgt = cfg.value(AppCfg.DFT_POS_BKLGT)
|
||||
dft_pos_det = cfg.value(AppCfg.DFT_POS_DET)
|
||||
geo_cam_param = cfg.value(AppCfg.GEO_CAM_PARAM)
|
||||
gbl_dev_prefix = cfg.value(AppCfg.GBL_DEV_PREFIX)
|
||||
dt_host = cfg.value(AppCfg.DT_HOST)
|
||||
dt_misc = cfg.value(AppCfg.DT_MISC)
|
||||
|
||||
@@ -264,6 +270,17 @@ verbose bits:
|
||||
'''
|
||||
|
||||
params=[
|
||||
{'name':'various', 'type':'group','expanded':False, 'children':[
|
||||
{'name':AppCfg.GBL_DEV_PREFIX, 'title':'device prefix', 'type':'group', 'expanded':False, 'children':[
|
||||
{'name':'deltatau motors', 'value':gbl_dev_prefix[0], 'type':'str'},
|
||||
{'name':'smaract motors', 'value':gbl_dev_prefix[1], 'type':'str'},
|
||||
]},
|
||||
{'name':AppCfg.GBL_MISC, 'title':'miscellaneous', 'type':'group', 'children':[
|
||||
{'name':'img_trace', 'value':gbl_misc['img_trace'], 'type':'int', 'tip':tip_sync_flag},
|
||||
#{'name':'verbose', 'value':gbl_misc['verbose'], 'type':'int', 'tip':tip_verbose},
|
||||
]},
|
||||
# {'name':AppCfg.GEO_CAM_TRF, 'value':cfg.value(AppCfg.GEO_CAM_TRF), 'type':'str'},
|
||||
]},
|
||||
{'name':'geometry','type':'group','expanded':False,'children':[
|
||||
{'name': AppCfg.GEO_BEAM_SZ, 'title':'size of the beam', 'type':'group', 'children':[
|
||||
{'name':'width', 'type':'float', 'value':geo_beam_sz[0], 'step':0.1,'suffix':' um'},
|
||||
@@ -310,10 +327,6 @@ verbose bits:
|
||||
{'name':'set_in', 'title':'use current position as "in"', 'type':'action'},
|
||||
{'name':'set_out', 'title':'use current position as "out"', 'type':'action'},
|
||||
]},
|
||||
{'name': AppCfg.GBL_DEV_PREFIX, 'title':'device prefix', 'type':'group','expanded':False, 'children':[
|
||||
{'name':'deltatau motors', 'value':gbl_dev_prefix[0],'type':'str' },
|
||||
{'name':'smaract motors', 'value':gbl_dev_prefix[1],'type':'str' },
|
||||
]},
|
||||
{'name':'Delta Tau Parameters', 'type':'group','expanded':False, 'children':[
|
||||
{'name':AppCfg.DT_HOST ,'title':'host name (host[:port:port_gather])','value':dt_host ,'type':'str'} ,
|
||||
{'name':AppCfg.DT_MISC, 'title':'miscellaneous', 'type':'group', 'children':[
|
||||
@@ -325,9 +338,6 @@ verbose bits:
|
||||
{'name':'verbose', 'value':dt_misc['verbose'], 'type':'int', 'tip':tip_verbose},
|
||||
]},
|
||||
]},
|
||||
#{'name':'miscellaneous', 'type':'group','expanded':False, 'children':[
|
||||
# {'name':AppCfg.GEO_CAM_TRF, 'value':cfg.value(AppCfg.GEO_CAM_TRF), 'type':'str'},
|
||||
#]},
|
||||
#{'name':'Save/Restore functionality', 'type':'group','expanded':False, 'children':[
|
||||
# {'name':'Save State', 'type':'action'},
|
||||
# {'name':'Restore State', 'type':'action', 'children':[
|
||||
@@ -428,7 +438,7 @@ verbose bits:
|
||||
cfg.setValue(par_nm, v)
|
||||
elif nm in (AppCfg.DT_HOST):
|
||||
cfg.setValue(nm, param.value())
|
||||
elif par_nm==AppCfg.DT_MISC:
|
||||
elif par_nm in (AppCfg.GBL_MISC,AppCfg.DT_MISC):
|
||||
d=dict(map(lambda x:(x.name(),x.value()), parent.children()))
|
||||
cfg.setValue(par_nm, d)
|
||||
else:
|
||||
|
||||
41
swissmx.py
41
swissmx.py
@@ -410,10 +410,6 @@ class WndSwissMx(QMainWindow, Ui_MainWindow):
|
||||
#bm.setTransform(tr) # assign transform
|
||||
grp.addItem(obj)
|
||||
|
||||
#--- camera tracong images ---
|
||||
self._goTrace=grp=pg.ItemGroup() # the transformation is the same as for tracked objects
|
||||
grp.setZValue(-20) #lower than other objects
|
||||
self.vb.addItem(grp)
|
||||
|
||||
|
||||
|
||||
@@ -1079,16 +1075,7 @@ class WndSwissMx(QMainWindow, Ui_MainWindow):
|
||||
|
||||
|
||||
#create trace
|
||||
img=pg.ImageItem(self._goImg.image)
|
||||
img.setZValue(100)
|
||||
trImg=self._goImgGrp.transform()
|
||||
trTrk=self._goTracked.transform()
|
||||
|
||||
tr=trImg*trTrk.inverted()[0] #TODO: check if oder correct !!!
|
||||
#tr.scale(.5,.5)
|
||||
img.setTransform(tr)
|
||||
|
||||
self._goTrace.addItem(img)
|
||||
self.add_camera_trace()
|
||||
|
||||
_log.debug(f'dist to beam ({pFix[0]:>0.6g} {pFix[1]:>0.6g}mm)')
|
||||
fx_motor=self.tweakers["fast_x"]
|
||||
@@ -1096,9 +1083,6 @@ class WndSwissMx(QMainWindow, Ui_MainWindow):
|
||||
|
||||
fx_motor.move_rel(pFix[0])
|
||||
fy_motor.move_rel(pFix[1])
|
||||
self._goTrace.setTransform(self._goTracked.transform())
|
||||
|
||||
|
||||
|
||||
#fx_motor.move_abs(fx_motor.get_val()+pFix[0])
|
||||
#fy_motor.move_abs(fy_motor.get_val()+pFix[1])
|
||||
@@ -1280,6 +1264,7 @@ class WndSwissMx(QMainWindow, Ui_MainWindow):
|
||||
fy=twk_fy.get_val()
|
||||
try:
|
||||
grp=self._goTracked
|
||||
grpTrc=self._goTrace
|
||||
zoom_old,fx_old,fy_old=grp._state
|
||||
except AttributeError: # at initialization
|
||||
self._goTracked=grp=pg.ItemGroup()
|
||||
@@ -1287,12 +1272,17 @@ class WndSwissMx(QMainWindow, Ui_MainWindow):
|
||||
self.vb.addItem(grp)
|
||||
grp._state=(zoom,fx,fy)
|
||||
zoom_old=fx_old=fy_old=None
|
||||
|
||||
#--- camera tracing images ---
|
||||
self._goTrace=grpTrc=pg.ItemGroup() # the transformation is the same as for tracked objects
|
||||
grpTrc.setZValue(-20) #lower than other objects
|
||||
self.vb.addItem(grpTrc)
|
||||
|
||||
_log.debug(f"zoom:{zoom_old}->{zoom} fx:{fx_old}->{fx} fy:{fy_old}->{fy}")
|
||||
if zoom_old!=zoom:
|
||||
geo.interp_zoom(zoom)
|
||||
|
||||
bm=self._goBeamMarker
|
||||
grp=self._goTracked
|
||||
opt_ctr=geo._opt_ctr
|
||||
A=np.asarray(geo._pix2pos.I)
|
||||
# trf=cfg.value(AppCfg.GEO_CAM_TRF)
|
||||
@@ -1304,6 +1294,21 @@ class WndSwissMx(QMainWindow, Ui_MainWindow):
|
||||
A[1, 0], A[1, 1], 0,
|
||||
p[0], p[1], 1) # translate dx,dy
|
||||
grp.setTransform(tr)
|
||||
grpTrc.setTransform(tr)
|
||||
|
||||
def add_camera_trace(self):
|
||||
# add up to tracelen image when moveing motors to new positions
|
||||
tracelen=4
|
||||
img=pg.ImageItem(self._goImg.image)
|
||||
trImg=self._goImgGrp.transform()
|
||||
trTrk=self._goTracked.transform()
|
||||
|
||||
tr=trImg*trTrk.inverted()[0] # TODO: check if oder correct !!!
|
||||
img.setTransform(tr)
|
||||
self._goTrace.addItem(img)
|
||||
cld=self._goTrace.childItems()
|
||||
if len(cld) > tracelen:
|
||||
self.vb.removeItem(cld[0])
|
||||
|
||||
def cb_modify_app_param(self):
|
||||
wnd=WndParameter(self)
|
||||
|
||||
Reference in New Issue
Block a user