Source code for pyobs.interfaces.IAutoFocus

from abc import ABCMeta, abstractmethod
from typing import Tuple, Any, Dict

from .IAbortable import IAbortable


class IAutoFocus(IAbortable, metaclass=ABCMeta):
    """The module can perform an auto-focus."""

    __module__ = "pyobs.interfaces"

[docs] @abstractmethod async def auto_focus(self, count: int, step: float, exposure_time: float, **kwargs: Any) -> Tuple[float, float]: """Perform an auto-focus series. This method performs an auto-focus series with "count" images on each side of the initial guess and the given step size. With count=3, step=1 and guess=10, this takes images at the following focus values: 7, 8, 9, 10, 11, 12, 13 Args: count: Number of images to take on each side of the initial guess. Should be an odd number. step: Step size. exposure_time: Exposure time for images. Returns: Tuple of obtained best focus value and its uncertainty. Raises: ValueError: If focus could not be obtained. """ ...
[docs] @abstractmethod async def auto_focus_status(self, **kwargs: Any) -> Dict[str, Any]: """Returns current status of auto focus. Returned dictionary contains a list of focus/fwhm pairs in X and Y direction. Returns: Dictionary with current status. """ ...
__all__ = ["IAutoFocus"]