frappy.mixins.HasOutputModule
add 'set_control_active' method for overriding by subclasses Change-Id: Ib344319862a4a0bf29efef16a63db09d1f314a82 Reviewed-on: https://forge.frm2.tum.de/review/c/secop/frappy/+/31375 Tested-by: Jenkins Automated Tests <pedersen+jenkins@frm2.tum.de> Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de> Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
This commit is contained in:
parent
36dfe968e8
commit
644d005dad
@ -53,7 +53,7 @@ class HasControlledBy:
|
|||||||
to be called from the write_target method
|
to be called from the write_target method
|
||||||
"""
|
"""
|
||||||
if self.controlled_by:
|
if self.controlled_by:
|
||||||
self.controlled_by = 0
|
self.controlled_by = 0 # self
|
||||||
for deactivate_control in self.inputCallbacks.values():
|
for deactivate_control in self.inputCallbacks.values():
|
||||||
deactivate_control(self.name)
|
deactivate_control(self.name)
|
||||||
|
|
||||||
@ -74,6 +74,10 @@ class HasOutputModule:
|
|||||||
if self.output_module:
|
if self.output_module:
|
||||||
self.output_module.register_input(self.name, self.deactivate_control)
|
self.output_module.register_input(self.name, self.deactivate_control)
|
||||||
|
|
||||||
|
def set_control_active(self, active):
|
||||||
|
"""to be overridden for switching hw control"""
|
||||||
|
self.control_active = active
|
||||||
|
|
||||||
def activate_control(self):
|
def activate_control(self):
|
||||||
"""method to switch control_active on
|
"""method to switch control_active on
|
||||||
|
|
||||||
@ -85,10 +89,10 @@ class HasOutputModule:
|
|||||||
if name != self.name:
|
if name != self.name:
|
||||||
deactivate_control(self.name)
|
deactivate_control(self.name)
|
||||||
out.controlled_by = self.name
|
out.controlled_by = self.name
|
||||||
self.control_active = True
|
self.set_control_active(True)
|
||||||
|
|
||||||
def deactivate_control(self, source):
|
def deactivate_control(self, source=None):
|
||||||
"""called when an other module takes over control"""
|
"""called when an other module takes over control"""
|
||||||
if self.control_active:
|
if self.control_active:
|
||||||
self.control_active = False
|
self.set_control_active(False)
|
||||||
self.log.warning(f'switched to manual mode by {source}')
|
self.log.warning(f'switched to manual mode by {source or self.name}')
|
||||||
|
Loading…
x
Reference in New Issue
Block a user