Skip to content

Commit

Permalink
Use ophyd-async 0.9a2 (#770)
Browse files Browse the repository at this point in the history
* Use new load for panda setup

* Add updated panda settings yaml file

* Link to issue in comments
  • Loading branch information
olliesilvester authored Feb 5, 2025
1 parent aa5f360 commit 5533d56
Show file tree
Hide file tree
Showing 13 changed files with 1,140 additions and 1,003 deletions.
4 changes: 2 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -44,9 +44,9 @@ dependencies = [
"blueapi >= 0.5.0",
"daq-config-server >= 0.1.1",
"ophyd == 1.9.0",
"ophyd-async >= 0.8a5",
"ophyd-async >= 0.9.0a2",
"bluesky >= 1.13",
"dls-dodal @ git+https://github.com/DiamondLightSource/dodal.git@a2b9d8c20ff3826e3f1407d0e634a4765dde7f70",
"dls-dodal @ git+https://github.com/DiamondLightSource/dodal.git",
]


Expand Down
9 changes: 9 additions & 0 deletions src/mx_bluesky/common/device_setup_plans/setup_panda.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
from ophyd_async.core import YamlSettingsProvider
from ophyd_async.fastcs.panda import HDFPanda
from ophyd_async.plan_stubs import apply_panda_settings, retrieve_settings


def load_panda_from_yaml(yaml_directory: str, yaml_file_name: str, panda: HDFPanda):
provider = YamlSettingsProvider(yaml_directory)
settings = yield from retrieve_settings(provider, yaml_file_name, panda)
yield from apply_panda_settings(settings)
12 changes: 12 additions & 0 deletions src/mx_bluesky/common/parameters/constants.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import os
from enum import Enum

from dodal.devices.aperturescatterguard import ApertureValue
Expand All @@ -6,6 +7,8 @@
from dodal.utils import get_beamline_name
from pydantic.dataclasses import dataclass

from mx_bluesky.definitions import ROOT_DIR

BEAMLINE = get_beamline_name("test")
TEST_MODE = BEAMLINE == "test"

Expand Down Expand Up @@ -118,6 +121,15 @@ class PlanGroupCheckpointConstants:
READY_FOR_OAV = "ready_for_oav"


# Eventually replace below with https://github.com/DiamondLightSource/mx-bluesky/issues/798
@dataclass(frozen=True)
class DeviceSettingsConstants:
PANDA_FLYSCAN_SETTINGS_FILENAME = "panda-gridscan"
PANDA_FLYSCAN_SETTINGS_DIR = os.path.abspath(
f"{ROOT_DIR}/hyperion/resources/panda/{PANDA_FLYSCAN_SETTINGS_FILENAME}"
)


@dataclass(frozen=True)
class SimConstants:
BEAMLINE = "BL03S"
Expand Down
4 changes: 4 additions & 0 deletions src/mx_bluesky/definitions.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
import os

# Change once Python<3.12 is dropped - see https://github.com/DiamondLightSource/mx-bluesky/issues/798
ROOT_DIR = os.path.dirname(os.path.abspath(__file__))
14 changes: 7 additions & 7 deletions src/mx_bluesky/hyperion/device_setup_plans/setup_panda.py
Original file line number Diff line number Diff line change
@@ -1,22 +1,21 @@
from datetime import datetime
from enum import Enum
from importlib import resources
from pathlib import Path

import bluesky.plan_stubs as bps
from bluesky.utils import MsgGenerator
from dodal.common.beamlines.beamline_utils import get_path_provider
from dodal.devices.fast_grid_scan import PandAGridScanParams
from dodal.devices.smargon import Smargon
from ophyd_async.core import load_device
from ophyd_async.fastcs.panda import (
HDFPanda,
SeqTable,
SeqTrigger,
)

import mx_bluesky.hyperion.resources.panda as panda_resource
from mx_bluesky.common.device_setup_plans.setup_panda import load_panda_from_yaml
from mx_bluesky.common.utils.log import LOGGER
from mx_bluesky.hyperion.parameters.constants import DeviceSettingsConstants

MM_TO_ENCODER_COUNTS = 200000
GENERAL_TIMEOUT = 60
Expand Down Expand Up @@ -145,10 +144,11 @@ def setup_panda_for_flyscan(

yield from bps.stage(panda, group="panda-config")

with resources.as_file(
resources.files(panda_resource) / "panda-gridscan.yaml"
) as config_yaml_path:
yield from load_device(panda, str(config_yaml_path))
yield from load_panda_from_yaml(
DeviceSettingsConstants.PANDA_FLYSCAN_SETTINGS_DIR,
DeviceSettingsConstants.PANDA_FLYSCAN_SETTINGS_FILENAME,
panda,
)

initial_x = yield from bps.rd(smargon.x.user_readback)
initial_y = yield from bps.rd(smargon.y.user_readback)
Expand Down
2 changes: 2 additions & 0 deletions src/mx_bluesky/hyperion/parameters/constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
from pydantic.dataclasses import dataclass

from mx_bluesky.common.parameters.constants import (
DeviceSettingsConstants,
DocDescriptorNames,
EnvironmentConstants,
ExperimentParamConstants,
Expand Down Expand Up @@ -60,6 +61,7 @@ class HyperionConstants:
GRAYLOG_PORT = 12232
PARAMETER_SCHEMA_DIRECTORY = "src/hyperion/parameters/schemas/"
LOG_FILE_NAME = "hyperion.log"
DEVICE_SETTINGS_CONSTANTS = DeviceSettingsConstants()


CONST = HyperionConstants()
Loading

0 comments on commit 5533d56

Please sign in to comment.