fix tracking object bugs after collection
This commit is contained in:
@@ -318,4 +318,11 @@ X10193.88 Y-8892
|
||||
-8892.02 10193.9 -996.5999999999985
|
||||
|
||||
|
||||
-> z has wrong sign !
|
||||
-> z has wrong sign !
|
||||
|
||||
|
||||
|
||||
|
||||
!!!!!!!!!!! AFTER COLLECTION GRAPHICAL OVERLAY OBJECTS ARE SHIFTED !!!!!!!!!!!
|
||||
!!!!!!!!!!! IF MOVING ON THE EPICS PANEL, THE OBJECTS GET OUT OF SYNC !!!!!!!!
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ SPMG_GO = 3
|
||||
|
||||
class MotorTweak(QWidget, Ui_MotorTweak):
|
||||
event_val = pyqtSignal(str, dict)
|
||||
event_readback = pyqtSignal(str, float, dict)
|
||||
event_rbv = pyqtSignal(str, float, dict)
|
||||
event_soft_limit = pyqtSignal(str, dict)
|
||||
event_high_hard_limit = pyqtSignal(str, dict)
|
||||
event_low_hard_limit = pyqtSignal(str, dict)
|
||||
@@ -202,7 +202,7 @@ class MotorTweak(QWidget, Ui_MotorTweak):
|
||||
if field == 'VAL':
|
||||
self.event_val.emit(self._pvname, kw)
|
||||
elif field == 'RBV':
|
||||
self.event_readback.emit(kw['alias'], kw['value'], kw)
|
||||
self.event_rbv.emit(kw['alias'], kw['value'], kw)
|
||||
elif field == 'LVIO':
|
||||
self.event_soft_limit.emit(self._pvname, kw)
|
||||
elif field == 'HLS':
|
||||
@@ -382,3 +382,31 @@ class MotorTweak(QWidget, Ui_MotorTweak):
|
||||
path.setFillRule(Qt.WindingFill)
|
||||
path.addRoundedRect(x, y, w, h, rounding, rounding)
|
||||
qp.drawPath(path)
|
||||
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
logging.basicConfig(level=logging.DEBUG, format='%(levelname)s:%(module)s:%(lineno)d:%(funcName)s:%(message)s ')
|
||||
_log.debug('start')
|
||||
def cb_rbv(*args,**kwargs):
|
||||
_log.debug(f'RBV{args} {kwargs}')
|
||||
|
||||
|
||||
|
||||
import sys
|
||||
from PyQt5.QtWidgets import QApplication, QWidget, QLabel
|
||||
app=QApplication(sys.argv)
|
||||
mot_widget=MotorTweak()
|
||||
|
||||
#mot_widget.event_val.connect(cb_rbv)
|
||||
mot_widget.event_rbv.connect(cb_rbv)
|
||||
|
||||
pfx='SAR-EXPMX'
|
||||
mot_widget.connect_motor(f"{pfx}:MOT_FY", alias="fast_y", label="fast Y")
|
||||
mot_widget.setGeometry(50, 50, 520, 100)
|
||||
mot_widget.setWindowTitle("PyQt5 Example")
|
||||
mot_widget.show()
|
||||
sys.exit(app.exec_())
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ class SimMotor:
|
||||
|
||||
class SimMotorTweak(QWidget, Ui_MotorTweak):
|
||||
event_val = pyqtSignal(str, dict)
|
||||
event_readback = pyqtSignal(str, dict)
|
||||
event_rbv = pyqtSignal(str, dict)
|
||||
event_soft_limit = pyqtSignal(str, dict)
|
||||
event_high_hard_limit = pyqtSignal(str, dict)
|
||||
event_low_hard_limit = pyqtSignal(str, dict)
|
||||
@@ -162,7 +162,7 @@ class SimMotorTweak(QWidget, Ui_MotorTweak):
|
||||
if field == 'VAL':
|
||||
self.event_val.emit(m._rec_name, kw)
|
||||
elif field == 'RBV':
|
||||
self.event_readback.emit(m._rec_name, kw)
|
||||
self.event_rbv.emit(m._rec_name, kw)
|
||||
elif field == 'LVIO':
|
||||
self.event_soft_limit.emit(m._rec_name, kw)
|
||||
elif field == 'HLS':
|
||||
|
||||
@@ -23,7 +23,7 @@ SPMG_GO = 3
|
||||
|
||||
class SmaractMotorTweak(QWidget, Ui_MotorTweak):
|
||||
event_val = pyqtSignal(str, dict)
|
||||
event_readback = pyqtSignal(str, dict)
|
||||
event_rbv = pyqtSignal(str, dict)
|
||||
event_soft_limit = pyqtSignal(str, dict)
|
||||
event_high_hard_limit = pyqtSignal(str, dict)
|
||||
event_low_hard_limit = pyqtSignal(str, dict)
|
||||
@@ -184,7 +184,7 @@ class SmaractMotorTweak(QWidget, Ui_MotorTweak):
|
||||
if field == 'VAL':
|
||||
self.event_val.emit(self._pvname, kw)
|
||||
elif field == 'RBV':
|
||||
self.event_readback.emit(self._pvname, kw)
|
||||
self.event_rbv.emit(self._pvname, kw)
|
||||
elif field == 'LVIO':
|
||||
self.event_soft_limit.emit(self._pvname, kw)
|
||||
elif field == 'HLS':
|
||||
|
||||
20
swissmx.py
20
swissmx.py
@@ -742,8 +742,8 @@ class WndSwissMx(QMainWindow, Ui_MainWindow):
|
||||
#self.tweakers["fast_x"].event_readback.connect(lambda alias, value, kw: self.fast_x_position.emit(value))
|
||||
#self.tweakers["fast_y"].event_readback.connect(lambda alias, value, kw: self.fast_y_position.emit(value))
|
||||
|
||||
self.tweakers["fast_x"].event_val.connect(lambda rec_name, kw: self.track_objects())
|
||||
self.tweakers["fast_y"].event_val.connect(lambda rec_name, kw: self.track_objects())
|
||||
self.tweakers["fast_x"].event_rbv.connect(lambda rec_name, kw: self.track_objects())
|
||||
self.tweakers["fast_y"].event_rbv.connect(lambda rec_name, kw: self.track_objects())
|
||||
# layout.addStretch()
|
||||
|
||||
def cb_marker_moved(self,obj,*args,**kwargs):
|
||||
@@ -1277,8 +1277,8 @@ class WndSwissMx(QMainWindow, Ui_MainWindow):
|
||||
twk_fx=self.tweakers["fast_x"];twk_fy=self.tweakers["fast_y"]
|
||||
# TODO: get_position() is delayed as it is the RBV. do same as for the zoom
|
||||
# TODO: and return the last set_point
|
||||
fx=twk_fx.get_val()
|
||||
fy=twk_fy.get_val()
|
||||
fx=twk_fx.get_rbv()
|
||||
fy=twk_fy.get_rbv()
|
||||
try:
|
||||
grp=self._goTracked
|
||||
grpTrc=self._goTrace
|
||||
@@ -1295,7 +1295,10 @@ class WndSwissMx(QMainWindow, Ui_MainWindow):
|
||||
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}")
|
||||
try:
|
||||
_log.debug(f"zoom:{zoom_old}->{zoom:d} fx:{fx_old:.3f}->{fx:.3f} fy:{fy_old:.3f}->{fy:.3f}")
|
||||
except TypeError:
|
||||
_log.debug(f"zoom:{zoom_old}->{zoom} fx:{fx_old}->{fx:.3f} fy:{fy_old}->{fy:.3f}")
|
||||
if zoom_old!=zoom:
|
||||
geo.interp_zoom(zoom)
|
||||
|
||||
@@ -1993,13 +1996,13 @@ Author Thierry Zamofing (thierry.zamofing@psi.ch)
|
||||
v=geo.pos2pix((23, 0))
|
||||
l=np.linalg.norm(v)
|
||||
l=23
|
||||
go=UsrGO.FixTargetFrame((fx-l/2,fx-l/2), (l, l), tpl='23.0x23.0')
|
||||
go=UsrGO.FixTargetFrame((fx-l/2,fy-l/2), (l, l), tpl='23.0x23.0')
|
||||
elif idx==3:
|
||||
w,h=(.120*12, .120*8)
|
||||
go=UsrGO.FixTargetFrame((fx-w/2,fx-h/2), (w, h), tpl='test')
|
||||
go=UsrGO.FixTargetFrame((fx-w/2,fy-h/2), (w, h), tpl='test')
|
||||
elif idx==4:
|
||||
w,h=(30, 22)
|
||||
go=UsrGO.Grid((fx-w/2,fx-h/2), (w, h), (30, 22), .1)
|
||||
go=UsrGO.Grid((fx-w/2,fy-h/2), (w, h), (30, 22), .1)
|
||||
else:
|
||||
_log.error('index not handeled')
|
||||
|
||||
@@ -2064,6 +2067,7 @@ Author Thierry Zamofing (thierry.zamofing@psi.ch)
|
||||
cfg = app._cfg
|
||||
dt_misc = cfg.value(AppCfg.DT_MISC)
|
||||
|
||||
#_log.critical('abort for test');return # RET
|
||||
geo = app._geometry
|
||||
fn='/tmp/shapepath'
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user