Skip to content
This repository was archived by the owner on Sep 2, 2024. It is now read-only.

Commit 6ab36e0

Browse files
authored
Merge pull request #495 from DiamondLightSource/480_better_status_logging
480 better status logging
2 parents 44bc20d + 7912a9a commit 6ab36e0

File tree

3 files changed

+8
-15
lines changed

3 files changed

+8
-15
lines changed

src/artemis/devices/eiger.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
from enum import Enum
22
from typing import Optional
33

4-
from ophyd import Component, Device, EpicsSignalRO, StatusBase
4+
from ophyd import Component, Device, EpicsSignalRO
55
from ophyd.areadetector.cam import EigerDetectorCam
6-
from ophyd.status import Status
6+
from ophyd.status import AndStatus, Status, SubscriptionStatus
77

88
from artemis.devices.detector import DetectorParams
99
from artemis.devices.eiger_odin import EigerOdin
@@ -41,7 +41,7 @@ class EigerDetector(Device):
4141

4242
STALE_PARAMS_TIMEOUT = 60
4343

44-
filewriters_finished: StatusBase
44+
filewriters_finished: SubscriptionStatus
4545

4646
detector_params: Optional[DetectorParams] = None
4747

@@ -129,7 +129,7 @@ def change_roi_mode(self, enable: bool):
129129
if not status.success:
130130
self.log.error("Failed to switch to ROI mode")
131131

132-
def set_cam_pvs(self) -> Status:
132+
def set_cam_pvs(self) -> AndStatus:
133133
assert self.detector_params is not None
134134
status = self.cam.acquire_time.set(self.detector_params.exposure_time)
135135
status &= self.cam.acquire_period.set(self.detector_params.exposure_time)

src/artemis/devices/eiger_odin.py

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,8 @@
11
from typing import List, Tuple
22

3-
from ophyd import (
4-
Component,
5-
Device,
6-
EpicsSignal,
7-
EpicsSignalRO,
8-
EpicsSignalWithRBV,
9-
StatusBase,
10-
)
3+
from ophyd import Component, Device, EpicsSignal, EpicsSignalRO, EpicsSignalWithRBV
114
from ophyd.areadetector.plugins import HDF5Plugin_V22
5+
from ophyd.status import SubscriptionStatus
126

137
from artemis.devices.status import await_value
148

@@ -120,7 +114,7 @@ class EigerOdin(Device):
120114
meta: OdinMetaListener = Component(OdinMetaListener, "OD:META:")
121115
nodes: OdinNodesStatus = Component(OdinNodesStatus, "")
122116

123-
def create_finished_status(self) -> StatusBase:
117+
def create_finished_status(self) -> SubscriptionStatus:
124118
writing_finished = await_value(self.meta.ready, 0)
125119
for node_pv in self.nodes.nodes:
126120
writing_finished &= await_value(node_pv.writing, 0)

src/artemis/devices/status.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
from typing import Any, TypeVar
22

3-
from ophyd import StatusBase
43
from ophyd.status import SubscriptionStatus
54

65
T = TypeVar("T")
76

87

9-
def await_value(subscribable: Any, expected_value: T) -> StatusBase:
8+
def await_value(subscribable: Any, expected_value: T) -> SubscriptionStatus:
109
def value_is(value, **_):
1110
return value == expected_value
1211

0 commit comments

Comments
 (0)