Source code for mxcubecore.HardwareObjects.ALBA.ALBASupervisor
from mxcubecore.BaseHardwareObjects import HardwareObject
[docs]class ALBASupervisor(HardwareObject):
def __init__(self, *args):
super().__init__(*args)
[docs] def init(self):
self.state_chan = self.get_channel_object("state")
self.go_collect_cmd = self.get_command_object("go_collect")
self.go_sample_view_cmd = self.get_command_object("go_sample_view")
self.go_transfer_cmd = self.get_command_object("go_transfer")
self.go_beam_view_cmd = self.get_command_object("go_beam_view")
self.phase_chan = self.get_channel_object("phase")
self.detector_cover_chan = self.get_channel_object("detector_cover_open")
self.state_chan.connect_signal("update", self.state_changed)
self.phase_chan.connect_signal("update", self.phase_changed)
self.detector_cover_chan.connect_signal("update", self.detector_cover_changed)
def getUserName(self):
return self.username
def state_changed(self, value):
self.current_state = value
self.emit("stateChanged", self.current_state)
def phase_changed(self, value):
if value == "Sample":
value = "Centring"
self.current_phase = value
self.emit("phaseChanged", self.current_phase)
def get_current_phase(self):
return self.phase_chan.get_value()
def go_collect(self):
return self.go_collect_cmd()
def go_transfer(self):
return self.go_transfer_cmd()
def go_sample_view(self):
return self.go_sample_view_cmd()
def go_beam_view(self):
return self.go_beam_view_cmd()
def detector_cover_changed(self, value):
self.detector_cover_opened = value
# self.emit('levelChanged', self.current_level)
def open_detector_cover(self):
self.detector_cover_chan.set_value(True)
def close_detector_cover(self, value):
self.detector_cover_chan.set_value(False)
def is_detector_cover_opened(self):
return self.detector_cover_chan.get_value()
def test_hwo(hwo):
print('\nSupervisor control "%s"\n' % hwo.getUserName())
print(" Detector Cover opened:", hwo.is_detector_cover_opened())
print(" Current Phase is:", hwo.get_current_phase())
print(" Current State is:", str(hwo.get_state()))