calc motor controller does not check if all real axes are in target position when skipping the move
See test in MR !3145 (merged)
BLISS [1]: config.get('coupled_calc1')
...: config.get("roby")
...: config.get("m0")
BLISS [4]: wa()
roby m0 coupled_calc1
------- ------- ---------------
0.00000 0.00000 0.00000
BLISS [5]: umv(coupled_calc1,1)
Moving coupled_calc1 from 0 to 1
Moving roby from 0 to 1
Moving m0 from 0 to 1
BLISS [6]: wa()
roby m0 coupled_calc1
------- ------- ---------------
1.00000 1.00000 1.00000 #<<< this is correct for umv(coupled_calc1,1)
BLISS [7]: umv(m0,2)
Moving m0 from 1 to 2
BLISS [8]: wa()
roby m0 coupled_calc1
------- ------- ---------------
1.00000 2.00000 1.00000
BLISS [9]: umv(coupled_calc1,1)
coupled_calc1
user 1.000
dial 1.000
BLISS [10]: wa()
roby m0 coupled_calc1
------- ------- ---------------
1.00000 2.00000 1.00000 #<<< this is NOT correct for umv(coupled_calc1,1)
the problem is evident in the last wa
in above's sequence: as coupled_calc1
is not bidirectional we need check that all the real motors are in the target position when deciding if a move should be started or not