Source code for mxcubecore.HardwareObjects.MAXIV.BIOMAXAperture

import logging
from mxcubecore.HardwareObjects.MicrodiffAperture import MicrodiffAperture


[docs]class BIOMAXAperture(MicrodiffAperture): POSITIONS = ("BEAM", "OFF", "PARK") def __init__(self, *args): MicrodiffAperture.__init__(self, *args) self.aperture_position = None
[docs] def init(self): MicrodiffAperture.init(self) self.aperture_position = self.add_channel( {"type": "exporter", "name": "AperturePosition"}, "AperturePosition" ) if self.aperture_position is not None: self.connect(self.aperture_position, "update", self.position_changed) self.get_diameter_size_list = self.get_predefined_positions_list self.set_position = self.moveToPosition
def moveToPosition(self, positionName): logging.getLogger().debug( "%s: trying to move %s to %s:%f", self.name(), self.motor_name, positionName, self.predefinedPositions[positionName], ) if positionName == "Outbeam": self.aperture_position.set_value("OFF") else: try: self.set_value( self.predefinedPositions[positionName], wait=True, timeout=10 ) except Exception: logging.getLogger("HWR").exception( "Cannot move motor %s: invalid position name.", str(self.username) ) if self.aperture_position.get_value() != "BEAM": self.aperture_position.set_value("BEAM") def get_position_list(self): return BIOMAXAperture.POSITIONS def position_changed(self, position): self.emit("valueChanged", position) # self.aperture_position.get_value())