# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
"""Client and server classes corresponding to protobuf-defined services."""
import grpc
import warnings

import robotcontrolapp_pb2 as robotcontrolapp__pb2

GRPC_GENERATED_VERSION = '1.64.1'
GRPC_VERSION = grpc.__version__
EXPECTED_ERROR_RELEASE = '1.65.0'
SCHEDULED_RELEASE_DATE = 'June 25, 2024'
_version_not_supported = False

try:
    from grpc._utilities import first_version_is_lower
    _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION)
except ImportError:
    _version_not_supported = True

if _version_not_supported:
    warnings.warn(
        f'The grpc package installed is at version {GRPC_VERSION},'
        + f' but the generated code in robotcontrolapp_pb2_grpc.py depends on'
        + f' grpcio>={GRPC_GENERATED_VERSION}.'
        + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}'
        + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.'
        + f' This warning will become an error in {EXPECTED_ERROR_RELEASE},'
        + f' scheduled for release on {SCHEDULED_RELEASE_DATE}.',
        RuntimeWarning
    )


class RobotControlAppStub(object):
    """****************************************************************************

    Interface exported by the server.
    """

    def __init__(self, channel):
        """Constructor.

        Args:
            channel: A grpc.Channel.
        """
        self.SetCapabilities = channel.unary_unary(
                '/robotcontrolapp.RobotControlApp/SetCapabilities',
                request_serializer=robotcontrolapp__pb2.CapabilitiesRequest.SerializeToString,
                response_deserializer=robotcontrolapp__pb2.CapabilitiesResponse.FromString,
                _registered_method=True)
        self.RecieveActions = channel.stream_stream(
                '/robotcontrolapp.RobotControlApp/RecieveActions',
                request_serializer=robotcontrolapp__pb2.AppAction.SerializeToString,
                response_deserializer=robotcontrolapp__pb2.Event.FromString,
                _registered_method=True)
        self.GetTCP = channel.unary_unary(
                '/robotcontrolapp.RobotControlApp/GetTCP',
                request_serializer=robotcontrolapp__pb2.GetTCPRequest.SerializeToString,
                response_deserializer=robotcontrolapp__pb2.Matrix44.FromString,
                _registered_method=True)
        self.GetRobotStateStream = channel.unary_stream(
                '/robotcontrolapp.RobotControlApp/GetRobotStateStream',
                request_serializer=robotcontrolapp__pb2.RobotStateRequest.SerializeToString,
                response_deserializer=robotcontrolapp__pb2.RobotState.FromString,
                _registered_method=True)
        self.GetRobotState = channel.unary_unary(
                '/robotcontrolapp.RobotControlApp/GetRobotState',
                request_serializer=robotcontrolapp__pb2.RobotStateRequest.SerializeToString,
                response_deserializer=robotcontrolapp__pb2.RobotState.FromString,
                _registered_method=True)
        self.GetProgramVariables = channel.unary_stream(
                '/robotcontrolapp.RobotControlApp/GetProgramVariables',
                request_serializer=robotcontrolapp__pb2.ProgramVariablesRequest.SerializeToString,
                response_deserializer=robotcontrolapp__pb2.ProgramVariable.FromString,
                _registered_method=True)
        self.SetProgramVariables = channel.unary_unary(
                '/robotcontrolapp.RobotControlApp/SetProgramVariables',
                request_serializer=robotcontrolapp__pb2.SetProgramVariablesRequest.SerializeToString,
                response_deserializer=robotcontrolapp__pb2.SetProgramVariablesResponse.FromString,
                _registered_method=True)
        self.EnableMotors = channel.unary_unary(
                '/robotcontrolapp.RobotControlApp/EnableMotors',
                request_serializer=robotcontrolapp__pb2.EnableMotorsRequest.SerializeToString,
                response_deserializer=robotcontrolapp__pb2.EnableMotorsResponse.FromString,
                _registered_method=True)
        self.ResetErrors = channel.unary_unary(
                '/robotcontrolapp.RobotControlApp/ResetErrors',
                request_serializer=robotcontrolapp__pb2.ResetErrorsRequest.SerializeToString,
                response_deserializer=robotcontrolapp__pb2.ResetErrorsResponse.FromString,
                _registered_method=True)
        self.ReferenceJoints = channel.unary_unary(
                '/robotcontrolapp.RobotControlApp/ReferenceJoints',
                request_serializer=robotcontrolapp__pb2.ReferenceJointsRequest.SerializeToString,
                response_deserializer=robotcontrolapp__pb2.ReferenceJointsResponse.FromString,
                _registered_method=True)
        self.GetMotionState = channel.unary_unary(
                '/robotcontrolapp.RobotControlApp/GetMotionState',
                request_serializer=robotcontrolapp__pb2.GetMotionStateRequest.SerializeToString,
                response_deserializer=robotcontrolapp__pb2.MotionState.FromString,
                _registered_method=True)
        self.SetMotionInterpolator = channel.unary_unary(
                '/robotcontrolapp.RobotControlApp/SetMotionInterpolator',
                request_serializer=robotcontrolapp__pb2.MotionInterpolatorRequest.SerializeToString,
                response_deserializer=robotcontrolapp__pb2.MotionState.FromString,
                _registered_method=True)
        self.SetLogicInterpolator = channel.unary_unary(
                '/robotcontrolapp.RobotControlApp/SetLogicInterpolator',
                request_serializer=robotcontrolapp__pb2.LogicInterpolatorRequest.SerializeToString,
                response_deserializer=robotcontrolapp__pb2.MotionState.FromString,
                _registered_method=True)
        self.SetPositionInterface = channel.unary_unary(
                '/robotcontrolapp.RobotControlApp/SetPositionInterface',
                request_serializer=robotcontrolapp__pb2.PositionInterfaceRequest.SerializeToString,
                response_deserializer=robotcontrolapp__pb2.MotionState.FromString,
                _registered_method=True)
        self.MoveTo = channel.unary_unary(
                '/robotcontrolapp.RobotControlApp/MoveTo',
                request_serializer=robotcontrolapp__pb2.MoveToRequest.SerializeToString,
                response_deserializer=robotcontrolapp__pb2.MotionState.FromString,
                _registered_method=True)
        self.SetTargetVelocity = channel.unary_unary(
                '/robotcontrolapp.RobotControlApp/SetTargetVelocity',
                request_serializer=robotcontrolapp__pb2.TargetVelocityRequest.SerializeToString,
                response_deserializer=robotcontrolapp__pb2.TargetVelocityResponse.FromString,
                _registered_method=True)
        self.TranslateJointToCart = channel.unary_unary(
                '/robotcontrolapp.RobotControlApp/TranslateJointToCart',
                request_serializer=robotcontrolapp__pb2.JointToCartRequest.SerializeToString,
                response_deserializer=robotcontrolapp__pb2.JointToCartResponse.FromString,
                _registered_method=True)
        self.TranslateCartToJoint = channel.unary_unary(
                '/robotcontrolapp.RobotControlApp/TranslateCartToJoint',
                request_serializer=robotcontrolapp__pb2.CartToJointRequest.SerializeToString,
                response_deserializer=robotcontrolapp__pb2.CartToJointResponse.FromString,
                _registered_method=True)
        self.SetIOState = channel.unary_unary(
                '/robotcontrolapp.RobotControlApp/SetIOState',
                request_serializer=robotcontrolapp__pb2.IOStateRequest.SerializeToString,
                response_deserializer=robotcontrolapp__pb2.IOStateResponse.FromString,
                _registered_method=True)
        self.UploadFile = channel.stream_unary(
                '/robotcontrolapp.RobotControlApp/UploadFile',
                request_serializer=robotcontrolapp__pb2.UploadFileRequest.SerializeToString,
                response_deserializer=robotcontrolapp__pb2.UploadFileResponse.FromString,
                _registered_method=True)
        self.DownloadFile = channel.unary_stream(
                '/robotcontrolapp.RobotControlApp/DownloadFile',
                request_serializer=robotcontrolapp__pb2.DownloadFileRequest.SerializeToString,
                response_deserializer=robotcontrolapp__pb2.DownloadFileResponse.FromString,
                _registered_method=True)
        self.ListFiles = channel.unary_unary(
                '/robotcontrolapp.RobotControlApp/ListFiles',
                request_serializer=robotcontrolapp__pb2.ListFilesRequest.SerializeToString,
                response_deserializer=robotcontrolapp__pb2.ListFilesResponse.FromString,
                _registered_method=True)
        self.RemoveFiles = channel.unary_unary(
                '/robotcontrolapp.RobotControlApp/RemoveFiles',
                request_serializer=robotcontrolapp__pb2.RemoveFilesRequest.SerializeToString,
                response_deserializer=robotcontrolapp__pb2.RemoveFilesResponse.FromString,
                _registered_method=True)
        self.GetSystemInfo = channel.unary_unary(
                '/robotcontrolapp.RobotControlApp/GetSystemInfo',
                request_serializer=robotcontrolapp__pb2.SystemInfoRequest.SerializeToString,
                response_deserializer=robotcontrolapp__pb2.SystemInfo.FromString,
                _registered_method=True)
        self.GetLicensedFeatures = channel.unary_unary(
                '/robotcontrolapp.RobotControlApp/GetLicensedFeatures',
                request_serializer=robotcontrolapp__pb2.LicenseInfoRequest.SerializeToString,
                response_deserializer=robotcontrolapp__pb2.LicenseInfoResponse.FromString,
                _registered_method=True)
        self.SetVelocityOverride = channel.unary_unary(
                '/robotcontrolapp.RobotControlApp/SetVelocityOverride',
                request_serializer=robotcontrolapp__pb2.SetVelocityOverrideRequest.SerializeToString,
                response_deserializer=robotcontrolapp__pb2.SetVelocityOverrideResponse.FromString,
                _registered_method=True)
        self.ShowDialog = channel.unary_unary(
                '/robotcontrolapp.RobotControlApp/ShowDialog',
                request_serializer=robotcontrolapp__pb2.ShowDialogRequest.SerializeToString,
                response_deserializer=robotcontrolapp__pb2.ShowDialogResponse.FromString,
                _registered_method=True)
        self.GetStatistics = channel.unary_unary(
                '/robotcontrolapp.RobotControlApp/GetStatistics',
                request_serializer=robotcontrolapp__pb2.StatisticsRequest.SerializeToString,
                response_deserializer=robotcontrolapp__pb2.StatisticsResponse.FromString,
                _registered_method=True)


class RobotControlAppServicer(object):
    """****************************************************************************

    Interface exported by the server.
    """

    def SetCapabilities(self, request, context):
        """Sends the app's capabilities / API version to the server on connect
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def RecieveActions(self, request_iterator, context):
        """Receives AppActions (see message AppAction, contains app functions and UI updates...)
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetTCP(self, request, context):
        """Requests the current tool center point
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetRobotStateStream(self, request, context):
        """streams the robot state
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetRobotState(self, request, context):
        """Requests the current robot state
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetProgramVariables(self, request, context):
        """Requests one or more program variables
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SetProgramVariables(self, request, context):
        """Sets one or more program variables
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def EnableMotors(self, request, context):
        """Resetting errors, enabling motors, referencing
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ResetErrors(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ReferenceJoints(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetMotionState(self, request, context):
        """Program / motion state
        Gets the motion source state
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SetMotionInterpolator(self, request, context):
        """Sets the state of the motion program
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SetLogicInterpolator(self, request, context):
        """Sets the state of the logic program
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SetPositionInterface(self, request, context):
        """Sets the state of the fast position interface
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def MoveTo(self, request, context):
        """Starts or stops a move-to command
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SetTargetVelocity(self, request, context):
        """Sets the target velocity of external axes in velocity mode
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def TranslateJointToCart(self, request, context):
        """Kinematics
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def TranslateCartToJoint(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SetIOState(self, request, context):
        """IO
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def UploadFile(self, request_iterator, context):
        """File operations
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def DownloadFile(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListFiles(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def RemoveFiles(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetSystemInfo(self, request, context):
        """System info
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetLicensedFeatures(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SetVelocityOverride(self, request, context):
        """Velocity override
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ShowDialog(self, request, context):
        """UI
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetStatistics(self, request, context):
        """Statistics
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')


def add_RobotControlAppServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'SetCapabilities': grpc.unary_unary_rpc_method_handler(
                    servicer.SetCapabilities,
                    request_deserializer=robotcontrolapp__pb2.CapabilitiesRequest.FromString,
                    response_serializer=robotcontrolapp__pb2.CapabilitiesResponse.SerializeToString,
            ),
            'RecieveActions': grpc.stream_stream_rpc_method_handler(
                    servicer.RecieveActions,
                    request_deserializer=robotcontrolapp__pb2.AppAction.FromString,
                    response_serializer=robotcontrolapp__pb2.Event.SerializeToString,
            ),
            'GetTCP': grpc.unary_unary_rpc_method_handler(
                    servicer.GetTCP,
                    request_deserializer=robotcontrolapp__pb2.GetTCPRequest.FromString,
                    response_serializer=robotcontrolapp__pb2.Matrix44.SerializeToString,
            ),
            'GetRobotStateStream': grpc.unary_stream_rpc_method_handler(
                    servicer.GetRobotStateStream,
                    request_deserializer=robotcontrolapp__pb2.RobotStateRequest.FromString,
                    response_serializer=robotcontrolapp__pb2.RobotState.SerializeToString,
            ),
            'GetRobotState': grpc.unary_unary_rpc_method_handler(
                    servicer.GetRobotState,
                    request_deserializer=robotcontrolapp__pb2.RobotStateRequest.FromString,
                    response_serializer=robotcontrolapp__pb2.RobotState.SerializeToString,
            ),
            'GetProgramVariables': grpc.unary_stream_rpc_method_handler(
                    servicer.GetProgramVariables,
                    request_deserializer=robotcontrolapp__pb2.ProgramVariablesRequest.FromString,
                    response_serializer=robotcontrolapp__pb2.ProgramVariable.SerializeToString,
            ),
            'SetProgramVariables': grpc.unary_unary_rpc_method_handler(
                    servicer.SetProgramVariables,
                    request_deserializer=robotcontrolapp__pb2.SetProgramVariablesRequest.FromString,
                    response_serializer=robotcontrolapp__pb2.SetProgramVariablesResponse.SerializeToString,
            ),
            'EnableMotors': grpc.unary_unary_rpc_method_handler(
                    servicer.EnableMotors,
                    request_deserializer=robotcontrolapp__pb2.EnableMotorsRequest.FromString,
                    response_serializer=robotcontrolapp__pb2.EnableMotorsResponse.SerializeToString,
            ),
            'ResetErrors': grpc.unary_unary_rpc_method_handler(
                    servicer.ResetErrors,
                    request_deserializer=robotcontrolapp__pb2.ResetErrorsRequest.FromString,
                    response_serializer=robotcontrolapp__pb2.ResetErrorsResponse.SerializeToString,
            ),
            'ReferenceJoints': grpc.unary_unary_rpc_method_handler(
                    servicer.ReferenceJoints,
                    request_deserializer=robotcontrolapp__pb2.ReferenceJointsRequest.FromString,
                    response_serializer=robotcontrolapp__pb2.ReferenceJointsResponse.SerializeToString,
            ),
            'GetMotionState': grpc.unary_unary_rpc_method_handler(
                    servicer.GetMotionState,
                    request_deserializer=robotcontrolapp__pb2.GetMotionStateRequest.FromString,
                    response_serializer=robotcontrolapp__pb2.MotionState.SerializeToString,
            ),
            'SetMotionInterpolator': grpc.unary_unary_rpc_method_handler(
                    servicer.SetMotionInterpolator,
                    request_deserializer=robotcontrolapp__pb2.MotionInterpolatorRequest.FromString,
                    response_serializer=robotcontrolapp__pb2.MotionState.SerializeToString,
            ),
            'SetLogicInterpolator': grpc.unary_unary_rpc_method_handler(
                    servicer.SetLogicInterpolator,
                    request_deserializer=robotcontrolapp__pb2.LogicInterpolatorRequest.FromString,
                    response_serializer=robotcontrolapp__pb2.MotionState.SerializeToString,
            ),
            'SetPositionInterface': grpc.unary_unary_rpc_method_handler(
                    servicer.SetPositionInterface,
                    request_deserializer=robotcontrolapp__pb2.PositionInterfaceRequest.FromString,
                    response_serializer=robotcontrolapp__pb2.MotionState.SerializeToString,
            ),
            'MoveTo': grpc.unary_unary_rpc_method_handler(
                    servicer.MoveTo,
                    request_deserializer=robotcontrolapp__pb2.MoveToRequest.FromString,
                    response_serializer=robotcontrolapp__pb2.MotionState.SerializeToString,
            ),
            'SetTargetVelocity': grpc.unary_unary_rpc_method_handler(
                    servicer.SetTargetVelocity,
                    request_deserializer=robotcontrolapp__pb2.TargetVelocityRequest.FromString,
                    response_serializer=robotcontrolapp__pb2.TargetVelocityResponse.SerializeToString,
            ),
            'TranslateJointToCart': grpc.unary_unary_rpc_method_handler(
                    servicer.TranslateJointToCart,
                    request_deserializer=robotcontrolapp__pb2.JointToCartRequest.FromString,
                    response_serializer=robotcontrolapp__pb2.JointToCartResponse.SerializeToString,
            ),
            'TranslateCartToJoint': grpc.unary_unary_rpc_method_handler(
                    servicer.TranslateCartToJoint,
                    request_deserializer=robotcontrolapp__pb2.CartToJointRequest.FromString,
                    response_serializer=robotcontrolapp__pb2.CartToJointResponse.SerializeToString,
            ),
            'SetIOState': grpc.unary_unary_rpc_method_handler(
                    servicer.SetIOState,
                    request_deserializer=robotcontrolapp__pb2.IOStateRequest.FromString,
                    response_serializer=robotcontrolapp__pb2.IOStateResponse.SerializeToString,
            ),
            'UploadFile': grpc.stream_unary_rpc_method_handler(
                    servicer.UploadFile,
                    request_deserializer=robotcontrolapp__pb2.UploadFileRequest.FromString,
                    response_serializer=robotcontrolapp__pb2.UploadFileResponse.SerializeToString,
            ),
            'DownloadFile': grpc.unary_stream_rpc_method_handler(
                    servicer.DownloadFile,
                    request_deserializer=robotcontrolapp__pb2.DownloadFileRequest.FromString,
                    response_serializer=robotcontrolapp__pb2.DownloadFileResponse.SerializeToString,
            ),
            'ListFiles': grpc.unary_unary_rpc_method_handler(
                    servicer.ListFiles,
                    request_deserializer=robotcontrolapp__pb2.ListFilesRequest.FromString,
                    response_serializer=robotcontrolapp__pb2.ListFilesResponse.SerializeToString,
            ),
            'RemoveFiles': grpc.unary_unary_rpc_method_handler(
                    servicer.RemoveFiles,
                    request_deserializer=robotcontrolapp__pb2.RemoveFilesRequest.FromString,
                    response_serializer=robotcontrolapp__pb2.RemoveFilesResponse.SerializeToString,
            ),
            'GetSystemInfo': grpc.unary_unary_rpc_method_handler(
                    servicer.GetSystemInfo,
                    request_deserializer=robotcontrolapp__pb2.SystemInfoRequest.FromString,
                    response_serializer=robotcontrolapp__pb2.SystemInfo.SerializeToString,
            ),
            'GetLicensedFeatures': grpc.unary_unary_rpc_method_handler(
                    servicer.GetLicensedFeatures,
                    request_deserializer=robotcontrolapp__pb2.LicenseInfoRequest.FromString,
                    response_serializer=robotcontrolapp__pb2.LicenseInfoResponse.SerializeToString,
            ),
            'SetVelocityOverride': grpc.unary_unary_rpc_method_handler(
                    servicer.SetVelocityOverride,
                    request_deserializer=robotcontrolapp__pb2.SetVelocityOverrideRequest.FromString,
                    response_serializer=robotcontrolapp__pb2.SetVelocityOverrideResponse.SerializeToString,
            ),
            'ShowDialog': grpc.unary_unary_rpc_method_handler(
                    servicer.ShowDialog,
                    request_deserializer=robotcontrolapp__pb2.ShowDialogRequest.FromString,
                    response_serializer=robotcontrolapp__pb2.ShowDialogResponse.SerializeToString,
            ),
            'GetStatistics': grpc.unary_unary_rpc_method_handler(
                    servicer.GetStatistics,
                    request_deserializer=robotcontrolapp__pb2.StatisticsRequest.FromString,
                    response_serializer=robotcontrolapp__pb2.StatisticsResponse.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'robotcontrolapp.RobotControlApp', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))
    server.add_registered_method_handlers('robotcontrolapp.RobotControlApp', rpc_method_handlers)


 # This class is part of an EXPERIMENTAL API.
class RobotControlApp(object):
    """****************************************************************************

    Interface exported by the server.
    """

    @staticmethod
    def SetCapabilities(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/robotcontrolapp.RobotControlApp/SetCapabilities',
            robotcontrolapp__pb2.CapabilitiesRequest.SerializeToString,
            robotcontrolapp__pb2.CapabilitiesResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def RecieveActions(request_iterator,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.stream_stream(
            request_iterator,
            target,
            '/robotcontrolapp.RobotControlApp/RecieveActions',
            robotcontrolapp__pb2.AppAction.SerializeToString,
            robotcontrolapp__pb2.Event.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetTCP(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/robotcontrolapp.RobotControlApp/GetTCP',
            robotcontrolapp__pb2.GetTCPRequest.SerializeToString,
            robotcontrolapp__pb2.Matrix44.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetRobotStateStream(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_stream(
            request,
            target,
            '/robotcontrolapp.RobotControlApp/GetRobotStateStream',
            robotcontrolapp__pb2.RobotStateRequest.SerializeToString,
            robotcontrolapp__pb2.RobotState.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetRobotState(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/robotcontrolapp.RobotControlApp/GetRobotState',
            robotcontrolapp__pb2.RobotStateRequest.SerializeToString,
            robotcontrolapp__pb2.RobotState.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetProgramVariables(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_stream(
            request,
            target,
            '/robotcontrolapp.RobotControlApp/GetProgramVariables',
            robotcontrolapp__pb2.ProgramVariablesRequest.SerializeToString,
            robotcontrolapp__pb2.ProgramVariable.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def SetProgramVariables(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/robotcontrolapp.RobotControlApp/SetProgramVariables',
            robotcontrolapp__pb2.SetProgramVariablesRequest.SerializeToString,
            robotcontrolapp__pb2.SetProgramVariablesResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def EnableMotors(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/robotcontrolapp.RobotControlApp/EnableMotors',
            robotcontrolapp__pb2.EnableMotorsRequest.SerializeToString,
            robotcontrolapp__pb2.EnableMotorsResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def ResetErrors(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/robotcontrolapp.RobotControlApp/ResetErrors',
            robotcontrolapp__pb2.ResetErrorsRequest.SerializeToString,
            robotcontrolapp__pb2.ResetErrorsResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def ReferenceJoints(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/robotcontrolapp.RobotControlApp/ReferenceJoints',
            robotcontrolapp__pb2.ReferenceJointsRequest.SerializeToString,
            robotcontrolapp__pb2.ReferenceJointsResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetMotionState(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/robotcontrolapp.RobotControlApp/GetMotionState',
            robotcontrolapp__pb2.GetMotionStateRequest.SerializeToString,
            robotcontrolapp__pb2.MotionState.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def SetMotionInterpolator(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/robotcontrolapp.RobotControlApp/SetMotionInterpolator',
            robotcontrolapp__pb2.MotionInterpolatorRequest.SerializeToString,
            robotcontrolapp__pb2.MotionState.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def SetLogicInterpolator(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/robotcontrolapp.RobotControlApp/SetLogicInterpolator',
            robotcontrolapp__pb2.LogicInterpolatorRequest.SerializeToString,
            robotcontrolapp__pb2.MotionState.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def SetPositionInterface(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/robotcontrolapp.RobotControlApp/SetPositionInterface',
            robotcontrolapp__pb2.PositionInterfaceRequest.SerializeToString,
            robotcontrolapp__pb2.MotionState.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def MoveTo(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/robotcontrolapp.RobotControlApp/MoveTo',
            robotcontrolapp__pb2.MoveToRequest.SerializeToString,
            robotcontrolapp__pb2.MotionState.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def SetTargetVelocity(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/robotcontrolapp.RobotControlApp/SetTargetVelocity',
            robotcontrolapp__pb2.TargetVelocityRequest.SerializeToString,
            robotcontrolapp__pb2.TargetVelocityResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def TranslateJointToCart(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/robotcontrolapp.RobotControlApp/TranslateJointToCart',
            robotcontrolapp__pb2.JointToCartRequest.SerializeToString,
            robotcontrolapp__pb2.JointToCartResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def TranslateCartToJoint(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/robotcontrolapp.RobotControlApp/TranslateCartToJoint',
            robotcontrolapp__pb2.CartToJointRequest.SerializeToString,
            robotcontrolapp__pb2.CartToJointResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def SetIOState(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/robotcontrolapp.RobotControlApp/SetIOState',
            robotcontrolapp__pb2.IOStateRequest.SerializeToString,
            robotcontrolapp__pb2.IOStateResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def UploadFile(request_iterator,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.stream_unary(
            request_iterator,
            target,
            '/robotcontrolapp.RobotControlApp/UploadFile',
            robotcontrolapp__pb2.UploadFileRequest.SerializeToString,
            robotcontrolapp__pb2.UploadFileResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def DownloadFile(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_stream(
            request,
            target,
            '/robotcontrolapp.RobotControlApp/DownloadFile',
            robotcontrolapp__pb2.DownloadFileRequest.SerializeToString,
            robotcontrolapp__pb2.DownloadFileResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def ListFiles(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/robotcontrolapp.RobotControlApp/ListFiles',
            robotcontrolapp__pb2.ListFilesRequest.SerializeToString,
            robotcontrolapp__pb2.ListFilesResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def RemoveFiles(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/robotcontrolapp.RobotControlApp/RemoveFiles',
            robotcontrolapp__pb2.RemoveFilesRequest.SerializeToString,
            robotcontrolapp__pb2.RemoveFilesResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetSystemInfo(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/robotcontrolapp.RobotControlApp/GetSystemInfo',
            robotcontrolapp__pb2.SystemInfoRequest.SerializeToString,
            robotcontrolapp__pb2.SystemInfo.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetLicensedFeatures(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/robotcontrolapp.RobotControlApp/GetLicensedFeatures',
            robotcontrolapp__pb2.LicenseInfoRequest.SerializeToString,
            robotcontrolapp__pb2.LicenseInfoResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def SetVelocityOverride(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/robotcontrolapp.RobotControlApp/SetVelocityOverride',
            robotcontrolapp__pb2.SetVelocityOverrideRequest.SerializeToString,
            robotcontrolapp__pb2.SetVelocityOverrideResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def ShowDialog(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/robotcontrolapp.RobotControlApp/ShowDialog',
            robotcontrolapp__pb2.ShowDialogRequest.SerializeToString,
            robotcontrolapp__pb2.ShowDialogResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetStatistics(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/robotcontrolapp.RobotControlApp/GetStatistics',
            robotcontrolapp__pb2.StatisticsRequest.SerializeToString,
            robotcontrolapp__pb2.StatisticsResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)
