DAQ: Returning list of completed rasters

This commit is contained in:
2025-07-15 09:57:16 +02:00
parent 000b597271
commit a875c6a1d9
3 changed files with 17 additions and 11 deletions
+5 -2
View File
@@ -1,4 +1,4 @@
from typing import Annotated
from typing import Annotated, List
from jfjoch_client.models.scan_result import ScanResult
from pydantic import Field, AfterValidator, BaseModel
@@ -37,6 +37,9 @@ class RasterGridRequest(BaseModel):
def start_pxl(self, geom: SampleGeometryModel) -> Coordinate:
return geom.smargon_to_beamline(self.smargon.sh_mm)
class CompletedRasterGrid(BaseModel):
class CompletedRasterGridElem(BaseModel):
request: RasterGridRequest
result: ScanResult
class CompletedRasterGrid(BaseModel):
r: List[CompletedRasterGridElem]
+2 -2
View File
@@ -22,7 +22,7 @@ from aaredaqlib.models import (
PuckLoadedInfo,
SampleShortInfoList,
DAQStatusModel, BeamlineStatus, SessionStatus, SampleCameraSettings, AutofocusSettings, BoundingBoxModel, )
from aaredaqlib.raster_grid import RasterGridRequest, CompletedRasterGrid
from aaredaqlib.raster_grid import RasterGridRequest, CompletedRasterGrid, CompletedRasterGridElem
from aaredaqlib.rotation_scan import RotationScanRequest, CompletedRotationScan
from aaredaqlib.sample_geometry import SampleGeometryModel
from mxlibs3.jfjoch import JFJochWrapper
@@ -399,7 +399,7 @@ class AareDAQ:
else:
print("Auto finding optimal image failed due to no images found. Using previous position.")
self.__devs.smargon.target = save_smargon_position
return CompletedRasterGrid(request=copy.deepcopy(r), result=result)
return CompletedRasterGrid(r=[CompletedRasterGridElem(request=copy.deepcopy(r), result=result)])
def measure_raster(self, r: RasterGridRequest, auto: bool) -> CompletedRasterGrid:
self.__cfg.try_set_busy(timeout=ceil(360))
@@ -9,7 +9,7 @@ from typing import List, Tuple
from aaredaqlib.coordinate import Coordinate, SmargonCoordinate
from aaredaqlib.models import DAQStatusModel
from aaredaqlib.raster_grid import RasterGridRequest, CompletedRasterGrid
from aaredaqlib.raster_grid import RasterGridRequest, CompletedRasterGrid, CompletedRasterGridElem
from aaredaqlib.sample_geometry import SampleGeometryModel
@@ -111,7 +111,7 @@ class RasterGridManager(QObject):
transmission=1.0,
dtz=120.0
)
self.__completed_grids : List[CompletedRasterGrid] = []
self.__completed_grids : List[CompletedRasterGridElem] = []
@property
def active_grid(self) -> RasterGridRequest:
@@ -411,12 +411,15 @@ class RasterGridManager(QObject):
self.completed_grid_updated.emit()
@Slot(CompletedRasterGrid)
def grid_scan_completed(self, r: CompletedRasterGrid):
self.__completed_grids.append(r)
def grid_scan_completed(self, raster_list: CompletedRasterGrid):
last_raster = None
for raster in raster_list.r:
self.__completed_grids.append(raster)
last_raster = raster
self.__active_grid.n_x = 0
self.__active_grid.n_y = 0
if r.result.file_prefix is not None:
self.file_ready.emit(r.result.file_prefix)
if last_raster is not None and last_raster.result.file_prefix is not None:
self.file_ready.emit(last_raster.result.file_prefix)
self.completed_grid_updated.emit()
@Slot(int, bool)
@@ -459,5 +462,5 @@ class RasterGridManager(QObject):
self.__active_grid.grid_size_mm.y)
self.completed_grid_updated.emit()
def get_completed_grids(self) -> List[CompletedRasterGrid]:
def get_completed_grids(self) -> List[CompletedRasterGridElem]:
return self.__completed_grids