wa: Traceback are displayed in case of error
A wa
can display traceback of errors. You could have multiple traces.
I think it is pointless at this stage, this could be displayed the same way we display last_errors
DEMO_SESSION [4]: wa()
Traceback (most recent call last):
File "/nobackup/lvalls1/valls/workspace/bliss.git/bliss/shell/standard.py", line 280, in _print_errors_with_traceback
raise exc_type(
File "/nobackup/lvalls1/valls/workspace/bliss.git/bliss/common/utils.py", line 576, in safe_get
return getattr(obj, member)
File "/nobackup/lvalls1/valls/workspace/bliss.git/bliss/common/axis.py", line 811, in func_wrapper
return func(self, *args, **kwargs)
File "/nobackup/lvalls1/valls/workspace/bliss.git/bliss/common/axis.py", line 1250, in dial
dial_pos = self._update_dial()
File "/nobackup/lvalls1/valls/workspace/bliss.git/bliss/common/axis.py", line 811, in func_wrapper
return func(self, *args, **kwargs)
File "/nobackup/lvalls1/valls/workspace/bliss.git/bliss/common/axis.py", line 1395, in _update_dial
dial_pos = self._hw_position
File "/nobackup/lvalls1/valls/workspace/bliss.git/bliss/common/axis.py", line 811, in func_wrapper
return func(self, *args, **kwargs)
File "/nobackup/lvalls1/valls/workspace/bliss.git/bliss/common/axis.py", line 1413, in _hw_position
return self._do_read_hw_position()
File "/nobackup/lvalls1/valls/workspace/bliss.git/bliss/common/axis.py", line 811, in func_wrapper
return func(self, *args, **kwargs)
File "/nobackup/lvalls1/valls/workspace/bliss.git/bliss/common/axis.py", line 1418, in _do_read_hw_position
curr_pos = self.__controller.read_position(self) / self.steps_per_unit
File "/nobackup/lvalls1/valls/workspace/bliss.git/bliss/controllers/motors/mockup.py", line 779, in read_position
raise RuntimeError("BAD POSITION")
RuntimeError: Error on motor 'bad_mot': BAD POSITION
robx[mm] roby sx sy sz[mm] slit_top slit_bottom slit_vertical_gap
user 0.000000 0.000000 0.000000 0.000000 0.000000 0.0000 0.00000 0.0000
dial 0.000000 0.000000 0.000000 0.000000 0.000000 -0.0000 0.00000 0.0000
slit_vertical_offset bad_mot dis_mot nan_mot
user 0.0000 !ERR *DIS* nan
dial 0.0000 !ERR *DIS* nan
Proposal
DEMO_SESSION [4]: wa()
robx[mm] roby sx sy sz[mm] slit_top slit_bottom slit_vertical_gap
user 0.000000 0.000000 0.000000 0.000000 0.000000 0.0000 0.00000 0.0000
dial 0.000000 0.000000 0.000000 0.000000 0.000000 -0.0000 0.00000 0.0000
slit_vertical_offset bad_mot dis_mot nan_mot
user 0.0000 !ERR *DIS* nan
dial 0.0000 !ERR *DIS* nan
!!! === RuntimeError: Error on motor 'bad_mot': BAD POSITION === !!! ( for more details type cmd 'last_error(0)'
DEMO_SESSION [5]:
The command itself will not raise an error but only print that line
Which could be displayed multiple times
!!! === RuntimeError: Error on motor 'bad_mot': BAD POSITION === !!! ( for more details type cmd 'last_error(0)'
!!! === RuntimeError: Error on motor 'bad_mot2': BAD POSITION === !!! ( for more details type cmd 'last_error(1)'
!!! === RuntimeError: Error on motor 'bad_mot3': BAD POSITION === !!! ( for more details type cmd 'last_error(2)'
DEMO_SESSION [5]: