Source code for genericroboticarm.sila_server.feature_implementations.roboteachingservice_impl

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

from typing import TYPE_CHECKING, Any, List

from sila2.server import MetadataDict

from ..generated.roboteachingservice import (
    AddConnection_Responses,
    AddPosition_Responses,
    GripClose_Responses,
    GripOpen_Responses,
    ExecuteCustomCommand_Responses,
    MoveRelative_Responses,
    RemoveConnection_Responses,
    RemovePosition_Responses,
    ReteachPosition_Responses,
    RoboTeachingServiceBase,
    AddIntermediates_Responses,
)

if TYPE_CHECKING:
    from ..server import Server


[docs] class RoboTeachingServiceImpl(RoboTeachingServiceBase): def __init__(self, parent_server: Server) -> None: super().__init__(parent_server=parent_server) self.robot = parent_server.robot
[docs] def get_CurrentGraph(self, *, metadata: MetadataDict) -> str: raise NotImplementedError # TODO
[docs] def MoveRelative(self, Movements: List[Any], *, metadata: MetadataDict) -> MoveRelative_Responses: self.robot.move_relative(Movements)
[docs] def ReteachPosition(self, PositionIdentifier: str, *, metadata: MetadataDict) -> ReteachPosition_Responses: self.robot.graph_manager.change_position(identifier=PositionIdentifier, pos=self.robot.current_coordinates)
[docs] def AddPosition(self, PositionIdentifier: str, *, metadata: MetadataDict) -> AddPosition_Responses: self.robot.graph_manager.add_position(identifier=PositionIdentifier, pos=self.robot.current_coordinates)
[docs] def AddIntermediates( self, A: str, B: str, Number: int, NameGenerator: str, *, metadata: MetadataDict ) -> AddIntermediates_Responses: self.robot.graph_manager.add_intermediates( from_pos=A, to_pos=B, num=Number, name_generator=lambda i: eval('f"'+NameGenerator+'"') )
[docs] def AddConnection(self, Tail: str, Head: str, *, metadata: MetadataDict) -> AddConnection_Responses: self.robot.graph_manager.add_connection(Head, Tail)
[docs] def RemovePosition(self, PositionIdentifier: str, *, metadata: MetadataDict) -> RemovePosition_Responses: self.robot.graph_manager.remove_position(identifier=PositionIdentifier)
[docs] def RemoveConnection(self, Tail: str, Head: str, *, metadata: MetadataDict) -> RemoveConnection_Responses: self.robot.graph_manager.remove_connection(Head, Tail)
[docs] def GripClose(self, *, metadata: MetadataDict) -> GripClose_Responses: self.robot.grip_close()
[docs] def GripOpen(self, *, metadata: MetadataDict) -> GripOpen_Responses: self.robot.grip_open()
[docs] def ExecuteCustomCommand(self, Command: str, *, metadata: MetadataDict) -> ExecuteCustomCommand_Responses: answer = self.robot.run_custom_command(cmd=Command) return answer