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

from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2
from . import messages_pb2 as messages__pb2
from . import robot_controller_pb2 as robot__controller__pb2


class RobotControllerStub(object):
    """Robot controller gRPC & protobuf idl language definition
    """

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

        Args:
            channel: A grpc.Channel.
        """
        self.PowerDown = channel.unary_unary(
                '/robotc.RobotController/PowerDown',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=robot__controller__pb2.CmdId.FromString,
                )
        self.Sleep = channel.unary_unary(
                '/robotc.RobotController/Sleep',
                request_serializer=robot__controller__pb2.SleepRequest.SerializeToString,
                response_deserializer=robot__controller__pb2.CmdId.FromString,
                )
        self.Sync = channel.unary_unary(
                '/robotc.RobotController/Sync',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=robot__controller__pb2.CmdId.FromString,
                )
        self.SyncFor = channel.unary_unary(
                '/robotc.RobotController/SyncFor',
                request_serializer=robot__controller__pb2.SyncRequest.SerializeToString,
                response_deserializer=robot__controller__pb2.CmdId.FromString,
                )
        self.TeachMode = channel.unary_unary(
                '/robotc.RobotController/TeachMode',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=robot__controller__pb2.CmdId.FromString,
                )
        self.EndTeachMode = channel.unary_unary(
                '/robotc.RobotController/EndTeachMode',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=robot__controller__pb2.CmdId.FromString,
                )
        self.SetVelocityFactor = channel.unary_unary(
                '/robotc.RobotController/SetVelocityFactor',
                request_serializer=robot__controller__pb2.Factor.SerializeToString,
                response_deserializer=robot__controller__pb2.CmdId.FromString,
                )
        self.GetVelocityFactor = channel.unary_unary(
                '/robotc.RobotController/GetVelocityFactor',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=robot__controller__pb2.Factor.FromString,
                )
        self.SetGravity = channel.unary_unary(
                '/robotc.RobotController/SetGravity',
                request_serializer=messages__pb2.Coordinate.SerializeToString,
                response_deserializer=robot__controller__pb2.CmdId.FromString,
                )
        self.GetGravity = channel.unary_unary(
                '/robotc.RobotController/GetGravity',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=messages__pb2.Coordinate.FromString,
                )
        self.SetPayload = channel.unary_unary(
                '/robotc.RobotController/SetPayload',
                request_serializer=messages__pb2.Payload.SerializeToString,
                response_deserializer=robot__controller__pb2.CmdId.FromString,
                )
        self.GetPayload = channel.unary_unary(
                '/robotc.RobotController/GetPayload',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=messages__pb2.Payload.FromString,
                )
        self.SetPayloadMass = channel.unary_unary(
                '/robotc.RobotController/SetPayloadMass',
                request_serializer=messages__pb2.PayloadMass.SerializeToString,
                response_deserializer=robot__controller__pb2.CmdId.FromString,
                )
        self.GetPayloadMass = channel.unary_unary(
                '/robotc.RobotController/GetPayloadMass',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=messages__pb2.PayloadMass.FromString,
                )
        self.SetPayloadCog = channel.unary_unary(
                '/robotc.RobotController/SetPayloadCog',
                request_serializer=messages__pb2.PayloadCog.SerializeToString,
                response_deserializer=robot__controller__pb2.CmdId.FromString,
                )
        self.GetPayloadCog = channel.unary_unary(
                '/robotc.RobotController/GetPayloadCog',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=messages__pb2.PayloadCog.FromString,
                )
        self.SetTcp = channel.unary_unary(
                '/robotc.RobotController/SetTcp',
                request_serializer=messages__pb2.PR.SerializeToString,
                response_deserializer=robot__controller__pb2.CmdId.FromString,
                )
        self.GetTcp = channel.unary_unary(
                '/robotc.RobotController/GetTcp',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=messages__pb2.PR.FromString,
                )
        self.SetClawAmplitude = channel.unary_unary(
                '/robotc.RobotController/SetClawAmplitude',
                request_serializer=robot__controller__pb2.Amplitude.SerializeToString,
                response_deserializer=robot__controller__pb2.CmdId.FromString,
                )
        self.GetClawAmplitude = channel.unary_unary(
                '/robotc.RobotController/GetClawAmplitude',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=robot__controller__pb2.Amplitude.FromString,
                )
        self.GetClawHoldOn = channel.unary_unary(
                '/robotc.RobotController/GetClawHoldOn',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=robot__controller__pb2.HoldOn.FromString,
                )
        self.SetClawForce = channel.unary_unary(
                '/robotc.RobotController/SetClawForce',
                request_serializer=robot__controller__pb2.Force.SerializeToString,
                response_deserializer=robot__controller__pb2.CmdId.FromString,
                )
        self.GetClawWeight = channel.unary_unary(
                '/robotc.RobotController/GetClawWeight',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=robot__controller__pb2.Weight.FromString,
                )
        self.GetTcpForce = channel.unary_unary(
                '/robotc.RobotController/GetTcpForce',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=robot__controller__pb2.ForceTorque.FromString,
                )
        self.SetClaw = channel.unary_unary(
                '/robotc.RobotController/SetClaw',
                request_serializer=robot__controller__pb2.ClawInfo.SerializeToString,
                response_deserializer=robot__controller__pb2.ClawInfo.FromString,
                )
        self.GetClaw = channel.unary_unary(
                '/robotc.RobotController/GetClaw',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=robot__controller__pb2.ClawInfo.FromString,
                )
        self.SetPos = channel.unary_unary(
                '/robotc.RobotController/SetPos',
                request_serializer=messages__pb2.JPose.SerializeToString,
                response_deserializer=robot__controller__pb2.CmdId.FromString,
                )
        self.SpeedJ = channel.unary_unary(
                '/robotc.RobotController/SpeedJ',
                request_serializer=robot__controller__pb2.SpeedJRequest.SerializeToString,
                response_deserializer=robot__controller__pb2.CmdId.FromString,
                )
        self.SpeedL = channel.unary_unary(
                '/robotc.RobotController/SpeedL',
                request_serializer=robot__controller__pb2.SpeedLRequest.SerializeToString,
                response_deserializer=robot__controller__pb2.CmdId.FromString,
                )
        self.StopJ = channel.unary_unary(
                '/robotc.RobotController/StopJ',
                request_serializer=robot__controller__pb2.StopJRequest.SerializeToString,
                response_deserializer=robot__controller__pb2.CmdId.FromString,
                )
        self.StopL = channel.unary_unary(
                '/robotc.RobotController/StopL',
                request_serializer=robot__controller__pb2.StopLRequest.SerializeToString,
                response_deserializer=robot__controller__pb2.CmdId.FromString,
                )
        self.StopMove = channel.unary_unary(
                '/robotc.RobotController/StopMove',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=robot__controller__pb2.CmdId.FromString,
                )
        self.MoveC = channel.unary_unary(
                '/robotc.RobotController/MoveC',
                request_serializer=robot__controller__pb2.MoveCRequest.SerializeToString,
                response_deserializer=robot__controller__pb2.CmdId.FromString,
                )
        self.MoveJ = channel.unary_unary(
                '/robotc.RobotController/MoveJ',
                request_serializer=robot__controller__pb2.MoveJRequest.SerializeToString,
                response_deserializer=robot__controller__pb2.CmdId.FromString,
                )
        self.MoveL = channel.unary_unary(
                '/robotc.RobotController/MoveL',
                request_serializer=robot__controller__pb2.MoveLRequest.SerializeToString,
                response_deserializer=robot__controller__pb2.CmdId.FromString,
                )
        self.MoveLJ = channel.unary_unary(
                '/robotc.RobotController/MoveLJ',
                request_serializer=robot__controller__pb2.MoveLRequest.SerializeToString,
                response_deserializer=robot__controller__pb2.CmdId.FromString,
                )
        self.MoveP = channel.unary_unary(
                '/robotc.RobotController/MoveP',
                request_serializer=robot__controller__pb2.MovePRequest.SerializeToString,
                response_deserializer=robot__controller__pb2.CmdId.FromString,
                )
        self.MovePT = channel.unary_unary(
                '/robotc.RobotController/MovePT',
                request_serializer=robot__controller__pb2.PVATRequest.SerializeToString,
                response_deserializer=robot__controller__pb2.CmdId.FromString,
                )
        self.MovePTStream = channel.stream_unary(
                '/robotc.RobotController/MovePTStream',
                request_serializer=robot__controller__pb2.PVATRequest.SerializeToString,
                response_deserializer=robot__controller__pb2.CmdId.FromString,
                )
        self.MovePVT = channel.unary_unary(
                '/robotc.RobotController/MovePVT',
                request_serializer=robot__controller__pb2.PVATRequest.SerializeToString,
                response_deserializer=robot__controller__pb2.CmdId.FromString,
                )
        self.MovePVTStream = channel.stream_unary(
                '/robotc.RobotController/MovePVTStream',
                request_serializer=robot__controller__pb2.PVATRequest.SerializeToString,
                response_deserializer=robot__controller__pb2.CmdId.FromString,
                )
        self.MovePVAT = channel.unary_unary(
                '/robotc.RobotController/MovePVAT',
                request_serializer=robot__controller__pb2.PVATRequest.SerializeToString,
                response_deserializer=robot__controller__pb2.CmdId.FromString,
                )
        self.MovePVATStream = channel.stream_unary(
                '/robotc.RobotController/MovePVATStream',
                request_serializer=robot__controller__pb2.PVATRequest.SerializeToString,
                response_deserializer=robot__controller__pb2.CmdId.FromString,
                )
        self.ServoC = channel.unary_unary(
                '/robotc.RobotController/ServoC',
                request_serializer=robot__controller__pb2.ServoCRequest.SerializeToString,
                response_deserializer=robot__controller__pb2.CmdId.FromString,
                )
        self.ServoJ = channel.unary_unary(
                '/robotc.RobotController/ServoJ',
                request_serializer=robot__controller__pb2.ServoJRequest.SerializeToString,
                response_deserializer=robot__controller__pb2.CmdId.FromString,
                )
        self.GetRobotData = channel.unary_unary(
                '/robotc.RobotController/GetRobotData',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=robot__controller__pb2.RobotData.FromString,
                )
        self.GetRobotBriefData = channel.stream_stream(
                '/robotc.RobotController/GetRobotBriefData',
                request_serializer=robot__controller__pb2.RobotDataCmd.SerializeToString,
                response_deserializer=robot__controller__pb2.RobotBriefData.FromString,
                )
        self.GetRobotIOData = channel.stream_stream(
                '/robotc.RobotController/GetRobotIOData',
                request_serializer=robot__controller__pb2.RobotDataCmd.SerializeToString,
                response_deserializer=messages__pb2.IO.FromString,
                )
        self.GetRobotMode = channel.unary_unary(
                '/robotc.RobotController/GetRobotMode',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=robot__controller__pb2.RobotMode.FromString,
                )
        self.GetActualJointPositions = channel.unary_unary(
                '/robotc.RobotController/GetActualJointPositions',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=robot__controller__pb2.Joint.FromString,
                )
        self.GetTargetJointPositions = channel.unary_unary(
                '/robotc.RobotController/GetTargetJointPositions',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=robot__controller__pb2.Joint.FromString,
                )
        self.GetActualJointSpeeds = channel.unary_unary(
                '/robotc.RobotController/GetActualJointSpeeds',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=robot__controller__pb2.Joint.FromString,
                )
        self.GetTargetJointSpeeds = channel.unary_unary(
                '/robotc.RobotController/GetTargetJointSpeeds',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=robot__controller__pb2.Joint.FromString,
                )
        self.GetActualTcpPose = channel.unary_unary(
                '/robotc.RobotController/GetActualTcpPose',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=robot__controller__pb2.Vector.FromString,
                )
        self.GetTargetTcpPose = channel.unary_unary(
                '/robotc.RobotController/GetTargetTcpPose',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=robot__controller__pb2.Vector.FromString,
                )
        self.GetActualTcpSpeed = channel.unary_unary(
                '/robotc.RobotController/GetActualTcpSpeed',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=robot__controller__pb2.Vector.FromString,
                )
        self.GetTargetTcpSpeed = channel.unary_unary(
                '/robotc.RobotController/GetTargetTcpSpeed',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=robot__controller__pb2.Vector.FromString,
                )
        self.GetActualFlangePose = channel.unary_unary(
                '/robotc.RobotController/GetActualFlangePose',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=robot__controller__pb2.Vector.FromString,
                )
        self.GetJointTorques = channel.unary_unary(
                '/robotc.RobotController/GetJointTorques',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=robot__controller__pb2.Joint.FromString,
                )
        self.GetControllerTemp = channel.unary_unary(
                '/robotc.RobotController/GetControllerTemp',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=robot__controller__pb2.Temperature.FromString,
                )
        self.GetJointTemp = channel.unary_unary(
                '/robotc.RobotController/GetJointTemp',
                request_serializer=robot__controller__pb2.IntRequest.SerializeToString,
                response_deserializer=robot__controller__pb2.Temperature.FromString,
                )
        self.GetToolCurrent = channel.unary_unary(
                '/robotc.RobotController/GetToolCurrent',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=robot__controller__pb2.Current.FromString,
                )
        self.SetDIO = channel.unary_unary(
                '/robotc.RobotController/SetDIO',
                request_serializer=messages__pb2.DIO.SerializeToString,
                response_deserializer=robot__controller__pb2.CmdId.FromString,
                )
        self.SetExtraDIO = channel.unary_unary(
                '/robotc.RobotController/SetExtraDIO',
                request_serializer=messages__pb2.DIO.SerializeToString,
                response_deserializer=robot__controller__pb2.CmdId.FromString,
                )
        self.GetDIO = channel.unary_unary(
                '/robotc.RobotController/GetDIO',
                request_serializer=messages__pb2.IOPin.SerializeToString,
                response_deserializer=messages__pb2.DIO.FromString,
                )
        self.GetExtraDIO = channel.unary_unary(
                '/robotc.RobotController/GetExtraDIO',
                request_serializer=messages__pb2.IOPin.SerializeToString,
                response_deserializer=messages__pb2.DIO.FromString,
                )
        self.SetTcpDIO = channel.unary_unary(
                '/robotc.RobotController/SetTcpDIO',
                request_serializer=messages__pb2.DIO.SerializeToString,
                response_deserializer=robot__controller__pb2.CmdId.FromString,
                )
        self.GetTcpDIO = channel.unary_unary(
                '/robotc.RobotController/GetTcpDIO',
                request_serializer=messages__pb2.IOPin.SerializeToString,
                response_deserializer=messages__pb2.DIO.FromString,
                )
        self.SetAIO = channel.unary_unary(
                '/robotc.RobotController/SetAIO',
                request_serializer=messages__pb2.AIO.SerializeToString,
                response_deserializer=robot__controller__pb2.CmdId.FromString,
                )
        self.SetExtraAIO = channel.unary_unary(
                '/robotc.RobotController/SetExtraAIO',
                request_serializer=messages__pb2.AIO.SerializeToString,
                response_deserializer=robot__controller__pb2.CmdId.FromString,
                )
        self.GetAIO = channel.unary_unary(
                '/robotc.RobotController/GetAIO',
                request_serializer=messages__pb2.IOPin.SerializeToString,
                response_deserializer=messages__pb2.AIO.FromString,
                )
        self.GetExtraAIO = channel.unary_unary(
                '/robotc.RobotController/GetExtraAIO',
                request_serializer=messages__pb2.IOPin.SerializeToString,
                response_deserializer=messages__pb2.AIO.FromString,
                )
        self.SetAInMode = channel.unary_unary(
                '/robotc.RobotController/SetAInMode',
                request_serializer=messages__pb2.AIO.SerializeToString,
                response_deserializer=robot__controller__pb2.CmdId.FromString,
                )
        self.SetExtraAInMode = channel.unary_unary(
                '/robotc.RobotController/SetExtraAInMode',
                request_serializer=messages__pb2.AIO.SerializeToString,
                response_deserializer=robot__controller__pb2.CmdId.FromString,
                )
        self.GetAInMode = channel.unary_unary(
                '/robotc.RobotController/GetAInMode',
                request_serializer=messages__pb2.IOPin.SerializeToString,
                response_deserializer=messages__pb2.AIO.FromString,
                )
        self.GetExtraAInMode = channel.unary_unary(
                '/robotc.RobotController/GetExtraAInMode',
                request_serializer=messages__pb2.IOPin.SerializeToString,
                response_deserializer=messages__pb2.AIO.FromString,
                )
        self.SetAOutMode = channel.unary_unary(
                '/robotc.RobotController/SetAOutMode',
                request_serializer=messages__pb2.AIO.SerializeToString,
                response_deserializer=robot__controller__pb2.CmdId.FromString,
                )
        self.SetExtraAOutMode = channel.unary_unary(
                '/robotc.RobotController/SetExtraAOutMode',
                request_serializer=messages__pb2.AIO.SerializeToString,
                response_deserializer=robot__controller__pb2.CmdId.FromString,
                )
        self.GetAOutMode = channel.unary_unary(
                '/robotc.RobotController/GetAOutMode',
                request_serializer=messages__pb2.IOPin.SerializeToString,
                response_deserializer=messages__pb2.AIO.FromString,
                )
        self.GetExtraAOutMode = channel.unary_unary(
                '/robotc.RobotController/GetExtraAOutMode',
                request_serializer=messages__pb2.IOPin.SerializeToString,
                response_deserializer=messages__pb2.AIO.FromString,
                )
        self.StartSys = channel.unary_unary(
                '/robotc.RobotController/StartSys',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=robot__controller__pb2.CmdId.FromString,
                )
        self.StopSys = channel.unary_unary(
                '/robotc.RobotController/StopSys',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=robot__controller__pb2.CmdId.FromString,
                )
        self.Stop = channel.unary_unary(
                '/robotc.RobotController/Stop',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=robot__controller__pb2.CmdId.FromString,
                )
        self.EStop = channel.unary_unary(
                '/robotc.RobotController/EStop',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=robot__controller__pb2.CmdId.FromString,
                )
        self.GetKDL = channel.unary_unary(
                '/robotc.RobotController/GetKDL',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=robot__controller__pb2.KDParam.FromString,
                )
        self.GetLogs = channel.unary_unary(
                '/robotc.RobotController/GetLogs',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=robot__controller__pb2.Logs.FromString,
                )
        self.GetCurrentCmd = channel.unary_unary(
                '/robotc.RobotController/GetCurrentCmd',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=robot__controller__pb2.CmdId.FromString,
                )
        self.GetCmdExecStatus = channel.unary_unary(
                '/robotc.RobotController/GetCmdExecStatus',
                request_serializer=robot__controller__pb2.CmdId.SerializeToString,
                response_deserializer=robot__controller__pb2.CmdStatus.FromString,
                )
        self.StartFineTuning = channel.unary_unary(
                '/robotc.RobotController/StartFineTuning',
                request_serializer=robot__controller__pb2.FineTuning.SerializeToString,
                response_deserializer=robot__controller__pb2.CmdId.FromString,
                )
        self.StopFineTuning = channel.unary_unary(
                '/robotc.RobotController/StopFineTuning',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=robot__controller__pb2.CmdId.FromString,
                )
        self.Pause = channel.unary_unary(
                '/robotc.RobotController/Pause',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=robot__controller__pb2.CmdId.FromString,
                )
        self.Resume = channel.unary_unary(
                '/robotc.RobotController/Resume',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=robot__controller__pb2.CmdId.FromString,
                )
        self.KinematicsForward = channel.unary_unary(
                '/robotc.RobotController/KinematicsForward',
                request_serializer=robot__controller__pb2.Joint.SerializeToString,
                response_deserializer=robot__controller__pb2.Vector.FromString,
                )
        self.KinematicsInverse = channel.unary_unary(
                '/robotc.RobotController/KinematicsInverse',
                request_serializer=robot__controller__pb2.Vector.SerializeToString,
                response_deserializer=robot__controller__pb2.Joint.FromString,
                )
        self.CalcTcpTranslation = channel.unary_unary(
                '/robotc.RobotController/CalcTcpTranslation',
                request_serializer=robot__controller__pb2.CalcTcpParam.SerializeToString,
                response_deserializer=robot__controller__pb2.Vector.FromString,
                )
        self.MoveLRPY = channel.unary_unary(
                '/robotc.RobotController/MoveLRPY',
                request_serializer=robot__controller__pb2.MoveLRPYRequest.SerializeToString,
                response_deserializer=robot__controller__pb2.CmdId.FromString,
                )
        self.SetLED = channel.unary_unary(
                '/robotc.RobotController/SetLED',
                request_serializer=robot__controller__pb2.LEDStatus.SerializeToString,
                response_deserializer=robot__controller__pb2.CmdId.FromString,
                )
        self.SetVoice = channel.unary_unary(
                '/robotc.RobotController/SetVoice',
                request_serializer=robot__controller__pb2.VoiceStatus.SerializeToString,
                response_deserializer=robot__controller__pb2.CmdId.FromString,
                )
        self.SetFan = channel.unary_unary(
                '/robotc.RobotController/SetFan',
                request_serializer=robot__controller__pb2.FanStatus.SerializeToString,
                response_deserializer=robot__controller__pb2.CmdId.FromString,
                )
        self.GetLampStatus = channel.unary_unary(
                '/robotc.RobotController/GetLampStatus',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=robot__controller__pb2.LampStatus.FromString,
                )
        self.GetLuaState = channel.unary_unary(
                '/robotc.RobotController/GetLuaState',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=robot__controller__pb2.LuaStatus.FromString,
                )
        self.SetExternalDO = channel.unary_unary(
                '/robotc.RobotController/SetExternalDO',
                request_serializer=robot__controller__pb2.ExternalDigital.SerializeToString,
                response_deserializer=messages__pb2.Response.FromString,
                )
        self.GetExternalDO = channel.unary_unary(
                '/robotc.RobotController/GetExternalDO',
                request_serializer=robot__controller__pb2.ExternalPin.SerializeToString,
                response_deserializer=robot__controller__pb2.ExternalDigital.FromString,
                )
        self.GetExternalDI = channel.unary_unary(
                '/robotc.RobotController/GetExternalDI',
                request_serializer=robot__controller__pb2.ExternalPin.SerializeToString,
                response_deserializer=robot__controller__pb2.ExternalDigital.FromString,
                )
        self.SetExternalAO = channel.unary_unary(
                '/robotc.RobotController/SetExternalAO',
                request_serializer=robot__controller__pb2.ExternalAnalog.SerializeToString,
                response_deserializer=messages__pb2.Response.FromString,
                )
        self.GetExternalAO = channel.unary_unary(
                '/robotc.RobotController/GetExternalAO',
                request_serializer=robot__controller__pb2.ExternalPin.SerializeToString,
                response_deserializer=robot__controller__pb2.ExternalAnalog.FromString,
                )
        self.GetExternalAI = channel.unary_unary(
                '/robotc.RobotController/GetExternalAI',
                request_serializer=robot__controller__pb2.ExternalPin.SerializeToString,
                response_deserializer=robot__controller__pb2.ExternalAnalog.FromString,
                )
        self.GetExternalIOs = channel.unary_unary(
                '/robotc.RobotController/GetExternalIOs',
                request_serializer=robot__controller__pb2.ExternalDevice.SerializeToString,
                response_deserializer=robot__controller__pb2.ExternalIOs.FromString,
                )
        self.SetExternalDOs = channel.unary_unary(
                '/robotc.RobotController/SetExternalDOs',
                request_serializer=robot__controller__pb2.ExternalDigitals.SerializeToString,
                response_deserializer=messages__pb2.Response.FromString,
                )
        self.GetExternalDOs = channel.unary_unary(
                '/robotc.RobotController/GetExternalDOs',
                request_serializer=robot__controller__pb2.ExternalPins.SerializeToString,
                response_deserializer=robot__controller__pb2.ExternalDigitals.FromString,
                )
        self.GetExternalDIs = channel.unary_unary(
                '/robotc.RobotController/GetExternalDIs',
                request_serializer=robot__controller__pb2.ExternalPins.SerializeToString,
                response_deserializer=robot__controller__pb2.ExternalDigitals.FromString,
                )
        self.SetExternalAOs = channel.unary_unary(
                '/robotc.RobotController/SetExternalAOs',
                request_serializer=robot__controller__pb2.ExternalAnalogs.SerializeToString,
                response_deserializer=messages__pb2.Response.FromString,
                )
        self.GetExternalAOs = channel.unary_unary(
                '/robotc.RobotController/GetExternalAOs',
                request_serializer=robot__controller__pb2.ExternalPins.SerializeToString,
                response_deserializer=robot__controller__pb2.ExternalAnalogs.FromString,
                )
        self.GetExternalAIs = channel.unary_unary(
                '/robotc.RobotController/GetExternalAIs',
                request_serializer=robot__controller__pb2.ExternalPins.SerializeToString,
                response_deserializer=robot__controller__pb2.ExternalAnalogs.FromString,
                )
        self.SetSignal = channel.unary_unary(
                '/robotc.RobotController/SetSignal',
                request_serializer=robot__controller__pb2.SignalValue.SerializeToString,
                response_deserializer=robot__controller__pb2.SignalResult.FromString,
                )
        self.GetSignal = channel.unary_unary(
                '/robotc.RobotController/GetSignal',
                request_serializer=robot__controller__pb2.SignalValue.SerializeToString,
                response_deserializer=robot__controller__pb2.SignalResult.FromString,
                )
        self.AddSignal = channel.unary_unary(
                '/robotc.RobotController/AddSignal',
                request_serializer=robot__controller__pb2.SignalValue.SerializeToString,
                response_deserializer=robot__controller__pb2.SignalResult.FromString,
                )
        self.RegisterSignals = channel.stream_stream(
                '/robotc.RobotController/RegisterSignals',
                request_serializer=robot__controller__pb2.SignalList.SerializeToString,
                response_deserializer=robot__controller__pb2.SignalValue.FromString,
                )


class RobotControllerServicer(object):
    """Robot controller gRPC & protobuf idl language definition
    """

    def PowerDown(self, request, context):
        """1. Basic control commands
        关闭电源
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Sleep(self, request, context):
        """等待，单位毫秒
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Sync(self, request, context):
        """同步，等待指定命令执行完成，type为0时表示所有（默认）
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

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

    def TeachMode(self, request, context):
        """2. Config commands
        开启示教模式
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def EndTeachMode(self, request, context):
        """关闭示教模式
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SetVelocityFactor(self, request, context):
        """设置速度因子（0-100）
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetVelocityFactor(self, request, context):
        """获取速度因子（0-100）
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

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

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

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

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

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

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

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

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

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

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

    def SetClawAmplitude(self, request, context):
        """设置手爪幅度：0-100 double
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetClawAmplitude(self, request, context):
        """获得手爪幅度：0-100 double
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetClawHoldOn(self, request, context):
        """获得手爪目前是否夹紧物体状态1表示夹紧，0为松开
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SetClawForce(self, request, context):
        """设置手爪力度：0-100 double
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetClawWeight(self, request, context):
        """获得手爪称重结果
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetTcpForce(self, request, context):
        """implement later
        rpc Force(google.protobuf.Empty) returns (Force);
        implement later
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

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

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

    def SetPos(self, request, context):
        """3. Motion control commands
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

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

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

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

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

    def StopMove(self, request, context):
        """停止当前移动
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def MoveC(self, request, context):
        """圆弧移动
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def MoveJ(self, request, context):
        """关节空间线性移动
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def MoveL(self, request, context):
        """笛卡尔空间线性移动
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

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

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

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

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

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

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

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

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

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

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

    def GetRobotData(self, request, context):
        """4. Status and data query commands
        获取机器人所有状态数据
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetRobotBriefData(self, request_iterator, context):
        """获取机器人概要数据
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetRobotIOData(self, request_iterator, context):
        """获取机器人的IO数据
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetRobotMode(self, request, context):
        """获取机器人状态
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetActualJointPositions(self, request, context):
        """获得实际关节位置
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetTargetJointPositions(self, request, context):
        """获得目标关节位置
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetActualJointSpeeds(self, request, context):
        """获得实际关节速度
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetTargetJointSpeeds(self, request, context):
        """获得目标关节速度
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetActualTcpPose(self, request, context):
        """获得末端在笛卡尔坐标系下的位姿
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetTargetTcpPose(self, request, context):
        """获得末端在笛卡尔坐标系下的目标位姿
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

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

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

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

    def GetJointTorques(self, request, context):
        """获取关节扭矩
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetControllerTemp(self, request, context):
        """获取控制器温度
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetJointTemp(self, request, context):
        """获取关节内部温度
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

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

    def SetDIO(self, request, context):
        """xxx
        5. IO-related cmds
        设置数字输出端口的值
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SetExtraDIO(self, request, context):
        """设置扩展数字输出端口的值
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetDIO(self, request, context):
        """获得数字输入端口的值
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetExtraDIO(self, request, context):
        """获得扩展数字数如端口的值
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SetTcpDIO(self, request, context):
        """设置TCP数字输出端口的值
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetTcpDIO(self, request, context):
        """获得TCP数字输入端口的值
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SetAIO(self, request, context):
        """设置模拟输出端口的值
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SetExtraAIO(self, request, context):
        """获得模拟输入端口的值
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetAIO(self, request, context):
        """获得模拟输入端口的值
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetExtraAIO(self, request, context):
        """获得扩展模拟输入端口的值
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SetAInMode(self, request, context):
        """设置模拟输入端口工作模式：0:电压，1:电流
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SetExtraAInMode(self, request, context):
        """设置扩展模拟输入端口工作模式：0:电压，1:电流
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetAInMode(self, request, context):
        """获得模拟输入端口工作模式：0:电压，1:电流
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetExtraAInMode(self, request, context):
        """获得扩展模拟输入端口工作模式：0:电压，1:电流
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SetAOutMode(self, request, context):
        """设置模拟输出端口工作模式：0:电压，1:电流
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SetExtraAOutMode(self, request, context):
        """设置扩展模拟输出端口工作模式：0:电压，1:电流
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetAOutMode(self, request, context):
        """获得模拟输出端口工作模式：0:电压，1:电流
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetExtraAOutMode(self, request, context):
        """获得扩展模拟输出端口工作模式：0:电压，1:电流
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def StartSys(self, request, context):
        """6. Control commands
        开启/启动系统
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def StopSys(self, request, context):
        """关闭/停止系统
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Stop(self, request, context):
        """程序停止
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

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

    def GetKDL(self, request, context):
        """7. Internal commands
        获取kdl参数
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetLogs(self, request, context):
        """查询系统里面的日志信息
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetCurrentCmd(self, request, context):
        """获得当前正在执行的命令id，如果没有在执行的命令，则返回-1
        命令id
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetCmdExecStatus(self, request, context):
        """获得指定命令id的执行结果：-1: 未执行；0: 已执行
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def StartFineTuning(self, request, context):
        """开始微调: 如果当前有其他微调再传入新的微调命令会终止当前的微调进行新的微调
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def StopFineTuning(self, request, context):
        """停止微调
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Pause(self, request, context):
        """暂停机器人
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Resume(self, request, context):
        """恢复机器人
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def KinematicsForward(self, request, context):
        """机器人正解
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def KinematicsInverse(self, request, context):
        """机器人反解
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def CalcTcpTranslation(self, request, context):
        """TCP示教添加
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def MoveLRPY(self, request, context):
        """8. Test command
        测试命令，以给定的RPY数据执行线性移动
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SetLED(self, request, context):
        """9. 扬声器和LED灯
        设置LED灯状态
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SetVoice(self, request, context):
        """设置声音
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SetFan(self, request, context):
        """设置风扇
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetLampStatus(self, request, context):
        """获取灯板状态
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetLuaState(self, request, context):
        """Lua 状态查询
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SetExternalDO(self, request, context):
        """外置数字输出
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

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

    def GetExternalDI(self, request, context):
        """外置数字输入
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SetExternalAO(self, request, context):
        """外置模拟输出
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

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

    def GetExternalAI(self, request, context):
        """外置模拟输入
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetExternalIOs(self, request, context):
        """获取某个外置io的全部io信息
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SetExternalDOs(self, request, context):
        """外置IO的复数版本
        外置数字输出
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

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

    def GetExternalDIs(self, request, context):
        """外置数字输入
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SetExternalAOs(self, request, context):
        """外置模拟输出
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

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

    def GetExternalAIs(self, request, context):
        """外置模拟输入
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SetSignal(self, request, context):
        """信号量
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

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

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

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


def add_RobotControllerServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'PowerDown': grpc.unary_unary_rpc_method_handler(
                    servicer.PowerDown,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=robot__controller__pb2.CmdId.SerializeToString,
            ),
            'Sleep': grpc.unary_unary_rpc_method_handler(
                    servicer.Sleep,
                    request_deserializer=robot__controller__pb2.SleepRequest.FromString,
                    response_serializer=robot__controller__pb2.CmdId.SerializeToString,
            ),
            'Sync': grpc.unary_unary_rpc_method_handler(
                    servicer.Sync,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=robot__controller__pb2.CmdId.SerializeToString,
            ),
            'SyncFor': grpc.unary_unary_rpc_method_handler(
                    servicer.SyncFor,
                    request_deserializer=robot__controller__pb2.SyncRequest.FromString,
                    response_serializer=robot__controller__pb2.CmdId.SerializeToString,
            ),
            'TeachMode': grpc.unary_unary_rpc_method_handler(
                    servicer.TeachMode,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=robot__controller__pb2.CmdId.SerializeToString,
            ),
            'EndTeachMode': grpc.unary_unary_rpc_method_handler(
                    servicer.EndTeachMode,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=robot__controller__pb2.CmdId.SerializeToString,
            ),
            'SetVelocityFactor': grpc.unary_unary_rpc_method_handler(
                    servicer.SetVelocityFactor,
                    request_deserializer=robot__controller__pb2.Factor.FromString,
                    response_serializer=robot__controller__pb2.CmdId.SerializeToString,
            ),
            'GetVelocityFactor': grpc.unary_unary_rpc_method_handler(
                    servicer.GetVelocityFactor,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=robot__controller__pb2.Factor.SerializeToString,
            ),
            'SetGravity': grpc.unary_unary_rpc_method_handler(
                    servicer.SetGravity,
                    request_deserializer=messages__pb2.Coordinate.FromString,
                    response_serializer=robot__controller__pb2.CmdId.SerializeToString,
            ),
            'GetGravity': grpc.unary_unary_rpc_method_handler(
                    servicer.GetGravity,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=messages__pb2.Coordinate.SerializeToString,
            ),
            'SetPayload': grpc.unary_unary_rpc_method_handler(
                    servicer.SetPayload,
                    request_deserializer=messages__pb2.Payload.FromString,
                    response_serializer=robot__controller__pb2.CmdId.SerializeToString,
            ),
            'GetPayload': grpc.unary_unary_rpc_method_handler(
                    servicer.GetPayload,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=messages__pb2.Payload.SerializeToString,
            ),
            'SetPayloadMass': grpc.unary_unary_rpc_method_handler(
                    servicer.SetPayloadMass,
                    request_deserializer=messages__pb2.PayloadMass.FromString,
                    response_serializer=robot__controller__pb2.CmdId.SerializeToString,
            ),
            'GetPayloadMass': grpc.unary_unary_rpc_method_handler(
                    servicer.GetPayloadMass,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=messages__pb2.PayloadMass.SerializeToString,
            ),
            'SetPayloadCog': grpc.unary_unary_rpc_method_handler(
                    servicer.SetPayloadCog,
                    request_deserializer=messages__pb2.PayloadCog.FromString,
                    response_serializer=robot__controller__pb2.CmdId.SerializeToString,
            ),
            'GetPayloadCog': grpc.unary_unary_rpc_method_handler(
                    servicer.GetPayloadCog,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=messages__pb2.PayloadCog.SerializeToString,
            ),
            'SetTcp': grpc.unary_unary_rpc_method_handler(
                    servicer.SetTcp,
                    request_deserializer=messages__pb2.PR.FromString,
                    response_serializer=robot__controller__pb2.CmdId.SerializeToString,
            ),
            'GetTcp': grpc.unary_unary_rpc_method_handler(
                    servicer.GetTcp,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=messages__pb2.PR.SerializeToString,
            ),
            'SetClawAmplitude': grpc.unary_unary_rpc_method_handler(
                    servicer.SetClawAmplitude,
                    request_deserializer=robot__controller__pb2.Amplitude.FromString,
                    response_serializer=robot__controller__pb2.CmdId.SerializeToString,
            ),
            'GetClawAmplitude': grpc.unary_unary_rpc_method_handler(
                    servicer.GetClawAmplitude,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=robot__controller__pb2.Amplitude.SerializeToString,
            ),
            'GetClawHoldOn': grpc.unary_unary_rpc_method_handler(
                    servicer.GetClawHoldOn,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=robot__controller__pb2.HoldOn.SerializeToString,
            ),
            'SetClawForce': grpc.unary_unary_rpc_method_handler(
                    servicer.SetClawForce,
                    request_deserializer=robot__controller__pb2.Force.FromString,
                    response_serializer=robot__controller__pb2.CmdId.SerializeToString,
            ),
            'GetClawWeight': grpc.unary_unary_rpc_method_handler(
                    servicer.GetClawWeight,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=robot__controller__pb2.Weight.SerializeToString,
            ),
            'GetTcpForce': grpc.unary_unary_rpc_method_handler(
                    servicer.GetTcpForce,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=robot__controller__pb2.ForceTorque.SerializeToString,
            ),
            'SetClaw': grpc.unary_unary_rpc_method_handler(
                    servicer.SetClaw,
                    request_deserializer=robot__controller__pb2.ClawInfo.FromString,
                    response_serializer=robot__controller__pb2.ClawInfo.SerializeToString,
            ),
            'GetClaw': grpc.unary_unary_rpc_method_handler(
                    servicer.GetClaw,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=robot__controller__pb2.ClawInfo.SerializeToString,
            ),
            'SetPos': grpc.unary_unary_rpc_method_handler(
                    servicer.SetPos,
                    request_deserializer=messages__pb2.JPose.FromString,
                    response_serializer=robot__controller__pb2.CmdId.SerializeToString,
            ),
            'SpeedJ': grpc.unary_unary_rpc_method_handler(
                    servicer.SpeedJ,
                    request_deserializer=robot__controller__pb2.SpeedJRequest.FromString,
                    response_serializer=robot__controller__pb2.CmdId.SerializeToString,
            ),
            'SpeedL': grpc.unary_unary_rpc_method_handler(
                    servicer.SpeedL,
                    request_deserializer=robot__controller__pb2.SpeedLRequest.FromString,
                    response_serializer=robot__controller__pb2.CmdId.SerializeToString,
            ),
            'StopJ': grpc.unary_unary_rpc_method_handler(
                    servicer.StopJ,
                    request_deserializer=robot__controller__pb2.StopJRequest.FromString,
                    response_serializer=robot__controller__pb2.CmdId.SerializeToString,
            ),
            'StopL': grpc.unary_unary_rpc_method_handler(
                    servicer.StopL,
                    request_deserializer=robot__controller__pb2.StopLRequest.FromString,
                    response_serializer=robot__controller__pb2.CmdId.SerializeToString,
            ),
            'StopMove': grpc.unary_unary_rpc_method_handler(
                    servicer.StopMove,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=robot__controller__pb2.CmdId.SerializeToString,
            ),
            'MoveC': grpc.unary_unary_rpc_method_handler(
                    servicer.MoveC,
                    request_deserializer=robot__controller__pb2.MoveCRequest.FromString,
                    response_serializer=robot__controller__pb2.CmdId.SerializeToString,
            ),
            'MoveJ': grpc.unary_unary_rpc_method_handler(
                    servicer.MoveJ,
                    request_deserializer=robot__controller__pb2.MoveJRequest.FromString,
                    response_serializer=robot__controller__pb2.CmdId.SerializeToString,
            ),
            'MoveL': grpc.unary_unary_rpc_method_handler(
                    servicer.MoveL,
                    request_deserializer=robot__controller__pb2.MoveLRequest.FromString,
                    response_serializer=robot__controller__pb2.CmdId.SerializeToString,
            ),
            'MoveLJ': grpc.unary_unary_rpc_method_handler(
                    servicer.MoveLJ,
                    request_deserializer=robot__controller__pb2.MoveLRequest.FromString,
                    response_serializer=robot__controller__pb2.CmdId.SerializeToString,
            ),
            'MoveP': grpc.unary_unary_rpc_method_handler(
                    servicer.MoveP,
                    request_deserializer=robot__controller__pb2.MovePRequest.FromString,
                    response_serializer=robot__controller__pb2.CmdId.SerializeToString,
            ),
            'MovePT': grpc.unary_unary_rpc_method_handler(
                    servicer.MovePT,
                    request_deserializer=robot__controller__pb2.PVATRequest.FromString,
                    response_serializer=robot__controller__pb2.CmdId.SerializeToString,
            ),
            'MovePTStream': grpc.stream_unary_rpc_method_handler(
                    servicer.MovePTStream,
                    request_deserializer=robot__controller__pb2.PVATRequest.FromString,
                    response_serializer=robot__controller__pb2.CmdId.SerializeToString,
            ),
            'MovePVT': grpc.unary_unary_rpc_method_handler(
                    servicer.MovePVT,
                    request_deserializer=robot__controller__pb2.PVATRequest.FromString,
                    response_serializer=robot__controller__pb2.CmdId.SerializeToString,
            ),
            'MovePVTStream': grpc.stream_unary_rpc_method_handler(
                    servicer.MovePVTStream,
                    request_deserializer=robot__controller__pb2.PVATRequest.FromString,
                    response_serializer=robot__controller__pb2.CmdId.SerializeToString,
            ),
            'MovePVAT': grpc.unary_unary_rpc_method_handler(
                    servicer.MovePVAT,
                    request_deserializer=robot__controller__pb2.PVATRequest.FromString,
                    response_serializer=robot__controller__pb2.CmdId.SerializeToString,
            ),
            'MovePVATStream': grpc.stream_unary_rpc_method_handler(
                    servicer.MovePVATStream,
                    request_deserializer=robot__controller__pb2.PVATRequest.FromString,
                    response_serializer=robot__controller__pb2.CmdId.SerializeToString,
            ),
            'ServoC': grpc.unary_unary_rpc_method_handler(
                    servicer.ServoC,
                    request_deserializer=robot__controller__pb2.ServoCRequest.FromString,
                    response_serializer=robot__controller__pb2.CmdId.SerializeToString,
            ),
            'ServoJ': grpc.unary_unary_rpc_method_handler(
                    servicer.ServoJ,
                    request_deserializer=robot__controller__pb2.ServoJRequest.FromString,
                    response_serializer=robot__controller__pb2.CmdId.SerializeToString,
            ),
            'GetRobotData': grpc.unary_unary_rpc_method_handler(
                    servicer.GetRobotData,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=robot__controller__pb2.RobotData.SerializeToString,
            ),
            'GetRobotBriefData': grpc.stream_stream_rpc_method_handler(
                    servicer.GetRobotBriefData,
                    request_deserializer=robot__controller__pb2.RobotDataCmd.FromString,
                    response_serializer=robot__controller__pb2.RobotBriefData.SerializeToString,
            ),
            'GetRobotIOData': grpc.stream_stream_rpc_method_handler(
                    servicer.GetRobotIOData,
                    request_deserializer=robot__controller__pb2.RobotDataCmd.FromString,
                    response_serializer=messages__pb2.IO.SerializeToString,
            ),
            'GetRobotMode': grpc.unary_unary_rpc_method_handler(
                    servicer.GetRobotMode,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=robot__controller__pb2.RobotMode.SerializeToString,
            ),
            'GetActualJointPositions': grpc.unary_unary_rpc_method_handler(
                    servicer.GetActualJointPositions,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=robot__controller__pb2.Joint.SerializeToString,
            ),
            'GetTargetJointPositions': grpc.unary_unary_rpc_method_handler(
                    servicer.GetTargetJointPositions,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=robot__controller__pb2.Joint.SerializeToString,
            ),
            'GetActualJointSpeeds': grpc.unary_unary_rpc_method_handler(
                    servicer.GetActualJointSpeeds,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=robot__controller__pb2.Joint.SerializeToString,
            ),
            'GetTargetJointSpeeds': grpc.unary_unary_rpc_method_handler(
                    servicer.GetTargetJointSpeeds,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=robot__controller__pb2.Joint.SerializeToString,
            ),
            'GetActualTcpPose': grpc.unary_unary_rpc_method_handler(
                    servicer.GetActualTcpPose,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=robot__controller__pb2.Vector.SerializeToString,
            ),
            'GetTargetTcpPose': grpc.unary_unary_rpc_method_handler(
                    servicer.GetTargetTcpPose,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=robot__controller__pb2.Vector.SerializeToString,
            ),
            'GetActualTcpSpeed': grpc.unary_unary_rpc_method_handler(
                    servicer.GetActualTcpSpeed,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=robot__controller__pb2.Vector.SerializeToString,
            ),
            'GetTargetTcpSpeed': grpc.unary_unary_rpc_method_handler(
                    servicer.GetTargetTcpSpeed,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=robot__controller__pb2.Vector.SerializeToString,
            ),
            'GetActualFlangePose': grpc.unary_unary_rpc_method_handler(
                    servicer.GetActualFlangePose,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=robot__controller__pb2.Vector.SerializeToString,
            ),
            'GetJointTorques': grpc.unary_unary_rpc_method_handler(
                    servicer.GetJointTorques,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=robot__controller__pb2.Joint.SerializeToString,
            ),
            'GetControllerTemp': grpc.unary_unary_rpc_method_handler(
                    servicer.GetControllerTemp,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=robot__controller__pb2.Temperature.SerializeToString,
            ),
            'GetJointTemp': grpc.unary_unary_rpc_method_handler(
                    servicer.GetJointTemp,
                    request_deserializer=robot__controller__pb2.IntRequest.FromString,
                    response_serializer=robot__controller__pb2.Temperature.SerializeToString,
            ),
            'GetToolCurrent': grpc.unary_unary_rpc_method_handler(
                    servicer.GetToolCurrent,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=robot__controller__pb2.Current.SerializeToString,
            ),
            'SetDIO': grpc.unary_unary_rpc_method_handler(
                    servicer.SetDIO,
                    request_deserializer=messages__pb2.DIO.FromString,
                    response_serializer=robot__controller__pb2.CmdId.SerializeToString,
            ),
            'SetExtraDIO': grpc.unary_unary_rpc_method_handler(
                    servicer.SetExtraDIO,
                    request_deserializer=messages__pb2.DIO.FromString,
                    response_serializer=robot__controller__pb2.CmdId.SerializeToString,
            ),
            'GetDIO': grpc.unary_unary_rpc_method_handler(
                    servicer.GetDIO,
                    request_deserializer=messages__pb2.IOPin.FromString,
                    response_serializer=messages__pb2.DIO.SerializeToString,
            ),
            'GetExtraDIO': grpc.unary_unary_rpc_method_handler(
                    servicer.GetExtraDIO,
                    request_deserializer=messages__pb2.IOPin.FromString,
                    response_serializer=messages__pb2.DIO.SerializeToString,
            ),
            'SetTcpDIO': grpc.unary_unary_rpc_method_handler(
                    servicer.SetTcpDIO,
                    request_deserializer=messages__pb2.DIO.FromString,
                    response_serializer=robot__controller__pb2.CmdId.SerializeToString,
            ),
            'GetTcpDIO': grpc.unary_unary_rpc_method_handler(
                    servicer.GetTcpDIO,
                    request_deserializer=messages__pb2.IOPin.FromString,
                    response_serializer=messages__pb2.DIO.SerializeToString,
            ),
            'SetAIO': grpc.unary_unary_rpc_method_handler(
                    servicer.SetAIO,
                    request_deserializer=messages__pb2.AIO.FromString,
                    response_serializer=robot__controller__pb2.CmdId.SerializeToString,
            ),
            'SetExtraAIO': grpc.unary_unary_rpc_method_handler(
                    servicer.SetExtraAIO,
                    request_deserializer=messages__pb2.AIO.FromString,
                    response_serializer=robot__controller__pb2.CmdId.SerializeToString,
            ),
            'GetAIO': grpc.unary_unary_rpc_method_handler(
                    servicer.GetAIO,
                    request_deserializer=messages__pb2.IOPin.FromString,
                    response_serializer=messages__pb2.AIO.SerializeToString,
            ),
            'GetExtraAIO': grpc.unary_unary_rpc_method_handler(
                    servicer.GetExtraAIO,
                    request_deserializer=messages__pb2.IOPin.FromString,
                    response_serializer=messages__pb2.AIO.SerializeToString,
            ),
            'SetAInMode': grpc.unary_unary_rpc_method_handler(
                    servicer.SetAInMode,
                    request_deserializer=messages__pb2.AIO.FromString,
                    response_serializer=robot__controller__pb2.CmdId.SerializeToString,
            ),
            'SetExtraAInMode': grpc.unary_unary_rpc_method_handler(
                    servicer.SetExtraAInMode,
                    request_deserializer=messages__pb2.AIO.FromString,
                    response_serializer=robot__controller__pb2.CmdId.SerializeToString,
            ),
            'GetAInMode': grpc.unary_unary_rpc_method_handler(
                    servicer.GetAInMode,
                    request_deserializer=messages__pb2.IOPin.FromString,
                    response_serializer=messages__pb2.AIO.SerializeToString,
            ),
            'GetExtraAInMode': grpc.unary_unary_rpc_method_handler(
                    servicer.GetExtraAInMode,
                    request_deserializer=messages__pb2.IOPin.FromString,
                    response_serializer=messages__pb2.AIO.SerializeToString,
            ),
            'SetAOutMode': grpc.unary_unary_rpc_method_handler(
                    servicer.SetAOutMode,
                    request_deserializer=messages__pb2.AIO.FromString,
                    response_serializer=robot__controller__pb2.CmdId.SerializeToString,
            ),
            'SetExtraAOutMode': grpc.unary_unary_rpc_method_handler(
                    servicer.SetExtraAOutMode,
                    request_deserializer=messages__pb2.AIO.FromString,
                    response_serializer=robot__controller__pb2.CmdId.SerializeToString,
            ),
            'GetAOutMode': grpc.unary_unary_rpc_method_handler(
                    servicer.GetAOutMode,
                    request_deserializer=messages__pb2.IOPin.FromString,
                    response_serializer=messages__pb2.AIO.SerializeToString,
            ),
            'GetExtraAOutMode': grpc.unary_unary_rpc_method_handler(
                    servicer.GetExtraAOutMode,
                    request_deserializer=messages__pb2.IOPin.FromString,
                    response_serializer=messages__pb2.AIO.SerializeToString,
            ),
            'StartSys': grpc.unary_unary_rpc_method_handler(
                    servicer.StartSys,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=robot__controller__pb2.CmdId.SerializeToString,
            ),
            'StopSys': grpc.unary_unary_rpc_method_handler(
                    servicer.StopSys,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=robot__controller__pb2.CmdId.SerializeToString,
            ),
            'Stop': grpc.unary_unary_rpc_method_handler(
                    servicer.Stop,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=robot__controller__pb2.CmdId.SerializeToString,
            ),
            'EStop': grpc.unary_unary_rpc_method_handler(
                    servicer.EStop,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=robot__controller__pb2.CmdId.SerializeToString,
            ),
            'GetKDL': grpc.unary_unary_rpc_method_handler(
                    servicer.GetKDL,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=robot__controller__pb2.KDParam.SerializeToString,
            ),
            'GetLogs': grpc.unary_unary_rpc_method_handler(
                    servicer.GetLogs,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=robot__controller__pb2.Logs.SerializeToString,
            ),
            'GetCurrentCmd': grpc.unary_unary_rpc_method_handler(
                    servicer.GetCurrentCmd,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=robot__controller__pb2.CmdId.SerializeToString,
            ),
            'GetCmdExecStatus': grpc.unary_unary_rpc_method_handler(
                    servicer.GetCmdExecStatus,
                    request_deserializer=robot__controller__pb2.CmdId.FromString,
                    response_serializer=robot__controller__pb2.CmdStatus.SerializeToString,
            ),
            'StartFineTuning': grpc.unary_unary_rpc_method_handler(
                    servicer.StartFineTuning,
                    request_deserializer=robot__controller__pb2.FineTuning.FromString,
                    response_serializer=robot__controller__pb2.CmdId.SerializeToString,
            ),
            'StopFineTuning': grpc.unary_unary_rpc_method_handler(
                    servicer.StopFineTuning,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=robot__controller__pb2.CmdId.SerializeToString,
            ),
            'Pause': grpc.unary_unary_rpc_method_handler(
                    servicer.Pause,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=robot__controller__pb2.CmdId.SerializeToString,
            ),
            'Resume': grpc.unary_unary_rpc_method_handler(
                    servicer.Resume,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=robot__controller__pb2.CmdId.SerializeToString,
            ),
            'KinematicsForward': grpc.unary_unary_rpc_method_handler(
                    servicer.KinematicsForward,
                    request_deserializer=robot__controller__pb2.Joint.FromString,
                    response_serializer=robot__controller__pb2.Vector.SerializeToString,
            ),
            'KinematicsInverse': grpc.unary_unary_rpc_method_handler(
                    servicer.KinematicsInverse,
                    request_deserializer=robot__controller__pb2.Vector.FromString,
                    response_serializer=robot__controller__pb2.Joint.SerializeToString,
            ),
            'CalcTcpTranslation': grpc.unary_unary_rpc_method_handler(
                    servicer.CalcTcpTranslation,
                    request_deserializer=robot__controller__pb2.CalcTcpParam.FromString,
                    response_serializer=robot__controller__pb2.Vector.SerializeToString,
            ),
            'MoveLRPY': grpc.unary_unary_rpc_method_handler(
                    servicer.MoveLRPY,
                    request_deserializer=robot__controller__pb2.MoveLRPYRequest.FromString,
                    response_serializer=robot__controller__pb2.CmdId.SerializeToString,
            ),
            'SetLED': grpc.unary_unary_rpc_method_handler(
                    servicer.SetLED,
                    request_deserializer=robot__controller__pb2.LEDStatus.FromString,
                    response_serializer=robot__controller__pb2.CmdId.SerializeToString,
            ),
            'SetVoice': grpc.unary_unary_rpc_method_handler(
                    servicer.SetVoice,
                    request_deserializer=robot__controller__pb2.VoiceStatus.FromString,
                    response_serializer=robot__controller__pb2.CmdId.SerializeToString,
            ),
            'SetFan': grpc.unary_unary_rpc_method_handler(
                    servicer.SetFan,
                    request_deserializer=robot__controller__pb2.FanStatus.FromString,
                    response_serializer=robot__controller__pb2.CmdId.SerializeToString,
            ),
            'GetLampStatus': grpc.unary_unary_rpc_method_handler(
                    servicer.GetLampStatus,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=robot__controller__pb2.LampStatus.SerializeToString,
            ),
            'GetLuaState': grpc.unary_unary_rpc_method_handler(
                    servicer.GetLuaState,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=robot__controller__pb2.LuaStatus.SerializeToString,
            ),
            'SetExternalDO': grpc.unary_unary_rpc_method_handler(
                    servicer.SetExternalDO,
                    request_deserializer=robot__controller__pb2.ExternalDigital.FromString,
                    response_serializer=messages__pb2.Response.SerializeToString,
            ),
            'GetExternalDO': grpc.unary_unary_rpc_method_handler(
                    servicer.GetExternalDO,
                    request_deserializer=robot__controller__pb2.ExternalPin.FromString,
                    response_serializer=robot__controller__pb2.ExternalDigital.SerializeToString,
            ),
            'GetExternalDI': grpc.unary_unary_rpc_method_handler(
                    servicer.GetExternalDI,
                    request_deserializer=robot__controller__pb2.ExternalPin.FromString,
                    response_serializer=robot__controller__pb2.ExternalDigital.SerializeToString,
            ),
            'SetExternalAO': grpc.unary_unary_rpc_method_handler(
                    servicer.SetExternalAO,
                    request_deserializer=robot__controller__pb2.ExternalAnalog.FromString,
                    response_serializer=messages__pb2.Response.SerializeToString,
            ),
            'GetExternalAO': grpc.unary_unary_rpc_method_handler(
                    servicer.GetExternalAO,
                    request_deserializer=robot__controller__pb2.ExternalPin.FromString,
                    response_serializer=robot__controller__pb2.ExternalAnalog.SerializeToString,
            ),
            'GetExternalAI': grpc.unary_unary_rpc_method_handler(
                    servicer.GetExternalAI,
                    request_deserializer=robot__controller__pb2.ExternalPin.FromString,
                    response_serializer=robot__controller__pb2.ExternalAnalog.SerializeToString,
            ),
            'GetExternalIOs': grpc.unary_unary_rpc_method_handler(
                    servicer.GetExternalIOs,
                    request_deserializer=robot__controller__pb2.ExternalDevice.FromString,
                    response_serializer=robot__controller__pb2.ExternalIOs.SerializeToString,
            ),
            'SetExternalDOs': grpc.unary_unary_rpc_method_handler(
                    servicer.SetExternalDOs,
                    request_deserializer=robot__controller__pb2.ExternalDigitals.FromString,
                    response_serializer=messages__pb2.Response.SerializeToString,
            ),
            'GetExternalDOs': grpc.unary_unary_rpc_method_handler(
                    servicer.GetExternalDOs,
                    request_deserializer=robot__controller__pb2.ExternalPins.FromString,
                    response_serializer=robot__controller__pb2.ExternalDigitals.SerializeToString,
            ),
            'GetExternalDIs': grpc.unary_unary_rpc_method_handler(
                    servicer.GetExternalDIs,
                    request_deserializer=robot__controller__pb2.ExternalPins.FromString,
                    response_serializer=robot__controller__pb2.ExternalDigitals.SerializeToString,
            ),
            'SetExternalAOs': grpc.unary_unary_rpc_method_handler(
                    servicer.SetExternalAOs,
                    request_deserializer=robot__controller__pb2.ExternalAnalogs.FromString,
                    response_serializer=messages__pb2.Response.SerializeToString,
            ),
            'GetExternalAOs': grpc.unary_unary_rpc_method_handler(
                    servicer.GetExternalAOs,
                    request_deserializer=robot__controller__pb2.ExternalPins.FromString,
                    response_serializer=robot__controller__pb2.ExternalAnalogs.SerializeToString,
            ),
            'GetExternalAIs': grpc.unary_unary_rpc_method_handler(
                    servicer.GetExternalAIs,
                    request_deserializer=robot__controller__pb2.ExternalPins.FromString,
                    response_serializer=robot__controller__pb2.ExternalAnalogs.SerializeToString,
            ),
            'SetSignal': grpc.unary_unary_rpc_method_handler(
                    servicer.SetSignal,
                    request_deserializer=robot__controller__pb2.SignalValue.FromString,
                    response_serializer=robot__controller__pb2.SignalResult.SerializeToString,
            ),
            'GetSignal': grpc.unary_unary_rpc_method_handler(
                    servicer.GetSignal,
                    request_deserializer=robot__controller__pb2.SignalValue.FromString,
                    response_serializer=robot__controller__pb2.SignalResult.SerializeToString,
            ),
            'AddSignal': grpc.unary_unary_rpc_method_handler(
                    servicer.AddSignal,
                    request_deserializer=robot__controller__pb2.SignalValue.FromString,
                    response_serializer=robot__controller__pb2.SignalResult.SerializeToString,
            ),
            'RegisterSignals': grpc.stream_stream_rpc_method_handler(
                    servicer.RegisterSignals,
                    request_deserializer=robot__controller__pb2.SignalList.FromString,
                    response_serializer=robot__controller__pb2.SignalValue.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'robotc.RobotController', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))


 # This class is part of an EXPERIMENTAL API.
class RobotController(object):
    """Robot controller gRPC & protobuf idl language definition
    """

    @staticmethod
    def PowerDown(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, '/robotc.RobotController/PowerDown',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            robot__controller__pb2.CmdId.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Sleep(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, '/robotc.RobotController/Sleep',
            robot__controller__pb2.SleepRequest.SerializeToString,
            robot__controller__pb2.CmdId.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Sync(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, '/robotc.RobotController/Sync',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            robot__controller__pb2.CmdId.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def SyncFor(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, '/robotc.RobotController/SyncFor',
            robot__controller__pb2.SyncRequest.SerializeToString,
            robot__controller__pb2.CmdId.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def TeachMode(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, '/robotc.RobotController/TeachMode',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            robot__controller__pb2.CmdId.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def EndTeachMode(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, '/robotc.RobotController/EndTeachMode',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            robot__controller__pb2.CmdId.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def SetVelocityFactor(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, '/robotc.RobotController/SetVelocityFactor',
            robot__controller__pb2.Factor.SerializeToString,
            robot__controller__pb2.CmdId.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetVelocityFactor(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, '/robotc.RobotController/GetVelocityFactor',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            robot__controller__pb2.Factor.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def SetGravity(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, '/robotc.RobotController/SetGravity',
            messages__pb2.Coordinate.SerializeToString,
            robot__controller__pb2.CmdId.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetGravity(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, '/robotc.RobotController/GetGravity',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            messages__pb2.Coordinate.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def SetPayload(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, '/robotc.RobotController/SetPayload',
            messages__pb2.Payload.SerializeToString,
            robot__controller__pb2.CmdId.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetPayload(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, '/robotc.RobotController/GetPayload',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            messages__pb2.Payload.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def SetPayloadMass(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, '/robotc.RobotController/SetPayloadMass',
            messages__pb2.PayloadMass.SerializeToString,
            robot__controller__pb2.CmdId.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetPayloadMass(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, '/robotc.RobotController/GetPayloadMass',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            messages__pb2.PayloadMass.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def SetPayloadCog(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, '/robotc.RobotController/SetPayloadCog',
            messages__pb2.PayloadCog.SerializeToString,
            robot__controller__pb2.CmdId.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetPayloadCog(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, '/robotc.RobotController/GetPayloadCog',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            messages__pb2.PayloadCog.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def SetTcp(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, '/robotc.RobotController/SetTcp',
            messages__pb2.PR.SerializeToString,
            robot__controller__pb2.CmdId.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetTcp(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/robotc.RobotController/GetTcp',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            messages__pb2.PR.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def SetClawAmplitude(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, '/robotc.RobotController/SetClawAmplitude',
            robot__controller__pb2.Amplitude.SerializeToString,
            robot__controller__pb2.CmdId.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetClawAmplitude(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, '/robotc.RobotController/GetClawAmplitude',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            robot__controller__pb2.Amplitude.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetClawHoldOn(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, '/robotc.RobotController/GetClawHoldOn',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            robot__controller__pb2.HoldOn.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def SetClawForce(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, '/robotc.RobotController/SetClawForce',
            robot__controller__pb2.Force.SerializeToString,
            robot__controller__pb2.CmdId.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetClawWeight(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, '/robotc.RobotController/GetClawWeight',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            robot__controller__pb2.Weight.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetTcpForce(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, '/robotc.RobotController/GetTcpForce',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            robot__controller__pb2.ForceTorque.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def SetClaw(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, '/robotc.RobotController/SetClaw',
            robot__controller__pb2.ClawInfo.SerializeToString,
            robot__controller__pb2.ClawInfo.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetClaw(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, '/robotc.RobotController/GetClaw',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            robot__controller__pb2.ClawInfo.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def SetPos(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, '/robotc.RobotController/SetPos',
            messages__pb2.JPose.SerializeToString,
            robot__controller__pb2.CmdId.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def SpeedJ(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, '/robotc.RobotController/SpeedJ',
            robot__controller__pb2.SpeedJRequest.SerializeToString,
            robot__controller__pb2.CmdId.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def SpeedL(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, '/robotc.RobotController/SpeedL',
            robot__controller__pb2.SpeedLRequest.SerializeToString,
            robot__controller__pb2.CmdId.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def StopJ(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, '/robotc.RobotController/StopJ',
            robot__controller__pb2.StopJRequest.SerializeToString,
            robot__controller__pb2.CmdId.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def StopL(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, '/robotc.RobotController/StopL',
            robot__controller__pb2.StopLRequest.SerializeToString,
            robot__controller__pb2.CmdId.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def StopMove(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, '/robotc.RobotController/StopMove',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            robot__controller__pb2.CmdId.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def MoveC(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, '/robotc.RobotController/MoveC',
            robot__controller__pb2.MoveCRequest.SerializeToString,
            robot__controller__pb2.CmdId.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def MoveJ(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, '/robotc.RobotController/MoveJ',
            robot__controller__pb2.MoveJRequest.SerializeToString,
            robot__controller__pb2.CmdId.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def MoveL(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, '/robotc.RobotController/MoveL',
            robot__controller__pb2.MoveLRequest.SerializeToString,
            robot__controller__pb2.CmdId.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def MoveLJ(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, '/robotc.RobotController/MoveLJ',
            robot__controller__pb2.MoveLRequest.SerializeToString,
            robot__controller__pb2.CmdId.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def MoveP(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, '/robotc.RobotController/MoveP',
            robot__controller__pb2.MovePRequest.SerializeToString,
            robot__controller__pb2.CmdId.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def MovePT(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, '/robotc.RobotController/MovePT',
            robot__controller__pb2.PVATRequest.SerializeToString,
            robot__controller__pb2.CmdId.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def MovePTStream(request_iterator,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.stream_unary(request_iterator, target, '/robotc.RobotController/MovePTStream',
            robot__controller__pb2.PVATRequest.SerializeToString,
            robot__controller__pb2.CmdId.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def MovePVT(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, '/robotc.RobotController/MovePVT',
            robot__controller__pb2.PVATRequest.SerializeToString,
            robot__controller__pb2.CmdId.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def MovePVTStream(request_iterator,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.stream_unary(request_iterator, target, '/robotc.RobotController/MovePVTStream',
            robot__controller__pb2.PVATRequest.SerializeToString,
            robot__controller__pb2.CmdId.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def MovePVAT(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, '/robotc.RobotController/MovePVAT',
            robot__controller__pb2.PVATRequest.SerializeToString,
            robot__controller__pb2.CmdId.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def MovePVATStream(request_iterator,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.stream_unary(request_iterator, target, '/robotc.RobotController/MovePVATStream',
            robot__controller__pb2.PVATRequest.SerializeToString,
            robot__controller__pb2.CmdId.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ServoC(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, '/robotc.RobotController/ServoC',
            robot__controller__pb2.ServoCRequest.SerializeToString,
            robot__controller__pb2.CmdId.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ServoJ(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, '/robotc.RobotController/ServoJ',
            robot__controller__pb2.ServoJRequest.SerializeToString,
            robot__controller__pb2.CmdId.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetRobotData(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, '/robotc.RobotController/GetRobotData',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            robot__controller__pb2.RobotData.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetRobotBriefData(request_iterator,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.stream_stream(request_iterator, target, '/robotc.RobotController/GetRobotBriefData',
            robot__controller__pb2.RobotDataCmd.SerializeToString,
            robot__controller__pb2.RobotBriefData.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetRobotIOData(request_iterator,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.stream_stream(request_iterator, target, '/robotc.RobotController/GetRobotIOData',
            robot__controller__pb2.RobotDataCmd.SerializeToString,
            messages__pb2.IO.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetRobotMode(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, '/robotc.RobotController/GetRobotMode',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            robot__controller__pb2.RobotMode.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetActualJointPositions(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, '/robotc.RobotController/GetActualJointPositions',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            robot__controller__pb2.Joint.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetTargetJointPositions(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, '/robotc.RobotController/GetTargetJointPositions',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            robot__controller__pb2.Joint.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetActualJointSpeeds(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, '/robotc.RobotController/GetActualJointSpeeds',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            robot__controller__pb2.Joint.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetTargetJointSpeeds(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, '/robotc.RobotController/GetTargetJointSpeeds',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            robot__controller__pb2.Joint.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetActualTcpPose(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, '/robotc.RobotController/GetActualTcpPose',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            robot__controller__pb2.Vector.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetTargetTcpPose(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, '/robotc.RobotController/GetTargetTcpPose',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            robot__controller__pb2.Vector.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetActualTcpSpeed(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, '/robotc.RobotController/GetActualTcpSpeed',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            robot__controller__pb2.Vector.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetTargetTcpSpeed(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, '/robotc.RobotController/GetTargetTcpSpeed',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            robot__controller__pb2.Vector.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetActualFlangePose(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, '/robotc.RobotController/GetActualFlangePose',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            robot__controller__pb2.Vector.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetJointTorques(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, '/robotc.RobotController/GetJointTorques',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            robot__controller__pb2.Joint.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetControllerTemp(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, '/robotc.RobotController/GetControllerTemp',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            robot__controller__pb2.Temperature.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetJointTemp(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, '/robotc.RobotController/GetJointTemp',
            robot__controller__pb2.IntRequest.SerializeToString,
            robot__controller__pb2.Temperature.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetToolCurrent(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, '/robotc.RobotController/GetToolCurrent',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            robot__controller__pb2.Current.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def SetDIO(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, '/robotc.RobotController/SetDIO',
            messages__pb2.DIO.SerializeToString,
            robot__controller__pb2.CmdId.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def SetExtraDIO(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, '/robotc.RobotController/SetExtraDIO',
            messages__pb2.DIO.SerializeToString,
            robot__controller__pb2.CmdId.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetDIO(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, '/robotc.RobotController/GetDIO',
            messages__pb2.IOPin.SerializeToString,
            messages__pb2.DIO.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetExtraDIO(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, '/robotc.RobotController/GetExtraDIO',
            messages__pb2.IOPin.SerializeToString,
            messages__pb2.DIO.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def SetTcpDIO(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, '/robotc.RobotController/SetTcpDIO',
            messages__pb2.DIO.SerializeToString,
            robot__controller__pb2.CmdId.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetTcpDIO(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, '/robotc.RobotController/GetTcpDIO',
            messages__pb2.IOPin.SerializeToString,
            messages__pb2.DIO.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def SetAIO(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, '/robotc.RobotController/SetAIO',
            messages__pb2.AIO.SerializeToString,
            robot__controller__pb2.CmdId.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def SetExtraAIO(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, '/robotc.RobotController/SetExtraAIO',
            messages__pb2.AIO.SerializeToString,
            robot__controller__pb2.CmdId.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetAIO(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, '/robotc.RobotController/GetAIO',
            messages__pb2.IOPin.SerializeToString,
            messages__pb2.AIO.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetExtraAIO(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, '/robotc.RobotController/GetExtraAIO',
            messages__pb2.IOPin.SerializeToString,
            messages__pb2.AIO.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def SetAInMode(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, '/robotc.RobotController/SetAInMode',
            messages__pb2.AIO.SerializeToString,
            robot__controller__pb2.CmdId.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def SetExtraAInMode(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, '/robotc.RobotController/SetExtraAInMode',
            messages__pb2.AIO.SerializeToString,
            robot__controller__pb2.CmdId.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetAInMode(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, '/robotc.RobotController/GetAInMode',
            messages__pb2.IOPin.SerializeToString,
            messages__pb2.AIO.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetExtraAInMode(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, '/robotc.RobotController/GetExtraAInMode',
            messages__pb2.IOPin.SerializeToString,
            messages__pb2.AIO.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def SetAOutMode(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, '/robotc.RobotController/SetAOutMode',
            messages__pb2.AIO.SerializeToString,
            robot__controller__pb2.CmdId.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def SetExtraAOutMode(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, '/robotc.RobotController/SetExtraAOutMode',
            messages__pb2.AIO.SerializeToString,
            robot__controller__pb2.CmdId.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetAOutMode(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, '/robotc.RobotController/GetAOutMode',
            messages__pb2.IOPin.SerializeToString,
            messages__pb2.AIO.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetExtraAOutMode(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, '/robotc.RobotController/GetExtraAOutMode',
            messages__pb2.IOPin.SerializeToString,
            messages__pb2.AIO.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def StartSys(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, '/robotc.RobotController/StartSys',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            robot__controller__pb2.CmdId.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def StopSys(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, '/robotc.RobotController/StopSys',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            robot__controller__pb2.CmdId.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Stop(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, '/robotc.RobotController/Stop',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            robot__controller__pb2.CmdId.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def EStop(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, '/robotc.RobotController/EStop',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            robot__controller__pb2.CmdId.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetKDL(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, '/robotc.RobotController/GetKDL',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            robot__controller__pb2.KDParam.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetLogs(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, '/robotc.RobotController/GetLogs',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            robot__controller__pb2.Logs.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetCurrentCmd(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, '/robotc.RobotController/GetCurrentCmd',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            robot__controller__pb2.CmdId.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetCmdExecStatus(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, '/robotc.RobotController/GetCmdExecStatus',
            robot__controller__pb2.CmdId.SerializeToString,
            robot__controller__pb2.CmdStatus.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def StartFineTuning(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, '/robotc.RobotController/StartFineTuning',
            robot__controller__pb2.FineTuning.SerializeToString,
            robot__controller__pb2.CmdId.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def StopFineTuning(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, '/robotc.RobotController/StopFineTuning',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            robot__controller__pb2.CmdId.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Pause(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, '/robotc.RobotController/Pause',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            robot__controller__pb2.CmdId.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Resume(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, '/robotc.RobotController/Resume',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            robot__controller__pb2.CmdId.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def KinematicsForward(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, '/robotc.RobotController/KinematicsForward',
            robot__controller__pb2.Joint.SerializeToString,
            robot__controller__pb2.Vector.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def KinematicsInverse(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, '/robotc.RobotController/KinematicsInverse',
            robot__controller__pb2.Vector.SerializeToString,
            robot__controller__pb2.Joint.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CalcTcpTranslation(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, '/robotc.RobotController/CalcTcpTranslation',
            robot__controller__pb2.CalcTcpParam.SerializeToString,
            robot__controller__pb2.Vector.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def MoveLRPY(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, '/robotc.RobotController/MoveLRPY',
            robot__controller__pb2.MoveLRPYRequest.SerializeToString,
            robot__controller__pb2.CmdId.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def SetLED(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, '/robotc.RobotController/SetLED',
            robot__controller__pb2.LEDStatus.SerializeToString,
            robot__controller__pb2.CmdId.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def SetVoice(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, '/robotc.RobotController/SetVoice',
            robot__controller__pb2.VoiceStatus.SerializeToString,
            robot__controller__pb2.CmdId.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def SetFan(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, '/robotc.RobotController/SetFan',
            robot__controller__pb2.FanStatus.SerializeToString,
            robot__controller__pb2.CmdId.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetLampStatus(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, '/robotc.RobotController/GetLampStatus',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            robot__controller__pb2.LampStatus.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetLuaState(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, '/robotc.RobotController/GetLuaState',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            robot__controller__pb2.LuaStatus.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def SetExternalDO(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, '/robotc.RobotController/SetExternalDO',
            robot__controller__pb2.ExternalDigital.SerializeToString,
            messages__pb2.Response.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetExternalDO(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, '/robotc.RobotController/GetExternalDO',
            robot__controller__pb2.ExternalPin.SerializeToString,
            robot__controller__pb2.ExternalDigital.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetExternalDI(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, '/robotc.RobotController/GetExternalDI',
            robot__controller__pb2.ExternalPin.SerializeToString,
            robot__controller__pb2.ExternalDigital.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def SetExternalAO(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, '/robotc.RobotController/SetExternalAO',
            robot__controller__pb2.ExternalAnalog.SerializeToString,
            messages__pb2.Response.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetExternalAO(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, '/robotc.RobotController/GetExternalAO',
            robot__controller__pb2.ExternalPin.SerializeToString,
            robot__controller__pb2.ExternalAnalog.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetExternalAI(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, '/robotc.RobotController/GetExternalAI',
            robot__controller__pb2.ExternalPin.SerializeToString,
            robot__controller__pb2.ExternalAnalog.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetExternalIOs(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, '/robotc.RobotController/GetExternalIOs',
            robot__controller__pb2.ExternalDevice.SerializeToString,
            robot__controller__pb2.ExternalIOs.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def SetExternalDOs(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, '/robotc.RobotController/SetExternalDOs',
            robot__controller__pb2.ExternalDigitals.SerializeToString,
            messages__pb2.Response.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetExternalDOs(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, '/robotc.RobotController/GetExternalDOs',
            robot__controller__pb2.ExternalPins.SerializeToString,
            robot__controller__pb2.ExternalDigitals.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetExternalDIs(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, '/robotc.RobotController/GetExternalDIs',
            robot__controller__pb2.ExternalPins.SerializeToString,
            robot__controller__pb2.ExternalDigitals.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def SetExternalAOs(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, '/robotc.RobotController/SetExternalAOs',
            robot__controller__pb2.ExternalAnalogs.SerializeToString,
            messages__pb2.Response.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetExternalAOs(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, '/robotc.RobotController/GetExternalAOs',
            robot__controller__pb2.ExternalPins.SerializeToString,
            robot__controller__pb2.ExternalAnalogs.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetExternalAIs(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, '/robotc.RobotController/GetExternalAIs',
            robot__controller__pb2.ExternalPins.SerializeToString,
            robot__controller__pb2.ExternalAnalogs.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def SetSignal(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, '/robotc.RobotController/SetSignal',
            robot__controller__pb2.SignalValue.SerializeToString,
            robot__controller__pb2.SignalResult.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetSignal(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, '/robotc.RobotController/GetSignal',
            robot__controller__pb2.SignalValue.SerializeToString,
            robot__controller__pb2.SignalResult.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def AddSignal(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, '/robotc.RobotController/AddSignal',
            robot__controller__pb2.SignalValue.SerializeToString,
            robot__controller__pb2.SignalResult.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def RegisterSignals(request_iterator,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.stream_stream(request_iterator, target, '/robotc.RobotController/RegisterSignals',
            robot__controller__pb2.SignalList.SerializeToString,
            robot__controller__pb2.SignalValue.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
