Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixes for ophyd-async 0.9.0a2 #1014

Merged
merged 13 commits into from
Feb 5, 2025
Merged
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ description = "Ophyd devices and other utils that could be used across DLS beaml
dependencies = [
"click",
"ophyd",
"ophyd-async == 0.9.0a1",
"ophyd-async >= 0.9.0a2",
"bluesky",
"pyepics",
"dataclasses-json",
Expand Down
5 changes: 3 additions & 2 deletions src/dodal/beamlines/adsim.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
set_path_provider,
)
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
from dodal.common.beamlines.device_helpers import DET_SUFFIX, HDF5_SUFFIX
from dodal.common.visit import LocalDirectoryServiceClient, StaticVisitPathProvider
from dodal.devices.adsim import SimStage
from dodal.log import set_beamline as set_log_beamline
Expand Down Expand Up @@ -70,6 +71,6 @@ def det() -> SimDetector:
return SimDetector(
f"{PREFIX.beamline_prefix}-DI-CAM-01:",
path_provider=get_path_provider(),
drv_suffix="DET:",
hdf_suffix="HDF:",
drv_suffix=DET_SUFFIX,
fileio_suffix=HDF5_SUFFIX,
)
6 changes: 3 additions & 3 deletions src/dodal/beamlines/b01_1.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
set_path_provider,
)
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
from dodal.common.beamlines.device_helpers import HDF5_PREFIX
from dodal.common.beamlines.device_helpers import CAM_SUFFIX, HDF5_SUFFIX
from dodal.common.visit import LocalDirectoryServiceClient, StaticVisitPathProvider
from dodal.devices.synchrotron import Synchrotron
from dodal.log import set_beamline as set_log_beamline
Expand Down Expand Up @@ -57,6 +57,6 @@ def manta() -> AravisDetector:
return AravisDetector(
f"{PREFIX.beamline_prefix}-DI-DCAM-02:",
path_provider=get_path_provider(),
drv_suffix="CAM:",
hdf_suffix=HDF5_PREFIX,
drv_suffix=CAM_SUFFIX,
fileio_suffix=HDF5_SUFFIX,
)
9 changes: 5 additions & 4 deletions src/dodal/beamlines/i13_1.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
set_path_provider,
)
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
from dodal.common.beamlines.device_helpers import CAM_SUFFIX, HDF5_SUFFIX
from dodal.common.visit import LocalDirectoryServiceClient, StaticVisitPathProvider
from dodal.devices.i13_1.merlin import Merlin
from dodal.devices.motors import XYZPositioner
Expand Down Expand Up @@ -60,8 +61,8 @@ def side_camera(
prefix="BL13J-OP-FLOAT-03:",
name="side_camera",
bl_prefix=False,
drv_suffix="CAM:",
hdf_suffix="HDF5:",
drv_suffix=CAM_SUFFIX,
fileio_suffix=HDF5_SUFFIX,
path_provider=get_path_provider(),
wait=wait_for_connection,
fake=fake_with_ophyd_sim,
Expand All @@ -76,8 +77,8 @@ def merlin(
prefix="BL13J-EA-DET-04:",
name="merlin",
bl_prefix=False,
drv_suffix="CAM:",
hdf_suffix="HDF5:",
drv_suffix=CAM_SUFFIX,
fileio_suffix=HDF5_SUFFIX,
path_provider=get_path_provider(),
wait=wait_for_connection,
fake=fake_with_ophyd_sim,
Expand Down
14 changes: 7 additions & 7 deletions src/dodal/beamlines/i22.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
set_path_provider,
)
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
from dodal.common.beamlines.device_helpers import HDF5_PREFIX
from dodal.common.beamlines.device_helpers import CAM_SUFFIX, DET_SUFFIX, HDF5_SUFFIX
from dodal.common.crystal_metadata import (
MaterialsEnum,
make_crystal_metadata_from_material,
Expand Down Expand Up @@ -63,8 +63,8 @@ def saxs() -> PilatusDetector:
return NXSasPilatus(
prefix=f"{PREFIX.beamline_prefix}-EA-PILAT-01:",
path_provider=get_path_provider(),
drv_suffix="CAM:",
hdf_suffix=HDF5_PREFIX,
drv_suffix=CAM_SUFFIX,
fileio_suffix=HDF5_SUFFIX,
metadata_holder=metadata_holder,
)

Expand All @@ -88,8 +88,8 @@ def waxs() -> PilatusDetector:
return NXSasPilatus(
prefix=f"{PREFIX.beamline_prefix}-EA-PILAT-03:",
path_provider=get_path_provider(),
drv_suffix="CAM:",
hdf_suffix=HDF5_PREFIX,
drv_suffix=CAM_SUFFIX,
fileio_suffix=HDF5_SUFFIX,
metadata_holder=metadata_holder,
)

Expand Down Expand Up @@ -248,8 +248,8 @@ def oav() -> AravisDetector:
)
return NXSasOAV(
prefix=f"{PREFIX.beamline_prefix}-DI-OAV-01:",
drv_suffix="DET:",
hdf_suffix=HDF5_PREFIX,
drv_suffix=DET_SUFFIX,
fileio_suffix=HDF5_SUFFIX,
path_provider=get_path_provider(),
metadata_holder=metadata_holder,
)
Expand Down
18 changes: 11 additions & 7 deletions src/dodal/beamlines/p38.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,11 @@
set_path_provider,
)
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
from dodal.common.beamlines.device_helpers import numbered_slits
from dodal.common.beamlines.device_helpers import (
DET_SUFFIX,
HDF5_SUFFIX,
numbered_slits,
)
from dodal.common.crystal_metadata import (
MaterialsEnum,
make_crystal_metadata_from_material,
Expand Down Expand Up @@ -54,8 +58,8 @@ def d3(
"-DI-DCAM-01:",
wait_for_connection,
fake_with_ophyd_sim,
drv_suffix="DET:",
hdf_suffix="HDF5:",
drv_suffix=DET_SUFFIX,
fileio_suffix=HDF5_SUFFIX,
path_provider=get_path_provider(),
)

Expand All @@ -71,8 +75,8 @@ def d11(
"-DI-DCAM-03:",
wait_for_connection,
fake_with_ophyd_sim,
drv_suffix="DET:",
hdf_suffix="HDF5:",
drv_suffix=DET_SUFFIX,
fileio_suffix=HDF5_SUFFIX,
path_provider=get_path_provider(),
)

Expand All @@ -86,8 +90,8 @@ def d12(
"-DI-DCAM-04:",
wait_for_connection,
fake_with_ophyd_sim,
drv_suffix="DET:",
hdf_suffix="HDF5:",
drv_suffix=DET_SUFFIX,
fileio_suffix=HDF5_SUFFIX,
path_provider=get_path_provider(),
)

Expand Down
9 changes: 5 additions & 4 deletions src/dodal/beamlines/p45.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
set_path_provider,
)
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
from dodal.common.beamlines.device_helpers import DET_SUFFIX, HDF5_SUFFIX
from dodal.common.visit import StaticVisitPathProvider
from dodal.devices.p45 import Choppers, TomoStageWithStretchAndSkew
from dodal.log import set_beamline as set_log_beamline
Expand Down Expand Up @@ -60,8 +61,8 @@ def det(
"-EA-MAP-01:",
wait_for_connection,
fake_with_ophyd_sim,
drv_suffix="DET:",
hdf_suffix="HDF5:",
drv_suffix=DET_SUFFIX,
fileio_suffix=HDF5_SUFFIX,
path_provider=get_path_provider(),
)

Expand All @@ -77,8 +78,8 @@ def diff(
"-EA-DIFF-01:",
wait_for_connection,
fake_with_ophyd_sim,
drv_suffix="DET:",
hdf_suffix="HDF5:",
drv_suffix=DET_SUFFIX,
fileio_suffix=HDF5_SUFFIX,
path_provider=get_path_provider(),
)

Expand Down
6 changes: 3 additions & 3 deletions src/dodal/beamlines/training_rig.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
set_path_provider,
)
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
from dodal.common.beamlines.device_helpers import HDF5_PREFIX
from dodal.common.beamlines.device_helpers import DET_SUFFIX, HDF5_SUFFIX
from dodal.common.visit import LocalDirectoryServiceClient, StaticVisitPathProvider
from dodal.devices.training_rig.sample_stage import TrainingRigSampleStage
from dodal.log import set_beamline as set_log_beamline
Expand Down Expand Up @@ -50,8 +50,8 @@ def det() -> AravisDetector:
return AravisDetector(
f"{PREFIX.beamline_prefix}-EA-DET-01:",
path_provider=get_path_provider(),
drv_suffix="DET:",
hdf_suffix=HDF5_PREFIX,
drv_suffix=DET_SUFFIX,
fileio_suffix=HDF5_SUFFIX,
)


Expand Down
4 changes: 3 additions & 1 deletion src/dodal/common/beamlines/device_helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@
from dodal.devices.slits import Slits
from dodal.utils import skip_device

HDF5_PREFIX = "HDF5:"
HDF5_SUFFIX = "HDF5:"
CAM_SUFFIX = "CAM:"
DET_SUFFIX = "DET:"


@skip_device()
Expand Down
7 changes: 4 additions & 3 deletions src/dodal/devices/i13_1/merlin.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
from ophyd_async.core import PathProvider, StandardDetector
from ophyd_async.epics import adcore

from dodal.common.beamlines.device_helpers import CAM_SUFFIX, HDF5_SUFFIX
from dodal.devices.i13_1.merlin_controller import MerlinController
from dodal.devices.i13_1.merlin_io import MerlinDriverIO

Expand All @@ -13,12 +14,12 @@ def __init__(
self,
prefix: str,
path_provider: PathProvider,
drv_suffix="CAM:",
hdf_suffix="HDF:",
drv_suffix=CAM_SUFFIX,
fileio_suffix=HDF5_SUFFIX,
name: str = "",
):
self.drv = MerlinDriverIO(prefix + drv_suffix)
self.hdf = adcore.NDFileHDFIO(prefix + hdf_suffix)
self.hdf = adcore.NDFileHDFIO(prefix + fileio_suffix)

super().__init__(
MerlinController(self.drv),
Expand Down
9 changes: 2 additions & 7 deletions src/dodal/devices/i13_1/merlin_controller.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@
from ophyd_async.core import (
DEFAULT_TIMEOUT,
AsyncStatus,
DetectorController,
TriggerInfo,
)
from ophyd_async.epics import adcore
from ophyd_async.epics.adcore import ADBaseController

from dodal.devices.i13_1.merlin_io import MerlinDriverIO, MerlinImageMode


class MerlinController(DetectorController):
class MerlinController(ADBaseController):
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I didn't properly check if this is correct but it looked about right

def __init__(
self,
driver: MerlinDriverIO,
Expand All @@ -37,11 +37,6 @@ async def prepare(self, trigger_info: TriggerInfo):
self.driver.image_mode.set(MerlinImageMode.MULTIPLE),
)

async def arm(self):
self._arm_status = await adcore.start_acquiring_driver_and_ensure_status(
self.driver, good_states=self.good_states, timeout=self.frame_timeout
)

async def wait_for_idle(self):
if self._arm_status:
await self._arm_status
Expand Down
8 changes: 4 additions & 4 deletions src/dodal/devices/i22/nxsas.py
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ def __init__(
prefix: str,
path_provider: PathProvider,
drv_suffix: str,
hdf_suffix: str,
fileio_suffix: str,
metadata_holder: NXSasMetadataHolder,
name: str = "",
):
Expand All @@ -116,7 +116,7 @@ def __init__(
prefix,
path_provider,
drv_suffix=drv_suffix,
hdf_suffix=hdf_suffix,
fileio_suffix=fileio_suffix,
name=name,
)
self._metadata_holder = metadata_holder
Expand Down Expand Up @@ -146,7 +146,7 @@ def __init__(
prefix: str,
path_provider: PathProvider,
drv_suffix: str,
hdf_suffix: str,
fileio_suffix: str,
metadata_holder: NXSasMetadataHolder,
name: str = "",
gpio_number: AravisController.GPIO_NUMBER = 1,
Expand All @@ -160,7 +160,7 @@ def __init__(
prefix,
path_provider,
drv_suffix=drv_suffix,
hdf_suffix=hdf_suffix,
fileio_suffix=fileio_suffix,
name=name,
gpio_number=gpio_number,
)
Expand Down
4 changes: 2 additions & 2 deletions src/dodal/devices/motors.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,10 @@ class XYZPositioner(StandardReadable):
Notes
-----
Example usage::
async with DeviceCollector():
async with init_devices():
xyz_stage = XYZPositioner("BLXX-MO-STAGE-XX:")
Or::
with DeviceCollector():
with init_devices():
xyz_stage = XYZPositioner("BLXX-MO-STAGE-XX:", infix = ("A", "B", "C"))

"""
Expand Down
11 changes: 8 additions & 3 deletions src/dodal/devices/tetramm.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,12 @@
set_and_wait_for_value,
soft_signal_r_and_setter,
)
from ophyd_async.epics.adcore import ADHDFWriter, NDFileHDFIO, stop_busy_record
from ophyd_async.epics.adcore import (
ADHDFWriter,
NDFileHDFIO,
NDPluginBaseIO,
stop_busy_record,
)
from ophyd_async.epics.core import (
epics_signal_r,
epics_signal_rw,
Expand Down Expand Up @@ -221,7 +226,7 @@ def __init__(
path_provider: PathProvider,
name: str = "",
type: str | None = None,
**scalar_sigs: str,
plugins: dict[str, NDPluginBaseIO] | None = None,
) -> None:
self.drv = TetrammDriver(prefix + "DRV:")
self.hdf = NDFileHDFIO(prefix + "HDF5:")
Expand All @@ -243,7 +248,7 @@ def __init__(
path_provider,
lambda: self.name,
TetrammDatasetDescriber(controller),
**scalar_sigs,
plugins=plugins,
),
config_signals,
name,
Expand Down
Loading
Loading