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

from . import tars_pb2 as tars__pb2

GRPC_GENERATED_VERSION = '1.78.0'
GRPC_VERSION = grpc.__version__
_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:
    raise RuntimeError(
        f'The grpc package installed is at version {GRPC_VERSION},'
        + ' but the generated code in tars_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}.'
    )


class TarsServiceStub(object):
    """Missing associated documentation comment in .proto file."""

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

        Args:
            channel: A grpc.Channel.
        """
        self.Health = channel.unary_unary(
                '/tars.TarsService/Health',
                request_serializer=tars__pb2.Empty.SerializeToString,
                response_deserializer=tars__pb2.HealthResponse.FromString,
                _registered_method=True)
        self.GetStatus = channel.unary_unary(
                '/tars.TarsService/GetStatus',
                request_serializer=tars__pb2.Empty.SerializeToString,
                response_deserializer=tars__pb2.StatusResponse.FromString,
                _registered_method=True)
        self.GetVersion = channel.unary_unary(
                '/tars.TarsService/GetVersion',
                request_serializer=tars__pb2.Empty.SerializeToString,
                response_deserializer=tars__pb2.VersionResponse.FromString,
                _registered_method=True)
        self.CheckUpdate = channel.unary_unary(
                '/tars.TarsService/CheckUpdate',
                request_serializer=tars__pb2.Empty.SerializeToString,
                response_deserializer=tars__pb2.UpdateCheckResponse.FromString,
                _registered_method=True)
        self.Move = channel.unary_unary(
                '/tars.TarsService/Move',
                request_serializer=tars__pb2.MoveRequest.SerializeToString,
                response_deserializer=tars__pb2.MoveResponse.FromString,
                _registered_method=True)
        self.Reset = channel.unary_unary(
                '/tars.TarsService/Reset',
                request_serializer=tars__pb2.Empty.SerializeToString,
                response_deserializer=tars__pb2.Empty.FromString,
                _registered_method=True)
        self.SetEmotion = channel.unary_unary(
                '/tars.TarsService/SetEmotion',
                request_serializer=tars__pb2.EmotionRequest.SerializeToString,
                response_deserializer=tars__pb2.Empty.FromString,
                _registered_method=True)
        self.SetEyeState = channel.unary_unary(
                '/tars.TarsService/SetEyeState',
                request_serializer=tars__pb2.EyeStateRequest.SerializeToString,
                response_deserializer=tars__pb2.Empty.FromString,
                _registered_method=True)
        self.CaptureCamera = channel.unary_unary(
                '/tars.TarsService/CaptureCamera',
                request_serializer=tars__pb2.CaptureRequest.SerializeToString,
                response_deserializer=tars__pb2.CaptureResponse.FromString,
                _registered_method=True)
        self.StreamBattery = channel.unary_stream(
                '/tars.TarsService/StreamBattery',
                request_serializer=tars__pb2.Empty.SerializeToString,
                response_deserializer=tars__pb2.BatteryStatus.FromString,
                _registered_method=True)
        self.StreamMovementStatus = channel.unary_stream(
                '/tars.TarsService/StreamMovementStatus',
                request_serializer=tars__pb2.Empty.SerializeToString,
                response_deserializer=tars__pb2.MovementStatus.FromString,
                _registered_method=True)
        self.StreamAudioLevels = channel.stream_stream(
                '/tars.TarsService/StreamAudioLevels',
                request_serializer=tars__pb2.AudioLevelRequest.SerializeToString,
                response_deserializer=tars__pb2.AudioLevelResponse.FromString,
                _registered_method=True)
        self.SetMicMute = channel.unary_unary(
                '/tars.TarsService/SetMicMute',
                request_serializer=tars__pb2.MicMuteRequest.SerializeToString,
                response_deserializer=tars__pb2.Empty.FromString,
                _registered_method=True)
        self.GetMicMute = channel.unary_unary(
                '/tars.TarsService/GetMicMute',
                request_serializer=tars__pb2.Empty.SerializeToString,
                response_deserializer=tars__pb2.MicMuteResponse.FromString,
                _registered_method=True)


class TarsServiceServicer(object):
    """Missing associated documentation comment in .proto file."""

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

    def GetStatus(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 GetVersion(self, request, context):
        """Version & Updates
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def CheckUpdate(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 Move(self, request, context):
        """Movement Control
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Reset(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 SetEmotion(self, request, context):
        """Display Control
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SetEyeState(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 CaptureCamera(self, request, context):
        """Camera
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def StreamBattery(self, request, context):
        """Server streaming (RPi → Client)
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def StreamMovementStatus(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 StreamAudioLevels(self, request_iterator, context):
        """Bidirectional streaming (for future use)
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SetMicMute(self, request, context):
        """Mic mute control
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetMicMute(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 add_TarsServiceServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'Health': grpc.unary_unary_rpc_method_handler(
                    servicer.Health,
                    request_deserializer=tars__pb2.Empty.FromString,
                    response_serializer=tars__pb2.HealthResponse.SerializeToString,
            ),
            'GetStatus': grpc.unary_unary_rpc_method_handler(
                    servicer.GetStatus,
                    request_deserializer=tars__pb2.Empty.FromString,
                    response_serializer=tars__pb2.StatusResponse.SerializeToString,
            ),
            'GetVersion': grpc.unary_unary_rpc_method_handler(
                    servicer.GetVersion,
                    request_deserializer=tars__pb2.Empty.FromString,
                    response_serializer=tars__pb2.VersionResponse.SerializeToString,
            ),
            'CheckUpdate': grpc.unary_unary_rpc_method_handler(
                    servicer.CheckUpdate,
                    request_deserializer=tars__pb2.Empty.FromString,
                    response_serializer=tars__pb2.UpdateCheckResponse.SerializeToString,
            ),
            'Move': grpc.unary_unary_rpc_method_handler(
                    servicer.Move,
                    request_deserializer=tars__pb2.MoveRequest.FromString,
                    response_serializer=tars__pb2.MoveResponse.SerializeToString,
            ),
            'Reset': grpc.unary_unary_rpc_method_handler(
                    servicer.Reset,
                    request_deserializer=tars__pb2.Empty.FromString,
                    response_serializer=tars__pb2.Empty.SerializeToString,
            ),
            'SetEmotion': grpc.unary_unary_rpc_method_handler(
                    servicer.SetEmotion,
                    request_deserializer=tars__pb2.EmotionRequest.FromString,
                    response_serializer=tars__pb2.Empty.SerializeToString,
            ),
            'SetEyeState': grpc.unary_unary_rpc_method_handler(
                    servicer.SetEyeState,
                    request_deserializer=tars__pb2.EyeStateRequest.FromString,
                    response_serializer=tars__pb2.Empty.SerializeToString,
            ),
            'CaptureCamera': grpc.unary_unary_rpc_method_handler(
                    servicer.CaptureCamera,
                    request_deserializer=tars__pb2.CaptureRequest.FromString,
                    response_serializer=tars__pb2.CaptureResponse.SerializeToString,
            ),
            'StreamBattery': grpc.unary_stream_rpc_method_handler(
                    servicer.StreamBattery,
                    request_deserializer=tars__pb2.Empty.FromString,
                    response_serializer=tars__pb2.BatteryStatus.SerializeToString,
            ),
            'StreamMovementStatus': grpc.unary_stream_rpc_method_handler(
                    servicer.StreamMovementStatus,
                    request_deserializer=tars__pb2.Empty.FromString,
                    response_serializer=tars__pb2.MovementStatus.SerializeToString,
            ),
            'StreamAudioLevels': grpc.stream_stream_rpc_method_handler(
                    servicer.StreamAudioLevels,
                    request_deserializer=tars__pb2.AudioLevelRequest.FromString,
                    response_serializer=tars__pb2.AudioLevelResponse.SerializeToString,
            ),
            'SetMicMute': grpc.unary_unary_rpc_method_handler(
                    servicer.SetMicMute,
                    request_deserializer=tars__pb2.MicMuteRequest.FromString,
                    response_serializer=tars__pb2.Empty.SerializeToString,
            ),
            'GetMicMute': grpc.unary_unary_rpc_method_handler(
                    servicer.GetMicMute,
                    request_deserializer=tars__pb2.Empty.FromString,
                    response_serializer=tars__pb2.MicMuteResponse.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'tars.TarsService', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))
    server.add_registered_method_handlers('tars.TarsService', rpc_method_handlers)


 # This class is part of an EXPERIMENTAL API.
class TarsService(object):
    """Missing associated documentation comment in .proto file."""

    @staticmethod
    def Health(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,
            '/tars.TarsService/Health',
            tars__pb2.Empty.SerializeToString,
            tars__pb2.HealthResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetStatus(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,
            '/tars.TarsService/GetStatus',
            tars__pb2.Empty.SerializeToString,
            tars__pb2.StatusResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetVersion(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,
            '/tars.TarsService/GetVersion',
            tars__pb2.Empty.SerializeToString,
            tars__pb2.VersionResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def CheckUpdate(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,
            '/tars.TarsService/CheckUpdate',
            tars__pb2.Empty.SerializeToString,
            tars__pb2.UpdateCheckResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def Move(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,
            '/tars.TarsService/Move',
            tars__pb2.MoveRequest.SerializeToString,
            tars__pb2.MoveResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def Reset(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,
            '/tars.TarsService/Reset',
            tars__pb2.Empty.SerializeToString,
            tars__pb2.Empty.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def SetEmotion(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,
            '/tars.TarsService/SetEmotion',
            tars__pb2.EmotionRequest.SerializeToString,
            tars__pb2.Empty.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def SetEyeState(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,
            '/tars.TarsService/SetEyeState',
            tars__pb2.EyeStateRequest.SerializeToString,
            tars__pb2.Empty.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def CaptureCamera(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,
            '/tars.TarsService/CaptureCamera',
            tars__pb2.CaptureRequest.SerializeToString,
            tars__pb2.CaptureResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def StreamBattery(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,
            '/tars.TarsService/StreamBattery',
            tars__pb2.Empty.SerializeToString,
            tars__pb2.BatteryStatus.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def StreamMovementStatus(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,
            '/tars.TarsService/StreamMovementStatus',
            tars__pb2.Empty.SerializeToString,
            tars__pb2.MovementStatus.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def StreamAudioLevels(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,
            '/tars.TarsService/StreamAudioLevels',
            tars__pb2.AudioLevelRequest.SerializeToString,
            tars__pb2.AudioLevelResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def SetMicMute(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,
            '/tars.TarsService/SetMicMute',
            tars__pb2.MicMuteRequest.SerializeToString,
            tars__pb2.Empty.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetMicMute(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,
            '/tars.TarsService/GetMicMute',
            tars__pb2.Empty.SerializeToString,
            tars__pb2.MicMuteResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)
