diff --git a/mxcubecore/HardwareObjects/GenericDiffractometer.py b/mxcubecore/HardwareObjects/GenericDiffractometer.py
index 99f6e0ec0d..796de481f3 100644
--- a/mxcubecore/HardwareObjects/GenericDiffractometer.py
+++ b/mxcubecore/HardwareObjects/GenericDiffractometer.py
@@ -215,7 +215,7 @@ class GenericDiffractometer(HardwareObject):
"""
CENTRING_MOTORS_NAME = [
- "phi",
+ "omega",
"phiz",
"phiy",
"sampx",
diff --git a/mxcubecore/HardwareObjects/QtGraphicsManager.py b/mxcubecore/HardwareObjects/QtGraphicsManager.py
index 25daa23581..73fcd81b77 100644
--- a/mxcubecore/HardwareObjects/QtGraphicsManager.py
+++ b/mxcubecore/HardwareObjects/QtGraphicsManager.py
@@ -54,7 +54,7 @@
from mxcubecore import HardwareRepository as HWR
from mxcubecore.HardwareObjects import QtGraphicsLib as GraphicsLib
-from mxcubecore.HardwareObjects.abstract.AbstractSampleView import AbstractSampleView
+from mxcubecore.HardwareObjects.SampleView import SampleView
from mxcubecore.model import queue_model_objects
from mxcubecore.utils import qt_import
@@ -62,14 +62,15 @@
__category__ = "Graphics"
-class QtGraphicsManager(AbstractSampleView):
+class QtGraphicsManager(SampleView):
def __init__(self, name):
"""
:param name: name
:type name: str
"""
- AbstractSampleView.__init__(self, name)
+ super().__init__(name)
+ self.camera_hwobj = None
self.diffractometer_hwobj = None
self.graphics_config_filename = None
@@ -129,7 +130,6 @@ def __init__(self, name):
self.graphics_move_down_item = None
self.graphics_move_left_item = None
self.graphics_magnification_item = None
- self.camera_hwobj = None
def init(self):
"""Main init function. Initiates all graphics items, hwobjs and
@@ -201,6 +201,7 @@ def init(self):
self.graphics_view.wheelSignal.connect(self.mouse_wheel_scrolled)
self.diffractometer_hwobj = HWR.beamline.diffractometer
+ self.centring_motors = self.diffractometer_hwobj.get_motors()
self.graphics_view.resizeEvent = self.resizeEvent
if self.diffractometer_hwobj is not None:
@@ -217,26 +218,26 @@ def init(self):
"minidiffStateChanged",
self.diffractometer_state_changed,
)
- self.connect(
- self.diffractometer_hwobj,
- "centringStarted",
- self.diffractometer_centring_started,
- )
- self.connect(
- self.diffractometer_hwobj,
- "centringAccepted",
- self.create_centring_point,
- )
- self.connect(
- self.diffractometer_hwobj,
- "centringSuccessful",
- self.diffractometer_centring_successful,
- )
- self.connect(
- self.diffractometer_hwobj,
- "centringFailed",
- self.diffractometer_centring_failed,
- )
+ # self.connect(
+ # self.diffractometer_hwobj,
+ # "centringStarted",
+ # self.diffractometer_centring_started,
+ # )
+ # self.connect(
+ # self.diffractometer_hwobj,
+ # "centringAccepted",
+ # self.create_centring_point,
+ # )
+ # self.connect(
+ # self.diffractometer_hwobj,
+ # "centringSuccessful",
+ # self.diffractometer_centring_successful,
+ # )
+ # self.connect(
+ # self.diffractometer_hwobj,
+ # "centringFailed",
+ # self.diffractometer_centring_failed,
+ # )
self.connect(
self.diffractometer_hwobj,
"pixelsPerMmChanged",
@@ -285,9 +286,9 @@ def init(self):
self.log.error("GraphicsManager: Camera hwobj not defined")
try:
- self.image_scale_list = eval(self.get_property("image_scale_list", "[]"))
+ self.image_scale_list = eval(self.get_property("image_scale_list", "[1.]"))
if len(self.image_scale_list) > 0:
- self.image_scale = self.get_property("default_image_scale")
+ self.image_scale = self.get_property("default_image_scale", 1.0)
self.set_image_scale(self.image_scale, self.image_scale is not None)
except Exception:
self.log.exception("")
@@ -355,18 +356,6 @@ def init(self):
else:
self.cursor = qt_import.Qt.ArrowCursor
- @property
- def zoom(self):
- """zoom motor object
-
- NBNB HACK TODO - configure this here instead
- (instead of calling to diffractometer)
-
- Returns:
- AbstractActuator
- """
- return self.diffractometer_hwobj.zoom
-
@property
def focus(self):
"""focus motor object
@@ -605,8 +594,8 @@ def camera_image_received(self, pixmap_image, msg=None):
if self.image_scale:
pixmap_image = pixmap_image.scaled(
qt_import.QSize(
- pixmap_image.width() * self.image_scale,
- pixmap_image.height() * self.image_scale,
+ int(pixmap_image.width() * self.image_scale),
+ int(pixmap_image.height() * self.image_scale),
)
)
self.graphics_camera_frame.setPixmap(pixmap_image)
@@ -649,15 +638,13 @@ def diffractometer_state_changed(self, *args):
for shape in self.get_shapes():
if isinstance(shape, GraphicsLib.GraphicsItemPoint):
cpos = shape.get_centred_position()
- new_x, new_y = self.diffractometer_hwobj.motor_positions_to_screen(
- cpos.as_dict()
- )
+ new_x, new_y = self.motor_positions_to_screen(cpos.as_dict())
shape.set_start_position(new_x, new_y)
elif isinstance(shape, GraphicsLib.GraphicsItemGrid):
grid_cpos = shape.get_centred_position()
if grid_cpos is not None:
current_cpos = queue_model_objects.CentredPosition(
- self.diffractometer_hwobj.get_positions()
+ self.get_positions()
)
current_cpos.set_motor_pos_delta(0.1)
@@ -666,10 +653,8 @@ def diffractometer_state_changed(self, *args):
if hasattr(grid_cpos, "zoom"):
current_cpos.zoom = grid_cpos.zoom
- center_coord = (
- self.diffractometer_hwobj.motor_positions_to_screen(
- grid_cpos.as_dict()
- )
+ center_coord = self.motor_positions_to_screen(
+ grid_cpos.as_dict()
)
if center_coord:
shape.set_center_coord(center_coord)
@@ -677,11 +662,7 @@ def diffractometer_state_changed(self, *args):
corner_coord = []
for motor_pos in shape.get_motor_pos_corner():
corner_coord.append(
- (
- self.diffractometer_hwobj.motor_positions_to_screen(
- motor_pos
- )
- )
+ self.motor_positions_to_screen(motor_pos)
)
shape.set_corner_coord(corner_coord)
@@ -741,6 +722,9 @@ def create_centring_point(self, centring_state, centring_status, emit=True):
:type centring_status: dict
:emits: centringInProgress
"""
+ print(
+ f"create_centring_point, state: {centring_state}, status: {centring_status}"
+ )
p_dict = {}
if "motors" in centring_status and "extraMotors" in centring_status:
@@ -752,9 +736,8 @@ def create_centring_point(self, centring_state, centring_status, emit=True):
if p_dict:
cpos = queue_model_objects.CentredPosition(p_dict)
- screen_pos = self.diffractometer_hwobj.motor_positions_to_screen(
- cpos.as_dict()
- )
+ print(f"cpos {cpos.as_dict()}")
+ screen_pos = self.motor_positions_to_screen(cpos.as_dict())
point = GraphicsLib.GraphicsItemPoint(
cpos, True, screen_pos[0], screen_pos[1]
)
@@ -762,20 +745,14 @@ def create_centring_point(self, centring_state, centring_status, emit=True):
cpos.set_index(point.index)
return point
- def diffractometer_centring_successful(self, method, centring_status):
- """Last stage in centring procedure
+ def centring_done(self):
+ """Last stage in centring procedure"""
- :param method: method name
- :type method: str
- :param centring_status: centring status
- :type centring_status: dict
- :emits: - centringSuccessful
- - infoMsg
- """
self.set_cursor_busy(False)
self.set_centring_state(False)
+ super().centring_done()
self.diffractometer_state_changed()
- self.emit("centringSuccessful", method, centring_status)
+
self.emit(
"infoMsg",
"Click Save to store the centred point " + "or start a new centring",
@@ -867,7 +844,7 @@ def mouse_clicked(self, pos_x, pos_y, left_click=True):
"""
if self.in_centring_state:
self.graphics_centring_lines_item.add_position(pos_x, pos_y)
- self.diffractometer_hwobj.image_clicked(pos_x, pos_y)
+ self.image_clicked(pos_x, pos_y)
elif self.wait_grid_drawing_click:
self.in_grid_drawing_state = True
self.graphics_grid_draw_item.set_draw_mode(True)
@@ -901,7 +878,7 @@ def mouse_clicked(self, pos_x, pos_y, left_click=True):
self.stop_beam_define()
# self.graphics_beam_define_item.store_coord(pos_x, pos_y)
elif self.in_one_click_centring:
- self.diffractometer_hwobj.start_move_to_beam(pos_x, pos_y)
+ self.move_to_beam(pos_x, pos_y)
else:
self.emit("pointSelected", None)
self.emit("infoMsg", "")
@@ -939,7 +916,7 @@ def mouse_double_clicked(self, pos_x, pos_y):
elif self.in_beam_define_state:
self.stop_beam_define()
else:
- self.diffractometer_hwobj.move_to_beam(pos_x, pos_y)
+ self.move_to_beam(pos_x, pos_y)
self.emit("imageDoubleClicked", pos_x, pos_y)
def mouse_released(self, pos_x, pos_y):
@@ -1082,10 +1059,10 @@ def key_pressed(self, key_event):
# self.graphics_beam_item.set_detected_beam_position(None, None)
# elif key_event == "Up":
- # self.diffractometer_hwobj.move_to_beam(self.beam_position[0],
+ # self.move_to_beam(self.beam_position[0],
# self.beam_position[1] - 50)
# elif key_event == "Down":
- # self.diffractometer_hwobj.move_to_beam(self.beam_position[0],
+ # self.move_to_beam(self.beam_position[0],
# self.beam_position[1] + 50)
elif key_event == "Plus":
self.diffractometer_hwobj.zoom_in()
@@ -1130,9 +1107,7 @@ def item_double_clicked(self, item):
:type item: QGraphicsLib.GraphicsItem
"""
if isinstance(item, GraphicsLib.GraphicsItemPoint):
- self.diffractometer_hwobj.move_to_centred_position(
- item.get_centred_position()
- )
+ self.diffractometer_hwobj.set_value_motors(item.get_centred_position())
def move_item_clicked(self, direction):
"""Moves sample"""
@@ -1718,7 +1693,7 @@ def stop_beam_define(self):
self.graphics_beam_define_item.width_microns,
self.graphics_beam_define_item.height_microns,
)
- self.diffractometer_hwobj.move_to_beam(
+ self.move_to_beam(
self.graphics_beam_define_item.center_coord[0],
self.graphics_beam_define_item.center_coord[1],
)
@@ -1736,27 +1711,23 @@ def start_centring(self, tree_click=None):
self.hide_all_items()
self.set_cursor_busy(True)
self.set_centring_state(True)
- self.diffractometer_hwobj.start_centring_method(
- self.diffractometer_hwobj.CENTRING_METHOD_MANUAL
- )
- self.emit("infoMsg", "3 click centring")
+ self.start_manual_centring()
+ self.emit("infoMsg", "n-click centring")
else:
# self.accept_centring()
- self.diffractometer_hwobj.start_move_to_beam(
- self.beam_position[0], self.beam_position[1]
- )
+ self.move_to_beam(self.beam_position[0], self.beam_position[1])
def accept_centring(self):
"""Accepts centring"""
self.set_cursor_busy(False)
- self.diffractometer_hwobj.accept_centring()
+ super().accept_centring()
self.diffractometer_state_changed()
self.show_all_items()
def reject_centring(self):
"""Rejects centring"""
self.set_cursor_busy(False)
- self.diffractometer_hwobj.reject_centring()
+ super().reject_centring()
self.show_all_items()
def cancel_centring(self, reject=False):
@@ -1766,7 +1737,7 @@ def cancel_centring(self, reject=False):
:type reject: bool
"""
self.set_cursor_busy(False)
- self.diffractometer_hwobj.cancel_centring_method(reject=reject)
+ super().cancel_centring()
self.show_all_items()
def start_one_click_centring(self):
@@ -1819,7 +1790,7 @@ def create_line(self, start_point=None, end_point=None, emit=True):
def create_auto_line(self, cpos=None):
"""Creates a automatic helical line"""
if cpos is None:
- point_one_motor_pos = self.diffractometer_hwobj.get_positions()
+ point_one_motor_pos = self.get_positions()
else:
point_one_motor_pos = cpos
@@ -1896,7 +1867,7 @@ def create_auto_grid(self):
)
self.graphics_view.graphics_scene.addItem(temp_grid)
temp_grid.index = self.grid_count
- motor_pos = self.diffractometer_hwobj.get_centred_point_from_coord(
+ motor_pos = self.get_centred_point_from_coord(
self.beam_position[0], self.beam_position[1], return_by_names=True
)
temp_grid.set_centred_position(queue_model_objects.CentredPosition(motor_pos))
@@ -1962,7 +1933,7 @@ def auto_grid_procedure(self):
)
self.graphics_view.graphics_scene.addItem(temp_grid)
temp_grid.index = self.grid_count
- motor_pos = self.diffractometer_hwobj.get_centred_point_from_coord(
+ motor_pos = self.get_centred_point_from_coord(
auto_mesh["center_x"], auto_mesh["center_y"], return_by_names=True
)
temp_grid.set_centred_position(queue_model_objects.CentredPosition(motor_pos))
@@ -1982,7 +1953,7 @@ def auto_grid_procedure(self):
def update_grid_motor_positions(self, grid_object):
"""Updates grid corner positions"""
grid_center_x, grid_center_y = grid_object.get_center_coord()
- motor_pos = self.diffractometer_hwobj.get_centred_point_from_coord(
+ motor_pos = self.get_centred_point_from_coord(
grid_center_x, grid_center_y, return_by_names=True
)
grid_object.set_centred_position(queue_model_objects.CentredPosition(motor_pos))
@@ -1990,7 +1961,7 @@ def update_grid_motor_positions(self, grid_object):
motor_pos_corner = []
for index, corner_coord in enumerate(grid_object.get_corner_coord()):
motor_pos_corner.append(
- self.diffractometer_hwobj.get_centred_point_from_coord(
+ self.get_centred_point_from_coord(
corner_coord.x(), corner_coord.y(), return_by_names=True
)
)
@@ -2037,7 +2008,7 @@ def set_view_scale(self, view_scale):
if isinstance(view_scale, float):
self.graphics_view.scale(view_scale, view_scale)
- def set_image_scale(self, image_scale, use_scale=False):
+ def set_image_scale(self, image_scale=1.0, use_scale=False):
"""Scales the incoming frame
:param image_scale: image scale
@@ -2082,9 +2053,7 @@ def start_auto_centring(self, wait=False):
# self.display_info_msg(["Auto centring in progress...",
# "Please wait."])
self.emit("centringInProgress", True)
- self.diffractometer_hwobj.start_centring_method(
- self.diffractometer_hwobj.CENTRING_METHOD_AUTO, wait=wait
- )
+ super().start_auto_centring()
self.emit("infoMsg", "Automatic centring")
def move_beam_mark_auto(self):
diff --git a/mxcubecore/HardwareObjects/SampleView.py b/mxcubecore/HardwareObjects/SampleView.py
index 64637613e5..fd1b176469 100644
--- a/mxcubecore/HardwareObjects/SampleView.py
+++ b/mxcubecore/HardwareObjects/SampleView.py
@@ -147,9 +147,9 @@ def get_positions(self) -> dict[str, float]:
Returns:
Centring motor positions as {role: position}
"""
- motors_dict = {}
- for key, val in self.centring_motors.items():
- motors_dict.update({key: val.motor.get_value()})
+ motors_dict = dict(
+ (key, val.get_value()) for key, val in self.centring_motors.items()
+ )
return motors_dict
def get_centred_point_from_coord(self, x, y, return_by_names=None):
@@ -246,7 +246,7 @@ def motor_positions_to_screen(
inv_rot_matrix,
)
- chi_angle = math.radians(self.chi_angle)
+ chi_angle = math.radians(self.chi_angle) if self.chi_angle else 0.0
chi_rot = np.matrix(
[
[math.cos(chi_angle), -math.sin(chi_angle)],
@@ -276,7 +276,7 @@ def start_manual_centring(self, nb_click: int = 3):
diffr = HWR.beamline.diffractometer
pixels_per_mm = diffr.get_pixels_per_mm()
diffr.wait_status_ready(5)
-
+ print(f"self.centring_motors {self.centring_motors}")
self.current_centring_procedure = sample_centring.start(
self.centring_motors,
pixels_per_mm[0],
@@ -354,7 +354,9 @@ def accept_centring(self):
"""Accept the current centred position."""
self.centring_status["valid"] = True
self.centring_status["accepted"] = True
- self.emit("centringAccepted", (True, self.get_centring_status()))
+ args = (True, self.get_centring_status())
+ self.emit("centringAccepted", args)
+ self.create_centring_point(*args)
logging.getLogger("user_level_log").info("Centring successful")
def reject_centring(self):
@@ -362,7 +364,8 @@ def reject_centring(self):
if self.current_centring_procedure:
self.current_centring_procedure.kill(block=True)
self.centring_status["valid"] = False
- self.emit("centringAccepted", (False, self.get_centring_status()))
+ args = (False, self.get_centring_status())
+ self.emit("centringAccepted", args)
logging.getLogger("user_level_log").info("Centring cancelled")
def cancel_centring(self):
diff --git a/mxcubecore/HardwareObjects/abstract/AbstractDiffractometer.py b/mxcubecore/HardwareObjects/abstract/AbstractDiffractometer.py
index 98efe43fcd..d702290093 100644
--- a/mxcubecore/HardwareObjects/abstract/AbstractDiffractometer.py
+++ b/mxcubecore/HardwareObjects/abstract/AbstractDiffractometer.py
@@ -79,6 +79,7 @@
from mxcubecore.BaseHardwareObjects import HardwareObject, HardwareObjectState
from mxcubecore import HardwareRepository as HWR
+from mxcubecore.model import queue_model_objects
__copyright__ = """ Copyright © by the MXCuBE collaboration """
@@ -244,6 +245,9 @@ def init(self):
self.connect(_hobj, "valueChanged", _hobj.update_value)
except KeyError:
self.log.warning("Diffractometer: No motors configured")
+ queue_model_objects.CentredPosition.set_diffractometer_motor_names(
+ list(self.motors_hwobj_dict)
+ )
# nstate (discrete positions) equipment
for role in self.config.nstate_equipment:
diff --git a/mxcubecore/HardwareObjects/abstract/AbstractSampleView.py b/mxcubecore/HardwareObjects/abstract/AbstractSampleView.py
index deb53ba583..132b42004e 100644
--- a/mxcubecore/HardwareObjects/abstract/AbstractSampleView.py
+++ b/mxcubecore/HardwareObjects/abstract/AbstractSampleView.py
@@ -293,3 +293,6 @@ def motor_positions_to_screen(self, positions_dict: dict) -> tuple:
"""Get the motor positions according to the calibration"""
return ()
+
+ def get_image_scale_list(self):
+ return [1]
diff --git a/mxcubecore/HardwareObjects/mockup/DiffractometerMockup.py b/mxcubecore/HardwareObjects/mockup/DiffractometerMockup.py
index f2a09ed7ed..31444745aa 100644
--- a/mxcubecore/HardwareObjects/mockup/DiffractometerMockup.py
+++ b/mxcubecore/HardwareObjects/mockup/DiffractometerMockup.py
@@ -66,7 +66,7 @@ def init(self):
self.update_state(HardwareObjectState.READY)
for mot in self.motors_hwobj_dict.values():
mot.set_value(random.uniform(0.0, 8.8))
- self.omega.set_value(random.uniform(0, 359.9))
+ self.omega.set_value(random.uniform(0, 360))
def abort(self):
self.update_state(HardwareObjectState.READY)
@@ -143,3 +143,12 @@ def _set_phase(self, value: DiffractometerPhase):
def _set_constraint(self, value):
self.current_constraint = value
+
+ def use_sample_changer(self):
+ return True
+
+ def accept_centring(self):
+ return True
+
+ def user_confirms_centring(self):
+ return False
diff --git a/mxcubecore/HardwareObjects/mockup/MotorMockup.py b/mxcubecore/HardwareObjects/mockup/MotorMockup.py
index 4d91498480..debae9432d 100644
--- a/mxcubecore/HardwareObjects/mockup/MotorMockup.py
+++ b/mxcubecore/HardwareObjects/mockup/MotorMockup.py
@@ -54,6 +54,7 @@ class MotorMockup(ActuatorMockup, AbstractMotor):
def __init__(self, name):
AbstractMotor.__init__(self, name)
self._wrap_range = None
+ self.direction = 1.0
def init(self):
"""Initialisation method"""
diff --git a/mxcubecore/HardwareObjects/sample_centring.py b/mxcubecore/HardwareObjects/sample_centring.py
index b1e0f6b32c..f36b9a597a 100644
--- a/mxcubecore/HardwareObjects/sample_centring.py
+++ b/mxcubecore/HardwareObjects/sample_centring.py
@@ -86,13 +86,11 @@ def prepare(centring_motors_dict):
motors_to_move = {}
for m in centring_motors_dict.values():
- if m.reference_position is not None:
- motors_to_move[m.motor] = m.reference_position
+ if hasattr(m, "reference_position") and m.reference_position is not None:
+ motors_to_move[m] = m.reference_position
move_motors(motors_to_move)
- SAVED_INITIAL_POSITIONS = {
- m.motor: m.motor.get_value() for m in centring_motors_dict.values()
- }
+ SAVED_INITIAL_POSITIONS = {m: m.get_value() for m in centring_motors_dict.values()}
omega = centring_motors_dict["omega"]
phiy = centring_motors_dict["phiy"]
@@ -281,7 +279,7 @@ def centre_plate1Click(
centred_pos = SAVED_INITIAL_POSITIONS.copy()
centred_pos.update(
- {sampx.motor: float(sampx.get_value()), sampy.motor: float(sampy.get_value())}
+ {sampx: float(sampx.get_value()), sampy: float(sampy.get_value())}
)
return centred_pos
@@ -352,14 +350,14 @@ def centre_plate(
centred_pos = SAVED_INITIAL_POSITIONS.copy()
centred_pos.update(
{
- sampx.motor: float(sampx.get_value() + sampx.direction * dx),
- sampy.motor: float(sampy.get_value() + sampy.direction * dy),
- phiz.motor: (
+ sampx: float(sampx.get_value() + sampx.direction * dx),
+ sampy: float(sampy.get_value() + sampy.direction * dy),
+ phiz: (
float(phiz.get_value() + phiz.direction * d_vertical[0, 0])
if phiz.__dict__.get("reference_position") is None
else phiz.reference_position
),
- phiy.motor: (
+ phiy: (
float(phiy.get_value() + phiy.direction * d_horizontal[0, 0])
if phiy.__dict__.get("reference_position") is None
else phiy.reference_position
@@ -383,13 +381,14 @@ def centre_plate(
def ready(motor_list):
- logging.getLogger("HWR").info([m.actuator_name for m in motor_list])
+ logging.getLogger("HWR").info([m.name for m in motor_list])
rstate = [m.is_ready() for m in motor_list]
logging.getLogger("HWR").info(rstate)
return all(rstate)
def wait_ready(motor_positions_dict, timeout=None):
+ print("motor_positions_dict", motor_positions_dict)
with gevent.Timeout(timeout):
while not ready(motor_positions_dict.keys()):
time.sleep(0.1)
@@ -443,8 +442,8 @@ def center(
pixelsPerMm_Ver,
beam_xc,
beam_yc,
- chi_angle,
- n_points,
+ chi_angle=0.0,
+ n_points=3,
omega_range=180,
):
global USER_CLICKED_EVENT
@@ -478,7 +477,7 @@ def center(
raise RuntimeError("Exception while centring")
logging.getLogger("HWR").debug("X=%s,Y=%s", X, Y)
- chi_angle = math.radians(chi_angle)
+ chi_angle = math.radians(chi_angle) if chi_angle else 0.0
chiRotMatrix = numpy.matrix(
[
[math.cos(chi_angle), -math.sin(chi_angle)],
@@ -503,14 +502,14 @@ def center(
centred_pos = SAVED_INITIAL_POSITIONS.copy()
centred_pos.update(
{
- sampx.motor: float(sampx.get_value() + sampx.direction * dx),
- sampy.motor: float(sampy.get_value() + sampy.direction * dy),
- phiz.motor: (
+ sampx: float(sampx.get_value() + sampx.direction * dx),
+ sampy: float(sampy.get_value() + sampy.direction * dy),
+ phiz: (
float(phiz.get_value() + phiz.direction * d_vertical[0, 0])
if phiz.__dict__.get("reference_position") is None
else phiz.reference_position
),
- phiy.motor: (
+ phiy: (
float(phiy.get_value() + phiy.direction * d_horizontal[0, 0])
if phiy.__dict__.get("reference_position") is None
else phiy.reference_position
diff --git a/mxcubecore/__version__.py b/mxcubecore/__version__.py
index aa8cd1ebc9..a908981d60 100644
--- a/mxcubecore/__version__.py
+++ b/mxcubecore/__version__.py
@@ -23,6 +23,6 @@
with open(Path(__file__).resolve().parents[1] / "pyproject.toml", "rb") as f:
pyproject = load_toml(f)
__version__ = pyproject["tool"]["poetry"]["version"]
- except OSError:
+ except (OSError, KeyError):
# File IO error
__version__ = "local"
diff --git a/mxcubecore/configuration/mockup/detector-mockup.xml b/mxcubecore/configuration/mockup/detector-mockup.xml
index 41bb6b57ea..8d37bd50c1 100644
--- a/mxcubecore/configuration/mockup/detector-mockup.xml
+++ b/mxcubecore/configuration/mockup/detector-mockup.xml
@@ -10,7 +10,7 @@
3110
3269
True
- h5
+ cbf
("0", "C18", "C12", "C2")
diff --git a/mxcubecore/configuration/mockup/diffractometer-mockup.xml b/mxcubecore/configuration/mockup/diffractometer-mockup.xml
index 370fd3cf78..ad22419fa8 100644
--- a/mxcubecore/configuration/mockup/diffractometer-mockup.xml
+++ b/mxcubecore/configuration/mockup/diffractometer-mockup.xml
@@ -9,8 +9,8 @@
-
-
+
+
diff --git a/mxcubecore/configuration/mockup/gphl/alba_session.xml b/mxcubecore/configuration/mockup/gphl/alba_session.xml
deleted file mode 100644
index 427d620049..0000000000
--- a/mxcubecore/configuration/mockup/gphl/alba_session.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
diff --git a/mxcubecore/configuration/mockup/gphl/collect-mockup.xml b/mxcubecore/configuration/mockup/gphl/collect-mockup.xml
index 8597edfcdd..886311d358 100644
--- a/mxcubecore/configuration/mockup/gphl/collect-mockup.xml
+++ b/mxcubecore/configuration/mockup/gphl/collect-mockup.xml
@@ -1,15 +1,11 @@