Skip to content

Commit

Permalink
Remove readout mode from Camera base class.
Browse files Browse the repository at this point in the history
This commit removes the Camera.set_readout_mode method and the
"readout mode" setting from the base class.
  • Loading branch information
carandraug committed Jan 6, 2023
1 parent d6df97e commit 953d977
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 17 deletions.
5 changes: 5 additions & 0 deletions NEWS.rst
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,11 @@ Version 0.7.0 (upcoming)
* The `Stage` ABC has a new method `may_move_on_enable` to hint
whether calling `enable` will cause the stage to move.

* All cameras had a ``"readout mode"`` setting for most cameras only
had a ``"default"`` value was available. This setting has been
removed from the base class and is now only kept by cameras that
actually make use of it, namely, ``PVCamera`` and ``AndorAtmcd``.

* New devices supported:

* Hamamatsu cameras (:class:`microscope.cameras.hamamatsu.HamamatsuCamera`)
Expand Down
15 changes: 0 additions & 15 deletions microscope/abc.py
Original file line number Diff line number Diff line change
Expand Up @@ -840,10 +840,6 @@ class Camera(TriggerTargetMixin, DataDevice):

def __init__(self, **kwargs) -> None:
super().__init__(**kwargs)
# A list of readout mode descriptions.
self._readout_modes = ["default"]
# The index of the current readout mode.
self._readout_mode = 0
# Transforms to apply to data (fliplr, flipud, rot90)
# Transform to correct for readout order.
self._readout_transform = (False, False, False)
Expand All @@ -859,13 +855,6 @@ def __init__(self, **kwargs) -> None:
lambda index: self.set_transform(Camera.ALLOWED_TRANSFORMS[index]),
Camera.ALLOWED_TRANSFORMS,
)
self.add_setting(
"readout mode",
"enum",
lambda: self._readout_mode,
self.set_readout_mode,
lambda: self._readout_modes,
)
self.add_setting("roi", "tuple", self.get_roi, self.set_roi, None)

def _process_data(self, data):
Expand All @@ -885,10 +874,6 @@ def _process_data(self, data):
}[flips](data)
return super()._process_data(data)

def set_readout_mode(self, description):
"""Set the readout mode and _readout_transform."""
pass

def get_transform(self):
"""Return the current transform without readout transform."""
return self._client_transform
Expand Down
12 changes: 10 additions & 2 deletions microscope/cameras/pvcam.py
Original file line number Diff line number Diff line change
Expand Up @@ -1777,6 +1777,7 @@ def _cb(event):
# Populate readout modes by iterating over readout ports and speed
# table entries.
ro_ports = self._params[PARAM_READOUT_PORT].values
self._readout_mode = 0 # The index of the current readout mode
self._readout_modes = []
self._readout_mode_parameters = []
for i, port in ro_ports.items():
Expand Down Expand Up @@ -1805,11 +1806,18 @@ def _cb(event):
{"port": i, "spdtab_index": j}
)
# Set to default mode.
self.set_readout_mode(0)
self._set_readout_mode(self._readout_mode)
self.add_setting(
"readout mode",
"enum",
lambda: self._readout_mode,
self._set_readout_mode,
lambda: self._readout_modes,
)
self._params[PARAM_CLEAR_MODE].set_value(CLEAR_PRE_EXPOSURE_POST_SEQ)

@microscope.abc.keep_acquiring
def set_readout_mode(self, index):
def _set_readout_mode(self, index):
"""Set the readout mode and transform."""
params = self._readout_mode_parameters[index]
self._params[PARAM_READOUT_PORT].set_value(params["port"])
Expand Down

0 comments on commit 953d977

Please sign in to comment.