Use mv for other objects than Axis
We are using
optic device in the ebs-tomo project.
This object have a magnification, have it own state, and is not an axis.
Some of them are movable (cause there is a bunch of mountable lenses using a motor, or because there is motors, or cause it can deal with some focal plan).
To move the magnification, an optic exposes right now a property which uses internally a
umv. That's not a very nice decoupling of the control and the user feedback. What if the optic is move remotely or from a script? -> This will always print stuffs.
BLISS already proposes a bunch of functions to move stuffs
I would like to propose the ability of movable object, to allow any controller to implement it's own way to behave to a
Basically i would like to be able to move the magnification such way:
mv(optic, 10) # which sounds quite consistent with the actual BLISS API
So what user can use
umv if he likes, or just
This still have to be analysed, because CLI interface have to be properly designed, but for now i think of
MovableABC class to provide all the method expected do handle a
mvcommand by a device
IsMovableinterface to allow an object to expose a
I don't think
Movable must be implemented by a device directly, because i don't think it's a very good idea to expose such internal API to end users. It's also a good thing to put such code together and decoupled from the main object.
What do you think?