diff --git a/common/src/aaredaqlib/models.py b/common/src/aaredaqlib/models.py index 5fb55bfb..b31b6f7f 100644 --- a/common/src/aaredaqlib/models.py +++ b/common/src/aaredaqlib/models.py @@ -124,7 +124,7 @@ def def_loop_centering_zoom() -> LoopCenteringZoomModel: return LoopCenteringZoomModel( z=[ LoopCenteringZoomModelElem( - zoom_value=200, sam_cam_gain=50.0, sam_cam_exp=0.05 + zoom_value=280, sam_cam_gain=50.0, sam_cam_exp=0.10 ) ] ) diff --git a/daq/src/aaredaq/aaredb.py b/daq/src/aaredaq/aaredb.py index 8b6f1b0a..b6d21315 100644 --- a/daq/src/aaredaq/aaredb.py +++ b/daq/src/aaredaq/aaredb.py @@ -125,14 +125,15 @@ class AareWrapper: def upload_image(self, sample_id: int, filename: str, bgr_image: np.ndarray): _, buffer = cv2.imencode('.jpg', bgr_image) jpeg_bytes = io.BytesIO(buffer) - url = f"{self.__host}/samples/{sample_id}/upload-images" + url = f"{self.__host}/protected_router/sample_runner/{sample_id}/upload-images" headers = { - "accept": "application/json" + "accept": "application/json", + "X-Shared-Password": os.getenv("AAREDB_SHARED_PASSWORD") } response = requests.post(url, files={'uploaded_file': (filename + ".jpg", jpeg_bytes, "image/jpeg")}, verify=False, headers=headers) - print(response.status_code) + print(f"Response status code: {response.status_code}") def create_rotation_run(self, s: Optional[SampleShortInfo], r:RotationScanRequest, d:DAQStatusModel): if s is None: diff --git a/daq/src/aaredaq/daq.py b/daq/src/aaredaq/daq.py index feae9cbd..377ab869 100644 --- a/daq/src/aaredaq/daq.py +++ b/daq/src/aaredaq/daq.py @@ -206,8 +206,7 @@ class AareDAQ: self.__devs.smargon.move_home(wait=True) self.__devs.abr_pos = ABR_POS_MOUNT time.sleep(0.5) - print(f"Smargon x={self.__devs.smargon.readback.sh_mm.x}, y={self.__devs.smargon.readback.sh_mm.y}, z={self.__devs.smargon.readback.sh_mm.z}") - print(f"ABR x={self.__devs.abr_pos.x}, y={self.__devs.abr_pos.y}, z={self.__devs.abr_pos.z} omega={self.__devs.aerotech.omega}") + if self.__devs.bsz.value < 24.0: raise Exception("Beamstop Z below 24.0 mm - potentially unsafe with mounting") if self.__devs.magnet_position_sensor.value != 0: @@ -227,7 +226,7 @@ class AareDAQ: self.__cfg.current_sample = None else: # reset zoom - self.__devs.zoom = 1 + self.__devs.zoom = 280 # mount sample self.__aare.sample_unmounted(curr_sample) self.__devs.tell.mount( @@ -241,6 +240,7 @@ class AareDAQ: self.__aare.sample_mounted(target) self.__cfg.current_sample = target + self.save_screenshot_db(target.db_id, f"sample_mounted") @sample.setter def sample(self, target: SampleShortInfo | None): @@ -270,6 +270,9 @@ class AareDAQ: self.__set_state(BeamlineStateEnum.SampleAlignment) + if target is not None and target.location is not None: + self.__loop_center_sequence(target.db_id) + @property def camera_image(self) -> np.ndarray | None: image = self.__devs.sample_cam.get_image(gray=False) @@ -350,6 +353,8 @@ class AareDAQ: self.__jfjoch.measure_rotation(request, status) self.__aare.create_rotation_run(self.sample, request, status) + self.save_screenshot_db(self.sample.db_id, "before_dc") + if request.screening: self.__devs.aerotech.measure_screening(request.start_omega_deg, request.wedge_omega_deg, @@ -380,6 +385,7 @@ class AareDAQ: self.__aare.sample_collected(self.sample) self.__devs.aerotech.reset() result = self.__jfjoch.wait_till_done(60) + self.save_screenshot_db(self.sample.db_id, "after_dc") return CompletedRotationScan(request=copy.deepcopy(request), result=result) def measure_rotation(self, request: RotationScanRequest) -> CompletedRotationScan: @@ -627,7 +633,9 @@ class AareDAQ: filename = f"{angle}_{s.zoom_value:.0f}" self.__devs.smargon.target = self.__loop_center(filename) self.__devs.smargon.wait(60) + print(sample_id) if sample_id is not None: + self.__aare.sample_centered(self.__cfg.current_sample) time.sleep(0.1) self.save_screenshot_db(sample_id, f"{angle}_{s.zoom_value:.0f}") i += 1 @@ -684,9 +692,8 @@ class AareDAQ: self.__mount(sample) self.__set_state(BeamlineStateEnum.SampleAlignment) + print(f"Saving screenshot {sample.db_id} mount.jpeg") self.save_screenshot_db(sample.db_id, "mount.jpeg") - self.__loop_center_sequence(sample.db_id) - self.save_screenshot_db(sample.db_id, "after_lc.jpeg") self.__set_state(BeamlineStateEnum.DataCollection) @@ -724,7 +731,7 @@ class AareDAQ: # RotationScanRequest(total_omega_deg=360, # start_omega_deg=0, # total_time_sec=18)) - + print(f"Saving screenshot {sample.db_id} after_dc.jpeg") self.save_screenshot_db(sample.db_id, "after_dc.jpeg") self.__set_state(BeamlineStateEnum.RobotSampleExchange) diff --git a/daq/src/aaredaq/server.py b/daq/src/aaredaq/server.py index fd7aba71..9636d878 100644 --- a/daq/src/aaredaq/server.py +++ b/daq/src/aaredaq/server.py @@ -321,7 +321,7 @@ async def alc_background(token: str = Depends(oauth2_scheme)) -> str: @app.post("/alc/center_loop") async def alc_center_loop(token: str = Depends(oauth2_scheme)) -> str: auth.check_jwt_rw(cfg, auth.parse_token(token)) - daq.auto_loop_center() + daq.auto_loop_center(cfg.current_sample.db_id) return "OK" diff --git a/gui/src/aaregui/panels/zoom_panel.py b/gui/src/aaregui/panels/zoom_panel.py index b99c3ef0..79825370 100644 --- a/gui/src/aaregui/panels/zoom_panel.py +++ b/gui/src/aaregui/panels/zoom_panel.py @@ -16,7 +16,6 @@ class ZoomPanel(QWidget): grid_layout = QGridLayout(self) self.__zoom_settings = [ - {"name": "1x", "value": 1}, {"name": "2.0x", "value": 280}, {"name": "3.5x", "value": 500}, {"name": "5.8x", "value": 700},