Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • bliss bliss
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 539
    • Issues 539
    • List
    • Boards
    • Service Desk
    • Milestones
  • Jira
    • Jira
  • Merge requests 147
    • Merge requests 147
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • BlissBliss
  • blissbliss
  • Issues
  • #3124
Closed
Open
Issue created Nov 29, 2021 by Valentin Valls@valentin.vallsOwner

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 mv, umv, mvr, umvr.

I would like to propose the ability of movable object, to allow any controller to implement it's own way to behave to a mv, umv, mvr, umvr.

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 mv.

This still have to be analysed, because CLI interface have to be properly designed, but for now i think of

  • A Movable ABC class to provide all the method expected do handle a mv command by a device
  • A IsMovable interface to allow an object to expose a Movable instance

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?

Edited Nov 29, 2021 by Valentin Valls
Assignee
Assign to
Time tracking