closed loop management
Closes #1904
Axis
objects (from #1904)
Ideas for the closed loop property on - all axes should have
.closed_loop
property- read-only
- returns
self.controller.get_closed_loop(axis)
- motor controllers can implement
get_closed_loop
- default implementation of
Controller
class returnsNone
- otherwise, a controller has to return a
ClosedLoop
object for the specified axis
- default implementation of
-
ClosedLoop
object has the following members (to be continued)-
.on()
,.off()
methods -
.state
property
-
- Initialization of
ClosedLoop
objects ?- at the same time as the Axis ?
- better start CL at controller initialization (i.e. at session startup) ?
- in
initialize_hardware_axis()
? - will start closed loop for the axis ?
- configuration
- axis YAML configuration can have a new
closed-loop
section-
activate: True
=> means it is activated automatically ? - ... in the future: parameters like window, settling time etc.
-
- we need to have settings on those
-
ClosedLoop
can be aBeaconObject
?
-
- axis YAML configuration can have a new
- all existing motor controllers have to be revised when the new code is ready (could be done in other issues)
- files reorganization ? (maybe for another issue)
- adding a
motor
directory:bliss.controllers.motor
- use
__init__.py
for backward compatibility - split of
motor.py
in 3- base.py (or controller.py)
- calc_controller.py
- closed_loop.py
- longer term: move motor controllers from
bliss.controllers.motors
tobliss.controller.motor
- adding a
Edited by Matias Guijarro