Skip to content

Commit e340273

Browse files
committed
Camera: remove Camera.get_trigger_type method and TRIGGER_* constants (#197)
Cameras now have a `trigger_type` and `triger_mode` properties. The previous `get_trigger_type` method (which returns something different from the `trigger_type` propertye) was kept for temporary backwards compatibility and not break Cockpit. Cockpit now no longer makes use of `Camera.get_trigger_type` and so we can remove it from Microscope. This commit removes the Camera.get_trigger_type method as well as its implementation from all concrete implementations of Camera. It also removes the related microscope.abc.TRIGGER_* constants.
1 parent 6d2b380 commit e340273

File tree

8 files changed

+16
-76
lines changed

8 files changed

+16
-76
lines changed

NEWS.rst

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,15 @@ python-microscope releases.
44
Version 0.7.0 (upcoming)
55
------------------------
66

7+
* Selected most important, backwards incompatible, changes:
8+
9+
* The `Camera.get_trigger_type` method, deprecated on version 0.6.0,
10+
has been removed as well as the multiple `TRIGGER_*` constants it
11+
returned. Use the `Camera.trigger_type` and `Camera.trigger_mode`
12+
properties. Note that, despite the similar names, the removed
13+
`Camera.get_trigger_type` does not return the same as
14+
`Camera.trigger_type` property.
15+
716
* The device server logging was broken in version 0.6.0 for Windows
817
and macOS (systems not using fork for multiprocessing). This
918
version fixes that issue.

microscope/abc.py

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,6 @@
4242
_logger = logging.getLogger(__name__)
4343

4444

45-
# Trigger types.
46-
(TRIGGER_AFTER, TRIGGER_BEFORE, TRIGGER_DURATION, TRIGGER_SOFT) = range(4)
47-
4845
# Mapping of setting data types descriptors to allowed-value types.
4946
#
5047
# We use a descriptor for the type instead of the actual type because
@@ -993,16 +990,6 @@ def set_roi(self, roi: microscope.ROI) -> None:
993990
roi = microscope.ROI(left, top, width, height)
994991
return self._set_roi(roi)
995992

996-
def get_trigger_type(self):
997-
"""Return the current trigger mode.
998-
999-
One of
1000-
TRIGGER_AFTER,
1001-
TRIGGER_BEFORE or
1002-
TRIGGER_DURATION (bulb exposure.)
1003-
"""
1004-
pass
1005-
1006993

1007994
class SerialDeviceMixin(metaclass=abc.ABCMeta):
1008995
"""Mixin for devices that are controlled via serial.

microscope/cameras/andorsdk3.py

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -49,15 +49,6 @@
4949
# SDK data pointer type
5050
DPTR_TYPE = SDK3.POINTER(SDK3.AT_U8)
5151

52-
# Trigger mode to type.
53-
TRIGGER_MODES = {
54-
"internal": None,
55-
"external": microscope.abc.TRIGGER_BEFORE,
56-
"external start": None,
57-
"external exposure": microscope.abc.TRIGGER_DURATION,
58-
"software": microscope.abc.TRIGGER_SOFT,
59-
}
60-
6152
# Convert from SDK3 trigger mode names to Microscope trigger type and
6253
# mode.
6354
SDK3_STRING_TO_TRIGGER = {
@@ -577,10 +568,6 @@ def _get_sensor_shape(self):
577568
self._sensor_height.get_value(),
578569
)
579570

580-
def get_trigger_type(self):
581-
# deprecated, use trigger_mode and trigger_type properties
582-
return TRIGGER_MODES[self._trigger_mode.get_string().lower()]
583-
584571
def soft_trigger(self):
585572
# deprecated, use triger()
586573
return self._software_trigger()

microscope/cameras/atmcd.py

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1748,19 +1748,6 @@ def _get_sensor_temperature(self):
17481748
with self:
17491749
return GetTemperature()[1]
17501750

1751-
def get_trigger_type(self):
1752-
"""Return the microscope.devices trigger type.
1753-
1754-
deprecated, use trigger_mode and trigger_type properties.
1755-
"""
1756-
trig = self.get_setting("TriggerMode")
1757-
if trig == TriggerMode.BULB:
1758-
return microscope.abc.TRIGGER_DURATION
1759-
elif trig == TriggerMode.SOFTWARE:
1760-
return microscope.abc.TRIGGER_SOFT
1761-
else:
1762-
return microscope.abc.TRIGGER_BEFORE
1763-
17641751
def soft_trigger(self):
17651752
"""Send a software trigger signal.
17661753

microscope/cameras/pvcam.py

Lines changed: 7 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1116,10 +1116,9 @@ def get_param_dtype(param_id):
11161116
class TriggerMode:
11171117
"""A microscope trigger mode using PVCAM PMODES."""
11181118

1119-
def __init__(self, label, pv_mode, microscope_mode):
1119+
def __init__(self, label, pv_mode):
11201120
self.label = label
11211121
self.pv_mode = pv_mode
1122-
self.microscope_mode = microscope_mode
11231122

11241123
def __repr__(self):
11251124
return "<%s: '%s'>" % (type(self).__name__, self.label)
@@ -1137,18 +1136,12 @@ def __repr__(self):
11371136

11381137
# Trigger mode definitions.
11391138
TRIGGER_MODES = {
1140-
TRIG_SOFT: TriggerMode(
1141-
"software", TIMED_MODE, microscope.abc.TRIGGER_SOFT
1142-
),
1143-
TRIG_TIMED: TriggerMode("timed", TIMED_MODE, -1),
1144-
TRIG_VARIABLE: TriggerMode("variable timed", VARIABLE_TIMED_MODE, -1),
1145-
TRIG_FIRST: TriggerMode(
1146-
"trig. first", TRIGGER_FIRST_MODE, microscope.abc.TRIGGER_BEFORE,
1147-
),
1148-
TRIG_STROBED: TriggerMode(
1149-
"strobed", STROBED_MODE, microscope.abc.TRIGGER_BEFORE
1150-
),
1151-
TRIG_BULB: TriggerMode("bulb", BULB_MODE, microscope.abc.TRIGGER_DURATION),
1139+
TRIG_SOFT: TriggerMode("software", TIMED_MODE),
1140+
TRIG_TIMED: TriggerMode("timed", TIMED_MODE),
1141+
TRIG_VARIABLE: TriggerMode("variable timed", VARIABLE_TIMED_MODE),
1142+
TRIG_FIRST: TriggerMode("trig. first", TRIGGER_FIRST_MODE),
1143+
TRIG_STROBED: TriggerMode("strobed", STROBED_MODE),
1144+
TRIG_BULB: TriggerMode("bulb", BULB_MODE),
11521145
}
11531146

11541147
PV_MODE_TO_TRIGGER = {
@@ -1817,13 +1810,6 @@ def get_cycle_time(self):
18171810
value during _do_enable."""
18181811
return self.cycle_time
18191812

1820-
def get_trigger_type(self):
1821-
"""Return the current trigger type.
1822-
1823-
Deprecated, get the trigger_mode and trigger_type property.
1824-
"""
1825-
return TRIGGER_MODES[self._trigger].microscope_mode
1826-
18271813
@Pyro4.oneway
18281814
def soft_trigger(self):
18291815
"""Expose software triggering to a client.

microscope/cameras/ximea.py

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -454,11 +454,3 @@ def set_trigger(
454454
# Changing trigger source requires stopping acquisition.
455455
with _disabled_camera(self):
456456
self._handle.set_trigger_source(trg_source.name)
457-
458-
def get_trigger_type(self) -> int:
459-
ttype_microscope_to_cockpit = {
460-
microscope.TriggerType.SOFTWARE: microscope.abc.TRIGGER_SOFT,
461-
microscope.TriggerType.RISING_EDGE: microscope.abc.TRIGGER_BEFORE,
462-
microscope.TriggerType.FALLING_EDGE: microscope.abc.TRIGGER_AFTER,
463-
}
464-
return ttype_microscope_to_cockpit[self.trigger_type]

microscope/devices.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,6 @@
2222

2323
from microscope import ROI, AxisLimits, Binning, TriggerMode, TriggerType
2424
from microscope.abc import (
25-
TRIGGER_AFTER,
26-
TRIGGER_BEFORE,
27-
TRIGGER_DURATION,
28-
TRIGGER_SOFT,
2925
Camera as CameraDevice,
3026
Controller as ControllerDevice,
3127
DataDevice,

microscope/simulators/__init__.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -280,10 +280,6 @@ def get_cycle_time(self):
280280
def _get_sensor_shape(self):
281281
return (512, 512)
282282

283-
def get_trigger_type(self):
284-
# deprecated, use trigger_type and trigger_mode properties
285-
return microscope.abc.TRIGGER_SOFT
286-
287283
def soft_trigger(self):
288284
# deprecated, use self.trigger()
289285
self.trigger()

0 commit comments

Comments
 (0)