Cannot dmesh two pseudo motors with number of scan points on each
I cannot put two software motors in a dmesh.
I want to do a rocking curve as a function of where the beam hits our first mono crystal. The crystal is curved so I want to correct for the curvature to have the same range versus y-position.
The controller defining the motors is here:
https://gitlab.esrf.fr/id11/id11/-/blob/master/id11/controllers/llangle.py
The device is optics/motions/llangle1.yml :
controller:
class: LLAngle
package: id11.controllers.llangle
bend_zero: 0.0
bend_y: 43688.0
ty_zero: 30.
axes:
- name: $llbend1
tags: real bend
- name: $llty1
tags: real ty
- name: $llrz1
tags: real rz
- name: lltruebend1
tags: truebend
- name: llbragg1
tags: angle
- name: llbeamy1
tags: absty
The error is:
OPTICS [47]: dmesh(llbragg1,-0.005,0.005,40,llbeamy1,-1,1,20,0.01) OPTICS [47]: last_error Out [47]: Traceback (most recent call last): File "/users/blissadm/local/bliss.git/bliss/controllers/motor.py", line 631, in check_limits assert min(positions_len) == max(positions_len) AssertionError During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/users/blissadm/local/bliss.git/bliss/shell/cli/repl.py", line 734, in embed cmd_line_i._execute(inp) File "/users/blissadm/local/bliss.git/bliss/shell/cli/repl.py", line 455, in _execute raise return_value[1].with_traceback(return_value[2]) File "/users/blissadm/local/bliss.git/bliss/shell/cli/repl.py", line 433, in _execute_task return self._another_execute(*args, **kwargs) File "/users/blissadm/local/bliss.git/bliss/shell/cli/repl.py", line 387, in _another_execute result = eval(code, self.get_globals(), self.get_locals()) File "<stdin>", line 1, in <module> File "/users/blissadm/local/bliss.git/bliss/common/utils.py", line 902, in wrapped_function )(function)(*args, **kwargs) File "/users/blissadm/local/bliss.git/bliss/common/utils.py", line 860, in wrapped_function raise e File "/users/blissadm/local/bliss.git/bliss/common/utils.py", line 848, in wrapped_function return function(*args, **kwargs) File "/users/blissadm/local/bliss.git/bliss/common/utils.py", line 813, in wrapped_function return function(*args, **kwargs) File "/users/blissadm/conda/miniconda/envs/bliss_dev/lib/python3.7/site-packages/typeguard/__init__.py", line 784, in wrapper retval = func(*args, **kwargs) File "/users/blissadm/local/bliss.git/bliss/common/scans/step_by_step.py", line 454, in dmesh scan_info=scan_info, File "/users/blissadm/local/bliss.git/bliss/common/utils.py", line 902, in wrapped_function )(function)(*args, **kwargs) File "/users/blissadm/local/bliss.git/bliss/common/utils.py", line 860, in wrapped_function
raise e
File "/users/blissadm/local/bliss.git/bliss/common/utils.py", line 848, in wrapped_function
return function(*args, **kwargs)
File "/users/blissadm/local/bliss.git/bliss/common/utils.py", line 813, in wrapped_function
return function(*args, **kwargs)
File "/users/blissadm/conda/miniconda/envs/bliss_dev/lib/python3.7/site-packages/typeguard/__init__.py", line 784, in wrapper
retval = func(*args, **kwargs)
File "/users/blissadm/local/bliss.git/bliss/common/scans/step_by_step.py", line 370, in amesh
backnforth=backnforth,
File "/users/blissadm/local/bliss.git/bliss/scanning/acquisition/motor.py", line 425, in __init__
_StepTriggerMaster.__init__(self, *args, **keys)
File "/users/blissadm/local/bliss.git/bliss/scanning/acquisition/motor.py", line 378, in __init__
controller.check_limits(*axes_position)
File "/users/blissadm/local/bliss.git/bliss/controllers/motor.py", line 634, in check_limits
f"Axes {axes} doesn't have the same number of positions to check"
RuntimeError: Axes {<bliss.common.axis.Axis object at 0x7f24e7e03a50>, <bliss.common.axis.Axis object at 0x7f24e7e0e9d0>} doesn't have the same number of positions to check
OPTICS [48]: dmesh(llrz1,-0.005,0.005,40,llty1,-1,1,20,0.01)
--> working scan