diff --git a/gently/hardware/dispim/client.py b/gently/hardware/dispim/client.py index e1597004..940bc172 100644 --- a/gently/hardware/dispim/client.py +++ b/gently/hardware/dispim/client.py @@ -819,6 +819,16 @@ async def get_laser_power(self, wavelength: int) -> dict: except Exception as e: return {"success": False, "error": str(e)} + async def get_properties(self, device: str | None = None) -> dict: + """Every property of one Micro-Manager device, or the device list. + + Read-only. Asks the hardware what it reports about itself rather than + what this codebase models — the difference that matters when no one can + look at the instrument. + """ + suffix = f"?device={device}" if device else "" + return await self._api_get(f"/api/properties{suffix}") + async def get_beam(self) -> dict: """Read whether the beam is armed, per side, from the hardware. diff --git a/gently/hardware/dispim/device_layer.py b/gently/hardware/dispim/device_layer.py index c428ee44..94db4c5f 100644 --- a/gently/hardware/dispim/device_layer.py +++ b/gently/hardware/dispim/device_layer.py @@ -2443,6 +2443,67 @@ def _read_beam(self) -> dict: out[side] = None return out + async def handle_get_properties(self, request): + """GET /api/properties?device=