From 3552c2d0a62b01d97a636b09347ac9783545266a Mon Sep 17 00:00:00 2001 From: Daniel Hatton Date: Tue, 8 Apr 2025 16:35:35 +0100 Subject: [PATCH 1/3] Separate endpoint to start multigrid watcher --- src/murfey/instrument_server/api.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/murfey/instrument_server/api.py b/src/murfey/instrument_server/api.py index 798fb34f6..4185c7564 100644 --- a/src/murfey/instrument_server/api.py +++ b/src/murfey/instrument_server/api.py @@ -138,7 +138,7 @@ def check_token(session_id: MurfeySessionID): @router.post("/sessions/{session_id}/multigrid_watcher") -def start_multigrid_watcher( +def setup_multigrid_watcher( session_id: MurfeySessionID, watcher_spec: MultigridWatcherSpec ): if controllers.get(session_id) is not None: @@ -183,6 +183,13 @@ def start_multigrid_watcher( controllers[session_id]._multigrid_watcher_finalised, final=True ) watchers[session_id].start() + + +@router.post("/sessions/{session_id}/start_multigrid_watcher") +def start_multigrid_watcher(session_id: MurfeySessionID): + if watchers.get(session_id) is None: + return {"success": False} + watchers[session_id].start() return {"success": True} From 4b6f88f23912827a99c498af76bc254fcbe01147 Mon Sep 17 00:00:00 2001 From: Daniel Hatton Date: Tue, 8 Apr 2025 16:40:49 +0100 Subject: [PATCH 2/3] Corresponding endpoint on central server --- src/murfey/server/api/instrument.py | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/src/murfey/server/api/instrument.py b/src/murfey/server/api/instrument.py index a40a58050..a03f20d33 100644 --- a/src/murfey/server/api/instrument.py +++ b/src/murfey/server/api/instrument.py @@ -94,7 +94,7 @@ async def check_if_session_is_active(instrument_name: str, session_id: int): @router.post("/sessions/{session_id}/multigrid_watcher") -async def start_multigrid_watcher( +async def setup_multigrid_watcher( session_id: MurfeySessionID, watcher_spec: MultigridWatcherSetup, db=murfey_db ): data = {} @@ -139,6 +139,27 @@ async def start_multigrid_watcher( return data +@router.post("/sessions/{session_id}/start_multigrid_watcher") +async def start_multigrid_watcher(session_id: MurfeySessionID, db=murfey_db): + data = {} + instrument_name = ( + db.exec(select(Session).where(Session.id == session_id)).one().instrument_name + ) + machine_config = get_machine_config(instrument_name=instrument_name)[ + instrument_name + ] + if machine_config.instrument_server_url: + async with aiohttp.ClientSession() as clientsession: + async with clientsession.post( + f"{machine_config.instrument_server_url}/sessions/{session_id}/start_multigrid_watcher", + headers={ + "Authorization": f"Bearer {instrument_server_tokens[session_id]['access_token']}" + }, + ) as resp: + data = await resp.json() + return data + + class ProvidedProcessingParameters(BaseModel): dose_per_frame: float extract_downscale: bool = True From 07d50a0ffc17f9d96ecc3f98845b6f675a42ad23 Mon Sep 17 00:00:00 2001 From: Daniel Hatton Date: Tue, 8 Apr 2025 17:00:09 +0100 Subject: [PATCH 3/3] Removed the wrong line --- src/murfey/instrument_server/api.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/murfey/instrument_server/api.py b/src/murfey/instrument_server/api.py index 4185c7564..cb67ea25f 100644 --- a/src/murfey/instrument_server/api.py +++ b/src/murfey/instrument_server/api.py @@ -182,7 +182,7 @@ def setup_multigrid_watcher( watchers[session_id].subscribe( controllers[session_id]._multigrid_watcher_finalised, final=True ) - watchers[session_id].start() + return {"success": True} @router.post("/sessions/{session_id}/start_multigrid_watcher")