put try/catch for all monitor callbacks (suggestion Xiaoqiang)

This commit is contained in:
2023-06-30 14:32:48 +02:00
parent 0a965f66ce
commit e910083b1a
4 changed files with 229 additions and 57 deletions

View File

@@ -95,10 +95,13 @@ class MotorTweak(QWidget, Ui_MotorTweak):
def set_val(self, **kw):
v = kw['char_value']
_log.debug('updating VAL = {}'.format(v))
self._val=float(v) # rewrite in case of tweaking
self._drive_val.setText(v)
try: #pv-monitor-func
v = kw['char_value']
_log.debug('updating VAL = {}'.format(v))
self._val=float(v) # rewrite in case of tweaking
self._drive_val.setText(v)
except Exception as e:
_log.critical(f'{e}')
def set_motor_validator(self, **kwargs):
@@ -187,33 +190,39 @@ class MotorTweak(QWidget, Ui_MotorTweak):
:return:
'''
field = kw['motor_field']
src = kw['source_field']
kw['alias'] = self._label
if field != src:
return
if field == 'VAL':
self.event_val.emit(self._rec_name, kw)
elif field == 'RBV':
self.event_rbv.emit(kw['alias'], kw['value'], kw)
elif field == 'LVIO':
self.event_soft_limit.emit(self._rec_name, kw)
elif field == 'HLS':
self.event_high_hard_limit.emit(self._rec_name, kw)
self.event_axis_fault.emit(self._rec_name, kw)
elif field == 'LVIO':
self.event_low_hard_limit.emit(self._rec_name, kw)
self.event_axis_fault.emit(self._rec_name, kw)
elif field == 'STAT':
self.event_axis_fault.emit(self._rec_name, kw)
try: #pv-monitor-func
field = kw['motor_field']
src = kw['source_field']
kw['alias'] = self._label
if field != src:
return
if field == 'VAL':
self.event_val.emit(self._rec_name, kw)
elif field == 'RBV':
self.event_rbv.emit(kw['alias'], kw['value'], kw)
elif field == 'LVIO':
self.event_soft_limit.emit(self._rec_name, kw)
elif field == 'HLS':
self.event_high_hard_limit.emit(self._rec_name, kw)
self.event_axis_fault.emit(self._rec_name, kw)
elif field == 'LVIO':
self.event_low_hard_limit.emit(self._rec_name, kw)
self.event_axis_fault.emit(self._rec_name, kw)
elif field == 'STAT':
self.event_axis_fault.emit(self._rec_name, kw)
except Exception as e:
_log.critical(f'{e}')
def update_label(self, **kwargs):
m = self._motor
self.label.setText(self._templates[self._label_style].format(rbv=m.readback))
self.jog_forward.setToolTip('jog forward at {:.3f} {}/s'.format(m.jog_speed, m.units))
self.jog_reverse.setToolTip('jog reverse at {:.3f} {}/s'.format(m.jog_speed, m.units))
self.tweak_forward.setToolTip('tweak forward by {:.3f} {}'.format(m.tweak_val, m.units))
self.tweak_reverse.setToolTip('tweak reverse by {:.3f} {}'.format(m.tweak_val, m.units))
try: #pv-monitor-func
m = self._motor
self.label.setText(self._templates[self._label_style].format(rbv=m.readback))
self.jog_forward.setToolTip('jog forward at {:.3f} {}/s'.format(m.jog_speed, m.units))
self.jog_reverse.setToolTip('jog reverse at {:.3f} {}/s'.format(m.jog_speed, m.units))
self.tweak_forward.setToolTip('tweak forward by {:.3f} {}'.format(m.tweak_val, m.units))
self.tweak_reverse.setToolTip('tweak reverse by {:.3f} {}'.format(m.tweak_val, m.units))
except Exception as e:
_log.critical(f'{e}')
def update_jog_speed(self, event):
m = self._motor