diff --git a/app_config.py b/app_config.py index 1d1e0a7..9ad70d4 100644 --- a/app_config.py +++ b/app_config.py @@ -133,6 +133,11 @@ class AppCfg(QSettings): opt_ctr=np.array([603.28688025, 520.01112846]) self.setValue(AppCfg.GEO_OPT_CTR, opt_ctr) + if AppCfg.DT_HOST not in keys: + _log.warning(f'{AppCfg.DT_HOST} not defined. use default') + self.setValue(AppCfg.DT_HOST,'SAR-CPPM-EXPMX1') + #self.setValue(AppCfg.DT_HOST,'localhost:10001:10002') + #if AppCfg.ACTIVATE_PULSE_PICKER not in keys: # self.setValue(AppCfg.ACTIVATE_PULSE_PICKER, False) @@ -352,7 +357,7 @@ class AppCfg(QSettings): app=QApplication.instance() cfg=app._cfg #dt1 = cfg.value(AppCfg.DT_HOST,'SAR-CPPM-EXPMX1') - dt1 = cfg.value(AppCfg.DT_HOST,'localhost:10001:10002') + dt1 = cfg.value(AppCfg.DT_HOST) dt2 = cfg.value(AppCfg.DT_VEL_SCL, 1, type=float) dt3 = cfg.option(AppCfg.DT_SHOW_PLOTS) diff --git a/pyqtUsrObj.py b/pyqtUsrObj.py index 76ef355..0d67640 100644 --- a/pyqtUsrObj.py +++ b/pyqtUsrObj.py @@ -170,7 +170,7 @@ class Fiducial(pg.ROI): #p.drawText(24, 20, 'beam marker') ctr=tuple(self.pos()+self.size()/2) sz=tuple(self.size()) - print((*ctr,self._z)) + #print((*ctr,self._z)) #p.drawText(5, 25, 'x{:.4g}\ny{:.4g}\nz{:.4g}'.format(*ctr,self._z)) p.drawText(52, 10,40,40,Qt.TextWordWrap, 'x{:.5g}\ny{:.5g}\nz{:.5g}'.format(*ctr,self._z)) @@ -504,9 +504,11 @@ class FixTargetFrame(pg.ROI): t=self.transform() p=np.array(self.pos()) s=self.size()/self._dscr['size'] - trf=np.array(((t.m11(),t.m12(),0),(t.m21(),t.m22(),0))) - trf[:,2]=p - trf[:,:2]*=s + trf=np.array(((t.m11(),t.m12()),(t.m21(),t.m22()),(0,0))) + trf[2,:]=p # shift origin + #trf[:2, 0]*=s[0];trf[:2, 1]*=s[1] #scaling (before rotation shear) + trf[:2,:]=(trf[:2,:].T*s).T # same as np.asmatrix(np.diag(s))*trf[:2,:], trf[:2,:]*=s not working, scale before rot / shear + # trf*'gridpos in um' -> motor pos in mm param['trf']=trf return param diff --git a/swissmx.py b/swissmx.py index 7f864e7..da550de 100755 --- a/swissmx.py +++ b/swissmx.py @@ -1363,6 +1363,8 @@ class WndSwissMx(QMainWindow, Ui_MainWindow): grp=self._goTracked cldLst=grp.childItems() for go in cldLst: + if type(go)==UsrGO.Fiducial: + continue if type(go)!=UsrGO.FixTargetFrame: _log.warning(f'for now: ONLY FixTargetFrame are supported ->skipped:{go}') continue @@ -1383,24 +1385,36 @@ class WndSwissMx(QMainWindow, Ui_MainWindow): # p[i,:]=(trf*t).A.ravel() # Same but much faster ! m=np.hstack((p*pitch+pos,np.ones((p.shape[0],1)))) - p=(trf*np.asmatrix(m).T).T.A + #p=(trf*np.asmatrix(m).T).T.A + p=(np.asmatrix(m)*trf).A # add up to 100 test fiducial + vb=self.vb grp=self._goTracked mft=self._moduleFixTarget + try: + tmpGoLst=self._goTmp + except AttributeError: + tmpGoLst=self._goTmp=[] + else: + for go in tmpGoLst: + vb.removeItem(go) + tmpGoLst.clear() + n=int(p.shape[0]/100)+1 for i in range(0,p.shape[0],n): fx,fy=p[i, :]/1000 l=.06 go=UsrGO.Fiducial((fx-l/2, fy-l/2), (l, l), i) grp.addItem(go) - mft._tree.setData(grp.childItems()) + tmpGoLst.append(go) + mft._tree.setData(grp.childItems()) - print('DEBUG: first point:') - print(p[0,:]) - print('DEBUG: difference from point to point:') - print(np.diff(p, axis=0)) - #self.daq_collect(**param) + #_log.debug(f'first point:{p[0,:]}') + #_log.debug(f'step to 2nd point:{p[1,:]-p[0,:]}') + #print('DEBUG: difference from point to point:') + #print(np.diff(p, axis=0)) + self.daq_collect(**param) elif task == TASK_GRID: self.re_connect_collect_button( @@ -1874,7 +1888,7 @@ class WndSwissMx(QMainWindow, Ui_MainWindow): go.setSize(sz) j=0 - elif type(go)==UsrGO.Fiducial: + elif type(go)==UsrGO.Fiducial and go.size()[0]==0.12: ptFitTrf[j]=go.pos()+go.size()/2 ptFitPlane[i]=go.ctr() i+=1;j+=1