czbiohub-sf/coPylot

Implement the abstract class for the mirror

Opened this issue · 5 comments

Similar to issue #166. The mirrors require an abstract class that should include the following:

-[ ] Get/Set position (already implemented but needs to be written in the abstract class)
-[ ] Get/Set relative position
-[ ]Get/Set Movement Limits
-[ ] Get/Set step resolution
-[ ] Set Home()
-[ ] Set Origin(). Do you think this should be per axis?

Should we standardize this to a specific unit of measurement (i.e deg or um)?
Should we have a position buffer or do we just generate that with some np.linspace()?

@AhmetCanSolak @YangLiujames

@edyoshikun what do you mean by Movement Limits and Origin exactly?

@AhmetCanSolak for the movement limits I meant the min/max range on the axis (i.e the optotune has some max degree of rotation, and the galvos also have a maximum scan angle).
For Origin, I guess that's a convenient function to move to the origin. Most devices probably to (0,0) or center?

@edyoshikun The maximum moment limits already built in and if you read the docstring carefully it also explains a bit which why we have a limit of 1.

@YangLiujames the abstract class as it states is for global use not just for the optotune mirror. These should be exposed at a higher level. Currently, the optotune only has the position() and none of the mentioned above.

We should either do some sort of normalization like optotune or convert it back to degree or voltage. in that case.

The optotune mirror.py docstring stated the limits... we can add an additional function say the limits