Generic configuration plugin and multi-purpose controller
Objective:
To define a way to help with the writing of multi-purpose controllers, e.g. mixing counters and axes
TODO:
-
write a new, generic configuration plugin
- to be able to define objects with both axes and counters (for example):
class: MyController tcp: url: controller_host:controller_port axes: - name: xxx ... - name: yyyy ... counters: - name: zzz ...
-
write a "meta-controller" base class for BLISS controllers
-
apply the design to the Speedgoat, or Moco controller for example
Proposed design:
- to not rely on multiple inheritance
- to use capabilities instead
- maybe there is no need to have
.get_capability()
, if the base class has defined properties (see below) - properties can be set to
None
, if there is no capability
- maybe there is no need to have
classDiagram
BlissController o-- CounterController
BlissController o-- HwController
BlissController o-- MotorController
BlissController : acquisition_controller
BlissController : motor_controller
BlissController : hw_controller
BlissController : .name
CounterController : counters
MotorController : axes