lot a small steps...

This commit is contained in:
2022-08-16 18:45:26 +02:00
parent ed3502f002
commit aa9a2c9948
3 changed files with 53 additions and 34 deletions

View File

@@ -56,7 +56,11 @@ class AppCfg(QSettings):
#set default keys if not existing #set default keys if not existing
if AppCfg.GEO_BEAM_SZ not in keys: if AppCfg.GEO_BEAM_SZ not in keys:
_log.warning(f'{AppCfg.GEO_BEAM_SZ} not defined. set default') _log.warning(f'{AppCfg.GEO_BEAM_SZ} not defined. set default')
self.setValue(AppCfg.GEO_BEAM_SZ, [40, 20]) #([40, 20) -> tuples are not supported natively self.setValue(AppCfg.GEO_BEAM_SZ, [30.2, 25.6]) #([40, 20) -> tuples are not supported natively
if AppCfg.GEO_BEAM_POS not in keys:
_log.warning(f'{AppCfg.GEO_BEAM_POS} not defined. set default')
self.setValue(AppCfg.GEO_BEAM_POS, [23.4, -54.2]) # beam position relativ to optical center in mm
if AppCfg.GEO_PIX2POS not in keys: if AppCfg.GEO_PIX2POS not in keys:
_log.warning(f'{AppCfg.GEO_OPT_CTR} not defined. calc default') _log.warning(f'{AppCfg.GEO_OPT_CTR} not defined. calc default')

View File

@@ -72,6 +72,8 @@ class SimMotorTweak(QWidget, Ui_MotorTweak):
self._tweak_val.setText(str(twv)) self._tweak_val.setText(str(twv))
self._tweak_val.setValidator(QDoubleValidator(tweak_min, tweak_max, 4, self._tweak_val)) self._tweak_val.setValidator(QDoubleValidator(tweak_min, tweak_max, 4, self._tweak_val))
#self._tweak_val.editingFinished.connect(lambda m=self._pv_tweak_val: m.put(self._tweak_val.text())) #self._tweak_val.editingFinished.connect(lambda m=self._pv_tweak_val: m.put(self._tweak_val.text()))
self.tweak_forward.clicked.connect(lambda m: self.move_relative(float(self._tweak_val.text())))
self.tweak_reverse.clicked.connect(lambda m: self.move_relative(-float(self._tweak_val.text())))
#self.tweak_forward.clicked.connect(lambda m: self._pv_tweak_f.put(1)) #self.tweak_forward.clicked.connect(lambda m: self._pv_tweak_f.put(1))
#self.tweak_reverse.clicked.connect(lambda m: self._pv_tweak_r.put(1)) #self.tweak_reverse.clicked.connect(lambda m: self._pv_tweak_r.put(1))
@@ -101,9 +103,11 @@ class SimMotorTweak(QWidget, Ui_MotorTweak):
def move_relative(self, dist, delay=None): def move_relative(self, dist, delay=None):
target = self.motor._pos + dist self.motor._pos += dist
if delay: if delay:
sleep(delay) sleep(delay)
_log.debug('{} rel move => {}'.format(self.motor._short_name, dist))
self.update_label()
def get_position(self): def get_position(self):
return self.motor._pos return self.motor._pos
@@ -136,14 +140,14 @@ class SimMotorTweak(QWidget, Ui_MotorTweak):
return True # in (0, 3) return True # in (0, 3)
def move_motor_to_position(self, drive=None, wait=False, assert_position=False): def move_motor_to_position(self, drive=None, wait=False, assert_position=False):
if assert_position: if assert_position:
wait=True wait=True
if drive is None: if drive is None:
_log.debug('{} abs target from widget'.format(self.motor._short_name)) _log.debug('{} abs target from widget'.format(self.motor._short_name))
drive = float(self._drive_val.text()) drive = float(self._drive_val.text())
_log.debug('{} abs move => {}'.format(self.motor._short_name, drive)) _log.debug('{} abs move => {}'.format(self.motor._short_name, drive))
self._pos=drive self.motor._pos=drive
self.update_label()
def emit_signals(self, **kw): def emit_signals(self, **kw):
field = kw['source_field'] field = kw['source_field']
@@ -189,9 +193,11 @@ class SimMotorTweak(QWidget, Ui_MotorTweak):
self._drive_val.setText(v) self._drive_val.setText(v)
def update_label(self, **kwargs): def update_label(self, **kwargs):
self.label.setText(self._templates[self._label_style].format(rbv=self._pv_readback.get())) self.label.setText(self._templates[self._label_style].format(rbv=self.motor._pos))
self.tweak_forward.setToolTip('tweak forward by {:.3f} {}'.format(self._pv_tweak_val.get(), self._units)) self._drive_val.setText(f'{self.motor._pos:.3f}')
self.tweak_reverse.setToolTip('tweak reverse by {:.3f} {}'.format(self._pv_tweak_val.get(), self._units)) twv=float(self._tweak_val.text())
self.tweak_forward.setToolTip('tweak forward by {:.3f} {}'.format(twv, self.motor._units))
self.tweak_reverse.setToolTip('tweak reverse by {:.3f} {}'.format(twv, self.motor._units))
def tweak_event(self, event): def tweak_event(self, event):
sign = event.angleDelta().y() sign = event.angleDelta().y()

View File

@@ -344,13 +344,13 @@ class Main(QMainWindow, Ui_MainWindow):
vb.addItem(grid) vb.addItem(grid)
#--- beam marker --- #--- beam marker ---
bm_sz=np.array(tuple(map(int, cfg.value(AppCfg.GEO_BEAM_SZ)))) bm_sz=np.array((50, 40)) # it is immidiatly repositioned in zoom_changed_cb
self._goBeamMarker=bm=UsrGO.Marker(-opt_ctr-[50, 120],bm_sz,mode=0) self._goBeamMarker=bm=UsrGO.Marker(-opt_ctr-bm_sz/2,bm_sz,mode=0)
bm.setTransform(tr) # assign transform
self.vb.addItem(bm) self.vb.addItem(bm)
#--- opctical center --- #--- opctical center ----
self._goOptCtr=obj=UsrGO.Marker(-opt_ctr, [50, 50],mode=1) oc_sz=np.array((50,50))
self._goOptCtr=obj=UsrGO.Marker(-opt_ctr-oc_sz/2, oc_sz,mode=1)
bm.setTransform(tr) # assign transform bm.setTransform(tr) # assign transform
self.vb.addItem(obj) self.vb.addItem(obj)
@@ -1038,26 +1038,24 @@ class Main(QMainWindow, Ui_MainWindow):
def zoom_changed_cb(self, value): def zoom_changed_cb(self, value):
self.zoomChanged.emit(value) self.zoomChanged.emit(value)
app=QApplication.instance()
cfg=app._cfg
geo=app._geometry
try: try:
ppm = self.ppm_fitter(value) geo.interp_zoom(value)
except AttributeError as e: except AttributeError as e:
_log.warning(e) _log.warning(e)
else: else:
_log.debug("zoom callback zoomChanged.emit({}), pixelsPerMillimeter.emit({})".format(value, ppm)) opt_ctr=geo._opt_ctr
self.pixelsPerMillimeter.emit(ppm) bm_sz=np.array(tuple(map(float, cfg.value(AppCfg.GEO_BEAM_SZ))))/1000
self.update_beam_marker(value) bm_pos=np.array(tuple(map(float, cfg.value(AppCfg.GEO_BEAM_POS))))/1000
bm_sz=np.abs(geo.pos2pix(bm_sz))
# def getZoom(self): bm_pos=-opt_ctr-geo.pos2pix(bm_pos)-bm_sz/2
# return qoptic_zoom.get_position() bm=self._goBeamMarker
bm.setPos(bm_pos,finish=False)
# def getPpm(self): bm.setSize(bm_sz)
# ppm_fitter = None _log.debug(f"zoom->{value} beam marker pos:{bm_pos} sz:{bm_sz})")
# try: #self.update_beam_marker(value)
# ppm_fitter = self.ppm_fitter(self.getZoom())
# except Exception as e:
# _log.error("garbage in getPpm()")
# traceback.print_exc()
# return ppm_fitter
def append_to_beam_markers(self, x, y, zoom): def append_to_beam_markers(self, x, y, zoom):
self._beam_markers[zoom] = (x, y) self._beam_markers[zoom] = (x, y)
@@ -1181,9 +1179,10 @@ class Main(QMainWindow, Ui_MainWindow):
if task==TASK_SETUP_GEOMETRY_CALIB: if task==TASK_SETUP_GEOMETRY_CALIB:
self.mouse_click_event_geometry_calib(event) self.mouse_click_event_geometry_calib(event)
return return
################################
#Ctrl-left : move to position # Ctrl-left : move to position
#Ctrl-left : move to position # Ctrl-right : object tree
################################
#dblclick = event.double() #dblclick = event.double()
app=QApplication.instance() app=QApplication.instance()
@@ -1201,8 +1200,19 @@ class Main(QMainWindow, Ui_MainWindow):
p1=self._goImg.mapFromScene(pos) p1=self._goImg.mapFromScene(pos)
p2=bm.pos()+bm.size()/2 p2=bm.pos()+bm.size()/2
px=p2+p1 px=p2+p1
um=geo.pix2pos(px) mm=geo.pix2pos(px)
_log.debug(f'{px} -> {um}') _log.debug(f'{px} -> {mm}')
fx_motor, fy_motor, bx_motor, bz_motor, omega_motor=self.get_gonio_tweakers()
#fx=fx_motor.get_position()
#fy=fy_motor.get_position()
#dx=(x-bx)/ppm
#dy=-(y-by)/ppm
#fx+=dx
#fy+=dy
fx_motor.move_relative(mm[0])
fy_motor.move_relative(mm[1])
#self.fast_dx_position.emit(dx)
#self.fast_dy_position.emit(dy)
pass pass
elif mod&Qt.AltModifier: elif mod&Qt.AltModifier:
pass pass
@@ -1228,7 +1238,6 @@ class Main(QMainWindow, Ui_MainWindow):
event.pos()# return Point(self.currentItem.mapFromScene(self._scenePos)) event.pos()# return Point(self.currentItem.mapFromScene(self._scenePos))
app=QApplication.instance() app=QApplication.instance()
fx_motor, fy_motor, bx_motor, bz_motor, omega_motor = self.get_gonio_tweakers()
if event.button() == Qt.RightButton: if event.button() == Qt.RightButton:
UsrGO.obj_info(self.vb.childTransform()) UsrGO.obj_info(self.vb.childTransform())