# 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 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