Source code for genericroboticarm.sila_server.feature_implementations.implicitinteractionservice_impl

# Generated by sila2.code_generator; sila2.__version__: 0.12.2
from __future__ import annotations

from typing import TYPE_CHECKING, List
import logging

from sila2.server import MetadataDict
from genericroboticarm.control.device_interaction import DeviceList

from ..generated.implicitinteractionservice import (
    AddDevice_Responses,
    ConnectToDevice_Responses,
    ImplicitInteractionServiceBase,
    RemoveDevice_Responses,
)

if TYPE_CHECKING:
    from ..server import Server


[docs] class ImplicitInteractionServiceImpl(ImplicitInteractionServiceBase): def __init__(self, parent_server: Server, device_list: DeviceList) -> None: super().__init__(parent_server=parent_server) self.devices = device_list
[docs] def get_CurrentDeviceSet(self, *, metadata: MetadataDict) -> List[str]: return self.devices.devices
[docs] def AddDevice(self, ServerName: str, *, metadata: MetadataDict) -> AddDevice_Responses: self.devices.add_device(ServerName)
[docs] def ConnectToDevice(self, ServerName: str, Timeout: float, *, metadata: MetadataDict) -> ConnectToDevice_Responses: client = self.devices.get_client(ServerName, Timeout) if client: return True else: logging.error(f"Failed to connect to {ServerName}") return False
[docs] def RemoveDevice(self, ServerName: str, *, metadata: MetadataDict) -> RemoveDevice_Responses: self.devices.remove_device(ServerName)