Source code for pyobs.interfaces.IMultiFiber

from abc import ABCMeta, abstractmethod
from typing import Any

from .interface import Interface


class IMultiFiber(Interface, metaclass=ABCMeta):
    """An interface for multi-fiber setups that helps to set/get a fiber and retrieve position and size of the
    current fiber on the acquisition/guiding image."""

    __module__ = "pyobs.interfaces"

[docs] @abstractmethod async def abort(self, **kwargs: Any) -> None: """Abort current actions.""" ...
[docs] @abstractmethod async def get_fiber_count(self, **kwargs: Any) -> int: """Returns the number of available fibers in the setup. Returns: Number of fibers. """ ...
[docs] @abstractmethod async def list_fiber_names(self, **kwargs: Any) -> list[str]: """Returns the names of all available fibers. Returns: List of fiber names. """ ...
[docs] @abstractmethod async def get_fiber(self, **kwargs: Any) -> str: """Returns the name of the currently active fiber. Returns: Name of currently active fiber. """ ...
[docs] @abstractmethod async def set_fiber(self, fiber: str, **kwargs: Any) -> None: """Sets the currently active filter. Must be in list returned by @list_fiber_names. Args: fiber: Name of fiber to set. """ ...
[docs] @abstractmethod async def get_pixel_position(self, **kwargs: Any) -> tuple[float, float]: """Get pixel position of currently active fiber on acquisition/guiding image. Returns: x/y pixel position of fiber on image. """ ...
[docs] @abstractmethod async def get_radius(self, **kwargs: Any) -> float: """Get radius of currently active fiber on acquisition/guiding image. Returns: radius of fiber on image. """ ...
__all__ = ["IMultiFiber"]