Micos motor controller
In Micos motor controller I implemented the internal function _move_to_reference(), which is invoked from home_search() and also from the custom method move_to_reference(). Performing home search on ths motor with the command ths.home(1) or ths.home(-1) worked well till 18th of October, when BLISS was upgraded. After this date the homing procedure failed, because BLISS core assumed that the axis was still moving, while it was already stopped i.e. the attribute axis.is_moving was still True, while my test showed the the motor reached the reference/home position and that is did not move any more. The problem came from the fact that in _move_to_reference() function, where I must use controller low-level specific move command in the end I set dial to 0 and user position to the offset value and since BLISS layer believes the axis is moving it does not allow me setting dial and/or user position. Vincent helped me a lot by inspecting my code and the code of motor.py and axis.py and it seems that BLISS core does a lot of things to minimize the need of every controller writer, but for Micos I cannot do it differently. So for the moment we circumvent the problem by calling axis._set_move_done() inside the function _move_to_reference(). But there is a risk that in the future implementations of BLISS, this logic may fail. So it would be good to investigate what would be the most robust code I can make inside _move_to_reference() so that it remains compatible with future BLISS evolution of motor and axis BLISS core software.