From 8034354427f7eb3f8a01c4547e4d270c90367be1 Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Mon, 16 Jun 2025 15:04:06 +0200 Subject: [PATCH] DAQ/GUI: Go to ABR meas position --- daq/src/aaredaq/daq.py | 10 +++++++++- daq/src/aaredaq/server.py | 5 +++++ gui/src/aaregui/main_window.py | 1 + gui/src/aaregui/panels/abr_tweak_panel.py | 9 +++++++++ gui/src/aaregui/threads/daq_worker.py | 4 ++++ 5 files changed, 28 insertions(+), 1 deletion(-) diff --git a/daq/src/aaredaq/daq.py b/daq/src/aaredaq/daq.py index 07b46fc8..b966148a 100644 --- a/daq/src/aaredaq/daq.py +++ b/daq/src/aaredaq/daq.py @@ -159,7 +159,15 @@ class AareDAQ: self.__cfg.set_busy(BeamlineStateEnum.SampleAlignment) try: self.__cfg.abr_meas_pos = self.__devs.abr_pos - print(self.__cfg.abr_meas_pos.y) + self.__cfg.state_busy = False + except: + self.__cfg.state_busy = False + raise + + def goto_abr_meas_pos(self): + self.__cfg.set_busy(BeamlineStateEnum.SampleAlignment) + try: + self.__devs.abr_pos = self.__cfg.abr_meas_pos self.__cfg.state_busy = False except: self.__cfg.state_busy = False diff --git a/daq/src/aaredaq/server.py b/daq/src/aaredaq/server.py index 171dbe42..81c413cd 100644 --- a/daq/src/aaredaq/server.py +++ b/daq/src/aaredaq/server.py @@ -97,6 +97,11 @@ async def save_abr_meas_pos(token: str = Depends(oauth2_scheme)): daq.save_abr_meas_pos() return "OK" +@app.post("/beamline/goto_abr_meas_pos") +async def goto_abr_meas_pos(token: str = Depends(oauth2_scheme)): + auth.check_jwt_rw(cfg, auth.parse_token(token)) + daq.goto_abr_meas_pos() + return "OK" @app.post("/beam_mark/add") async def mark_beam_center(x: float, y: float, token: str = Depends(oauth2_scheme)): diff --git a/gui/src/aaregui/main_window.py b/gui/src/aaregui/main_window.py index 21200703..9ff90d35 100644 --- a/gui/src/aaregui/main_window.py +++ b/gui/src/aaregui/main_window.py @@ -155,6 +155,7 @@ class MainWindow(QMainWindow): self.beamline.illumination_panel.light.connect(self.daq.light) self.beamline.abr_tweak.abr_tweak.connect(self.daq.abr_tweak) self.beamline.abr_tweak.abr_save.connect(self.daq.abr_save) + self.beamline.abr_tweak.abr_goto_meas.connect(self.daq.abr_goto_meas) self.beamline.beam_mark.beam_mark_clear.connect(self.daq.beam_mark_clear) self.camera_image.update_beam_center.connect(self.daq.beam_mark_add) diff --git a/gui/src/aaregui/panels/abr_tweak_panel.py b/gui/src/aaregui/panels/abr_tweak_panel.py index edebbccb..34bd1042 100644 --- a/gui/src/aaregui/panels/abr_tweak_panel.py +++ b/gui/src/aaregui/panels/abr_tweak_panel.py @@ -11,6 +11,7 @@ from aaregui.widgets.title_label import TitleLabel class AbrTweakButtons(QWidget): abr_tweak = Signal(Coordinate) + abr_goto_meas = Signal() def __init__(self, parent=None): super().__init__(parent) @@ -101,6 +102,14 @@ class AbrTweakWidget(QWidget): grid_layout.addWidget(save_button, 3, 0, 1, 3) save_button.pressed.connect(self.save_button_pressed) + goto_button = QPushButton("Go to meas.") + grid_layout.addWidget(goto_button, 4, 0, 1, 3) + save_button.pressed.connect(self.goto_button_pressed) + + @Slot() + def goto_button_pressed(self): + self.__abr_buttons.abr_goto_meas.emit() + @Slot(Coordinate) def abr_button_pressed(self, c: Coordinate): self.abr_tweak.emit(c) diff --git a/gui/src/aaregui/threads/daq_worker.py b/gui/src/aaregui/threads/daq_worker.py index 831c7060..5761f6e8 100644 --- a/gui/src/aaregui/threads/daq_worker.py +++ b/gui/src/aaregui/threads/daq_worker.py @@ -279,6 +279,10 @@ class DAQWorker(QObject): def abr_save(self): self.generic_post("beamline/save_abr_meas_pos") + @Slot() + def abr_goto_meas(self): + self.generic_post("beamline/goto_abr_meas_pos") + @Slot(float, float) def beam_mark_add(self, x: float, y: float): self.generic_post(f"beam_mark/add?x={x}&y={y}")