Merge branch 'master' into TellSampleHandling

This commit is contained in:
appleb_m
2025-12-11 12:18:41 +01:00
5 changed files with 37 additions and 15 deletions
+8 -1
View File
@@ -770,4 +770,11 @@ class SimpleScanParameters(BaseModel):
beam_size_y_um: float | None = None
dose_rate_MGy_s: float | None = None
d_vis: float | None = None
d_tar: float | None = None
d_tar: float | None = None
class ScanResultPayloadModel(BaseModel):
result: ScanResult
beam_mark_pxl: tuple[float, float]
beam_size_mm: Annotated[Coordinate, AfterValidator(positive_coords)]
attach_image: bool = True
sample_id: int
+4
View File
@@ -692,6 +692,8 @@ class AareDAQ:
if request.start is not None:
self.__devs.smargon.target = request.start
omega_start = self.omega
self.__devs.transmission.wait()
if request.start is not None:
self.__devs.smargon.wait()
@@ -732,8 +734,10 @@ class AareDAQ:
self.__devs.aerotech.wait_scan_done(total_time + 60)
self.__devs.aerotech.reset()
self.__devs.aerotech.move(omega_start, wait=False, speed=180.0, direct=True)
result = self.__jfjoch.wait_till_done(60)
self.__aare.sample_collected(self.sample)
self.__devs.aerotech.move(omega_start, wait=True, speed=180.0, direct=True)
if self.sample is not None and self.sample.db_id is not None:
self.save_screenshot_db(self.sample.db_id, "after_dc")
@@ -244,8 +244,8 @@ class RasterGridManager(QObject):
self.__loaded_image_prefix = grid.result.file_prefix
self.__loaded_image_index = grid.result.images[cell].number
print(f"Load {grid.result.file_prefix} {grid.result.images[cell].number}")
self.image_selected.emit(grid.result.file_prefix, grid.result.images[cell].number)
#self.image_selected.emit("http://sls-gpu-001:8080", grid.result.images[cell].number)
#self.image_selected.emit(grid.result.file_prefix, grid.result.images[cell].number)
self.image_selected.emit("http://sls-gpu-001:8080", grid.result.images[cell].number)
def is_part_of_active_grid(self, point: QPointF) -> bool:
if not self._is_grid_visible(self.__active_grid):
@@ -9,5 +9,4 @@ class RotationScanManager(QObject):
@Slot(CompletedRotationScan)
def scan_completed(self, r: CompletedRotationScan):
if r.result.file_prefix is not None:
self.file_ready.emit(r.result.file_prefix)
self.file_ready.emit("http://sls-gpu-001:8080")
+22 -10
View File
@@ -116,6 +116,12 @@ class SampleCameraImageLabel(QGraphicsView):
self.left_click_hold_threshold = 200
self.right_click_hold_threshold = 200
self.raster_timer = QTimer()
self.raster_timer.setSingleShot(True)
self.raster_timer_interval = 400
self.raster_timer.timeout.connect(self.__on_raster_timer_timeout)
self.__pending_load_pos = None
self.__detections = [] # list of dicts from publisher
self.__det_shape = None # shape from payload [h,w] so we can scale
@@ -267,7 +273,11 @@ class SampleCameraImageLabel(QGraphicsView):
if self.__state == SampleCameraImageState.IDLE:
if event.modifiers() & Qt.KeyboardModifier.ShiftModifier:
self.load_image.emit(mouse_pos)
if not self.raster_timer.isActive():
self.load_image.emit(mouse_pos)
self.raster_timer.start(self.raster_timer_interval)
else:
self.__pending_load_pos = mouse_pos
else:
txt = self.__raster_mgr.is_part_of_completed_grid(mouse_pos)
if txt != "":
@@ -285,6 +295,12 @@ class SampleCameraImageLabel(QGraphicsView):
self._update_grid()
self.update()
def __on_raster_timer_timeout(self):
if self.__pending_load_pos is not None:
self.load_image.emit(self.__pending_load_pos)
self.__pending_load_pos = None
self.raster_timer.start(self.raster_timer_interval)
def mouseReleaseEvent(self, event):
if event.button() == Qt.MouseButton.LeftButton:
if self.click_timer.isActive():
@@ -637,16 +653,12 @@ class SampleCameraImageLabel(QGraphicsView):
mouse_global_pos = QCursor.pos()
mouse_view_pos = self.mapFromGlobal(mouse_global_pos)
mouse_scene_pos = self.mapToScene(mouse_view_pos)
smargon_coord = SmargonCoordinate(
sh_mm=self.__geom.picture_to_smargon(
Coordinate(x=mouse_scene_pos.x(), y=mouse_scene_pos.y())
))
if event.key() == Qt.Key.Key_1:
self.set_helical_start.emit(smargon_coord)
elif event.key() == Qt.Key.Key_2:
self.set_helical_end.emit(smargon_coord)
if event.key() == Qt.Key.Key_Shift:
if self.__state == SampleCameraImageState.IDLE:
if not self.raster_timer.isActive():
self.load_image.emit(mouse_scene_pos)
self.raster_timer.start(self.raster_timer_interval)
super().keyPressEvent(event)