From 478aea06fcac370aa9ad2548ae6d1a3ff894f50a Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Tue, 30 Sep 2025 11:28:21 +0200 Subject: [PATCH] DAQ: Add commissioning mode --- common/src/aaredaqlib/models.py | 1 + daq/src/aaredaq/config.py | 13 +++++++++++++ daq/src/aaredaq/daq.py | 3 ++- daq/src/aaredaq/server.py | 5 +++++ 4 files changed, 21 insertions(+), 1 deletion(-) diff --git a/common/src/aaredaqlib/models.py b/common/src/aaredaqlib/models.py index 8296483a..43fcaf12 100644 --- a/common/src/aaredaqlib/models.py +++ b/common/src/aaredaqlib/models.py @@ -560,6 +560,7 @@ class BeamlineStatus(BaseModel): sample_camera: SampleCameraSettings transmission: Annotated[float, Field(ge=0.0, le=1.0)] | None zoom: float + commissioning_mode: bool class SessionStatus(BaseModel): session: SessionsStateEnum = SessionsStateEnum.Vacant diff --git a/daq/src/aaredaq/config.py b/daq/src/aaredaq/config.py index 9a6d2823..585b5b63 100644 --- a/daq/src/aaredaq/config.py +++ b/daq/src/aaredaq/config.py @@ -137,6 +137,19 @@ class BeamlineConfig: else: self.__client.set(f"{self.__bl}:pgroup", pgroup) + @property + def commissioning_mode(self) -> bool: + tmp = self.__client.get(f"{self.__bl}:commissioning_mode") + if tmp is None: + return False + return True + + @commissioning_mode.setter + def commissioning_mode(self, commisioning_mode: bool) -> None: + if commisioning_mode: + self.__client.set(f"{self.__bl}:commissioning_mode", "1") + else: + self.__client.delete(f"{self.__bl}:commissioning_mode") # Beamline state management # Atomic check if beamline is busy and if not set state to busy diff --git a/daq/src/aaredaq/daq.py b/daq/src/aaredaq/daq.py index e6fd3fcd..98d99a6a 100644 --- a/daq/src/aaredaq/daq.py +++ b/daq/src/aaredaq/daq.py @@ -1333,7 +1333,8 @@ class AareDAQ: sample_camera=self.__devs.samcam_settings, name=self.__bl, transmission=self.__devs.transmission.get(), - zoom=self.__devs.zoom + zoom=self.__devs.zoom, + commissioning_mode=self.__cfg.commissioning_mode ) @property diff --git a/daq/src/aaredaq/server.py b/daq/src/aaredaq/server.py index 2de5e676..490965da 100644 --- a/daq/src/aaredaq/server.py +++ b/daq/src/aaredaq/server.py @@ -359,6 +359,11 @@ async def del_pgroup(token: str = Depends(oauth2_scheme)) -> str: cfg.pgroup = None return "OK" +@app.put("/beamline/commissioning_mode") +async def set_commissioning_mode(val: bool, token: str = Depends(oauth2_scheme)) -> str: + auth.check_jwt_staff(cfg, auth.parse_token(token)) + cfg.commissioning_mode = val + return "OK" @app.post("/access/end_session") async def end_session(token: str = Depends(oauth2_scheme)) -> str: