Skip to content

Commit 953d977

Browse files
committed
Remove readout mode from Camera base class.
This commit removes the Camera.set_readout_mode method and the "readout mode" setting from the base class.
1 parent d6df97e commit 953d977

File tree

3 files changed

+15
-17
lines changed

3 files changed

+15
-17
lines changed

NEWS.rst

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,11 @@ Version 0.7.0 (upcoming)
1818
* The `Stage` ABC has a new method `may_move_on_enable` to hint
1919
whether calling `enable` will cause the stage to move.
2020

21+
* All cameras had a ``"readout mode"`` setting for most cameras only
22+
had a ``"default"`` value was available. This setting has been
23+
removed from the base class and is now only kept by cameras that
24+
actually make use of it, namely, ``PVCamera`` and ``AndorAtmcd``.
25+
2126
* New devices supported:
2227

2328
* Hamamatsu cameras (:class:`microscope.cameras.hamamatsu.HamamatsuCamera`)

microscope/abc.py

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -840,10 +840,6 @@ class Camera(TriggerTargetMixin, DataDevice):
840840

841841
def __init__(self, **kwargs) -> None:
842842
super().__init__(**kwargs)
843-
# A list of readout mode descriptions.
844-
self._readout_modes = ["default"]
845-
# The index of the current readout mode.
846-
self._readout_mode = 0
847843
# Transforms to apply to data (fliplr, flipud, rot90)
848844
# Transform to correct for readout order.
849845
self._readout_transform = (False, False, False)
@@ -859,13 +855,6 @@ def __init__(self, **kwargs) -> None:
859855
lambda index: self.set_transform(Camera.ALLOWED_TRANSFORMS[index]),
860856
Camera.ALLOWED_TRANSFORMS,
861857
)
862-
self.add_setting(
863-
"readout mode",
864-
"enum",
865-
lambda: self._readout_mode,
866-
self.set_readout_mode,
867-
lambda: self._readout_modes,
868-
)
869858
self.add_setting("roi", "tuple", self.get_roi, self.set_roi, None)
870859

871860
def _process_data(self, data):
@@ -885,10 +874,6 @@ def _process_data(self, data):
885874
}[flips](data)
886875
return super()._process_data(data)
887876

888-
def set_readout_mode(self, description):
889-
"""Set the readout mode and _readout_transform."""
890-
pass
891-
892877
def get_transform(self):
893878
"""Return the current transform without readout transform."""
894879
return self._client_transform

microscope/cameras/pvcam.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1777,6 +1777,7 @@ def _cb(event):
17771777
# Populate readout modes by iterating over readout ports and speed
17781778
# table entries.
17791779
ro_ports = self._params[PARAM_READOUT_PORT].values
1780+
self._readout_mode = 0 # The index of the current readout mode
17801781
self._readout_modes = []
17811782
self._readout_mode_parameters = []
17821783
for i, port in ro_ports.items():
@@ -1805,11 +1806,18 @@ def _cb(event):
18051806
{"port": i, "spdtab_index": j}
18061807
)
18071808
# Set to default mode.
1808-
self.set_readout_mode(0)
1809+
self._set_readout_mode(self._readout_mode)
1810+
self.add_setting(
1811+
"readout mode",
1812+
"enum",
1813+
lambda: self._readout_mode,
1814+
self._set_readout_mode,
1815+
lambda: self._readout_modes,
1816+
)
18091817
self._params[PARAM_CLEAR_MODE].set_value(CLEAR_PRE_EXPOSURE_POST_SEQ)
18101818

18111819
@microscope.abc.keep_acquiring
1812-
def set_readout_mode(self, index):
1820+
def _set_readout_mode(self, index):
18131821
"""Set the readout mode and transform."""
18141822
params = self._readout_mode_parameters[index]
18151823
self._params[PARAM_READOUT_PORT].set_value(params["port"])

0 commit comments

Comments
 (0)