Source code for genericroboticarm.robo_APIs.interactive_transfer

"""
An interface for robotic arm that implement the necessary utility to use the SiLA feature
LabTransferManipulatorController.
"""
from abc import ABC, abstractmethod
from typing import List, Tuple


[docs] class InteractiveTransfer(ABC): @property def available_intermediate_actions(self) -> List[str]: """ List of functionalities the arm can do together with put/get labware commands, like (un-)lidding, shaking reading barcode, etc. :return: """ return [] @property def available_handover_positions(self) -> List[Tuple[str, int]]: """ :return: """ return [] @property @abstractmethod def number_internal_positions(self) -> int: """ :return: """
[docs] @abstractmethod def put_labware(self, intermediate_actions: List[str], device: str, position: int): """ :param position: :param device: :param intermediate_actions: :return: """
[docs] @abstractmethod def get_labware(self, intermediate_actions: List[str], device: str, position: int): """ :param position: :param device: :param intermediate_actions: :return: """
[docs] @abstractmethod def prepare_for_output(self, internal_pos: int, device: str, position: int) -> bool: """ :param position: :param device: :param internal_pos: :return: """
[docs] @abstractmethod def prepare_for_input(self, internal_pos: int, device: str, position: int, plate_type: str) -> bool: """ :param plate_type: :param plate_type: :param position: :param device: :param internal_pos: :return: """
[docs] @abstractmethod def cancel_transfer(self): """ :return: """