lot a small steps...
This commit is contained in:
@@ -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')
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
63
swissmx.py
63
swissmx.py
@@ -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())
|
||||||
|
|||||||
Reference in New Issue
Block a user