rework motor tweak
This commit is contained in:
@@ -58,9 +58,9 @@ class SimMotorTweak(QWidget, Ui_MotorTweak):
|
||||
|
||||
def connect_motor(self, rec_name, short_name=None, *args, **kwargs):
|
||||
self.label.setToolTip('{} => {}'.format(rec_name, short_name))
|
||||
self.motor=SimMotor(rec_name, short_name)
|
||||
self._motor=m=SimMotor(rec_name, short_name)
|
||||
self.set_motor_validator()
|
||||
self._drive_val.setText(str(self.motor._pos))
|
||||
self._drive_val.setText(str(m._pos))
|
||||
self._drive_val.returnPressed.connect(self.move_motor_to_position)
|
||||
|
||||
self.jog_forward.hide()
|
||||
@@ -68,7 +68,7 @@ class SimMotorTweak(QWidget, Ui_MotorTweak):
|
||||
|
||||
tweak_min = kwargs.get("tweak_min", 0.0001)
|
||||
tweak_max = kwargs.get("tweak_max", 20.0)
|
||||
self._tweak_val.setText(str(self.motor._twv))
|
||||
self._tweak_val.setText(str(m._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())))
|
||||
@@ -93,8 +93,9 @@ class SimMotorTweak(QWidget, Ui_MotorTweak):
|
||||
|
||||
|
||||
def set_motor_validator(self, **kwargs):
|
||||
m=self._motor
|
||||
lineedit = self._drive_val
|
||||
min, max = self.motor._llm, self.motor._hlm
|
||||
min, max = m._llm, m._hlm
|
||||
if min == max:
|
||||
min = -1e6
|
||||
max = 1e6
|
||||
@@ -102,15 +103,19 @@ class SimMotorTweak(QWidget, Ui_MotorTweak):
|
||||
|
||||
|
||||
def move_relative(self, dist, delay=None):
|
||||
self.motor._pos += dist
|
||||
m=self._motor
|
||||
m._pos += dist
|
||||
if delay:
|
||||
sleep(delay)
|
||||
_log.debug('{} rel move => {}'.format(self.motor._short_name, dist))
|
||||
_log.debug('{} rel move => {}'.format(m._short_name, dist))
|
||||
self.update_label()
|
||||
self.emit_signals(source_field='VAL')
|
||||
|
||||
def get_position(self):
|
||||
return self.motor._pos
|
||||
def get_rbv(self):
|
||||
return self._motor._pos
|
||||
|
||||
def get_val(self):
|
||||
return self._motor._pos
|
||||
|
||||
def is_homed(self):
|
||||
return True
|
||||
@@ -140,32 +145,34 @@ class SimMotorTweak(QWidget, Ui_MotorTweak):
|
||||
return True # in (0, 3)
|
||||
|
||||
def move_motor_to_position(self, drive=None, wait=False, assert_position=False):
|
||||
m=self._motor
|
||||
if assert_position:
|
||||
wait=True
|
||||
if drive is None:
|
||||
_log.debug('{} abs target from widget'.format(self.motor._short_name))
|
||||
_log.debug('{} abs target from widget'.format(m._short_name))
|
||||
drive = float(self._drive_val.text())
|
||||
_log.debug('{} abs move => {}'.format(self.motor._short_name, drive))
|
||||
self.motor._pos=drive
|
||||
_log.debug('{} abs move => {}'.format(m._short_name, drive))
|
||||
m._pos=drive
|
||||
self.update_label()
|
||||
self.emit_signals(source_field='VAL')
|
||||
|
||||
def emit_signals(self, **kw):
|
||||
m=self._motor
|
||||
field = kw['source_field']
|
||||
if field == 'VAL':
|
||||
self.event_val.emit(self.motor._rec_name, kw)
|
||||
self.event_val.emit(m._rec_name, kw)
|
||||
elif field == 'RBV':
|
||||
self.event_readback.emit(self.motor._rec_name, kw)
|
||||
self.event_readback.emit(m._rec_name, kw)
|
||||
elif field == 'LVIO':
|
||||
self.event_soft_limit.emit(self.motor._rec_name, kw)
|
||||
self.event_soft_limit.emit(m._rec_name, kw)
|
||||
elif field == 'HLS':
|
||||
self.event_high_hard_limit.emit(self.motor._rec_name, kw)
|
||||
self.event_axis_fault.emit(self.motor._rec_name, kw)
|
||||
self.event_high_hard_limit.emit(m._rec_name, kw)
|
||||
self.event_axis_fault.emit(m._rec_name, kw)
|
||||
elif field == 'LVIO':
|
||||
self.event_low_hard_limit.emit(self.motor._rec_name, kw)
|
||||
self.event_axis_fault.emit(self.motor._rec_name, kw)
|
||||
self.event_low_hard_limit.emit(m._rec_name, kw)
|
||||
self.event_axis_fault.emit(m._rec_name, kw)
|
||||
elif field == 'STAT':
|
||||
self.event_axis_fault.emit(self.motor._rec_name, kw)
|
||||
self.event_axis_fault.emit(m._rec_name, kw)
|
||||
|
||||
|
||||
def set_val_on_status_change(self, **kw):
|
||||
@@ -194,11 +201,12 @@ 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.motor._pos))
|
||||
self._drive_val.setText(f'{self.motor._pos:.3f}')
|
||||
m=self._motor
|
||||
self.label.setText(self._templates[self._label_style].format(rbv=m._pos))
|
||||
self._drive_val.setText(f'{m._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))
|
||||
self.tweak_forward.setToolTip('tweak forward by {:.3f} {}'.format(twv, m._units))
|
||||
self.tweak_reverse.setToolTip('tweak reverse by {:.3f} {}'.format(twv, m._units))
|
||||
|
||||
def tweak_event(self, event):
|
||||
sign = event.angleDelta().y()
|
||||
@@ -278,15 +286,16 @@ class SimMotorTweak(QWidget, Ui_MotorTweak):
|
||||
pass
|
||||
|
||||
def update_label_template(self):
|
||||
m=self._motor
|
||||
source = self._templates_source
|
||||
target = self._templates
|
||||
|
||||
for k in source:
|
||||
target[k] = source[k].format(
|
||||
short_name=self.motor._short_name,
|
||||
precision=self.motor._prec,
|
||||
units=self.motor._units)
|
||||
self.label.setText(target[self._label_style].format(rbv=self.motor._pos))
|
||||
short_name=m._short_name,
|
||||
precision=m._prec,
|
||||
units=m._units)
|
||||
self.label.setText(target[self._label_style].format(rbv=m._pos))
|
||||
|
||||
def paintEvent(self, e):
|
||||
qp = QPainter()
|
||||
|
||||
Reference in New Issue
Block a user