lot a small steps...
This commit is contained in:
@@ -56,7 +56,11 @@ class AppCfg(QSettings):
|
||||
#set default keys if not existing
|
||||
if AppCfg.GEO_BEAM_SZ not in keys:
|
||||
_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:
|
||||
_log.warning(f'{AppCfg.GEO_OPT_CTR} not defined. calc default')
|
||||
|
||||
@@ -72,6 +72,8 @@ class SimMotorTweak(QWidget, Ui_MotorTweak):
|
||||
self._tweak_val.setText(str(twv))
|
||||
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_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_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):
|
||||
target = self.motor._pos + dist
|
||||
self.motor._pos += dist
|
||||
if delay:
|
||||
sleep(delay)
|
||||
_log.debug('{} rel move => {}'.format(self.motor._short_name, dist))
|
||||
self.update_label()
|
||||
|
||||
def get_position(self):
|
||||
return self.motor._pos
|
||||
@@ -136,14 +140,14 @@ class SimMotorTweak(QWidget, Ui_MotorTweak):
|
||||
return True # in (0, 3)
|
||||
|
||||
def move_motor_to_position(self, drive=None, wait=False, assert_position=False):
|
||||
|
||||
if assert_position:
|
||||
wait=True
|
||||
if drive is None:
|
||||
_log.debug('{} abs target from widget'.format(self.motor._short_name))
|
||||
drive = float(self._drive_val.text())
|
||||
_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):
|
||||
field = kw['source_field']
|
||||
@@ -189,9 +193,11 @@ class SimMotorTweak(QWidget, Ui_MotorTweak):
|
||||
self._drive_val.setText(v)
|
||||
|
||||
def update_label(self, **kwargs):
|
||||
self.label.setText(self._templates[self._label_style].format(rbv=self._pv_readback.get()))
|
||||
self.tweak_forward.setToolTip('tweak forward by {:.3f} {}'.format(self._pv_tweak_val.get(), self._units))
|
||||
self.tweak_reverse.setToolTip('tweak reverse by {:.3f} {}'.format(self._pv_tweak_val.get(), self._units))
|
||||
self.label.setText(self._templates[self._label_style].format(rbv=self.motor._pos))
|
||||
self._drive_val.setText(f'{self.motor._pos:.3f}')
|
||||
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):
|
||||
sign = event.angleDelta().y()
|
||||
|
||||
63
swissmx.py
63
swissmx.py
@@ -344,13 +344,13 @@ class Main(QMainWindow, Ui_MainWindow):
|
||||
vb.addItem(grid)
|
||||
|
||||
#--- beam marker ---
|
||||
bm_sz=np.array(tuple(map(int, cfg.value(AppCfg.GEO_BEAM_SZ))))
|
||||
self._goBeamMarker=bm=UsrGO.Marker(-opt_ctr-[50, 120],bm_sz,mode=0)
|
||||
bm.setTransform(tr) # assign transform
|
||||
bm_sz=np.array((50, 40)) # it is immidiatly repositioned in zoom_changed_cb
|
||||
self._goBeamMarker=bm=UsrGO.Marker(-opt_ctr-bm_sz/2,bm_sz,mode=0)
|
||||
self.vb.addItem(bm)
|
||||
|
||||
#--- opctical center ---
|
||||
self._goOptCtr=obj=UsrGO.Marker(-opt_ctr, [50, 50],mode=1)
|
||||
#--- opctical center ----
|
||||
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
|
||||
self.vb.addItem(obj)
|
||||
|
||||
@@ -1038,26 +1038,24 @@ class Main(QMainWindow, Ui_MainWindow):
|
||||
|
||||
def zoom_changed_cb(self, value):
|
||||
self.zoomChanged.emit(value)
|
||||
app=QApplication.instance()
|
||||
cfg=app._cfg
|
||||
geo=app._geometry
|
||||
try:
|
||||
ppm = self.ppm_fitter(value)
|
||||
geo.interp_zoom(value)
|
||||
except AttributeError as e:
|
||||
_log.warning(e)
|
||||
else:
|
||||
_log.debug("zoom callback zoomChanged.emit({}), pixelsPerMillimeter.emit({})".format(value, ppm))
|
||||
self.pixelsPerMillimeter.emit(ppm)
|
||||
self.update_beam_marker(value)
|
||||
|
||||
# def getZoom(self):
|
||||
# return qoptic_zoom.get_position()
|
||||
|
||||
# def getPpm(self):
|
||||
# ppm_fitter = None
|
||||
# try:
|
||||
# ppm_fitter = self.ppm_fitter(self.getZoom())
|
||||
# except Exception as e:
|
||||
# _log.error("garbage in getPpm()")
|
||||
# traceback.print_exc()
|
||||
# return ppm_fitter
|
||||
opt_ctr=geo._opt_ctr
|
||||
bm_sz=np.array(tuple(map(float, cfg.value(AppCfg.GEO_BEAM_SZ))))/1000
|
||||
bm_pos=np.array(tuple(map(float, cfg.value(AppCfg.GEO_BEAM_POS))))/1000
|
||||
bm_sz=np.abs(geo.pos2pix(bm_sz))
|
||||
bm_pos=-opt_ctr-geo.pos2pix(bm_pos)-bm_sz/2
|
||||
bm=self._goBeamMarker
|
||||
bm.setPos(bm_pos,finish=False)
|
||||
bm.setSize(bm_sz)
|
||||
_log.debug(f"zoom->{value} beam marker pos:{bm_pos} sz:{bm_sz})")
|
||||
#self.update_beam_marker(value)
|
||||
|
||||
def append_to_beam_markers(self, x, y, zoom):
|
||||
self._beam_markers[zoom] = (x, y)
|
||||
@@ -1181,9 +1179,10 @@ class Main(QMainWindow, Ui_MainWindow):
|
||||
if task==TASK_SETUP_GEOMETRY_CALIB:
|
||||
self.mouse_click_event_geometry_calib(event)
|
||||
return
|
||||
|
||||
#Ctrl-left : move to position
|
||||
#Ctrl-left : move to position
|
||||
################################
|
||||
# Ctrl-left : move to position
|
||||
# Ctrl-right : object tree
|
||||
################################
|
||||
|
||||
#dblclick = event.double()
|
||||
app=QApplication.instance()
|
||||
@@ -1201,8 +1200,19 @@ class Main(QMainWindow, Ui_MainWindow):
|
||||
p1=self._goImg.mapFromScene(pos)
|
||||
p2=bm.pos()+bm.size()/2
|
||||
px=p2+p1
|
||||
um=geo.pix2pos(px)
|
||||
_log.debug(f'{px} -> {um}')
|
||||
mm=geo.pix2pos(px)
|
||||
_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
|
||||
elif mod&Qt.AltModifier:
|
||||
pass
|
||||
@@ -1228,7 +1238,6 @@ class Main(QMainWindow, Ui_MainWindow):
|
||||
event.pos()# return Point(self.currentItem.mapFromScene(self._scenePos))
|
||||
|
||||
app=QApplication.instance()
|
||||
fx_motor, fy_motor, bx_motor, bz_motor, omega_motor = self.get_gonio_tweakers()
|
||||
|
||||
if event.button() == Qt.RightButton:
|
||||
UsrGO.obj_info(self.vb.childTransform())
|
||||
|
||||
Reference in New Issue
Block a user