mx-bluesky 1.4.6__py3-none-any.whl → 1.4.7__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- mx_bluesky/_version.py +2 -2
- mx_bluesky/beamlines/aithre_lasershaping/__init__.py +13 -0
- mx_bluesky/beamlines/aithre_lasershaping/check_goniometer_performance.py +29 -0
- mx_bluesky/beamlines/aithre_lasershaping/goniometer_controls.py +18 -0
- mx_bluesky/beamlines/i04/redis_to_murko_forwarder.py +31 -25
- mx_bluesky/beamlines/i04/thawing_plan.py +10 -1
- mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/DiamondExtruder-I24-py3v1.edl +12 -12
- mx_bluesky/beamlines/i24/serial/extruder/i24ssx_Extruder_Collect_py3v2.py +30 -29
- mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_Collect_py3v1.py +10 -11
- mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_Manager_py3v1.py +8 -10
- mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_moveonclick.py +10 -3
- mx_bluesky/beamlines/i24/serial/log.py +1 -0
- mx_bluesky/beamlines/i24/serial/set_visit_directory.sh +1 -1
- mx_bluesky/beamlines/i24/serial/setup_beamline/pv.py +16 -16
- mx_bluesky/beamlines/i24/serial/setup_beamline/setup_beamline.py +47 -48
- mx_bluesky/beamlines/i24/serial/setup_beamline/setup_detector.py +1 -1
- mx_bluesky/beamlines/i24/serial/setup_beamline/setup_zebra_plans.py +9 -7
- mx_bluesky/beamlines/i24/serial/write_nexus.py +3 -2
- mx_bluesky/common/device_setup_plans/xbpm_feedback.py +45 -0
- mx_bluesky/common/external_interaction/callbacks/common/ispyb_callback_base.py +2 -4
- mx_bluesky/common/external_interaction/callbacks/common/ispyb_mapping.py +1 -1
- mx_bluesky/common/external_interaction/callbacks/common/zocalo_callback.py +18 -15
- mx_bluesky/{hyperion → common}/external_interaction/callbacks/sample_handling/sample_handling_callback.py +16 -4
- mx_bluesky/common/external_interaction/callbacks/xray_centre/ispyb_callback.py +41 -5
- mx_bluesky/common/external_interaction/callbacks/xray_centre/nexus_callback.py +2 -1
- mx_bluesky/common/external_interaction/ispyb/data_model.py +1 -0
- mx_bluesky/common/external_interaction/ispyb/ispyb_store.py +14 -1
- mx_bluesky/common/external_interaction/nexus/nexus_utils.py +1 -1
- mx_bluesky/common/parameters/constants.py +2 -0
- mx_bluesky/common/parameters/gridscan.py +1 -1
- mx_bluesky/common/plans/write_sample_status.py +46 -0
- mx_bluesky/common/preprocessors/__init__.py +0 -0
- mx_bluesky/common/preprocessors/preprocessors.py +105 -0
- mx_bluesky/common/protocols/__init__.py +0 -0
- mx_bluesky/common/protocols/protocols.py +10 -0
- mx_bluesky/hyperion/__main__.py +3 -9
- mx_bluesky/hyperion/baton_handler.py +84 -0
- mx_bluesky/hyperion/device_setup_plans/setup_panda.py +5 -1
- mx_bluesky/hyperion/experiment_plans/__init__.py +0 -4
- mx_bluesky/hyperion/experiment_plans/change_aperture_then_move_plan.py +10 -25
- mx_bluesky/hyperion/experiment_plans/experiment_registry.py +0 -7
- mx_bluesky/hyperion/experiment_plans/flyscan_xray_centre_plan.py +11 -10
- mx_bluesky/hyperion/experiment_plans/load_centre_collect_full_plan.py +5 -1
- mx_bluesky/hyperion/experiment_plans/oav_snapshot_plan.py +2 -2
- mx_bluesky/hyperion/experiment_plans/pin_tip_centring_plan.py +5 -3
- mx_bluesky/hyperion/experiment_plans/robot_load_then_centre_plan.py +0 -26
- mx_bluesky/hyperion/experiment_plans/rotation_scan_plan.py +23 -18
- mx_bluesky/hyperion/experiment_plans/set_energy_plan.py +25 -6
- mx_bluesky/hyperion/external_interaction/agamemnon.py +148 -10
- mx_bluesky/hyperion/external_interaction/callbacks/__main__.py +12 -6
- mx_bluesky/hyperion/external_interaction/callbacks/snapshot_callback.py +107 -0
- mx_bluesky/hyperion/parameters/gridscan.py +2 -2
- mx_bluesky/hyperion/parameters/rotation.py +1 -1
- {mx_bluesky-1.4.6.dist-info → mx_bluesky-1.4.7.dist-info}/METADATA +7 -7
- {mx_bluesky-1.4.6.dist-info → mx_bluesky-1.4.7.dist-info}/RECORD +60 -51
- {mx_bluesky-1.4.6.dist-info → mx_bluesky-1.4.7.dist-info}/WHEEL +1 -1
- mx_bluesky/common/external_interaction/callbacks/common/aperture_change_callback.py +0 -22
- mx_bluesky/hyperion/device_setup_plans/xbpm_feedback.py +0 -103
- /mx_bluesky/{hyperion → common}/external_interaction/callbacks/sample_handling/__init__.py +0 -0
- {mx_bluesky-1.4.6.dist-info → mx_bluesky-1.4.7.dist-info}/entry_points.txt +0 -0
- {mx_bluesky-1.4.6.dist-info → mx_bluesky-1.4.7.dist-info/licenses}/LICENSE +0 -0
- {mx_bluesky-1.4.6.dist-info → mx_bluesky-1.4.7.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import re
|
|
2
|
+
|
|
3
|
+
from dodal.devices.oav.snapshots.snapshot_image_processing import (
|
|
4
|
+
compute_beam_centre_pixel_xy_for_mm_position,
|
|
5
|
+
draw_crosshair,
|
|
6
|
+
)
|
|
7
|
+
from event_model import Event, EventDescriptor, RunStart
|
|
8
|
+
from PIL import Image
|
|
9
|
+
|
|
10
|
+
from mx_bluesky.common.external_interaction.callbacks.common.plan_reactive_callback import (
|
|
11
|
+
PlanReactiveCallback,
|
|
12
|
+
)
|
|
13
|
+
from mx_bluesky.common.parameters.constants import DocDescriptorNames
|
|
14
|
+
from mx_bluesky.common.utils.log import ISPYB_ZOCALO_CALLBACK_LOGGER as CALLBACK_LOGGER
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class BeamDrawingCallback(PlanReactiveCallback):
|
|
18
|
+
"""
|
|
19
|
+
Callback that monitors for OAV_ROTATION_SNAPSHOT_TRIGGERED events and
|
|
20
|
+
draws a crosshair at the beam centre, saving the snapshot to a file.
|
|
21
|
+
The callback assumes an OAV device "oav"
|
|
22
|
+
Examples:
|
|
23
|
+
Take a snapshot at the current location
|
|
24
|
+
>>> from bluesky.run_engine import RunEngine
|
|
25
|
+
>>> import bluesky.preprocessors as bpp
|
|
26
|
+
>>> import bluesky.plan_stubs as bps
|
|
27
|
+
>>> from dodal.devices.oav.oav_detector import OAV
|
|
28
|
+
>>> from mx_bluesky.common.parameters.components import WithSnapshot
|
|
29
|
+
>>> def take_snapshot(params: WithSnapshot, oav: OAV, run_engine: RunEngine):
|
|
30
|
+
... run_engine.subscribe(BeamDrawingCallback())
|
|
31
|
+
... @bpp.run_decorator(md={
|
|
32
|
+
... "activate_callbacks": ["BeamDrawingCallback"],
|
|
33
|
+
... "with_snapshot": params.model_dump_json(),
|
|
34
|
+
... })
|
|
35
|
+
... def inner_plan():
|
|
36
|
+
... yield from bps.abs_set(oav.snapshot.directory, "/path/to/snapshot_folder", wait=True)
|
|
37
|
+
... yield from bps.abs_set(oav.snapshot.filename, "my_snapshot_prefix", wait=True)
|
|
38
|
+
... yield from bps.trigger(oav.snapshot, wait=True)
|
|
39
|
+
... yield from bps.create(DocDescriptorNames.OAV_ROTATION_SNAPSHOT_TRIGGERED)
|
|
40
|
+
... yield from bps.read(oav)
|
|
41
|
+
... yield from bps.save()
|
|
42
|
+
"""
|
|
43
|
+
|
|
44
|
+
def __init__(self, *args, **kwargs):
|
|
45
|
+
super().__init__(*args, log=CALLBACK_LOGGER, **kwargs)
|
|
46
|
+
self._snapshot_files: list[str] = []
|
|
47
|
+
self._microns_per_pixel: tuple[float, float]
|
|
48
|
+
self._beam_centre: tuple[int, int]
|
|
49
|
+
self._rotation_snapshot_descriptor: str = ""
|
|
50
|
+
|
|
51
|
+
def activity_gated_start(self, doc: RunStart):
|
|
52
|
+
if self.activity_uid == doc.get("uid"):
|
|
53
|
+
with_snapshot_json = doc.get("with_snapshot") # type: ignore
|
|
54
|
+
assert with_snapshot_json, (
|
|
55
|
+
"run start event did not have expected snapshot json"
|
|
56
|
+
)
|
|
57
|
+
return doc
|
|
58
|
+
|
|
59
|
+
def activity_gated_descriptor(self, doc: EventDescriptor) -> EventDescriptor | None:
|
|
60
|
+
if doc.get("name") == DocDescriptorNames.OAV_ROTATION_SNAPSHOT_TRIGGERED:
|
|
61
|
+
self._rotation_snapshot_descriptor = doc["uid"]
|
|
62
|
+
return doc
|
|
63
|
+
|
|
64
|
+
def activity_gated_event(self, doc: Event) -> Event:
|
|
65
|
+
if doc["descriptor"] == self._rotation_snapshot_descriptor:
|
|
66
|
+
self._handle_rotation_snapshot(doc)
|
|
67
|
+
return doc
|
|
68
|
+
|
|
69
|
+
def _extract_base_snapshot_params(self, doc: Event):
|
|
70
|
+
data = doc["data"]
|
|
71
|
+
self._snapshot_files.append(data["oav-snapshot-last_saved_path"])
|
|
72
|
+
self._microns_per_pixel = (
|
|
73
|
+
data["oav-microns_per_pixel_x"],
|
|
74
|
+
data["oav-microns_per_pixel_y"],
|
|
75
|
+
)
|
|
76
|
+
self._beam_centre = (data["oav-beam_centre_i"], data["oav-beam_centre_j"])
|
|
77
|
+
|
|
78
|
+
def _handle_rotation_snapshot(self, doc: Event):
|
|
79
|
+
self._extract_base_snapshot_params(doc)
|
|
80
|
+
data = doc["data"]
|
|
81
|
+
snapshot_path = data["oav-snapshot-last_saved_path"]
|
|
82
|
+
match = re.match("(.*)\\.png", snapshot_path)
|
|
83
|
+
assert match, f"Snapshot {snapshot_path} was not a .png file"
|
|
84
|
+
snapshot_base = match.groups()[0]
|
|
85
|
+
output_snapshot_path = f"{snapshot_base}_with_beam_centre.png"
|
|
86
|
+
self._generate_snapshot_at(snapshot_path, output_snapshot_path, 0, 0)
|
|
87
|
+
data["oav-snapshot-last_saved_path"] = output_snapshot_path
|
|
88
|
+
return doc
|
|
89
|
+
|
|
90
|
+
def _generate_snapshot_at(
|
|
91
|
+
self, input_snapshot_path: str, output_snapshot_path: str, x_mm: int, y_mm: int
|
|
92
|
+
):
|
|
93
|
+
"""
|
|
94
|
+
Save a snapshot to the specified path, with an annotated crosshair at the specified
|
|
95
|
+
position
|
|
96
|
+
Args:
|
|
97
|
+
input_snapshot_path: The non-annotated image path.
|
|
98
|
+
output_snapshot_path: The path to the image that will be annotated.
|
|
99
|
+
x_mm: Relative x location of the sample to the original image (mm)
|
|
100
|
+
y_mm: Relative y location of the sample to the original image (mm)
|
|
101
|
+
"""
|
|
102
|
+
image = Image.open(input_snapshot_path)
|
|
103
|
+
x_px, y_px = compute_beam_centre_pixel_xy_for_mm_position(
|
|
104
|
+
(x_mm, y_mm), self._beam_centre, self._microns_per_pixel
|
|
105
|
+
)
|
|
106
|
+
draw_crosshair(image, x_px, y_px)
|
|
107
|
+
image.save(output_snapshot_path, format="png")
|
|
@@ -36,7 +36,7 @@ class GridCommonWithHyperionDetectorParams(GridCommon, WithHyperionUDCFeatures):
|
|
|
36
36
|
return DetectorParams(
|
|
37
37
|
detector_size_constants=I03Constants.DETECTOR,
|
|
38
38
|
expected_energy_ev=self.demand_energy_ev,
|
|
39
|
-
|
|
39
|
+
exposure_time_s=self.exposure_time_s,
|
|
40
40
|
directory=self.storage_directory,
|
|
41
41
|
prefix=self.file_name,
|
|
42
42
|
detector_distance=self.detector_distance_mm,
|
|
@@ -73,7 +73,7 @@ class HyperionSpecifiedThreeDGridScan(WithHyperionUDCFeatures, SpecifiedThreeDGr
|
|
|
73
73
|
return DetectorParams(
|
|
74
74
|
detector_size_constants=I03Constants.DETECTOR,
|
|
75
75
|
expected_energy_ev=self.demand_energy_ev,
|
|
76
|
-
|
|
76
|
+
exposure_time_s=self.exposure_time_s,
|
|
77
77
|
directory=self.storage_directory,
|
|
78
78
|
prefix=self.file_name,
|
|
79
79
|
detector_distance=self.detector_distance_mm,
|
|
@@ -75,7 +75,7 @@ class RotationExperiment(DiffractionExperimentWithSample, WithHyperionUDCFeature
|
|
|
75
75
|
return DetectorParams(
|
|
76
76
|
detector_size_constants=I03Constants.DETECTOR,
|
|
77
77
|
expected_energy_ev=self.demand_energy_ev,
|
|
78
|
-
|
|
78
|
+
exposure_time_s=self.exposure_time_s,
|
|
79
79
|
directory=self.storage_directory,
|
|
80
80
|
prefix=self.file_name,
|
|
81
81
|
detector_distance=self.detector_distance_mm,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: mx-bluesky
|
|
3
|
-
Version: 1.4.
|
|
3
|
+
Version: 1.4.7
|
|
4
4
|
Summary: Bluesky tools for MX Beamlines at DLS
|
|
5
5
|
Author-email: Dominic Oram <dominic.oram@diamond.ac.uk>
|
|
6
6
|
License: Apache License
|
|
@@ -215,7 +215,6 @@ Description-Content-Type: text/x-rst
|
|
|
215
215
|
License-File: LICENSE
|
|
216
216
|
Requires-Dist: annotated_types
|
|
217
217
|
Requires-Dist: caproto
|
|
218
|
-
Requires-Dist: confluent-kafka==2.8.0
|
|
219
218
|
Requires-Dist: fastapi[all]
|
|
220
219
|
Requires-Dist: flask-restful
|
|
221
220
|
Requires-Dist: ispyb
|
|
@@ -239,8 +238,8 @@ Requires-Dist: blueapi>=0.5.0
|
|
|
239
238
|
Requires-Dist: daq-config-server>=0.1.1
|
|
240
239
|
Requires-Dist: ophyd==1.9.0
|
|
241
240
|
Requires-Dist: ophyd-async>=0.9.0a2
|
|
242
|
-
Requires-Dist: bluesky>=1.13
|
|
243
|
-
Requires-Dist: dls-dodal==1.
|
|
241
|
+
Requires-Dist: bluesky>=1.13.1
|
|
242
|
+
Requires-Dist: dls-dodal==1.44.0
|
|
244
243
|
Provides-Extra: dev
|
|
245
244
|
Requires-Dist: black; extra == "dev"
|
|
246
245
|
Requires-Dist: build; extra == "dev"
|
|
@@ -254,7 +253,7 @@ Requires-Dist: pipdeptree; extra == "dev"
|
|
|
254
253
|
Requires-Dist: plantweb; extra == "dev"
|
|
255
254
|
Requires-Dist: pre-commit; extra == "dev"
|
|
256
255
|
Requires-Dist: pydata-sphinx-theme>=0.12; extra == "dev"
|
|
257
|
-
Requires-Dist: pyright
|
|
256
|
+
Requires-Dist: pyright; extra == "dev"
|
|
258
257
|
Requires-Dist: pytest-asyncio; extra == "dev"
|
|
259
258
|
Requires-Dist: pytest-cov; extra == "dev"
|
|
260
259
|
Requires-Dist: pytest-random-order; extra == "dev"
|
|
@@ -267,6 +266,7 @@ Requires-Dist: tox-direct; extra == "dev"
|
|
|
267
266
|
Requires-Dist: tox; extra == "dev"
|
|
268
267
|
Requires-Dist: types-mock; extra == "dev"
|
|
269
268
|
Requires-Dist: types-requests; extra == "dev"
|
|
269
|
+
Dynamic: license-file
|
|
270
270
|
|
|
271
271
|
mx-bluesky
|
|
272
272
|
===========================
|
|
@@ -285,7 +285,7 @@ Releases https://github.com/DiamondLightSource/mx-bluesky/releases
|
|
|
285
285
|
Getting Started
|
|
286
286
|
===============
|
|
287
287
|
|
|
288
|
-
To get started with developing this repo at DLS run
|
|
288
|
+
To get started with developing this repo at DLS run ``./utility_scripts/dls_dev_env.sh``.
|
|
289
289
|
|
|
290
290
|
If you want to develop interactively at the beamline we recommend using jupyter notebooks. You can get started with this by running::
|
|
291
291
|
|
|
@@ -1,36 +1,39 @@
|
|
|
1
1
|
mx_bluesky/__init__.py,sha256=Ksms_WJF8LTkbm38gEpm1jBpGqcQ8NGvmb2ZJlOE1j8,198
|
|
2
2
|
mx_bluesky/__main__.py,sha256=RVqPnxDisFMIn_aoEi0drlThNHgKTJULnSrotouIKI0,480
|
|
3
|
-
mx_bluesky/_version.py,sha256=
|
|
3
|
+
mx_bluesky/_version.py,sha256=s-Eu9jsJQLZM8_9AlFjyCzqOgTZ3BB_7dc7mXsC3CzU,511
|
|
4
4
|
mx_bluesky/definitions.py,sha256=ULpEYAUzdQiEbBoTgYTMxfUf3DDDjhYtvDxofs7Qxqw,168
|
|
5
5
|
mx_bluesky/jupyter_example.ipynb,sha256=wpwvPrBvwtRMS5AIFk8F54cIlUoD0o4ji8tKK5cZHA4,1672
|
|
6
6
|
mx_bluesky/beamlines/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
7
|
+
mx_bluesky/beamlines/aithre_lasershaping/__init__.py,sha256=MGOtd-CsJYRfCVxbwwvRJSZcsqMU_uV3vsbmBd7pbHk,374
|
|
8
|
+
mx_bluesky/beamlines/aithre_lasershaping/check_goniometer_performance.py,sha256=AqWAFey_Ih1JcRxVNiZDGFsVg4kvA9LH2p5SJeXfe2I,834
|
|
9
|
+
mx_bluesky/beamlines/aithre_lasershaping/goniometer_controls.py,sha256=qYALVNt69e7mpEonTmHH4xY7ByKXi27BvCskkR8KN9I,633
|
|
7
10
|
mx_bluesky/beamlines/i04/__init__.py,sha256=jZjAMN5_oOEjQoR3iTrnMFW3ElxlHhQ7pEQZIv21Y4I,129
|
|
8
|
-
mx_bluesky/beamlines/i04/redis_to_murko_forwarder.py,sha256=
|
|
9
|
-
mx_bluesky/beamlines/i04/thawing_plan.py,sha256=
|
|
11
|
+
mx_bluesky/beamlines/i04/redis_to_murko_forwarder.py,sha256=iYtsjr94TaYjZ0mKvL9kbs6a3ZfojuQHahfHZl1skG8,6593
|
|
12
|
+
mx_bluesky/beamlines/i04/thawing_plan.py,sha256=95V-y9sjdXTRE7J9GU7YNARCqtWBOeYLUZ7K_2fg0b4,4999
|
|
10
13
|
mx_bluesky/beamlines/i04/callbacks/murko_callback.py,sha256=ZIwkY6gdcmIE-aMBvehN8DVcjGRtb9wwzpgHJNMZ39Q,2125
|
|
11
14
|
mx_bluesky/beamlines/i24/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
12
15
|
mx_bluesky/beamlines/i24/serial/__init__.py,sha256=XnCeh2GahduKp7d9aFgNjm_SMgh6F0E5M2tk0bNFivY,1423
|
|
13
16
|
mx_bluesky/beamlines/i24/serial/blueapi_config.yaml,sha256=gwOfjzZMbcvpVH71CCyHaxr8hgPYCJIWWWfg1zErtmM,245
|
|
14
17
|
mx_bluesky/beamlines/i24/serial/dcid.py,sha256=Y2bL0AGPvBqQ4gbqbxjCMG2UJqqIY1B7YAW0C_UxS7Q,14530
|
|
15
|
-
mx_bluesky/beamlines/i24/serial/log.py,sha256=
|
|
18
|
+
mx_bluesky/beamlines/i24/serial/log.py,sha256=oK7HHjIeuiWdy1vNZL6p-mU8Y3kzeCAgsifCxhAYqOQ,4799
|
|
16
19
|
mx_bluesky/beamlines/i24/serial/run_extruder.sh,sha256=FXYsqdTpVgxB1-QrY4Tg5pl5Ex7PgUoXnuAcr9iDZTE,1078
|
|
17
20
|
mx_bluesky/beamlines/i24/serial/run_fixed_target.sh,sha256=ZzxcVFoitBRvcqsJaBxjtepgkG-ZCGBW6X9xuV_Y478,1229
|
|
18
21
|
mx_bluesky/beamlines/i24/serial/run_serial.py,sha256=Zrudosavh2HnnBXd2CLtOPs3lyQFxaN8YyO_sradRGs,1511
|
|
19
22
|
mx_bluesky/beamlines/i24/serial/run_ssx.sh,sha256=0Ir5iQQ-xSN_5teHtxzht6G-mJ08mE1gxBS32vkh1eM,714
|
|
20
|
-
mx_bluesky/beamlines/i24/serial/set_visit_directory.sh,sha256=
|
|
23
|
+
mx_bluesky/beamlines/i24/serial/set_visit_directory.sh,sha256=heQWMqUHNERQurt2tRgU-kve2ov6L6gyNamjLTRpb48,1660
|
|
21
24
|
mx_bluesky/beamlines/i24/serial/start_blueapi.sh,sha256=4iBzQljTLXQiVIF4UO7drc9qUkP7KSRC6Mjh8hcGxpI,608
|
|
22
|
-
mx_bluesky/beamlines/i24/serial/write_nexus.py,sha256=
|
|
25
|
+
mx_bluesky/beamlines/i24/serial/write_nexus.py,sha256=mcW2y0syeIPjdyqDcaEasMrcbAzXFGws05ky2rCUa4c,4030
|
|
23
26
|
mx_bluesky/beamlines/i24/serial/extruder/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
24
|
-
mx_bluesky/beamlines/i24/serial/extruder/i24ssx_Extruder_Collect_py3v2.py,sha256=
|
|
27
|
+
mx_bluesky/beamlines/i24/serial/extruder/i24ssx_Extruder_Collect_py3v2.py,sha256=NK_9gzVQqm5JgmEbw-hb7DS9R3v43FPIdEt1eHm1GRY,18884
|
|
25
28
|
mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/DetStage.edl,sha256=9L1CgEdxZD4N3QvM5HLlAlJTcxpzd4ahB2nVJ9jHujw,2013
|
|
26
|
-
mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/DiamondExtruder-I24-py3v1.edl,sha256=
|
|
29
|
+
mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/DiamondExtruder-I24-py3v1.edl,sha256=JsvqKR_NPbnJsWhAeIhCIUFAZ_ZH2CAt8FCOoMrLH7o,31349
|
|
27
30
|
mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/microdrop_alignment.edl,sha256=K79vmGAcf9qVEQLXTgr0g4bZDWaJ7nFoK4e0Ex7qAwM,14690
|
|
28
31
|
mx_bluesky/beamlines/i24/serial/fixed_target/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
29
32
|
mx_bluesky/beamlines/i24/serial/fixed_target/ft_utils.py,sha256=puO1vg0x-TPgv8FbEFg73ohJqbwDpcG50_2cLUTa2FA,1210
|
|
30
|
-
mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_Collect_py3v1.py,sha256=
|
|
31
|
-
mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_Manager_py3v1.py,sha256=
|
|
33
|
+
mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_Collect_py3v1.py,sha256=Ncr008eHFlr-xaF7yK7MVc-NhmjQqBgK36udX8pp82Q,26384
|
|
34
|
+
mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_Manager_py3v1.py,sha256=aQHcB0vVvbO9jWa3DKjYASl-CWd4gpBKRFK2xMJdZxA,32926
|
|
32
35
|
mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_StartUp_py3v1.py,sha256=Vokr_Gl_lpqcUwG18C2h8TYMmyTx1HmUSDd9zgR9-7M,3275
|
|
33
|
-
mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_moveonclick.py,sha256=
|
|
36
|
+
mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_moveonclick.py,sha256=QLg4wryENBeFfOYFaIgE9R12r2KvUuKIP9ZY8iyYibY,6582
|
|
34
37
|
mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/CustomChip_py3v1.edl,sha256=H9BVU1S3oy8tAVHtKvJvp7YTHA-4X-jtOtiu3jJ7of4,10348
|
|
35
38
|
mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/DetStage.edl,sha256=WBji5SaRQ5e0KFRgrPuv6IgaFxkal1jh7MZW8SqQN88,2016
|
|
36
39
|
mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/DiamondChipI24-py3v1.edl,sha256=-O_kRA5-m741Mja8OXQlGJWrRu9uBUkTvJ_uqUBjuFY,56616
|
|
@@ -53,108 +56,114 @@ mx_bluesky/beamlines/i24/serial/parameters/fixed_target/pvar_files/minichip-oxfo
|
|
|
53
56
|
mx_bluesky/beamlines/i24/serial/parameters/fixed_target/pvar_files/oxford.pvar,sha256=pZbFOEiN_S5yiTEtqdNHmTMtnQY-W2ImXVBYCovPCx0,1842
|
|
54
57
|
mx_bluesky/beamlines/i24/serial/setup_beamline/__init__.py,sha256=UhBdMcPdJMzwV0d8DKOBzvYNd6TDSwcP9GJVqfGa7Jc,261
|
|
55
58
|
mx_bluesky/beamlines/i24/serial/setup_beamline/ca.py,sha256=H2gPmsLheYReFlGPFa5zzWbnyqdWbCmgKiAwcpVoYfk,1516
|
|
56
|
-
mx_bluesky/beamlines/i24/serial/setup_beamline/pv.py,sha256=
|
|
59
|
+
mx_bluesky/beamlines/i24/serial/setup_beamline/pv.py,sha256=YSJnx-o562Lh9zYkQfYCPL7cJxcc_7Ypp6XrFodoJqw,15639
|
|
57
60
|
mx_bluesky/beamlines/i24/serial/setup_beamline/pv_abstract.py,sha256=WbD5ghgTG0F3-MR0XYm4nkiKYswVP5a2COYx_k_cngE,1806
|
|
58
|
-
mx_bluesky/beamlines/i24/serial/setup_beamline/setup_beamline.py,sha256=
|
|
59
|
-
mx_bluesky/beamlines/i24/serial/setup_beamline/setup_detector.py,sha256=
|
|
60
|
-
mx_bluesky/beamlines/i24/serial/setup_beamline/setup_zebra_plans.py,sha256=
|
|
61
|
+
mx_bluesky/beamlines/i24/serial/setup_beamline/setup_beamline.py,sha256=Yx99IzxIpm556GXei5IOWCeSSzD4oQK-G0_mvCTYjlI,21251
|
|
62
|
+
mx_bluesky/beamlines/i24/serial/setup_beamline/setup_detector.py,sha256=l8GCfAQYs_sMeFYgBuT10f8WFuJVr8q8CTmONNDBrpY,3171
|
|
63
|
+
mx_bluesky/beamlines/i24/serial/setup_beamline/setup_zebra_plans.py,sha256=oRNZLA2uxiRM5eheAuRMM5eT0Oxe1YHqg59BHys3sXY,17970
|
|
61
64
|
mx_bluesky/beamlines/i24/serial/web_gui_plans/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
62
65
|
mx_bluesky/beamlines/i24/serial/web_gui_plans/general_plans.py,sha256=R1VwqqhPAfG0C8DtIu1ymPpWqJBxYdoWSc0lAdqi1Tk,3538
|
|
63
66
|
mx_bluesky/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
64
67
|
mx_bluesky/common/xrc_result.py,sha256=J1uB9Bujz_Sq_MwvYdWOZL3c6kX09TSaZW3eetRXBpw,2351
|
|
65
68
|
mx_bluesky/common/device_setup_plans/setup_panda.py,sha256=OF-ZygZyAyQEUdrAWiIxWZ6QhAsVx4Mm9ngRYB1mzKI,433
|
|
69
|
+
mx_bluesky/common/device_setup_plans/xbpm_feedback.py,sha256=WsUMdeOZBgbj-bFp7x66aHp2oWffQmjyp61-qmtQAmI,2153
|
|
66
70
|
mx_bluesky/common/external_interaction/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
67
71
|
mx_bluesky/common/external_interaction/config_server.py,sha256=EmvLfOkvoJlnKa0sffAKNICkY26YsQQqY9sYHKmOGzw,2441
|
|
68
72
|
mx_bluesky/common/external_interaction/test_config_server.py,sha256=4wdYsOpXJfc3yNBZvdcjZGSllOHzKBTB8oYFjjSOufU,960
|
|
69
73
|
mx_bluesky/common/external_interaction/callbacks/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
70
74
|
mx_bluesky/common/external_interaction/callbacks/common/abstract_event.py,sha256=iBj4WNK5ikieZzTePBZ9AEu6ehlnpew1nDK3ONJqibI,2093
|
|
71
|
-
mx_bluesky/common/external_interaction/callbacks/common/aperture_change_callback.py,sha256=vrURLPOri400hQcNPyHomXBBapZ_FTRa_axvZpxmMCQ,841
|
|
72
75
|
mx_bluesky/common/external_interaction/callbacks/common/grid_detection_callback.py,sha256=JmF5FssUqNPgsnxqrgxB9Pmw5Dd7W6GCPb9Mur8DHCo,4017
|
|
73
|
-
mx_bluesky/common/external_interaction/callbacks/common/ispyb_callback_base.py,sha256=
|
|
74
|
-
mx_bluesky/common/external_interaction/callbacks/common/ispyb_mapping.py,sha256=
|
|
76
|
+
mx_bluesky/common/external_interaction/callbacks/common/ispyb_callback_base.py,sha256=8uvPwDNSk8gBQq0aRd5To0jFSyxeKkFhFbBjy_LBviE,9821
|
|
77
|
+
mx_bluesky/common/external_interaction/callbacks/common/ispyb_mapping.py,sha256=bHtnDZfxIR5zzSRiBSehZ51y42wzkEcCJ7rFg93aONA,2578
|
|
75
78
|
mx_bluesky/common/external_interaction/callbacks/common/log_uid_tag_callback.py,sha256=pfZxQfS9SnXep3F2YAPptDX5bjjWvbXtgy5fINfsoTU,626
|
|
76
79
|
mx_bluesky/common/external_interaction/callbacks/common/logging_callback.py,sha256=NHb8Gp86TAk6PRTV3inWrlW-Lj96LmnZda7ZGewlrFA,712
|
|
77
80
|
mx_bluesky/common/external_interaction/callbacks/common/plan_reactive_callback.py,sha256=3TYQXibOWIKnvM2PMTIjE2IOoX2Jkt9b2KpDCytQtYE,4088
|
|
78
|
-
mx_bluesky/common/external_interaction/callbacks/common/zocalo_callback.py,sha256=
|
|
81
|
+
mx_bluesky/common/external_interaction/callbacks/common/zocalo_callback.py,sha256=5Sjl2VU57huKkNtEExvypoSVb0I8nVItIJ4vH1vrp48,3930
|
|
82
|
+
mx_bluesky/common/external_interaction/callbacks/sample_handling/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
83
|
+
mx_bluesky/common/external_interaction/callbacks/sample_handling/sample_handling_callback.py,sha256=niZ7CG1vqbp0MUjRfchevmLwJMg-puMz4i_HDPQavI0,2880
|
|
79
84
|
mx_bluesky/common/external_interaction/callbacks/xray_centre/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
80
|
-
mx_bluesky/common/external_interaction/callbacks/xray_centre/ispyb_callback.py,sha256=
|
|
85
|
+
mx_bluesky/common/external_interaction/callbacks/xray_centre/ispyb_callback.py,sha256=7GzE5u1dd5vhl_LS9ud5B7XapofIcf_yicb7vtZT1A0,13938
|
|
81
86
|
mx_bluesky/common/external_interaction/callbacks/xray_centre/ispyb_mapping.py,sha256=fOYJkqaXEfCdLGQwGhTrzfGOj6Ed3t2wcRgv68DOOHc,1790
|
|
82
|
-
mx_bluesky/common/external_interaction/callbacks/xray_centre/nexus_callback.py,sha256=
|
|
87
|
+
mx_bluesky/common/external_interaction/callbacks/xray_centre/nexus_callback.py,sha256=64ZA2ACcq8mI9tKG1MMTf46PYdb_B-sul8xQGM56_WA,4709
|
|
83
88
|
mx_bluesky/common/external_interaction/ispyb/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
84
|
-
mx_bluesky/common/external_interaction/ispyb/data_model.py,sha256=
|
|
89
|
+
mx_bluesky/common/external_interaction/ispyb/data_model.py,sha256=HJZPT_j5EMK7-j-0tdaugiS3kDp44_jzvVoP-xcFCsA,2738
|
|
85
90
|
mx_bluesky/common/external_interaction/ispyb/exp_eye_store.py,sha256=Y3nZV5NZ-XnYThettFMhZin4dQb5jAZfT2mGmtLlv74,6076
|
|
86
|
-
mx_bluesky/common/external_interaction/ispyb/ispyb_store.py,sha256=
|
|
91
|
+
mx_bluesky/common/external_interaction/ispyb/ispyb_store.py,sha256=7dQ7BVL_dwQ6UTRivBo9bzvziJeyNFzIIUatSsweres,11070
|
|
87
92
|
mx_bluesky/common/external_interaction/ispyb/ispyb_utils.py,sha256=Kv0JQVaT8z9Qzt6L1NJEx0U7ZYD6NeyBGF1_wGcI1Dc,728
|
|
88
93
|
mx_bluesky/common/external_interaction/nexus/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
89
|
-
mx_bluesky/common/external_interaction/nexus/nexus_utils.py,sha256=
|
|
94
|
+
mx_bluesky/common/external_interaction/nexus/nexus_utils.py,sha256=UmBlTi9zvSV_MxcDV74yJ5Y4oIDHDanCtBjX6_SEf94,5589
|
|
90
95
|
mx_bluesky/common/external_interaction/nexus/write_nexus.py,sha256=tIz9PFFSiaUs1olbMtLGHddTLj132rEuFSWBK9rOM6Y,4087
|
|
91
96
|
mx_bluesky/common/parameters/components.py,sha256=Ru76EFT2wG4oPeJge6lVwq1vCHYd7T0EFuqp13EoJk4,7299
|
|
92
|
-
mx_bluesky/common/parameters/constants.py,sha256=
|
|
93
|
-
mx_bluesky/common/parameters/gridscan.py,sha256=
|
|
97
|
+
mx_bluesky/common/parameters/constants.py,sha256=S3Y4uwOn18skz5y_WTI8naP-rE80CKG03aGZM2IC9js,4684
|
|
98
|
+
mx_bluesky/common/parameters/gridscan.py,sha256=a-jR6EuxEOj9ddRv5NvPQvC5rwPpY3b3_T78d2NvVtI,6993
|
|
94
99
|
mx_bluesky/common/plans/__init__.py,sha256=FMA-4VN1TJCPcyURKF0qPIQ8uo8YBbtHPRdJokVF4MA,129
|
|
95
100
|
mx_bluesky/common/plans/do_fgs.py,sha256=6aFWvQAuDgBfySzKgt567U_aoDYhAxfUhEDpn3wMjSQ,4775
|
|
96
101
|
mx_bluesky/common/plans/read_hardware.py,sha256=s3Mz11wQOnzO4i4BvV6yWzpDvtQtjZnY-clENH7CVQU,2332
|
|
102
|
+
mx_bluesky/common/plans/write_sample_status.py,sha256=pmS4Lsndp90CCIKzD_wssvbzt1qu7rEzfXgxvDwDrQ8,1313
|
|
103
|
+
mx_bluesky/common/preprocessors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
104
|
+
mx_bluesky/common/preprocessors/preprocessors.py,sha256=BNpSM7S9gxhVbG39rjH14k89sOmKiII0cqApH3pF_H0,4476
|
|
105
|
+
mx_bluesky/common/protocols/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
106
|
+
mx_bluesky/common/protocols/protocols.py,sha256=I-Yd1AFDarfTe14fMgv0VONEJ-9K-5IwDAItNWZPZ90,298
|
|
97
107
|
mx_bluesky/common/utils/context.py,sha256=Fe_YSNv3ZEIZvpdWs-9UqiG6-xEEdCpK6oMYYdCSYT8,2198
|
|
98
108
|
mx_bluesky/common/utils/exceptions.py,sha256=aB_26oowu7gvoaWWKpiBEllrvtGG-Hd6HLsE86mQgKI,2153
|
|
99
109
|
mx_bluesky/common/utils/log.py,sha256=ZgFZu6zSutGD5A0FDp_n9M0rJ6gU1FuZCmD-r5suchY,3913
|
|
100
110
|
mx_bluesky/common/utils/tracing.py,sha256=stnBZIvPuKiAm2wVc8lFr3ns7V5C52rUigULi9V-IFs,1171
|
|
101
111
|
mx_bluesky/common/utils/utils.py,sha256=q2uCaK1E8zLVk1BFmj7qlTnQf3JRKjCjyadIVnL1-4M,1180
|
|
102
112
|
mx_bluesky/hyperion/__init__.py,sha256=f4E8wInL1Ll4eeFtAiyKmipOBTPlUtKmVK-m_LOQG4M,35
|
|
103
|
-
mx_bluesky/hyperion/__main__.py,sha256=
|
|
113
|
+
mx_bluesky/hyperion/__main__.py,sha256=3Gl9MGw4SW1Gaoz9ckhwk2Vv5xzDM142OGri1jA8l9E,12009
|
|
114
|
+
mx_bluesky/hyperion/baton_handler.py,sha256=rYAizzWeO-OYlU5N1nE5tX5eZUhw83D7Mh2jC9DvSEU,3238
|
|
104
115
|
mx_bluesky/hyperion/device_setup_plans/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
105
116
|
mx_bluesky/hyperion/device_setup_plans/check_beamstop.py,sha256=PG2AXIB_z7U0glz9MTHkapaokMgrHyYSoKYSIGaRgLE,844
|
|
106
117
|
mx_bluesky/hyperion/device_setup_plans/dcm_pitch_roll_mirror_adjuster.py,sha256=68L4Fd8nvvH_VeQJfOYK_3WLrlKRt09TRsaA9T2uqU0,4703
|
|
107
118
|
mx_bluesky/hyperion/device_setup_plans/manipulate_sample.py,sha256=fuNRH8slknuZ0iNVv2htiuDozc9LzvxUrWuwYQTtLt8,3293
|
|
108
119
|
mx_bluesky/hyperion/device_setup_plans/position_detector.py,sha256=S49ml0KNZ6wXPQqOxNJ2whKTCyRTcKdBXBhyeEyFDQQ,635
|
|
109
120
|
mx_bluesky/hyperion/device_setup_plans/setup_oav.py,sha256=jVbDCSKDXxJXPfr-dR6dQgKLPmh7pzewj8gH9y-psy8,2564
|
|
110
|
-
mx_bluesky/hyperion/device_setup_plans/setup_panda.py,sha256=
|
|
121
|
+
mx_bluesky/hyperion/device_setup_plans/setup_panda.py,sha256=96eFp4acQLOthe1PA-S14uv635uGVP71DpP7qy_uo40,8509
|
|
111
122
|
mx_bluesky/hyperion/device_setup_plans/setup_zebra.py,sha256=q4KRAufuUi-G6xGKYLhmxhLr8EcTu08HMBca5OpigxM,10177
|
|
112
123
|
mx_bluesky/hyperion/device_setup_plans/smargon.py,sha256=Zzej-9uBVTzZuB4lv9QRiHeJKq_3-lnXOhCqZZIZV-o,789
|
|
113
124
|
mx_bluesky/hyperion/device_setup_plans/utils.py,sha256=Hdw_tocY6scVaVc2jlsNG-W4vS0LCbEKF8g5kDRuAeQ,2216
|
|
114
|
-
mx_bluesky/hyperion/
|
|
115
|
-
mx_bluesky/hyperion/experiment_plans/
|
|
116
|
-
mx_bluesky/hyperion/experiment_plans/
|
|
117
|
-
mx_bluesky/hyperion/experiment_plans/
|
|
118
|
-
mx_bluesky/hyperion/experiment_plans/flyscan_xray_centre_plan.py,sha256=h6HFfFAxNgWzc-cH2oax_LqWHF7DpLmmx8La0qYK1bA,17213
|
|
125
|
+
mx_bluesky/hyperion/experiment_plans/__init__.py,sha256=3fNT6-LpOen_sfYv95FkMiuHiCuVaSOBx7BMBHXkYoE,942
|
|
126
|
+
mx_bluesky/hyperion/experiment_plans/change_aperture_then_move_plan.py,sha256=vWPhmm3p3jmVfkpasFQYZNYCgyyVYx5Xi-8aHn56w0c,3023
|
|
127
|
+
mx_bluesky/hyperion/experiment_plans/experiment_registry.py,sha256=aSpo7pWQ1X_Y0a42TYv8LmJ8DNzvX5u5y0V2549MZCw,2096
|
|
128
|
+
mx_bluesky/hyperion/experiment_plans/flyscan_xray_centre_plan.py,sha256=AuRn-ti0T5XNwHPDYzsiJBbLZutUvYDbiikwwY-ONNs,17278
|
|
119
129
|
mx_bluesky/hyperion/experiment_plans/grid_detect_then_xray_centre_plan.py,sha256=MuYjeY0JVK6lE4w0b45tJthVi9_AkQDWFB0XfEu84Ps,8524
|
|
120
|
-
mx_bluesky/hyperion/experiment_plans/load_centre_collect_full_plan.py,sha256=
|
|
130
|
+
mx_bluesky/hyperion/experiment_plans/load_centre_collect_full_plan.py,sha256=VSTZZBw6Bo8nh4qEFknXYeKa11oHF0lUjcSIOY2196g,4793
|
|
121
131
|
mx_bluesky/hyperion/experiment_plans/oav_grid_detection_plan.py,sha256=PRwV04KuvefTm4mV4iE-hB3lLb5LAmJshYKfMnLE-k0,6950
|
|
122
|
-
mx_bluesky/hyperion/experiment_plans/oav_snapshot_plan.py,sha256=
|
|
132
|
+
mx_bluesky/hyperion/experiment_plans/oav_snapshot_plan.py,sha256=DAQZzyw8-yNsUpVWlXFFOtoyUVEh8EskmyBgdSTExqU,2748
|
|
123
133
|
mx_bluesky/hyperion/experiment_plans/optimise_attenuation_plan.py,sha256=5ZAH17F5T1YyVgA2ML0NEf4ufrD1G0jPRU0_5pINdTg,16195
|
|
124
134
|
mx_bluesky/hyperion/experiment_plans/pin_centre_then_xray_centre_plan.py,sha256=MT1uuxF6g4BGrdKV3MAYO91VLaiBP7VMGdYtx1wyaJA,5006
|
|
125
|
-
mx_bluesky/hyperion/experiment_plans/pin_tip_centring_plan.py,sha256=
|
|
135
|
+
mx_bluesky/hyperion/experiment_plans/pin_tip_centring_plan.py,sha256=AF7B84s0QGUoSKxPvpU0pBW8xt30qg_LN9gWq3nE2J0,6249
|
|
126
136
|
mx_bluesky/hyperion/experiment_plans/robot_load_and_change_energy.py,sha256=vHAm3AdDaTNeDZ3zc-z6pP1bYXl7c5WImsTI5hutofQ,7917
|
|
127
|
-
mx_bluesky/hyperion/experiment_plans/robot_load_then_centre_plan.py,sha256=
|
|
128
|
-
mx_bluesky/hyperion/experiment_plans/rotation_scan_plan.py,sha256=
|
|
129
|
-
mx_bluesky/hyperion/experiment_plans/set_energy_plan.py,sha256=
|
|
137
|
+
mx_bluesky/hyperion/experiment_plans/robot_load_then_centre_plan.py,sha256=fwaDoKvFN0gRIAiR1XxD0xqpHIVLAfoX561cEuBFiWk,6731
|
|
138
|
+
mx_bluesky/hyperion/experiment_plans/rotation_scan_plan.py,sha256=y0HnhKRMweFwkt9wpJ4Dd4rMIqugAG_i-b_MShcQ6Dc,17260
|
|
139
|
+
mx_bluesky/hyperion/experiment_plans/set_energy_plan.py,sha256=aYgutFhMQjcB_q02t-TXkWLkBCS8BeBIwqBdMNEHYVE,2635
|
|
130
140
|
mx_bluesky/hyperion/external_interaction/__init__.py,sha256=95DwXDmKsx36RgAL-AtLZl2LQoLPKbzeYdlkkP_4Coc,559
|
|
131
|
-
mx_bluesky/hyperion/external_interaction/agamemnon.py,sha256=
|
|
141
|
+
mx_bluesky/hyperion/external_interaction/agamemnon.py,sha256=Y7v5MASzZ6pNgSVSfDzc_bl_ErmWQyFhQW6uEfO6YnU,9418
|
|
132
142
|
mx_bluesky/hyperion/external_interaction/config_server.py,sha256=ZI9QCyWLPKzV3stEpXrg7T2IyRb8Y3dd6LWI30tYvqw,1825
|
|
133
143
|
mx_bluesky/hyperion/external_interaction/callbacks/__init__.py,sha256=1XHaxDljMveu_DYIlk7n963gHffyC6r4C_RhF6HA-N8,283
|
|
134
|
-
mx_bluesky/hyperion/external_interaction/callbacks/__main__.py,sha256=
|
|
144
|
+
mx_bluesky/hyperion/external_interaction/callbacks/__main__.py,sha256=Xvhr_h8-net89376qZbHmonIOP_U6y7N_Aw7-srVScc,6106
|
|
145
|
+
mx_bluesky/hyperion/external_interaction/callbacks/snapshot_callback.py,sha256=zJ13Clnvb4Ef-3qpg5U58tXpPc6oAmbC3hLWdrQhDPQ,4758
|
|
135
146
|
mx_bluesky/hyperion/external_interaction/callbacks/robot_load/ispyb_callback.py,sha256=7xSvCd95tXjvmsbFLecI1hEwJj_rm8yGuJJ1Pmg-RKU,4142
|
|
136
147
|
mx_bluesky/hyperion/external_interaction/callbacks/rotation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
137
148
|
mx_bluesky/hyperion/external_interaction/callbacks/rotation/ispyb_callback.py,sha256=eFKpDEJaH6zluhNZZkrWOW0BRIjj-Bs2xiGbun7pnSs,7442
|
|
138
149
|
mx_bluesky/hyperion/external_interaction/callbacks/rotation/ispyb_mapping.py,sha256=yz2Z_P6qH2DGlSXCi36E3Xwv7mVVcvYzqQc0NqwW4DI,716
|
|
139
150
|
mx_bluesky/hyperion/external_interaction/callbacks/rotation/nexus_callback.py,sha256=w86HvDMznS1wBH3mLYJMe2TgX8SghTYR4G6dajho3Pk,4724
|
|
140
|
-
mx_bluesky/hyperion/external_interaction/callbacks/sample_handling/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
141
|
-
mx_bluesky/hyperion/external_interaction/callbacks/sample_handling/sample_handling_callback.py,sha256=RDjcQFVEk7o5ybyQOK5sCz6XVz6V3cDELgSu_WsnIbM,2366
|
|
142
151
|
mx_bluesky/hyperion/parameters/__init__.py,sha256=kf2wfcILBUBpT0tJ8-W39BywQUkn67yxl9IVsfrr1LE,115
|
|
143
152
|
mx_bluesky/hyperion/parameters/cli.py,sha256=tw8u-_THJ69_Rn8IzeEWjwfUJO8VsTKKqz9K0iZHls0,1796
|
|
144
153
|
mx_bluesky/hyperion/parameters/components.py,sha256=uXxdW6nIE1VZnh4ZXe5O-LOwsx4MbENEWfLGm2ACvsI,313
|
|
145
154
|
mx_bluesky/hyperion/parameters/constants.py,sha256=9divI1XYUDsGq3HGm2ehq1yGGOD7tUf66xWvhVxEpB0,1982
|
|
146
155
|
mx_bluesky/hyperion/parameters/device_composites.py,sha256=iBm3qNFBG8dmVW4BPAwnhdi-HvpJ-6AuM1ZZceUembE,1645
|
|
147
|
-
mx_bluesky/hyperion/parameters/gridscan.py,sha256
|
|
156
|
+
mx_bluesky/hyperion/parameters/gridscan.py,sha256=G49cDDRRh9HWVY8N71K6GWjKkHU04hNse0Mhe-1vsSQ,6018
|
|
148
157
|
mx_bluesky/hyperion/parameters/load_centre_collect.py,sha256=khLBCSeafuw0dNrvDTvKv4GrlBo1LXJZ87NTI1A92jw,3693
|
|
149
158
|
mx_bluesky/hyperion/parameters/robot_load.py,sha256=DSOwIosO629WoXbVFokEjmgqKZz3xzv0feRQHC_ZgpI,1233
|
|
150
|
-
mx_bluesky/hyperion/parameters/rotation.py,sha256=
|
|
159
|
+
mx_bluesky/hyperion/parameters/rotation.py,sha256=5OVstRvUMf4X9QqcyTZc5GaYNsaVuU1W3Y36uop38co,7520
|
|
151
160
|
mx_bluesky/hyperion/resources/panda/panda-gridscan.yaml,sha256=mhLBJTSjHCkM9F6mjtqbhNmmrV8qSctbCUfhb0q7pYo,28085
|
|
152
161
|
mx_bluesky/hyperion/utils/__init__.py,sha256=f4E8wInL1Ll4eeFtAiyKmipOBTPlUtKmVK-m_LOQG4M,35
|
|
153
162
|
mx_bluesky/hyperion/utils/context.py,sha256=JztC2qhd8ChAGYNUltJnuld_r2zYA37J3LiwxRE3dxQ,604
|
|
154
163
|
mx_bluesky/hyperion/utils/validation.py,sha256=a23OeppZcEMWDffbCk8UFlOk26jS9i9IhTWPkQhP28s,6743
|
|
155
|
-
mx_bluesky-1.4.
|
|
156
|
-
mx_bluesky-1.4.
|
|
157
|
-
mx_bluesky-1.4.
|
|
158
|
-
mx_bluesky-1.4.
|
|
159
|
-
mx_bluesky-1.4.
|
|
160
|
-
mx_bluesky-1.4.
|
|
164
|
+
mx_bluesky-1.4.7.dist-info/licenses/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
|
|
165
|
+
mx_bluesky-1.4.7.dist-info/METADATA,sha256=h1Y0Q0e_XKcYDaeGkj6wzyspW4TnTd3lf188W2Ja-_g,17304
|
|
166
|
+
mx_bluesky-1.4.7.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
|
|
167
|
+
mx_bluesky-1.4.7.dist-info/entry_points.txt,sha256=-hM2jXf6TAwgqnUHaEVx02j7sdB0L_WaeHW_tIRuj6o,600
|
|
168
|
+
mx_bluesky-1.4.7.dist-info/top_level.txt,sha256=S4rrzXIUef58ulf_04wn01XGZ3xeJjXs4LPEJ_xoF-I,11
|
|
169
|
+
mx_bluesky-1.4.7.dist-info/RECORD,,
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
from bluesky.callbacks import CallbackBase
|
|
2
|
-
from event_model.documents.run_start import RunStart
|
|
3
|
-
|
|
4
|
-
from mx_bluesky.common.utils.log import LOGGER
|
|
5
|
-
|
|
6
|
-
from .logging_callback import format_doc_for_log
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
class ApertureChangeCallback(CallbackBase):
|
|
10
|
-
"""A callback that's used to send the selected aperture back to GDA"""
|
|
11
|
-
|
|
12
|
-
def __init__(self, *args, **kwargs) -> None:
|
|
13
|
-
super().__init__(*args, **kwargs)
|
|
14
|
-
self.last_selected_aperture: str = "NONE"
|
|
15
|
-
|
|
16
|
-
def start(self, doc: RunStart):
|
|
17
|
-
if doc.get("subplan_name") == "change_aperture":
|
|
18
|
-
LOGGER.debug(f"START: {format_doc_for_log(doc)}")
|
|
19
|
-
ap_size = doc.get("aperture_size")
|
|
20
|
-
assert isinstance(ap_size, str)
|
|
21
|
-
LOGGER.info(f"Updating most recent in-plan aperture change to {ap_size}.")
|
|
22
|
-
self.last_selected_aperture = ap_size
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
from bluesky import plan_stubs as bps
|
|
2
|
-
from bluesky.preprocessors import finalize_wrapper
|
|
3
|
-
from bluesky.utils import make_decorator
|
|
4
|
-
from dodal.devices.attenuator.attenuator import BinaryFilterAttenuator
|
|
5
|
-
from dodal.devices.dcm import DCM
|
|
6
|
-
from dodal.devices.undulator import Undulator
|
|
7
|
-
from dodal.devices.xbpm_feedback import Pause, XBPMFeedback
|
|
8
|
-
|
|
9
|
-
from mx_bluesky.common.utils.log import LOGGER
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
def _check_and_pause_feedback(
|
|
13
|
-
xbpm_feedback: XBPMFeedback,
|
|
14
|
-
attenuator: BinaryFilterAttenuator,
|
|
15
|
-
desired_transmission_fraction: float,
|
|
16
|
-
):
|
|
17
|
-
"""Checks that the xbpm is in position before then turning it off and setting a new
|
|
18
|
-
transmission.
|
|
19
|
-
|
|
20
|
-
Args:
|
|
21
|
-
xbpm_feedback (XBPMFeedback): The XBPM device that is responsible for keeping
|
|
22
|
-
the beam in position
|
|
23
|
-
attenuator (BinaryFilterAttenuator): The attenuator used to set transmission
|
|
24
|
-
desired_transmission_fraction (float): The desired transmission to set after
|
|
25
|
-
turning XBPM feedback off.
|
|
26
|
-
|
|
27
|
-
"""
|
|
28
|
-
yield from bps.mv(attenuator, 1.0)
|
|
29
|
-
LOGGER.info("Waiting for XBPM feedback to be stable")
|
|
30
|
-
yield from bps.trigger(xbpm_feedback, wait=True)
|
|
31
|
-
LOGGER.info(
|
|
32
|
-
f"XPBM feedback in position, pausing and setting transmission to {desired_transmission_fraction}"
|
|
33
|
-
)
|
|
34
|
-
yield from bps.mv(xbpm_feedback.pause_feedback, Pause.PAUSE)
|
|
35
|
-
yield from bps.mv(attenuator, desired_transmission_fraction)
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
def _unpause_xbpm_feedback_and_set_transmission_to_1(
|
|
39
|
-
xbpm_feedback: XBPMFeedback, attenuator: BinaryFilterAttenuator
|
|
40
|
-
):
|
|
41
|
-
"""Turns the XBPM feedback back on and sets transmission to 1 so that it keeps the
|
|
42
|
-
beam aligned whilst not collecting.
|
|
43
|
-
|
|
44
|
-
Args:
|
|
45
|
-
xbpm_feedback (XBPMFeedback): The XBPM device that is responsible for keeping
|
|
46
|
-
the beam in position
|
|
47
|
-
attenuator (BinaryFilterAttenuator): The attenuator used to set transmission
|
|
48
|
-
"""
|
|
49
|
-
yield from bps.mv(xbpm_feedback.pause_feedback, Pause.RUN, attenuator, 1.0)
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
def transmission_and_xbpm_feedback_for_collection_wrapper(
|
|
53
|
-
plan,
|
|
54
|
-
undulator: Undulator,
|
|
55
|
-
xbpm_feedback: XBPMFeedback,
|
|
56
|
-
attenuator: BinaryFilterAttenuator,
|
|
57
|
-
dcm: DCM,
|
|
58
|
-
desired_transmission_fraction: float,
|
|
59
|
-
):
|
|
60
|
-
"""Sets the transmission for the data collection, ensuring the xbpm feedback is valid
|
|
61
|
-
this wrapper should be run around every data collection or movement that may disrupt
|
|
62
|
-
the XBPM feedback.
|
|
63
|
-
|
|
64
|
-
XBPM feedback isn't reliable during collections due to:
|
|
65
|
-
* Objects (e.g. attenuator) crossing the beam can cause large (incorrect) feedback movements
|
|
66
|
-
* Lower transmissions/higher energies are less reliable for the xbpm
|
|
67
|
-
|
|
68
|
-
So we need to keep the transmission at 100% and the feedback on when not collecting
|
|
69
|
-
and then turn it off and set the correct transmission for collection. The feedback
|
|
70
|
-
mostly accounts for slow thermal drift so it is safe to assume that the beam is
|
|
71
|
-
stable during a collection.
|
|
72
|
-
|
|
73
|
-
In the case of a beam dump, undulator gap may not return. Therefore, we check here
|
|
74
|
-
that the undulator gap is correct after XBPM is stable, and before collection.
|
|
75
|
-
|
|
76
|
-
Args:
|
|
77
|
-
plan: The plan performing the data collection
|
|
78
|
-
xbpm_feedback (XBPMFeedback): The XBPM device that is responsible for keeping
|
|
79
|
-
the beam in position
|
|
80
|
-
attenuator (BinaryFilterAttenuator): The attenuator used to set transmission
|
|
81
|
-
desired_transmission_fraction (float): The desired transmission for the collection
|
|
82
|
-
"""
|
|
83
|
-
|
|
84
|
-
def _inner_plan():
|
|
85
|
-
yield from _check_and_pause_feedback(
|
|
86
|
-
xbpm_feedback, attenuator, desired_transmission_fraction
|
|
87
|
-
)
|
|
88
|
-
# Verify Undulator gap is correct, as may not be after a beam dump
|
|
89
|
-
energy_in_kev = yield from bps.rd(dcm.energy_in_kev.user_readback)
|
|
90
|
-
yield from bps.abs_set(undulator, energy_in_kev, wait=True)
|
|
91
|
-
return (yield from plan)
|
|
92
|
-
|
|
93
|
-
return (
|
|
94
|
-
yield from finalize_wrapper(
|
|
95
|
-
_inner_plan(),
|
|
96
|
-
_unpause_xbpm_feedback_and_set_transmission_to_1(xbpm_feedback, attenuator),
|
|
97
|
-
)
|
|
98
|
-
)
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
transmission_and_xbpm_feedback_for_collection_decorator = make_decorator(
|
|
102
|
-
transmission_and_xbpm_feedback_for_collection_wrapper
|
|
103
|
-
)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|