# Copyright (c) 2023-2025, AgiBot Inc. All Rights Reserved.
# Author: Genie Sim Team
# License: Mozilla Public License Version 2.0

# 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 aimdk.protocol.hal.arm import arm_pb2 as aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2

GRPC_GENERATED_VERSION = '1.70.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},'
        + f' but the generated code in aimdk/protocol/hal/arm/arm_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 G1ArmControlServiceStub(object):
    """*
    @brief Services provided by the arm_module::ArmModule module in aimrt_hal
    """

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

        Args:
            channel: A grpc.Channel.
        """
        self.GetJointPosition = channel.unary_unary(
                '/aimdk.protocol.G1ArmControlService/GetJointPosition',
                request_serializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.GetJointPositionReq.SerializeToString,
                response_deserializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.GetJointPositionRsp.FromString,
                _registered_method=True)
        self.JointMove = channel.unary_unary(
                '/aimdk.protocol.G1ArmControlService/JointMove',
                request_serializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.JointMoveReq.SerializeToString,
                response_deserializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.JointMoveRsp.FromString,
                _registered_method=True)
        self.LinearMove = channel.unary_unary(
                '/aimdk.protocol.G1ArmControlService/LinearMove',
                request_serializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.LinearMoveReq.SerializeToString,
                response_deserializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.LinearMoveRsp.FromString,
                _registered_method=True)
        self.GetRobotState = channel.unary_unary(
                '/aimdk.protocol.G1ArmControlService/GetRobotState',
                request_serializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.GetRobotStateReq.SerializeToString,
                response_deserializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.GetRobotStateRsp.FromString,
                _registered_method=True)
        self.GetRobotStatus = channel.unary_unary(
                '/aimdk.protocol.G1ArmControlService/GetRobotStatus',
                request_serializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.GetRobotStatusReq.SerializeToString,
                response_deserializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.GetRobotStatusRsp.FromString,
                _registered_method=True)
        self.IsInPos = channel.unary_unary(
                '/aimdk.protocol.G1ArmControlService/IsInPos',
                request_serializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.IsInPosReq.SerializeToString,
                response_deserializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.IsInPosRsp.FromString,
                _registered_method=True)
        self.IsOnLimit = channel.unary_unary(
                '/aimdk.protocol.G1ArmControlService/IsOnLimit',
                request_serializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.IsOnLimitReq.SerializeToString,
                response_deserializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.IsOnLimitRsp.FromString,
                _registered_method=True)
        self.GetTcpPosition = channel.unary_unary(
                '/aimdk.protocol.G1ArmControlService/GetTcpPosition',
                request_serializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.GetTcpPositionReq.SerializeToString,
                response_deserializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.GetTcpPositionRsp.FromString,
                _registered_method=True)
        self.KineForward = channel.unary_unary(
                '/aimdk.protocol.G1ArmControlService/KineForward',
                request_serializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.KineForwardReq.SerializeToString,
                response_deserializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.KineForwardRsp.FromString,
                _registered_method=True)
        self.KineInverse = channel.unary_unary(
                '/aimdk.protocol.G1ArmControlService/KineInverse',
                request_serializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.KineInverseReq.SerializeToString,
                response_deserializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.KineInverseRsp.FromString,
                _registered_method=True)
        self.ClearError = channel.unary_unary(
                '/aimdk.protocol.G1ArmControlService/ClearError',
                request_serializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.ClearErrorReq.SerializeToString,
                response_deserializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.ClearErrorRsp.FromString,
                _registered_method=True)
        self.GetLastError = channel.unary_unary(
                '/aimdk.protocol.G1ArmControlService/GetLastError',
                request_serializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.GetLastErrorReq.SerializeToString,
                response_deserializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.GetLastErrorRsp.FromString,
                _registered_method=True)
        self.IsInCollision = channel.unary_unary(
                '/aimdk.protocol.G1ArmControlService/IsInCollision',
                request_serializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.IsInCollisionReq.SerializeToString,
                response_deserializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.IsInCollisionRsp.FromString,
                _registered_method=True)
        self.CollisionRecover = channel.unary_unary(
                '/aimdk.protocol.G1ArmControlService/CollisionRecover',
                request_serializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.CollisionRecoverReq.SerializeToString,
                response_deserializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.CollisionRecoverRsp.FromString,
                _registered_method=True)
        self.GetCollisionLevel = channel.unary_unary(
                '/aimdk.protocol.G1ArmControlService/GetCollisionLevel',
                request_serializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.GetCollisionLevelReq.SerializeToString,
                response_deserializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.GetCollisionLevelRsp.FromString,
                _registered_method=True)
        self.SetCollisionLevel = channel.unary_unary(
                '/aimdk.protocol.G1ArmControlService/SetCollisionLevel',
                request_serializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.SetCollisionLevelReq.SerializeToString,
                response_deserializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.SetCollisionLevelRsp.FromString,
                _registered_method=True)
        self.EnableServoControl = channel.unary_unary(
                '/aimdk.protocol.G1ArmControlService/EnableServoControl',
                request_serializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.EnableServoControlReq.SerializeToString,
                response_deserializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.EnableServoControlRsp.FromString,
                _registered_method=True)
        self.EnableTorqueControl = channel.unary_unary(
                '/aimdk.protocol.G1ArmControlService/EnableTorqueControl',
                request_serializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.EnableTorqueControlReq.SerializeToString,
                response_deserializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.EnableTorqueControlRsp.FromString,
                _registered_method=True)
        self.SetInstallationAngle = channel.unary_unary(
                '/aimdk.protocol.G1ArmControlService/SetInstallationAngle',
                request_serializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.SetInstallationAngleReq.SerializeToString,
                response_deserializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.SetInstallationAngleRsp.FromString,
                _registered_method=True)
        self.GetInstallationAngle = channel.unary_unary(
                '/aimdk.protocol.G1ArmControlService/GetInstallationAngle',
                request_serializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.GetInstallationAngleReq.SerializeToString,
                response_deserializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.GetInstallationAngleRsp.FromString,
                _registered_method=True)
        self.EnableAdmittanceCtrl = channel.unary_unary(
                '/aimdk.protocol.G1ArmControlService/EnableAdmittanceCtrl',
                request_serializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.EnableAdmittanceCtrlReq.SerializeToString,
                response_deserializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.EnableAdmittanceCtrlRsp.FromString,
                _registered_method=True)
        self.SetFtCtrlFrame = channel.unary_unary(
                '/aimdk.protocol.G1ArmControlService/SetFtCtrlFrame',
                request_serializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.SetFtCtrlFrameReq.SerializeToString,
                response_deserializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.SetFtCtrlFrameRsp.FromString,
                _registered_method=True)
        self.DisableForceControl = channel.unary_unary(
                '/aimdk.protocol.G1ArmControlService/DisableForceControl',
                request_serializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.DisableForceControlReq.SerializeToString,
                response_deserializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.DisableForceControlRsp.FromString,
                _registered_method=True)
        self.SetCompliantType = channel.unary_unary(
                '/aimdk.protocol.G1ArmControlService/SetCompliantType',
                request_serializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.SetCompliantTypeReq.SerializeToString,
                response_deserializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.SetCompliantTypeRsp.FromString,
                _registered_method=True)
        self.SetTorqueSensorMode = channel.unary_unary(
                '/aimdk.protocol.G1ArmControlService/SetTorqueSensorMode',
                request_serializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.SetTorqueSensorModeReq.SerializeToString,
                response_deserializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.SetTorqueSensorModeRsp.FromString,
                _registered_method=True)
        self.SetAdmitCtrlConfig = channel.unary_unary(
                '/aimdk.protocol.G1ArmControlService/SetAdmitCtrlConfig',
                request_serializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.SetAdmitCtrlConfigReq.SerializeToString,
                response_deserializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.SetAdmitCtrlConfigRsp.FromString,
                _registered_method=True)


class G1ArmControlServiceServicer(object):
    """*
    @brief Services provided by the arm_module::ArmModule module in aimrt_hal
    """

    def GetJointPosition(self, request, context):
        """*
        @brief Gets the joint angle received by arm_module::ArmModule.
        @param GetJointPositionReq
        @return GetJointPositionRsp
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def JointMove(self, request, context):
        """*
        @brief arm_module::ArmModule Performs normal joint movement.
        @param JointMoveReq
        @return JointMoveRsp
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def LinearMove(self, request, context):
        """*
        @brief arm_module::ArmModule Performs end linear motion.
        @param LinearMoveReq
        @return LinearMoveRsp
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetRobotState(self, request, context):
        """*
        @brief Get the received robotic arm status information of arm_module::ArmModule.
        @param GetRobotStateReq
        @return GetRobotStateRsp
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetRobotStatus(self, request, context):
        """*
        @brief Get the robotic arm details received by arm_module::ArmModule.
        @param GetRobotStatusReq
        @return GetRobotStatusRsp
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def IsInPos(self, request, context):
        """*
        @brief Gets the status information of whether the received robotic arm reaches the target point.
        @param IsInPosReq
        @return IsInPosRsp
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def IsOnLimit(self, request, context):
        """*
        @brief Gets the information about whether the robotic arm received is limited.
        @param IsOnLimitReq
        @return IsOnLimitRsp
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetTcpPosition(self, request, context):
        """*
        @brief Get the end Cartesian pose information received by arm_module::ArmModule.
        @param GetTcpPositionReq
        @return GetTcpPositionRsp
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def KineForward(self, request, context):
        """*
        @brief Kinematic correct solution is performed through arm_module::ArmModule.
        @param KineForwardReq
        @return KineForwardRsp
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def KineInverse(self, request, context):
        """*
        @brief Kinematic inverse solution is performed by arm_module::ArmModule.
        @param KineInverseReq
        @return KineInverseRsp
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ClearError(self, request, context):
        """*
        @brief Clean up errors via arm_module::ArmModule.
        @param ClearErrorReq
        @return ClearErrorRsp
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetLastError(self, request, context):
        """*
        @brief Gets the robotic arm error message received by arm_module::ArmModule.
        @param GetLastErrorReq
        @return GetLastErrorRsp
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def IsInCollision(self, request, context):
        """*
        @brief Gets arm_module::ArmModule The received status information of whether the robotic arm is colliding.
        @param IsInCollisionReq
        @return IsInCollisionRsp
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def CollisionRecover(self, request, context):
        """*
        @brief Collision recovery is performed via arm_module::ArmModule.
        @param CollisionRecoverReq
        @return CollisionRecoverRsp
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetCollisionLevel(self, request, context):
        """*
        @brief Get arm module::Arm Module The received robotic arm collision level.
        @param GetCollisionLevelReq
        @return GetCollisionLevelRsp
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SetCollisionLevel(self, request, context):
        """*
        @brief Set the robotic arm collision level with arm module::Arm Module.
        @param SetCollisionLevelReq
        @return SetCollisionLevelRsp
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def EnableServoControl(self, request, context):
        """*
        @brief Servo enable control is performed through arm_module::ArmModule.
        @param EnableServoControlReq
        @return EnableServoControlRsp
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def EnableTorqueControl(self, request, context):
        """*
        @brief Current loop control is performed via arm_module::ArmModule.
        @param EnableTorqueControlReq
        @return EnableTorqueControlRsp
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SetInstallationAngle(self, request, context):
        """*
        @brief Set the installation angle through arm_module::ArmModule.
        @param SetInstallationAngleReq
        @return SetInstallationAngleRsp
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetInstallationAngle(self, request, context):
        """*
        @brief Get the received arm_module::ArmModule Arm installation angle.
        @param GetInstallationAngleReq
        @return GetInstallationAngleRsp
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def EnableAdmittanceCtrl(self, request, context):
        """*
        @brief Set force-controlled drag and drop enable via arm_module::ArmModule.
        @param EnableAdmittanceCtrlReq
        @return EnableAdmittanceCtrlRsp
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SetFtCtrlFrame(self, request, context):
        """*
        @brief Set the admittance control motion coordinate system through arm_module::ArmModule.
        @param SetFtCtrlFrameReq
        @return SetFtCtrlFrameRsp
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def DisableForceControl(self, request, context):
        """*
        @brief Turn off the force control through arm_module::ArmModule.
        @param DisableForceControlReq
        @return DisableForceControlRsp
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SetCompliantType(self, request, context):
        """*
        @brief Set the force control type and sensor initialization status through arm_module::ArmModule.
        @param SetCompliantTypeReq
        @return SetCompliantTypeRsp
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SetTorqueSensorMode(self, request, context):
        """*
        @brief Turn the torque sensor on or off via arm_module::ArmModule.
        @param SetTorqueSensorModeReq
        @return SetTorqueSensorModeRsp
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SetAdmitCtrlConfig(self, request, context):
        """*
        @brief Set the flexible control parameters through arm_module::ArmModule.
        @param SetAdmitCtrlConfigReq
        @return SetAdmitCtrlConfigRsp
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')


def add_G1ArmControlServiceServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'GetJointPosition': grpc.unary_unary_rpc_method_handler(
                    servicer.GetJointPosition,
                    request_deserializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.GetJointPositionReq.FromString,
                    response_serializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.GetJointPositionRsp.SerializeToString,
            ),
            'JointMove': grpc.unary_unary_rpc_method_handler(
                    servicer.JointMove,
                    request_deserializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.JointMoveReq.FromString,
                    response_serializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.JointMoveRsp.SerializeToString,
            ),
            'LinearMove': grpc.unary_unary_rpc_method_handler(
                    servicer.LinearMove,
                    request_deserializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.LinearMoveReq.FromString,
                    response_serializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.LinearMoveRsp.SerializeToString,
            ),
            'GetRobotState': grpc.unary_unary_rpc_method_handler(
                    servicer.GetRobotState,
                    request_deserializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.GetRobotStateReq.FromString,
                    response_serializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.GetRobotStateRsp.SerializeToString,
            ),
            'GetRobotStatus': grpc.unary_unary_rpc_method_handler(
                    servicer.GetRobotStatus,
                    request_deserializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.GetRobotStatusReq.FromString,
                    response_serializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.GetRobotStatusRsp.SerializeToString,
            ),
            'IsInPos': grpc.unary_unary_rpc_method_handler(
                    servicer.IsInPos,
                    request_deserializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.IsInPosReq.FromString,
                    response_serializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.IsInPosRsp.SerializeToString,
            ),
            'IsOnLimit': grpc.unary_unary_rpc_method_handler(
                    servicer.IsOnLimit,
                    request_deserializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.IsOnLimitReq.FromString,
                    response_serializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.IsOnLimitRsp.SerializeToString,
            ),
            'GetTcpPosition': grpc.unary_unary_rpc_method_handler(
                    servicer.GetTcpPosition,
                    request_deserializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.GetTcpPositionReq.FromString,
                    response_serializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.GetTcpPositionRsp.SerializeToString,
            ),
            'KineForward': grpc.unary_unary_rpc_method_handler(
                    servicer.KineForward,
                    request_deserializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.KineForwardReq.FromString,
                    response_serializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.KineForwardRsp.SerializeToString,
            ),
            'KineInverse': grpc.unary_unary_rpc_method_handler(
                    servicer.KineInverse,
                    request_deserializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.KineInverseReq.FromString,
                    response_serializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.KineInverseRsp.SerializeToString,
            ),
            'ClearError': grpc.unary_unary_rpc_method_handler(
                    servicer.ClearError,
                    request_deserializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.ClearErrorReq.FromString,
                    response_serializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.ClearErrorRsp.SerializeToString,
            ),
            'GetLastError': grpc.unary_unary_rpc_method_handler(
                    servicer.GetLastError,
                    request_deserializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.GetLastErrorReq.FromString,
                    response_serializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.GetLastErrorRsp.SerializeToString,
            ),
            'IsInCollision': grpc.unary_unary_rpc_method_handler(
                    servicer.IsInCollision,
                    request_deserializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.IsInCollisionReq.FromString,
                    response_serializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.IsInCollisionRsp.SerializeToString,
            ),
            'CollisionRecover': grpc.unary_unary_rpc_method_handler(
                    servicer.CollisionRecover,
                    request_deserializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.CollisionRecoverReq.FromString,
                    response_serializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.CollisionRecoverRsp.SerializeToString,
            ),
            'GetCollisionLevel': grpc.unary_unary_rpc_method_handler(
                    servicer.GetCollisionLevel,
                    request_deserializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.GetCollisionLevelReq.FromString,
                    response_serializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.GetCollisionLevelRsp.SerializeToString,
            ),
            'SetCollisionLevel': grpc.unary_unary_rpc_method_handler(
                    servicer.SetCollisionLevel,
                    request_deserializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.SetCollisionLevelReq.FromString,
                    response_serializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.SetCollisionLevelRsp.SerializeToString,
            ),
            'EnableServoControl': grpc.unary_unary_rpc_method_handler(
                    servicer.EnableServoControl,
                    request_deserializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.EnableServoControlReq.FromString,
                    response_serializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.EnableServoControlRsp.SerializeToString,
            ),
            'EnableTorqueControl': grpc.unary_unary_rpc_method_handler(
                    servicer.EnableTorqueControl,
                    request_deserializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.EnableTorqueControlReq.FromString,
                    response_serializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.EnableTorqueControlRsp.SerializeToString,
            ),
            'SetInstallationAngle': grpc.unary_unary_rpc_method_handler(
                    servicer.SetInstallationAngle,
                    request_deserializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.SetInstallationAngleReq.FromString,
                    response_serializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.SetInstallationAngleRsp.SerializeToString,
            ),
            'GetInstallationAngle': grpc.unary_unary_rpc_method_handler(
                    servicer.GetInstallationAngle,
                    request_deserializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.GetInstallationAngleReq.FromString,
                    response_serializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.GetInstallationAngleRsp.SerializeToString,
            ),
            'EnableAdmittanceCtrl': grpc.unary_unary_rpc_method_handler(
                    servicer.EnableAdmittanceCtrl,
                    request_deserializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.EnableAdmittanceCtrlReq.FromString,
                    response_serializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.EnableAdmittanceCtrlRsp.SerializeToString,
            ),
            'SetFtCtrlFrame': grpc.unary_unary_rpc_method_handler(
                    servicer.SetFtCtrlFrame,
                    request_deserializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.SetFtCtrlFrameReq.FromString,
                    response_serializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.SetFtCtrlFrameRsp.SerializeToString,
            ),
            'DisableForceControl': grpc.unary_unary_rpc_method_handler(
                    servicer.DisableForceControl,
                    request_deserializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.DisableForceControlReq.FromString,
                    response_serializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.DisableForceControlRsp.SerializeToString,
            ),
            'SetCompliantType': grpc.unary_unary_rpc_method_handler(
                    servicer.SetCompliantType,
                    request_deserializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.SetCompliantTypeReq.FromString,
                    response_serializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.SetCompliantTypeRsp.SerializeToString,
            ),
            'SetTorqueSensorMode': grpc.unary_unary_rpc_method_handler(
                    servicer.SetTorqueSensorMode,
                    request_deserializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.SetTorqueSensorModeReq.FromString,
                    response_serializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.SetTorqueSensorModeRsp.SerializeToString,
            ),
            'SetAdmitCtrlConfig': grpc.unary_unary_rpc_method_handler(
                    servicer.SetAdmitCtrlConfig,
                    request_deserializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.SetAdmitCtrlConfigReq.FromString,
                    response_serializer=aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.SetAdmitCtrlConfigRsp.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'aimdk.protocol.G1ArmControlService', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))
    server.add_registered_method_handlers('aimdk.protocol.G1ArmControlService', rpc_method_handlers)


 # This class is part of an EXPERIMENTAL API.
class G1ArmControlService(object):
    """*
    @brief Services provided by the arm_module::ArmModule module in aimrt_hal
    """

    @staticmethod
    def GetJointPosition(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,
            '/aimdk.protocol.G1ArmControlService/GetJointPosition',
            aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.GetJointPositionReq.SerializeToString,
            aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.GetJointPositionRsp.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def JointMove(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,
            '/aimdk.protocol.G1ArmControlService/JointMove',
            aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.JointMoveReq.SerializeToString,
            aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.JointMoveRsp.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def LinearMove(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,
            '/aimdk.protocol.G1ArmControlService/LinearMove',
            aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.LinearMoveReq.SerializeToString,
            aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.LinearMoveRsp.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,
            '/aimdk.protocol.G1ArmControlService/GetRobotState',
            aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.GetRobotStateReq.SerializeToString,
            aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.GetRobotStateRsp.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetRobotStatus(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,
            '/aimdk.protocol.G1ArmControlService/GetRobotStatus',
            aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.GetRobotStatusReq.SerializeToString,
            aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.GetRobotStatusRsp.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def IsInPos(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,
            '/aimdk.protocol.G1ArmControlService/IsInPos',
            aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.IsInPosReq.SerializeToString,
            aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.IsInPosRsp.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def IsOnLimit(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,
            '/aimdk.protocol.G1ArmControlService/IsOnLimit',
            aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.IsOnLimitReq.SerializeToString,
            aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.IsOnLimitRsp.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetTcpPosition(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,
            '/aimdk.protocol.G1ArmControlService/GetTcpPosition',
            aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.GetTcpPositionReq.SerializeToString,
            aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.GetTcpPositionRsp.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def KineForward(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,
            '/aimdk.protocol.G1ArmControlService/KineForward',
            aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.KineForwardReq.SerializeToString,
            aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.KineForwardRsp.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def KineInverse(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,
            '/aimdk.protocol.G1ArmControlService/KineInverse',
            aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.KineInverseReq.SerializeToString,
            aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.KineInverseRsp.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def ClearError(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,
            '/aimdk.protocol.G1ArmControlService/ClearError',
            aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.ClearErrorReq.SerializeToString,
            aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.ClearErrorRsp.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetLastError(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,
            '/aimdk.protocol.G1ArmControlService/GetLastError',
            aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.GetLastErrorReq.SerializeToString,
            aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.GetLastErrorRsp.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def IsInCollision(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,
            '/aimdk.protocol.G1ArmControlService/IsInCollision',
            aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.IsInCollisionReq.SerializeToString,
            aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.IsInCollisionRsp.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def CollisionRecover(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,
            '/aimdk.protocol.G1ArmControlService/CollisionRecover',
            aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.CollisionRecoverReq.SerializeToString,
            aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.CollisionRecoverRsp.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetCollisionLevel(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,
            '/aimdk.protocol.G1ArmControlService/GetCollisionLevel',
            aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.GetCollisionLevelReq.SerializeToString,
            aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.GetCollisionLevelRsp.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def SetCollisionLevel(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,
            '/aimdk.protocol.G1ArmControlService/SetCollisionLevel',
            aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.SetCollisionLevelReq.SerializeToString,
            aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.SetCollisionLevelRsp.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def EnableServoControl(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,
            '/aimdk.protocol.G1ArmControlService/EnableServoControl',
            aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.EnableServoControlReq.SerializeToString,
            aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.EnableServoControlRsp.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def EnableTorqueControl(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,
            '/aimdk.protocol.G1ArmControlService/EnableTorqueControl',
            aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.EnableTorqueControlReq.SerializeToString,
            aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.EnableTorqueControlRsp.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def SetInstallationAngle(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,
            '/aimdk.protocol.G1ArmControlService/SetInstallationAngle',
            aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.SetInstallationAngleReq.SerializeToString,
            aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.SetInstallationAngleRsp.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetInstallationAngle(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,
            '/aimdk.protocol.G1ArmControlService/GetInstallationAngle',
            aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.GetInstallationAngleReq.SerializeToString,
            aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.GetInstallationAngleRsp.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def EnableAdmittanceCtrl(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,
            '/aimdk.protocol.G1ArmControlService/EnableAdmittanceCtrl',
            aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.EnableAdmittanceCtrlReq.SerializeToString,
            aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.EnableAdmittanceCtrlRsp.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def SetFtCtrlFrame(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,
            '/aimdk.protocol.G1ArmControlService/SetFtCtrlFrame',
            aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.SetFtCtrlFrameReq.SerializeToString,
            aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.SetFtCtrlFrameRsp.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def DisableForceControl(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,
            '/aimdk.protocol.G1ArmControlService/DisableForceControl',
            aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.DisableForceControlReq.SerializeToString,
            aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.DisableForceControlRsp.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def SetCompliantType(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,
            '/aimdk.protocol.G1ArmControlService/SetCompliantType',
            aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.SetCompliantTypeReq.SerializeToString,
            aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.SetCompliantTypeRsp.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def SetTorqueSensorMode(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,
            '/aimdk.protocol.G1ArmControlService/SetTorqueSensorMode',
            aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.SetTorqueSensorModeReq.SerializeToString,
            aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.SetTorqueSensorModeRsp.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def SetAdmitCtrlConfig(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,
            '/aimdk.protocol.G1ArmControlService/SetAdmitCtrlConfig',
            aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.SetAdmitCtrlConfigReq.SerializeToString,
            aimdk_dot_protocol_dot_hal_dot_arm_dot_arm__pb2.SetAdmitCtrlConfigRsp.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)
