# 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 cmvr.api import agv_command_pb2 as cmvr_dot_api_dot_agv__command__pb2
from cmvr.api import common_pb2 as cmvr_dot_api_dot_common__pb2

GRPC_GENERATED_VERSION = '1.81.1'
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 cmvr/api/agv_service_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 AgvServiceStub:
    """AGV 通用服务。该服务只暴露控制器无关的能力，
    厂商协议、地图文件格式和控制器特有参数由具体 AGV 适配器内部处理。
    """

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

        Args:
            channel: A grpc.Channel.
        """
        self.getRuntimeState = channel.unary_unary(
                '/cmvr.api.AgvService/getRuntimeState',
                request_serializer=cmvr_dot_api_dot_agv__command__pb2.AgvRuntimeStateCommand.Request.SerializeToString,
                response_deserializer=cmvr_dot_api_dot_agv__command__pb2.AgvRuntimeStateCommand.Feedback.FromString,
                _registered_method=True)
        self.getNavigationStatus = channel.unary_unary(
                '/cmvr.api.AgvService/getNavigationStatus',
                request_serializer=cmvr_dot_api_dot_agv__command__pb2.AgvNavigationStatusCommand.Request.SerializeToString,
                response_deserializer=cmvr_dot_api_dot_agv__command__pb2.AgvNavigationStatusCommand.Feedback.FromString,
                _registered_method=True)
        self.emergencyStop = channel.unary_unary(
                '/cmvr.api.AgvService/emergencyStop',
                request_serializer=cmvr_dot_api_dot_common__pb2.CommandHeader.Request.SerializeToString,
                response_deserializer=cmvr_dot_api_dot_common__pb2.CommandHeader.Feedback.FromString,
                _registered_method=True)
        self.clearFault = channel.unary_unary(
                '/cmvr.api.AgvService/clearFault',
                request_serializer=cmvr_dot_api_dot_common__pb2.CommandHeader.Request.SerializeToString,
                response_deserializer=cmvr_dot_api_dot_common__pb2.CommandHeader.Feedback.FromString,
                _registered_method=True)
        self.navigateToPose = channel.unary_unary(
                '/cmvr.api.AgvService/navigateToPose',
                request_serializer=cmvr_dot_api_dot_agv__command__pb2.AgvNavigateToPoseCommand.Request.SerializeToString,
                response_deserializer=cmvr_dot_api_dot_agv__command__pb2.AgvNavigateToPoseCommand.Feedback.FromString,
                _registered_method=True)
        self.navigateToStation = channel.unary_unary(
                '/cmvr.api.AgvService/navigateToStation',
                request_serializer=cmvr_dot_api_dot_agv__command__pb2.AgvNavigateToStationCommand.Request.SerializeToString,
                response_deserializer=cmvr_dot_api_dot_agv__command__pb2.AgvNavigateToStationCommand.Feedback.FromString,
                _registered_method=True)
        self.followPath = channel.unary_unary(
                '/cmvr.api.AgvService/followPath',
                request_serializer=cmvr_dot_api_dot_agv__command__pb2.AgvFollowPathCommand.Request.SerializeToString,
                response_deserializer=cmvr_dot_api_dot_agv__command__pb2.AgvFollowPathCommand.Feedback.FromString,
                _registered_method=True)
        self.pauseNavigation = channel.unary_unary(
                '/cmvr.api.AgvService/pauseNavigation',
                request_serializer=cmvr_dot_api_dot_common__pb2.CommandHeader.Request.SerializeToString,
                response_deserializer=cmvr_dot_api_dot_common__pb2.CommandHeader.Feedback.FromString,
                _registered_method=True)
        self.resumeNavigation = channel.unary_unary(
                '/cmvr.api.AgvService/resumeNavigation',
                request_serializer=cmvr_dot_api_dot_common__pb2.CommandHeader.Request.SerializeToString,
                response_deserializer=cmvr_dot_api_dot_common__pb2.CommandHeader.Feedback.FromString,
                _registered_method=True)
        self.cancelNavigation = channel.unary_unary(
                '/cmvr.api.AgvService/cancelNavigation',
                request_serializer=cmvr_dot_api_dot_common__pb2.CommandHeader.Request.SerializeToString,
                response_deserializer=cmvr_dot_api_dot_common__pb2.CommandHeader.Feedback.FromString,
                _registered_method=True)
        self.setVelocity = channel.unary_unary(
                '/cmvr.api.AgvService/setVelocity',
                request_serializer=cmvr_dot_api_dot_agv__command__pb2.AgvSetVelocityCommand.Request.SerializeToString,
                response_deserializer=cmvr_dot_api_dot_agv__command__pb2.AgvSetVelocityCommand.Feedback.FromString,
                _registered_method=True)
        self.stopVelocityControl = channel.unary_unary(
                '/cmvr.api.AgvService/stopVelocityControl',
                request_serializer=cmvr_dot_api_dot_common__pb2.CommandHeader.Request.SerializeToString,
                response_deserializer=cmvr_dot_api_dot_common__pb2.CommandHeader.Feedback.FromString,
                _registered_method=True)
        self.listMaps = channel.unary_unary(
                '/cmvr.api.AgvService/listMaps',
                request_serializer=cmvr_dot_api_dot_agv__command__pb2.AgvListMapsCommand.Request.SerializeToString,
                response_deserializer=cmvr_dot_api_dot_agv__command__pb2.AgvListMapsCommand.Feedback.FromString,
                _registered_method=True)
        self.listStations = channel.unary_unary(
                '/cmvr.api.AgvService/listStations',
                request_serializer=cmvr_dot_api_dot_agv__command__pb2.AgvListStationsCommand.Request.SerializeToString,
                response_deserializer=cmvr_dot_api_dot_agv__command__pb2.AgvListStationsCommand.Feedback.FromString,
                _registered_method=True)
        self.switchMap = channel.unary_unary(
                '/cmvr.api.AgvService/switchMap',
                request_serializer=cmvr_dot_api_dot_agv__command__pb2.AgvMapCommand.Request.SerializeToString,
                response_deserializer=cmvr_dot_api_dot_agv__command__pb2.AgvMapCommand.Feedback.FromString,
                _registered_method=True)
        self.uploadMap = channel.unary_unary(
                '/cmvr.api.AgvService/uploadMap',
                request_serializer=cmvr_dot_api_dot_agv__command__pb2.AgvMapCommand.Request.SerializeToString,
                response_deserializer=cmvr_dot_api_dot_agv__command__pb2.AgvMapCommand.Feedback.FromString,
                _registered_method=True)
        self.downloadMap = channel.unary_unary(
                '/cmvr.api.AgvService/downloadMap',
                request_serializer=cmvr_dot_api_dot_agv__command__pb2.AgvMapCommand.Request.SerializeToString,
                response_deserializer=cmvr_dot_api_dot_agv__command__pb2.AgvMapCommand.Feedback.FromString,
                _registered_method=True)
        self.startMapping = channel.unary_unary(
                '/cmvr.api.AgvService/startMapping',
                request_serializer=cmvr_dot_api_dot_agv__command__pb2.AgvStartMappingCommand.Request.SerializeToString,
                response_deserializer=cmvr_dot_api_dot_agv__command__pb2.AgvStartMappingCommand.Feedback.FromString,
                _registered_method=True)
        self.streamMap = channel.unary_stream(
                '/cmvr.api.AgvService/streamMap',
                request_serializer=cmvr_dot_api_dot_agv__command__pb2.AgvMapStreamCommand.Request.SerializeToString,
                response_deserializer=cmvr_dot_api_dot_agv__command__pb2.AgvMapStreamCommand.Feedback.FromString,
                _registered_method=True)
        self.stopMapping = channel.unary_unary(
                '/cmvr.api.AgvService/stopMapping',
                request_serializer=cmvr_dot_api_dot_common__pb2.CommandHeader.Request.SerializeToString,
                response_deserializer=cmvr_dot_api_dot_common__pb2.CommandHeader.Feedback.FromString,
                _registered_method=True)


class AgvServiceServicer:
    """AGV 通用服务。该服务只暴露控制器无关的能力，
    厂商协议、地图文件格式和控制器特有参数由具体 AGV 适配器内部处理。
    """

    def getRuntimeState(self, request, context):
        """获取 AGV 当前运行状态快照。
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def getNavigationStatus(self, request, context):
        """获取当前导航任务状态。
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def emergencyStop(self, request, context):
        """执行急停或等效安全停止动作。
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def clearFault(self, request, context):
        """清除可恢复故障或告警。
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def navigateToPose(self, request, context):
        """导航到指定地图位姿。目标位姿 x/y 单位为米，theta 单位为弧度。
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def navigateToStation(self, request, context):
        """导航到指定地图站点。
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def followPath(self, request, context):
        """按显式站点路径执行导航。
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def pauseNavigation(self, request, context):
        """暂停当前导航任务。
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def resumeNavigation(self, request, context):
        """恢复已暂停的导航任务。
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def cancelNavigation(self, request, context):
        """取消当前导航任务。
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def setVelocity(self, request, context):
        """下发底盘速度控制指令。vx/vy 单位为米/秒，wz 单位为弧度/秒。
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def stopVelocityControl(self, request, context):
        """停止底盘速度控制。该接口不等价于取消导航任务。
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def listMaps(self, request, context):
        """查询 AGV 控制器可用地图名称列表。
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def listStations(self, request, context):
        """查询当前地图中的站点列表。
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def switchMap(self, request, context):
        """切换当前使用地图。
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def uploadMap(self, request, context):
        """上传地图内容到 AGV 控制器。地图内容字段由适配器解释。
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def downloadMap(self, request, context):
        """下载指定地图内容。
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def startMapping(self, request, context):
        """开始建图/扫图会话。请求只选择 2D、3D 或二者都要，
        控制器特有地图格式由 AGV 适配器内部转换。
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def streamMap(self, request, context):
        """以服务端流方式发送统一地图。resume_token 为空时应先发送全量快照；
        后续是否发送增量由 AGV 适配器能力决定，并通过 update_type 标记。
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def stopMapping(self, request, context):
        """停止当前建图/扫图会话。
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')


def add_AgvServiceServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'getRuntimeState': grpc.unary_unary_rpc_method_handler(
                    servicer.getRuntimeState,
                    request_deserializer=cmvr_dot_api_dot_agv__command__pb2.AgvRuntimeStateCommand.Request.FromString,
                    response_serializer=cmvr_dot_api_dot_agv__command__pb2.AgvRuntimeStateCommand.Feedback.SerializeToString,
            ),
            'getNavigationStatus': grpc.unary_unary_rpc_method_handler(
                    servicer.getNavigationStatus,
                    request_deserializer=cmvr_dot_api_dot_agv__command__pb2.AgvNavigationStatusCommand.Request.FromString,
                    response_serializer=cmvr_dot_api_dot_agv__command__pb2.AgvNavigationStatusCommand.Feedback.SerializeToString,
            ),
            'emergencyStop': grpc.unary_unary_rpc_method_handler(
                    servicer.emergencyStop,
                    request_deserializer=cmvr_dot_api_dot_common__pb2.CommandHeader.Request.FromString,
                    response_serializer=cmvr_dot_api_dot_common__pb2.CommandHeader.Feedback.SerializeToString,
            ),
            'clearFault': grpc.unary_unary_rpc_method_handler(
                    servicer.clearFault,
                    request_deserializer=cmvr_dot_api_dot_common__pb2.CommandHeader.Request.FromString,
                    response_serializer=cmvr_dot_api_dot_common__pb2.CommandHeader.Feedback.SerializeToString,
            ),
            'navigateToPose': grpc.unary_unary_rpc_method_handler(
                    servicer.navigateToPose,
                    request_deserializer=cmvr_dot_api_dot_agv__command__pb2.AgvNavigateToPoseCommand.Request.FromString,
                    response_serializer=cmvr_dot_api_dot_agv__command__pb2.AgvNavigateToPoseCommand.Feedback.SerializeToString,
            ),
            'navigateToStation': grpc.unary_unary_rpc_method_handler(
                    servicer.navigateToStation,
                    request_deserializer=cmvr_dot_api_dot_agv__command__pb2.AgvNavigateToStationCommand.Request.FromString,
                    response_serializer=cmvr_dot_api_dot_agv__command__pb2.AgvNavigateToStationCommand.Feedback.SerializeToString,
            ),
            'followPath': grpc.unary_unary_rpc_method_handler(
                    servicer.followPath,
                    request_deserializer=cmvr_dot_api_dot_agv__command__pb2.AgvFollowPathCommand.Request.FromString,
                    response_serializer=cmvr_dot_api_dot_agv__command__pb2.AgvFollowPathCommand.Feedback.SerializeToString,
            ),
            'pauseNavigation': grpc.unary_unary_rpc_method_handler(
                    servicer.pauseNavigation,
                    request_deserializer=cmvr_dot_api_dot_common__pb2.CommandHeader.Request.FromString,
                    response_serializer=cmvr_dot_api_dot_common__pb2.CommandHeader.Feedback.SerializeToString,
            ),
            'resumeNavigation': grpc.unary_unary_rpc_method_handler(
                    servicer.resumeNavigation,
                    request_deserializer=cmvr_dot_api_dot_common__pb2.CommandHeader.Request.FromString,
                    response_serializer=cmvr_dot_api_dot_common__pb2.CommandHeader.Feedback.SerializeToString,
            ),
            'cancelNavigation': grpc.unary_unary_rpc_method_handler(
                    servicer.cancelNavigation,
                    request_deserializer=cmvr_dot_api_dot_common__pb2.CommandHeader.Request.FromString,
                    response_serializer=cmvr_dot_api_dot_common__pb2.CommandHeader.Feedback.SerializeToString,
            ),
            'setVelocity': grpc.unary_unary_rpc_method_handler(
                    servicer.setVelocity,
                    request_deserializer=cmvr_dot_api_dot_agv__command__pb2.AgvSetVelocityCommand.Request.FromString,
                    response_serializer=cmvr_dot_api_dot_agv__command__pb2.AgvSetVelocityCommand.Feedback.SerializeToString,
            ),
            'stopVelocityControl': grpc.unary_unary_rpc_method_handler(
                    servicer.stopVelocityControl,
                    request_deserializer=cmvr_dot_api_dot_common__pb2.CommandHeader.Request.FromString,
                    response_serializer=cmvr_dot_api_dot_common__pb2.CommandHeader.Feedback.SerializeToString,
            ),
            'listMaps': grpc.unary_unary_rpc_method_handler(
                    servicer.listMaps,
                    request_deserializer=cmvr_dot_api_dot_agv__command__pb2.AgvListMapsCommand.Request.FromString,
                    response_serializer=cmvr_dot_api_dot_agv__command__pb2.AgvListMapsCommand.Feedback.SerializeToString,
            ),
            'listStations': grpc.unary_unary_rpc_method_handler(
                    servicer.listStations,
                    request_deserializer=cmvr_dot_api_dot_agv__command__pb2.AgvListStationsCommand.Request.FromString,
                    response_serializer=cmvr_dot_api_dot_agv__command__pb2.AgvListStationsCommand.Feedback.SerializeToString,
            ),
            'switchMap': grpc.unary_unary_rpc_method_handler(
                    servicer.switchMap,
                    request_deserializer=cmvr_dot_api_dot_agv__command__pb2.AgvMapCommand.Request.FromString,
                    response_serializer=cmvr_dot_api_dot_agv__command__pb2.AgvMapCommand.Feedback.SerializeToString,
            ),
            'uploadMap': grpc.unary_unary_rpc_method_handler(
                    servicer.uploadMap,
                    request_deserializer=cmvr_dot_api_dot_agv__command__pb2.AgvMapCommand.Request.FromString,
                    response_serializer=cmvr_dot_api_dot_agv__command__pb2.AgvMapCommand.Feedback.SerializeToString,
            ),
            'downloadMap': grpc.unary_unary_rpc_method_handler(
                    servicer.downloadMap,
                    request_deserializer=cmvr_dot_api_dot_agv__command__pb2.AgvMapCommand.Request.FromString,
                    response_serializer=cmvr_dot_api_dot_agv__command__pb2.AgvMapCommand.Feedback.SerializeToString,
            ),
            'startMapping': grpc.unary_unary_rpc_method_handler(
                    servicer.startMapping,
                    request_deserializer=cmvr_dot_api_dot_agv__command__pb2.AgvStartMappingCommand.Request.FromString,
                    response_serializer=cmvr_dot_api_dot_agv__command__pb2.AgvStartMappingCommand.Feedback.SerializeToString,
            ),
            'streamMap': grpc.unary_stream_rpc_method_handler(
                    servicer.streamMap,
                    request_deserializer=cmvr_dot_api_dot_agv__command__pb2.AgvMapStreamCommand.Request.FromString,
                    response_serializer=cmvr_dot_api_dot_agv__command__pb2.AgvMapStreamCommand.Feedback.SerializeToString,
            ),
            'stopMapping': grpc.unary_unary_rpc_method_handler(
                    servicer.stopMapping,
                    request_deserializer=cmvr_dot_api_dot_common__pb2.CommandHeader.Request.FromString,
                    response_serializer=cmvr_dot_api_dot_common__pb2.CommandHeader.Feedback.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'cmvr.api.AgvService', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))
    server.add_registered_method_handlers('cmvr.api.AgvService', rpc_method_handlers)


 # This class is part of an EXPERIMENTAL API.
class AgvService:
    """AGV 通用服务。该服务只暴露控制器无关的能力，
    厂商协议、地图文件格式和控制器特有参数由具体 AGV 适配器内部处理。
    """

    @staticmethod
    def getRuntimeState(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,
            '/cmvr.api.AgvService/getRuntimeState',
            cmvr_dot_api_dot_agv__command__pb2.AgvRuntimeStateCommand.Request.SerializeToString,
            cmvr_dot_api_dot_agv__command__pb2.AgvRuntimeStateCommand.Feedback.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def getNavigationStatus(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,
            '/cmvr.api.AgvService/getNavigationStatus',
            cmvr_dot_api_dot_agv__command__pb2.AgvNavigationStatusCommand.Request.SerializeToString,
            cmvr_dot_api_dot_agv__command__pb2.AgvNavigationStatusCommand.Feedback.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def emergencyStop(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,
            '/cmvr.api.AgvService/emergencyStop',
            cmvr_dot_api_dot_common__pb2.CommandHeader.Request.SerializeToString,
            cmvr_dot_api_dot_common__pb2.CommandHeader.Feedback.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def clearFault(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,
            '/cmvr.api.AgvService/clearFault',
            cmvr_dot_api_dot_common__pb2.CommandHeader.Request.SerializeToString,
            cmvr_dot_api_dot_common__pb2.CommandHeader.Feedback.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def navigateToPose(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,
            '/cmvr.api.AgvService/navigateToPose',
            cmvr_dot_api_dot_agv__command__pb2.AgvNavigateToPoseCommand.Request.SerializeToString,
            cmvr_dot_api_dot_agv__command__pb2.AgvNavigateToPoseCommand.Feedback.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def navigateToStation(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,
            '/cmvr.api.AgvService/navigateToStation',
            cmvr_dot_api_dot_agv__command__pb2.AgvNavigateToStationCommand.Request.SerializeToString,
            cmvr_dot_api_dot_agv__command__pb2.AgvNavigateToStationCommand.Feedback.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def followPath(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,
            '/cmvr.api.AgvService/followPath',
            cmvr_dot_api_dot_agv__command__pb2.AgvFollowPathCommand.Request.SerializeToString,
            cmvr_dot_api_dot_agv__command__pb2.AgvFollowPathCommand.Feedback.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def pauseNavigation(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,
            '/cmvr.api.AgvService/pauseNavigation',
            cmvr_dot_api_dot_common__pb2.CommandHeader.Request.SerializeToString,
            cmvr_dot_api_dot_common__pb2.CommandHeader.Feedback.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def resumeNavigation(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,
            '/cmvr.api.AgvService/resumeNavigation',
            cmvr_dot_api_dot_common__pb2.CommandHeader.Request.SerializeToString,
            cmvr_dot_api_dot_common__pb2.CommandHeader.Feedback.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def cancelNavigation(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,
            '/cmvr.api.AgvService/cancelNavigation',
            cmvr_dot_api_dot_common__pb2.CommandHeader.Request.SerializeToString,
            cmvr_dot_api_dot_common__pb2.CommandHeader.Feedback.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def setVelocity(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,
            '/cmvr.api.AgvService/setVelocity',
            cmvr_dot_api_dot_agv__command__pb2.AgvSetVelocityCommand.Request.SerializeToString,
            cmvr_dot_api_dot_agv__command__pb2.AgvSetVelocityCommand.Feedback.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def stopVelocityControl(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,
            '/cmvr.api.AgvService/stopVelocityControl',
            cmvr_dot_api_dot_common__pb2.CommandHeader.Request.SerializeToString,
            cmvr_dot_api_dot_common__pb2.CommandHeader.Feedback.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def listMaps(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,
            '/cmvr.api.AgvService/listMaps',
            cmvr_dot_api_dot_agv__command__pb2.AgvListMapsCommand.Request.SerializeToString,
            cmvr_dot_api_dot_agv__command__pb2.AgvListMapsCommand.Feedback.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def listStations(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,
            '/cmvr.api.AgvService/listStations',
            cmvr_dot_api_dot_agv__command__pb2.AgvListStationsCommand.Request.SerializeToString,
            cmvr_dot_api_dot_agv__command__pb2.AgvListStationsCommand.Feedback.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def switchMap(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,
            '/cmvr.api.AgvService/switchMap',
            cmvr_dot_api_dot_agv__command__pb2.AgvMapCommand.Request.SerializeToString,
            cmvr_dot_api_dot_agv__command__pb2.AgvMapCommand.Feedback.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def uploadMap(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,
            '/cmvr.api.AgvService/uploadMap',
            cmvr_dot_api_dot_agv__command__pb2.AgvMapCommand.Request.SerializeToString,
            cmvr_dot_api_dot_agv__command__pb2.AgvMapCommand.Feedback.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def downloadMap(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,
            '/cmvr.api.AgvService/downloadMap',
            cmvr_dot_api_dot_agv__command__pb2.AgvMapCommand.Request.SerializeToString,
            cmvr_dot_api_dot_agv__command__pb2.AgvMapCommand.Feedback.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def startMapping(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,
            '/cmvr.api.AgvService/startMapping',
            cmvr_dot_api_dot_agv__command__pb2.AgvStartMappingCommand.Request.SerializeToString,
            cmvr_dot_api_dot_agv__command__pb2.AgvStartMappingCommand.Feedback.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def streamMap(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,
            '/cmvr.api.AgvService/streamMap',
            cmvr_dot_api_dot_agv__command__pb2.AgvMapStreamCommand.Request.SerializeToString,
            cmvr_dot_api_dot_agv__command__pb2.AgvMapStreamCommand.Feedback.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def stopMapping(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,
            '/cmvr.api.AgvService/stopMapping',
            cmvr_dot_api_dot_common__pb2.CommandHeader.Request.SerializeToString,
            cmvr_dot_api_dot_common__pb2.CommandHeader.Feedback.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)
