Source code for genericroboticarm.sila_server.generated.implicitinteractionservice.implicitinteractionservice_client

# Generated by sila2.code_generator; sila2.__version__: 0.12.2
# -----
# This class does not do anything useful at runtime. Its only purpose is to provide type annotations.
# Since sphinx does not support .pyi files (yet?), this is a .py file.
# -----

from __future__ import annotations

from typing import TYPE_CHECKING

if TYPE_CHECKING:

    from typing import Iterable, List, Optional

    from implicitinteractionservice_types import AddDevice_Responses, ConnectToDevice_Responses, RemoveDevice_Responses
    from sila2.client import ClientMetadataInstance, ClientUnobservableProperty


[docs] class ImplicitInteractionServiceClient: """ Feature to add implicit interaction with other devices for labware transfer. This feature allows to manage a set sila connectors specified by their sila server_name which must implement the LabwareTransferSiteController feature. When a MovePlate PickPlate or PlacePlate command from the RobotController feature of this connector is called and the specified site (, i.e., the parameter Site.device) is in the set of for implicit interaction the corresponding methods (PrepareForInput, PrepareForOutput, LabwarePlaced and LabwareRemoved) are automatically called before/after picking/placing labware. The robot automatically connects to listed devices via SiLA discovery and will not move labware to/from a listed device if so connection can be established. """ CurrentDeviceSet: ClientUnobservableProperty[List[str]] """ A list of all devices currently set for implicit interaction. """
[docs] def AddDevice( self, ServerName: str, *, metadata: Optional[Iterable[ClientMetadataInstance]] = None ) -> AddDevice_Responses: """ Adds a device to the set. """ ...
[docs] def ConnectToDevice( self, ServerName: str, Timeout: float, *, metadata: Optional[Iterable[ClientMetadataInstance]] = None ) -> ConnectToDevice_Responses: """ Makes the robot try to establish a connection to the specified device(this might take a few seconds). Doing this before the connection is actually needed may save time. """ ...
[docs] def RemoveDevice( self, ServerName: str, *, metadata: Optional[Iterable[ClientMetadataInstance]] = None ) -> RemoveDevice_Responses: """ Removes a device to the set. """ ...