package cmvr.api;

import static io.grpc.MethodDescriptor.generateFullMethodName;

/**
 */
@javax.annotation.Generated(
    value = "by gRPC proto compiler (version 1.52.0)",
    comments = "Source: cmvr/api/arm_service.proto")
@io.grpc.stub.annotations.GrpcGenerated
public final class ArmServiceGrpc {

  private ArmServiceGrpc() {}

  public static final String SERVICE_NAME = "cmvr.api.ArmService";

  // Static method descriptors that strictly reflect the proto.
  private static volatile io.grpc.MethodDescriptor<cmvr.api.Common.CommandHeader.Request,
      cmvr.api.Common.CommandHeader.Feedback> getTorqueOffMethod;

  @io.grpc.stub.annotations.RpcMethod(
      fullMethodName = SERVICE_NAME + '/' + "torqueOff",
      requestType = cmvr.api.Common.CommandHeader.Request.class,
      responseType = cmvr.api.Common.CommandHeader.Feedback.class,
      methodType = io.grpc.MethodDescriptor.MethodType.UNARY)
  public static io.grpc.MethodDescriptor<cmvr.api.Common.CommandHeader.Request,
      cmvr.api.Common.CommandHeader.Feedback> getTorqueOffMethod() {
    io.grpc.MethodDescriptor<cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Feedback> getTorqueOffMethod;
    if ((getTorqueOffMethod = ArmServiceGrpc.getTorqueOffMethod) == null) {
      synchronized (ArmServiceGrpc.class) {
        if ((getTorqueOffMethod = ArmServiceGrpc.getTorqueOffMethod) == null) {
          ArmServiceGrpc.getTorqueOffMethod = getTorqueOffMethod =
              io.grpc.MethodDescriptor.<cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Feedback>newBuilder()
              .setType(io.grpc.MethodDescriptor.MethodType.UNARY)
              .setFullMethodName(generateFullMethodName(SERVICE_NAME, "torqueOff"))
              .setSampledToLocalTracing(true)
              .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(
                  cmvr.api.Common.CommandHeader.Request.getDefaultInstance()))
              .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(
                  cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance()))
              .setSchemaDescriptor(new ArmServiceMethodDescriptorSupplier("torqueOff"))
              .build();
        }
      }
    }
    return getTorqueOffMethod;
  }

  private static volatile io.grpc.MethodDescriptor<cmvr.api.Common.CommandHeader.Request,
      cmvr.api.Common.CommandHeader.Feedback> getTorqueOnMethod;

  @io.grpc.stub.annotations.RpcMethod(
      fullMethodName = SERVICE_NAME + '/' + "torqueOn",
      requestType = cmvr.api.Common.CommandHeader.Request.class,
      responseType = cmvr.api.Common.CommandHeader.Feedback.class,
      methodType = io.grpc.MethodDescriptor.MethodType.UNARY)
  public static io.grpc.MethodDescriptor<cmvr.api.Common.CommandHeader.Request,
      cmvr.api.Common.CommandHeader.Feedback> getTorqueOnMethod() {
    io.grpc.MethodDescriptor<cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Feedback> getTorqueOnMethod;
    if ((getTorqueOnMethod = ArmServiceGrpc.getTorqueOnMethod) == null) {
      synchronized (ArmServiceGrpc.class) {
        if ((getTorqueOnMethod = ArmServiceGrpc.getTorqueOnMethod) == null) {
          ArmServiceGrpc.getTorqueOnMethod = getTorqueOnMethod =
              io.grpc.MethodDescriptor.<cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Feedback>newBuilder()
              .setType(io.grpc.MethodDescriptor.MethodType.UNARY)
              .setFullMethodName(generateFullMethodName(SERVICE_NAME, "torqueOn"))
              .setSampledToLocalTracing(true)
              .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(
                  cmvr.api.Common.CommandHeader.Request.getDefaultInstance()))
              .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(
                  cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance()))
              .setSchemaDescriptor(new ArmServiceMethodDescriptorSupplier("torqueOn"))
              .build();
        }
      }
    }
    return getTorqueOnMethod;
  }

  private static volatile io.grpc.MethodDescriptor<cmvr.api.Common.CommandHeader.Request,
      cmvr.api.Common.CommandHeader.Feedback> getClearFaultMethod;

  @io.grpc.stub.annotations.RpcMethod(
      fullMethodName = SERVICE_NAME + '/' + "clearFault",
      requestType = cmvr.api.Common.CommandHeader.Request.class,
      responseType = cmvr.api.Common.CommandHeader.Feedback.class,
      methodType = io.grpc.MethodDescriptor.MethodType.UNARY)
  public static io.grpc.MethodDescriptor<cmvr.api.Common.CommandHeader.Request,
      cmvr.api.Common.CommandHeader.Feedback> getClearFaultMethod() {
    io.grpc.MethodDescriptor<cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Feedback> getClearFaultMethod;
    if ((getClearFaultMethod = ArmServiceGrpc.getClearFaultMethod) == null) {
      synchronized (ArmServiceGrpc.class) {
        if ((getClearFaultMethod = ArmServiceGrpc.getClearFaultMethod) == null) {
          ArmServiceGrpc.getClearFaultMethod = getClearFaultMethod =
              io.grpc.MethodDescriptor.<cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Feedback>newBuilder()
              .setType(io.grpc.MethodDescriptor.MethodType.UNARY)
              .setFullMethodName(generateFullMethodName(SERVICE_NAME, "clearFault"))
              .setSampledToLocalTracing(true)
              .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(
                  cmvr.api.Common.CommandHeader.Request.getDefaultInstance()))
              .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(
                  cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance()))
              .setSchemaDescriptor(new ArmServiceMethodDescriptorSupplier("clearFault"))
              .build();
        }
      }
    }
    return getClearFaultMethod;
  }

  private static volatile io.grpc.MethodDescriptor<cmvr.api.ArmCommand.MoveJ.Request,
      cmvr.api.ArmCommand.MoveJ.Response> getMoveJMethod;

  @io.grpc.stub.annotations.RpcMethod(
      fullMethodName = SERVICE_NAME + '/' + "moveJ",
      requestType = cmvr.api.ArmCommand.MoveJ.Request.class,
      responseType = cmvr.api.ArmCommand.MoveJ.Response.class,
      methodType = io.grpc.MethodDescriptor.MethodType.UNARY)
  public static io.grpc.MethodDescriptor<cmvr.api.ArmCommand.MoveJ.Request,
      cmvr.api.ArmCommand.MoveJ.Response> getMoveJMethod() {
    io.grpc.MethodDescriptor<cmvr.api.ArmCommand.MoveJ.Request, cmvr.api.ArmCommand.MoveJ.Response> getMoveJMethod;
    if ((getMoveJMethod = ArmServiceGrpc.getMoveJMethod) == null) {
      synchronized (ArmServiceGrpc.class) {
        if ((getMoveJMethod = ArmServiceGrpc.getMoveJMethod) == null) {
          ArmServiceGrpc.getMoveJMethod = getMoveJMethod =
              io.grpc.MethodDescriptor.<cmvr.api.ArmCommand.MoveJ.Request, cmvr.api.ArmCommand.MoveJ.Response>newBuilder()
              .setType(io.grpc.MethodDescriptor.MethodType.UNARY)
              .setFullMethodName(generateFullMethodName(SERVICE_NAME, "moveJ"))
              .setSampledToLocalTracing(true)
              .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(
                  cmvr.api.ArmCommand.MoveJ.Request.getDefaultInstance()))
              .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(
                  cmvr.api.ArmCommand.MoveJ.Response.getDefaultInstance()))
              .setSchemaDescriptor(new ArmServiceMethodDescriptorSupplier("moveJ"))
              .build();
        }
      }
    }
    return getMoveJMethod;
  }

  private static volatile io.grpc.MethodDescriptor<cmvr.api.ArmCommand.MoveL.Request,
      cmvr.api.ArmCommand.MoveL.Response> getMoveLMethod;

  @io.grpc.stub.annotations.RpcMethod(
      fullMethodName = SERVICE_NAME + '/' + "moveL",
      requestType = cmvr.api.ArmCommand.MoveL.Request.class,
      responseType = cmvr.api.ArmCommand.MoveL.Response.class,
      methodType = io.grpc.MethodDescriptor.MethodType.UNARY)
  public static io.grpc.MethodDescriptor<cmvr.api.ArmCommand.MoveL.Request,
      cmvr.api.ArmCommand.MoveL.Response> getMoveLMethod() {
    io.grpc.MethodDescriptor<cmvr.api.ArmCommand.MoveL.Request, cmvr.api.ArmCommand.MoveL.Response> getMoveLMethod;
    if ((getMoveLMethod = ArmServiceGrpc.getMoveLMethod) == null) {
      synchronized (ArmServiceGrpc.class) {
        if ((getMoveLMethod = ArmServiceGrpc.getMoveLMethod) == null) {
          ArmServiceGrpc.getMoveLMethod = getMoveLMethod =
              io.grpc.MethodDescriptor.<cmvr.api.ArmCommand.MoveL.Request, cmvr.api.ArmCommand.MoveL.Response>newBuilder()
              .setType(io.grpc.MethodDescriptor.MethodType.UNARY)
              .setFullMethodName(generateFullMethodName(SERVICE_NAME, "moveL"))
              .setSampledToLocalTracing(true)
              .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(
                  cmvr.api.ArmCommand.MoveL.Request.getDefaultInstance()))
              .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(
                  cmvr.api.ArmCommand.MoveL.Response.getDefaultInstance()))
              .setSchemaDescriptor(new ArmServiceMethodDescriptorSupplier("moveL"))
              .build();
        }
      }
    }
    return getMoveLMethod;
  }

  private static volatile io.grpc.MethodDescriptor<cmvr.api.ArmCommand.SpeedJ.Request,
      cmvr.api.ArmCommand.SpeedJ.Response> getSpeedJMethod;

  @io.grpc.stub.annotations.RpcMethod(
      fullMethodName = SERVICE_NAME + '/' + "speedJ",
      requestType = cmvr.api.ArmCommand.SpeedJ.Request.class,
      responseType = cmvr.api.ArmCommand.SpeedJ.Response.class,
      methodType = io.grpc.MethodDescriptor.MethodType.UNARY)
  public static io.grpc.MethodDescriptor<cmvr.api.ArmCommand.SpeedJ.Request,
      cmvr.api.ArmCommand.SpeedJ.Response> getSpeedJMethod() {
    io.grpc.MethodDescriptor<cmvr.api.ArmCommand.SpeedJ.Request, cmvr.api.ArmCommand.SpeedJ.Response> getSpeedJMethod;
    if ((getSpeedJMethod = ArmServiceGrpc.getSpeedJMethod) == null) {
      synchronized (ArmServiceGrpc.class) {
        if ((getSpeedJMethod = ArmServiceGrpc.getSpeedJMethod) == null) {
          ArmServiceGrpc.getSpeedJMethod = getSpeedJMethod =
              io.grpc.MethodDescriptor.<cmvr.api.ArmCommand.SpeedJ.Request, cmvr.api.ArmCommand.SpeedJ.Response>newBuilder()
              .setType(io.grpc.MethodDescriptor.MethodType.UNARY)
              .setFullMethodName(generateFullMethodName(SERVICE_NAME, "speedJ"))
              .setSampledToLocalTracing(true)
              .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(
                  cmvr.api.ArmCommand.SpeedJ.Request.getDefaultInstance()))
              .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(
                  cmvr.api.ArmCommand.SpeedJ.Response.getDefaultInstance()))
              .setSchemaDescriptor(new ArmServiceMethodDescriptorSupplier("speedJ"))
              .build();
        }
      }
    }
    return getSpeedJMethod;
  }

  private static volatile io.grpc.MethodDescriptor<cmvr.api.ArmCommand.SpeedL.Request,
      cmvr.api.ArmCommand.SpeedL.Response> getSpeedLMethod;

  @io.grpc.stub.annotations.RpcMethod(
      fullMethodName = SERVICE_NAME + '/' + "speedL",
      requestType = cmvr.api.ArmCommand.SpeedL.Request.class,
      responseType = cmvr.api.ArmCommand.SpeedL.Response.class,
      methodType = io.grpc.MethodDescriptor.MethodType.UNARY)
  public static io.grpc.MethodDescriptor<cmvr.api.ArmCommand.SpeedL.Request,
      cmvr.api.ArmCommand.SpeedL.Response> getSpeedLMethod() {
    io.grpc.MethodDescriptor<cmvr.api.ArmCommand.SpeedL.Request, cmvr.api.ArmCommand.SpeedL.Response> getSpeedLMethod;
    if ((getSpeedLMethod = ArmServiceGrpc.getSpeedLMethod) == null) {
      synchronized (ArmServiceGrpc.class) {
        if ((getSpeedLMethod = ArmServiceGrpc.getSpeedLMethod) == null) {
          ArmServiceGrpc.getSpeedLMethod = getSpeedLMethod =
              io.grpc.MethodDescriptor.<cmvr.api.ArmCommand.SpeedL.Request, cmvr.api.ArmCommand.SpeedL.Response>newBuilder()
              .setType(io.grpc.MethodDescriptor.MethodType.UNARY)
              .setFullMethodName(generateFullMethodName(SERVICE_NAME, "speedL"))
              .setSampledToLocalTracing(true)
              .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(
                  cmvr.api.ArmCommand.SpeedL.Request.getDefaultInstance()))
              .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(
                  cmvr.api.ArmCommand.SpeedL.Response.getDefaultInstance()))
              .setSchemaDescriptor(new ArmServiceMethodDescriptorSupplier("speedL"))
              .build();
        }
      }
    }
    return getSpeedLMethod;
  }

  private static volatile io.grpc.MethodDescriptor<cmvr.api.ArmCommand.ServoJ.Request,
      cmvr.api.ArmCommand.ServoJ.Response> getServoJMethod;

  @io.grpc.stub.annotations.RpcMethod(
      fullMethodName = SERVICE_NAME + '/' + "servoJ",
      requestType = cmvr.api.ArmCommand.ServoJ.Request.class,
      responseType = cmvr.api.ArmCommand.ServoJ.Response.class,
      methodType = io.grpc.MethodDescriptor.MethodType.UNARY)
  public static io.grpc.MethodDescriptor<cmvr.api.ArmCommand.ServoJ.Request,
      cmvr.api.ArmCommand.ServoJ.Response> getServoJMethod() {
    io.grpc.MethodDescriptor<cmvr.api.ArmCommand.ServoJ.Request, cmvr.api.ArmCommand.ServoJ.Response> getServoJMethod;
    if ((getServoJMethod = ArmServiceGrpc.getServoJMethod) == null) {
      synchronized (ArmServiceGrpc.class) {
        if ((getServoJMethod = ArmServiceGrpc.getServoJMethod) == null) {
          ArmServiceGrpc.getServoJMethod = getServoJMethod =
              io.grpc.MethodDescriptor.<cmvr.api.ArmCommand.ServoJ.Request, cmvr.api.ArmCommand.ServoJ.Response>newBuilder()
              .setType(io.grpc.MethodDescriptor.MethodType.UNARY)
              .setFullMethodName(generateFullMethodName(SERVICE_NAME, "servoJ"))
              .setSampledToLocalTracing(true)
              .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(
                  cmvr.api.ArmCommand.ServoJ.Request.getDefaultInstance()))
              .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(
                  cmvr.api.ArmCommand.ServoJ.Response.getDefaultInstance()))
              .setSchemaDescriptor(new ArmServiceMethodDescriptorSupplier("servoJ"))
              .build();
        }
      }
    }
    return getServoJMethod;
  }

  private static volatile io.grpc.MethodDescriptor<cmvr.api.Common.CommandHeader.Request,
      cmvr.api.Common.CommandHeader.Feedback> getStopMotionMethod;

  @io.grpc.stub.annotations.RpcMethod(
      fullMethodName = SERVICE_NAME + '/' + "stopMotion",
      requestType = cmvr.api.Common.CommandHeader.Request.class,
      responseType = cmvr.api.Common.CommandHeader.Feedback.class,
      methodType = io.grpc.MethodDescriptor.MethodType.UNARY)
  public static io.grpc.MethodDescriptor<cmvr.api.Common.CommandHeader.Request,
      cmvr.api.Common.CommandHeader.Feedback> getStopMotionMethod() {
    io.grpc.MethodDescriptor<cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Feedback> getStopMotionMethod;
    if ((getStopMotionMethod = ArmServiceGrpc.getStopMotionMethod) == null) {
      synchronized (ArmServiceGrpc.class) {
        if ((getStopMotionMethod = ArmServiceGrpc.getStopMotionMethod) == null) {
          ArmServiceGrpc.getStopMotionMethod = getStopMotionMethod =
              io.grpc.MethodDescriptor.<cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Feedback>newBuilder()
              .setType(io.grpc.MethodDescriptor.MethodType.UNARY)
              .setFullMethodName(generateFullMethodName(SERVICE_NAME, "stopMotion"))
              .setSampledToLocalTracing(true)
              .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(
                  cmvr.api.Common.CommandHeader.Request.getDefaultInstance()))
              .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(
                  cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance()))
              .setSchemaDescriptor(new ArmServiceMethodDescriptorSupplier("stopMotion"))
              .build();
        }
      }
    }
    return getStopMotionMethod;
  }

  private static volatile io.grpc.MethodDescriptor<cmvr.api.ArmCommand.JointRequest,
      cmvr.api.ArmCommand.JointResponse> getGetJointStateMethod;

  @io.grpc.stub.annotations.RpcMethod(
      fullMethodName = SERVICE_NAME + '/' + "getJointState",
      requestType = cmvr.api.ArmCommand.JointRequest.class,
      responseType = cmvr.api.ArmCommand.JointResponse.class,
      methodType = io.grpc.MethodDescriptor.MethodType.UNARY)
  public static io.grpc.MethodDescriptor<cmvr.api.ArmCommand.JointRequest,
      cmvr.api.ArmCommand.JointResponse> getGetJointStateMethod() {
    io.grpc.MethodDescriptor<cmvr.api.ArmCommand.JointRequest, cmvr.api.ArmCommand.JointResponse> getGetJointStateMethod;
    if ((getGetJointStateMethod = ArmServiceGrpc.getGetJointStateMethod) == null) {
      synchronized (ArmServiceGrpc.class) {
        if ((getGetJointStateMethod = ArmServiceGrpc.getGetJointStateMethod) == null) {
          ArmServiceGrpc.getGetJointStateMethod = getGetJointStateMethod =
              io.grpc.MethodDescriptor.<cmvr.api.ArmCommand.JointRequest, cmvr.api.ArmCommand.JointResponse>newBuilder()
              .setType(io.grpc.MethodDescriptor.MethodType.UNARY)
              .setFullMethodName(generateFullMethodName(SERVICE_NAME, "getJointState"))
              .setSampledToLocalTracing(true)
              .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(
                  cmvr.api.ArmCommand.JointRequest.getDefaultInstance()))
              .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(
                  cmvr.api.ArmCommand.JointResponse.getDefaultInstance()))
              .setSchemaDescriptor(new ArmServiceMethodDescriptorSupplier("getJointState"))
              .build();
        }
      }
    }
    return getGetJointStateMethod;
  }

  private static volatile io.grpc.MethodDescriptor<cmvr.api.ArmCommand.GetPose.Request,
      cmvr.api.ArmCommand.GetPose.Response> getGetPoseMethod;

  @io.grpc.stub.annotations.RpcMethod(
      fullMethodName = SERVICE_NAME + '/' + "getPose",
      requestType = cmvr.api.ArmCommand.GetPose.Request.class,
      responseType = cmvr.api.ArmCommand.GetPose.Response.class,
      methodType = io.grpc.MethodDescriptor.MethodType.UNARY)
  public static io.grpc.MethodDescriptor<cmvr.api.ArmCommand.GetPose.Request,
      cmvr.api.ArmCommand.GetPose.Response> getGetPoseMethod() {
    io.grpc.MethodDescriptor<cmvr.api.ArmCommand.GetPose.Request, cmvr.api.ArmCommand.GetPose.Response> getGetPoseMethod;
    if ((getGetPoseMethod = ArmServiceGrpc.getGetPoseMethod) == null) {
      synchronized (ArmServiceGrpc.class) {
        if ((getGetPoseMethod = ArmServiceGrpc.getGetPoseMethod) == null) {
          ArmServiceGrpc.getGetPoseMethod = getGetPoseMethod =
              io.grpc.MethodDescriptor.<cmvr.api.ArmCommand.GetPose.Request, cmvr.api.ArmCommand.GetPose.Response>newBuilder()
              .setType(io.grpc.MethodDescriptor.MethodType.UNARY)
              .setFullMethodName(generateFullMethodName(SERVICE_NAME, "getPose"))
              .setSampledToLocalTracing(true)
              .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(
                  cmvr.api.ArmCommand.GetPose.Request.getDefaultInstance()))
              .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(
                  cmvr.api.ArmCommand.GetPose.Response.getDefaultInstance()))
              .setSchemaDescriptor(new ArmServiceMethodDescriptorSupplier("getPose"))
              .build();
        }
      }
    }
    return getGetPoseMethod;
  }

  private static volatile io.grpc.MethodDescriptor<cmvr.api.ArmCommand.CalibrateZeroQ.Request,
      cmvr.api.ArmCommand.CalibrateZeroQ.Response> getCalibrateZeroQMethod;

  @io.grpc.stub.annotations.RpcMethod(
      fullMethodName = SERVICE_NAME + '/' + "calibrateZeroQ",
      requestType = cmvr.api.ArmCommand.CalibrateZeroQ.Request.class,
      responseType = cmvr.api.ArmCommand.CalibrateZeroQ.Response.class,
      methodType = io.grpc.MethodDescriptor.MethodType.UNARY)
  public static io.grpc.MethodDescriptor<cmvr.api.ArmCommand.CalibrateZeroQ.Request,
      cmvr.api.ArmCommand.CalibrateZeroQ.Response> getCalibrateZeroQMethod() {
    io.grpc.MethodDescriptor<cmvr.api.ArmCommand.CalibrateZeroQ.Request, cmvr.api.ArmCommand.CalibrateZeroQ.Response> getCalibrateZeroQMethod;
    if ((getCalibrateZeroQMethod = ArmServiceGrpc.getCalibrateZeroQMethod) == null) {
      synchronized (ArmServiceGrpc.class) {
        if ((getCalibrateZeroQMethod = ArmServiceGrpc.getCalibrateZeroQMethod) == null) {
          ArmServiceGrpc.getCalibrateZeroQMethod = getCalibrateZeroQMethod =
              io.grpc.MethodDescriptor.<cmvr.api.ArmCommand.CalibrateZeroQ.Request, cmvr.api.ArmCommand.CalibrateZeroQ.Response>newBuilder()
              .setType(io.grpc.MethodDescriptor.MethodType.UNARY)
              .setFullMethodName(generateFullMethodName(SERVICE_NAME, "calibrateZeroQ"))
              .setSampledToLocalTracing(true)
              .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(
                  cmvr.api.ArmCommand.CalibrateZeroQ.Request.getDefaultInstance()))
              .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(
                  cmvr.api.ArmCommand.CalibrateZeroQ.Response.getDefaultInstance()))
              .setSchemaDescriptor(new ArmServiceMethodDescriptorSupplier("calibrateZeroQ"))
              .build();
        }
      }
    }
    return getCalibrateZeroQMethod;
  }

  private static volatile io.grpc.MethodDescriptor<cmvr.api.ArmCommand.GetPoseMatrix.Request,
      cmvr.api.ArmCommand.GetPoseMatrix.Response> getGetPoseMatrixMethod;

  @io.grpc.stub.annotations.RpcMethod(
      fullMethodName = SERVICE_NAME + '/' + "getPoseMatrix",
      requestType = cmvr.api.ArmCommand.GetPoseMatrix.Request.class,
      responseType = cmvr.api.ArmCommand.GetPoseMatrix.Response.class,
      methodType = io.grpc.MethodDescriptor.MethodType.UNARY)
  public static io.grpc.MethodDescriptor<cmvr.api.ArmCommand.GetPoseMatrix.Request,
      cmvr.api.ArmCommand.GetPoseMatrix.Response> getGetPoseMatrixMethod() {
    io.grpc.MethodDescriptor<cmvr.api.ArmCommand.GetPoseMatrix.Request, cmvr.api.ArmCommand.GetPoseMatrix.Response> getGetPoseMatrixMethod;
    if ((getGetPoseMatrixMethod = ArmServiceGrpc.getGetPoseMatrixMethod) == null) {
      synchronized (ArmServiceGrpc.class) {
        if ((getGetPoseMatrixMethod = ArmServiceGrpc.getGetPoseMatrixMethod) == null) {
          ArmServiceGrpc.getGetPoseMatrixMethod = getGetPoseMatrixMethod =
              io.grpc.MethodDescriptor.<cmvr.api.ArmCommand.GetPoseMatrix.Request, cmvr.api.ArmCommand.GetPoseMatrix.Response>newBuilder()
              .setType(io.grpc.MethodDescriptor.MethodType.UNARY)
              .setFullMethodName(generateFullMethodName(SERVICE_NAME, "getPoseMatrix"))
              .setSampledToLocalTracing(true)
              .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(
                  cmvr.api.ArmCommand.GetPoseMatrix.Request.getDefaultInstance()))
              .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(
                  cmvr.api.ArmCommand.GetPoseMatrix.Response.getDefaultInstance()))
              .setSchemaDescriptor(new ArmServiceMethodDescriptorSupplier("getPoseMatrix"))
              .build();
        }
      }
    }
    return getGetPoseMatrixMethod;
  }

  private static volatile io.grpc.MethodDescriptor<cmvr.api.ArmCommand.ComputeForwardKinematics.Request,
      cmvr.api.ArmCommand.ComputeForwardKinematics.Response> getComputeForwardKinematicsMethod;

  @io.grpc.stub.annotations.RpcMethod(
      fullMethodName = SERVICE_NAME + '/' + "computeForwardKinematics",
      requestType = cmvr.api.ArmCommand.ComputeForwardKinematics.Request.class,
      responseType = cmvr.api.ArmCommand.ComputeForwardKinematics.Response.class,
      methodType = io.grpc.MethodDescriptor.MethodType.UNARY)
  public static io.grpc.MethodDescriptor<cmvr.api.ArmCommand.ComputeForwardKinematics.Request,
      cmvr.api.ArmCommand.ComputeForwardKinematics.Response> getComputeForwardKinematicsMethod() {
    io.grpc.MethodDescriptor<cmvr.api.ArmCommand.ComputeForwardKinematics.Request, cmvr.api.ArmCommand.ComputeForwardKinematics.Response> getComputeForwardKinematicsMethod;
    if ((getComputeForwardKinematicsMethod = ArmServiceGrpc.getComputeForwardKinematicsMethod) == null) {
      synchronized (ArmServiceGrpc.class) {
        if ((getComputeForwardKinematicsMethod = ArmServiceGrpc.getComputeForwardKinematicsMethod) == null) {
          ArmServiceGrpc.getComputeForwardKinematicsMethod = getComputeForwardKinematicsMethod =
              io.grpc.MethodDescriptor.<cmvr.api.ArmCommand.ComputeForwardKinematics.Request, cmvr.api.ArmCommand.ComputeForwardKinematics.Response>newBuilder()
              .setType(io.grpc.MethodDescriptor.MethodType.UNARY)
              .setFullMethodName(generateFullMethodName(SERVICE_NAME, "computeForwardKinematics"))
              .setSampledToLocalTracing(true)
              .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(
                  cmvr.api.ArmCommand.ComputeForwardKinematics.Request.getDefaultInstance()))
              .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(
                  cmvr.api.ArmCommand.ComputeForwardKinematics.Response.getDefaultInstance()))
              .setSchemaDescriptor(new ArmServiceMethodDescriptorSupplier("computeForwardKinematics"))
              .build();
        }
      }
    }
    return getComputeForwardKinematicsMethod;
  }

  /**
   * Creates a new async stub that supports all call types for the service
   */
  public static ArmServiceStub newStub(io.grpc.Channel channel) {
    io.grpc.stub.AbstractStub.StubFactory<ArmServiceStub> factory =
      new io.grpc.stub.AbstractStub.StubFactory<ArmServiceStub>() {
        @java.lang.Override
        public ArmServiceStub newStub(io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
          return new ArmServiceStub(channel, callOptions);
        }
      };
    return ArmServiceStub.newStub(factory, channel);
  }

  /**
   * Creates a new blocking-style stub that supports unary and streaming output calls on the service
   */
  public static ArmServiceBlockingStub newBlockingStub(
      io.grpc.Channel channel) {
    io.grpc.stub.AbstractStub.StubFactory<ArmServiceBlockingStub> factory =
      new io.grpc.stub.AbstractStub.StubFactory<ArmServiceBlockingStub>() {
        @java.lang.Override
        public ArmServiceBlockingStub newStub(io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
          return new ArmServiceBlockingStub(channel, callOptions);
        }
      };
    return ArmServiceBlockingStub.newStub(factory, channel);
  }

  /**
   * Creates a new ListenableFuture-style stub that supports unary calls on the service
   */
  public static ArmServiceFutureStub newFutureStub(
      io.grpc.Channel channel) {
    io.grpc.stub.AbstractStub.StubFactory<ArmServiceFutureStub> factory =
      new io.grpc.stub.AbstractStub.StubFactory<ArmServiceFutureStub>() {
        @java.lang.Override
        public ArmServiceFutureStub newStub(io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
          return new ArmServiceFutureStub(channel, callOptions);
        }
      };
    return ArmServiceFutureStub.newStub(factory, channel);
  }

  /**
   */
  public static abstract class ArmServiceImplBase implements io.grpc.BindableService {

    /**
     */
    public void torqueOff(cmvr.api.Common.CommandHeader.Request request,
        io.grpc.stub.StreamObserver<cmvr.api.Common.CommandHeader.Feedback> responseObserver) {
      io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getTorqueOffMethod(), responseObserver);
    }

    /**
     */
    public void torqueOn(cmvr.api.Common.CommandHeader.Request request,
        io.grpc.stub.StreamObserver<cmvr.api.Common.CommandHeader.Feedback> responseObserver) {
      io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getTorqueOnMethod(), responseObserver);
    }

    /**
     */
    public void clearFault(cmvr.api.Common.CommandHeader.Request request,
        io.grpc.stub.StreamObserver<cmvr.api.Common.CommandHeader.Feedback> responseObserver) {
      io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getClearFaultMethod(), responseObserver);
    }

    /**
     */
    public void moveJ(cmvr.api.ArmCommand.MoveJ.Request request,
        io.grpc.stub.StreamObserver<cmvr.api.ArmCommand.MoveJ.Response> responseObserver) {
      io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getMoveJMethod(), responseObserver);
    }

    /**
     */
    public void moveL(cmvr.api.ArmCommand.MoveL.Request request,
        io.grpc.stub.StreamObserver<cmvr.api.ArmCommand.MoveL.Response> responseObserver) {
      io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getMoveLMethod(), responseObserver);
    }

    /**
     */
    public void speedJ(cmvr.api.ArmCommand.SpeedJ.Request request,
        io.grpc.stub.StreamObserver<cmvr.api.ArmCommand.SpeedJ.Response> responseObserver) {
      io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getSpeedJMethod(), responseObserver);
    }

    /**
     */
    public void speedL(cmvr.api.ArmCommand.SpeedL.Request request,
        io.grpc.stub.StreamObserver<cmvr.api.ArmCommand.SpeedL.Response> responseObserver) {
      io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getSpeedLMethod(), responseObserver);
    }

    /**
     */
    public void servoJ(cmvr.api.ArmCommand.ServoJ.Request request,
        io.grpc.stub.StreamObserver<cmvr.api.ArmCommand.ServoJ.Response> responseObserver) {
      io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getServoJMethod(), responseObserver);
    }

    /**
     */
    public void stopMotion(cmvr.api.Common.CommandHeader.Request request,
        io.grpc.stub.StreamObserver<cmvr.api.Common.CommandHeader.Feedback> responseObserver) {
      io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getStopMotionMethod(), responseObserver);
    }

    /**
     */
    public void getJointState(cmvr.api.ArmCommand.JointRequest request,
        io.grpc.stub.StreamObserver<cmvr.api.ArmCommand.JointResponse> responseObserver) {
      io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getGetJointStateMethod(), responseObserver);
    }

    /**
     */
    public void getPose(cmvr.api.ArmCommand.GetPose.Request request,
        io.grpc.stub.StreamObserver<cmvr.api.ArmCommand.GetPose.Response> responseObserver) {
      io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getGetPoseMethod(), responseObserver);
    }

    /**
     */
    public void calibrateZeroQ(cmvr.api.ArmCommand.CalibrateZeroQ.Request request,
        io.grpc.stub.StreamObserver<cmvr.api.ArmCommand.CalibrateZeroQ.Response> responseObserver) {
      io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getCalibrateZeroQMethod(), responseObserver);
    }

    /**
     */
    public void getPoseMatrix(cmvr.api.ArmCommand.GetPoseMatrix.Request request,
        io.grpc.stub.StreamObserver<cmvr.api.ArmCommand.GetPoseMatrix.Response> responseObserver) {
      io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getGetPoseMatrixMethod(), responseObserver);
    }

    /**
     */
    public void computeForwardKinematics(cmvr.api.ArmCommand.ComputeForwardKinematics.Request request,
        io.grpc.stub.StreamObserver<cmvr.api.ArmCommand.ComputeForwardKinematics.Response> responseObserver) {
      io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getComputeForwardKinematicsMethod(), responseObserver);
    }

    @java.lang.Override public final io.grpc.ServerServiceDefinition bindService() {
      return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor())
          .addMethod(
            getTorqueOffMethod(),
            io.grpc.stub.ServerCalls.asyncUnaryCall(
              new MethodHandlers<
                cmvr.api.Common.CommandHeader.Request,
                cmvr.api.Common.CommandHeader.Feedback>(
                  this, METHODID_TORQUE_OFF)))
          .addMethod(
            getTorqueOnMethod(),
            io.grpc.stub.ServerCalls.asyncUnaryCall(
              new MethodHandlers<
                cmvr.api.Common.CommandHeader.Request,
                cmvr.api.Common.CommandHeader.Feedback>(
                  this, METHODID_TORQUE_ON)))
          .addMethod(
            getClearFaultMethod(),
            io.grpc.stub.ServerCalls.asyncUnaryCall(
              new MethodHandlers<
                cmvr.api.Common.CommandHeader.Request,
                cmvr.api.Common.CommandHeader.Feedback>(
                  this, METHODID_CLEAR_FAULT)))
          .addMethod(
            getMoveJMethod(),
            io.grpc.stub.ServerCalls.asyncUnaryCall(
              new MethodHandlers<
                cmvr.api.ArmCommand.MoveJ.Request,
                cmvr.api.ArmCommand.MoveJ.Response>(
                  this, METHODID_MOVE_J)))
          .addMethod(
            getMoveLMethod(),
            io.grpc.stub.ServerCalls.asyncUnaryCall(
              new MethodHandlers<
                cmvr.api.ArmCommand.MoveL.Request,
                cmvr.api.ArmCommand.MoveL.Response>(
                  this, METHODID_MOVE_L)))
          .addMethod(
            getSpeedJMethod(),
            io.grpc.stub.ServerCalls.asyncUnaryCall(
              new MethodHandlers<
                cmvr.api.ArmCommand.SpeedJ.Request,
                cmvr.api.ArmCommand.SpeedJ.Response>(
                  this, METHODID_SPEED_J)))
          .addMethod(
            getSpeedLMethod(),
            io.grpc.stub.ServerCalls.asyncUnaryCall(
              new MethodHandlers<
                cmvr.api.ArmCommand.SpeedL.Request,
                cmvr.api.ArmCommand.SpeedL.Response>(
                  this, METHODID_SPEED_L)))
          .addMethod(
            getServoJMethod(),
            io.grpc.stub.ServerCalls.asyncUnaryCall(
              new MethodHandlers<
                cmvr.api.ArmCommand.ServoJ.Request,
                cmvr.api.ArmCommand.ServoJ.Response>(
                  this, METHODID_SERVO_J)))
          .addMethod(
            getStopMotionMethod(),
            io.grpc.stub.ServerCalls.asyncUnaryCall(
              new MethodHandlers<
                cmvr.api.Common.CommandHeader.Request,
                cmvr.api.Common.CommandHeader.Feedback>(
                  this, METHODID_STOP_MOTION)))
          .addMethod(
            getGetJointStateMethod(),
            io.grpc.stub.ServerCalls.asyncUnaryCall(
              new MethodHandlers<
                cmvr.api.ArmCommand.JointRequest,
                cmvr.api.ArmCommand.JointResponse>(
                  this, METHODID_GET_JOINT_STATE)))
          .addMethod(
            getGetPoseMethod(),
            io.grpc.stub.ServerCalls.asyncUnaryCall(
              new MethodHandlers<
                cmvr.api.ArmCommand.GetPose.Request,
                cmvr.api.ArmCommand.GetPose.Response>(
                  this, METHODID_GET_POSE)))
          .addMethod(
            getCalibrateZeroQMethod(),
            io.grpc.stub.ServerCalls.asyncUnaryCall(
              new MethodHandlers<
                cmvr.api.ArmCommand.CalibrateZeroQ.Request,
                cmvr.api.ArmCommand.CalibrateZeroQ.Response>(
                  this, METHODID_CALIBRATE_ZERO_Q)))
          .addMethod(
            getGetPoseMatrixMethod(),
            io.grpc.stub.ServerCalls.asyncUnaryCall(
              new MethodHandlers<
                cmvr.api.ArmCommand.GetPoseMatrix.Request,
                cmvr.api.ArmCommand.GetPoseMatrix.Response>(
                  this, METHODID_GET_POSE_MATRIX)))
          .addMethod(
            getComputeForwardKinematicsMethod(),
            io.grpc.stub.ServerCalls.asyncUnaryCall(
              new MethodHandlers<
                cmvr.api.ArmCommand.ComputeForwardKinematics.Request,
                cmvr.api.ArmCommand.ComputeForwardKinematics.Response>(
                  this, METHODID_COMPUTE_FORWARD_KINEMATICS)))
          .build();
    }
  }

  /**
   */
  public static final class ArmServiceStub extends io.grpc.stub.AbstractAsyncStub<ArmServiceStub> {
    private ArmServiceStub(
        io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
      super(channel, callOptions);
    }

    @java.lang.Override
    protected ArmServiceStub build(
        io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
      return new ArmServiceStub(channel, callOptions);
    }

    /**
     */
    public void torqueOff(cmvr.api.Common.CommandHeader.Request request,
        io.grpc.stub.StreamObserver<cmvr.api.Common.CommandHeader.Feedback> responseObserver) {
      io.grpc.stub.ClientCalls.asyncUnaryCall(
          getChannel().newCall(getTorqueOffMethod(), getCallOptions()), request, responseObserver);
    }

    /**
     */
    public void torqueOn(cmvr.api.Common.CommandHeader.Request request,
        io.grpc.stub.StreamObserver<cmvr.api.Common.CommandHeader.Feedback> responseObserver) {
      io.grpc.stub.ClientCalls.asyncUnaryCall(
          getChannel().newCall(getTorqueOnMethod(), getCallOptions()), request, responseObserver);
    }

    /**
     */
    public void clearFault(cmvr.api.Common.CommandHeader.Request request,
        io.grpc.stub.StreamObserver<cmvr.api.Common.CommandHeader.Feedback> responseObserver) {
      io.grpc.stub.ClientCalls.asyncUnaryCall(
          getChannel().newCall(getClearFaultMethod(), getCallOptions()), request, responseObserver);
    }

    /**
     */
    public void moveJ(cmvr.api.ArmCommand.MoveJ.Request request,
        io.grpc.stub.StreamObserver<cmvr.api.ArmCommand.MoveJ.Response> responseObserver) {
      io.grpc.stub.ClientCalls.asyncUnaryCall(
          getChannel().newCall(getMoveJMethod(), getCallOptions()), request, responseObserver);
    }

    /**
     */
    public void moveL(cmvr.api.ArmCommand.MoveL.Request request,
        io.grpc.stub.StreamObserver<cmvr.api.ArmCommand.MoveL.Response> responseObserver) {
      io.grpc.stub.ClientCalls.asyncUnaryCall(
          getChannel().newCall(getMoveLMethod(), getCallOptions()), request, responseObserver);
    }

    /**
     */
    public void speedJ(cmvr.api.ArmCommand.SpeedJ.Request request,
        io.grpc.stub.StreamObserver<cmvr.api.ArmCommand.SpeedJ.Response> responseObserver) {
      io.grpc.stub.ClientCalls.asyncUnaryCall(
          getChannel().newCall(getSpeedJMethod(), getCallOptions()), request, responseObserver);
    }

    /**
     */
    public void speedL(cmvr.api.ArmCommand.SpeedL.Request request,
        io.grpc.stub.StreamObserver<cmvr.api.ArmCommand.SpeedL.Response> responseObserver) {
      io.grpc.stub.ClientCalls.asyncUnaryCall(
          getChannel().newCall(getSpeedLMethod(), getCallOptions()), request, responseObserver);
    }

    /**
     */
    public void servoJ(cmvr.api.ArmCommand.ServoJ.Request request,
        io.grpc.stub.StreamObserver<cmvr.api.ArmCommand.ServoJ.Response> responseObserver) {
      io.grpc.stub.ClientCalls.asyncUnaryCall(
          getChannel().newCall(getServoJMethod(), getCallOptions()), request, responseObserver);
    }

    /**
     */
    public void stopMotion(cmvr.api.Common.CommandHeader.Request request,
        io.grpc.stub.StreamObserver<cmvr.api.Common.CommandHeader.Feedback> responseObserver) {
      io.grpc.stub.ClientCalls.asyncUnaryCall(
          getChannel().newCall(getStopMotionMethod(), getCallOptions()), request, responseObserver);
    }

    /**
     */
    public void getJointState(cmvr.api.ArmCommand.JointRequest request,
        io.grpc.stub.StreamObserver<cmvr.api.ArmCommand.JointResponse> responseObserver) {
      io.grpc.stub.ClientCalls.asyncUnaryCall(
          getChannel().newCall(getGetJointStateMethod(), getCallOptions()), request, responseObserver);
    }

    /**
     */
    public void getPose(cmvr.api.ArmCommand.GetPose.Request request,
        io.grpc.stub.StreamObserver<cmvr.api.ArmCommand.GetPose.Response> responseObserver) {
      io.grpc.stub.ClientCalls.asyncUnaryCall(
          getChannel().newCall(getGetPoseMethod(), getCallOptions()), request, responseObserver);
    }

    /**
     */
    public void calibrateZeroQ(cmvr.api.ArmCommand.CalibrateZeroQ.Request request,
        io.grpc.stub.StreamObserver<cmvr.api.ArmCommand.CalibrateZeroQ.Response> responseObserver) {
      io.grpc.stub.ClientCalls.asyncUnaryCall(
          getChannel().newCall(getCalibrateZeroQMethod(), getCallOptions()), request, responseObserver);
    }

    /**
     */
    public void getPoseMatrix(cmvr.api.ArmCommand.GetPoseMatrix.Request request,
        io.grpc.stub.StreamObserver<cmvr.api.ArmCommand.GetPoseMatrix.Response> responseObserver) {
      io.grpc.stub.ClientCalls.asyncUnaryCall(
          getChannel().newCall(getGetPoseMatrixMethod(), getCallOptions()), request, responseObserver);
    }

    /**
     */
    public void computeForwardKinematics(cmvr.api.ArmCommand.ComputeForwardKinematics.Request request,
        io.grpc.stub.StreamObserver<cmvr.api.ArmCommand.ComputeForwardKinematics.Response> responseObserver) {
      io.grpc.stub.ClientCalls.asyncUnaryCall(
          getChannel().newCall(getComputeForwardKinematicsMethod(), getCallOptions()), request, responseObserver);
    }
  }

  /**
   */
  public static final class ArmServiceBlockingStub extends io.grpc.stub.AbstractBlockingStub<ArmServiceBlockingStub> {
    private ArmServiceBlockingStub(
        io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
      super(channel, callOptions);
    }

    @java.lang.Override
    protected ArmServiceBlockingStub build(
        io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
      return new ArmServiceBlockingStub(channel, callOptions);
    }

    /**
     */
    public cmvr.api.Common.CommandHeader.Feedback torqueOff(cmvr.api.Common.CommandHeader.Request request) {
      return io.grpc.stub.ClientCalls.blockingUnaryCall(
          getChannel(), getTorqueOffMethod(), getCallOptions(), request);
    }

    /**
     */
    public cmvr.api.Common.CommandHeader.Feedback torqueOn(cmvr.api.Common.CommandHeader.Request request) {
      return io.grpc.stub.ClientCalls.blockingUnaryCall(
          getChannel(), getTorqueOnMethod(), getCallOptions(), request);
    }

    /**
     */
    public cmvr.api.Common.CommandHeader.Feedback clearFault(cmvr.api.Common.CommandHeader.Request request) {
      return io.grpc.stub.ClientCalls.blockingUnaryCall(
          getChannel(), getClearFaultMethod(), getCallOptions(), request);
    }

    /**
     */
    public cmvr.api.ArmCommand.MoveJ.Response moveJ(cmvr.api.ArmCommand.MoveJ.Request request) {
      return io.grpc.stub.ClientCalls.blockingUnaryCall(
          getChannel(), getMoveJMethod(), getCallOptions(), request);
    }

    /**
     */
    public cmvr.api.ArmCommand.MoveL.Response moveL(cmvr.api.ArmCommand.MoveL.Request request) {
      return io.grpc.stub.ClientCalls.blockingUnaryCall(
          getChannel(), getMoveLMethod(), getCallOptions(), request);
    }

    /**
     */
    public cmvr.api.ArmCommand.SpeedJ.Response speedJ(cmvr.api.ArmCommand.SpeedJ.Request request) {
      return io.grpc.stub.ClientCalls.blockingUnaryCall(
          getChannel(), getSpeedJMethod(), getCallOptions(), request);
    }

    /**
     */
    public cmvr.api.ArmCommand.SpeedL.Response speedL(cmvr.api.ArmCommand.SpeedL.Request request) {
      return io.grpc.stub.ClientCalls.blockingUnaryCall(
          getChannel(), getSpeedLMethod(), getCallOptions(), request);
    }

    /**
     */
    public cmvr.api.ArmCommand.ServoJ.Response servoJ(cmvr.api.ArmCommand.ServoJ.Request request) {
      return io.grpc.stub.ClientCalls.blockingUnaryCall(
          getChannel(), getServoJMethod(), getCallOptions(), request);
    }

    /**
     */
    public cmvr.api.Common.CommandHeader.Feedback stopMotion(cmvr.api.Common.CommandHeader.Request request) {
      return io.grpc.stub.ClientCalls.blockingUnaryCall(
          getChannel(), getStopMotionMethod(), getCallOptions(), request);
    }

    /**
     */
    public cmvr.api.ArmCommand.JointResponse getJointState(cmvr.api.ArmCommand.JointRequest request) {
      return io.grpc.stub.ClientCalls.blockingUnaryCall(
          getChannel(), getGetJointStateMethod(), getCallOptions(), request);
    }

    /**
     */
    public cmvr.api.ArmCommand.GetPose.Response getPose(cmvr.api.ArmCommand.GetPose.Request request) {
      return io.grpc.stub.ClientCalls.blockingUnaryCall(
          getChannel(), getGetPoseMethod(), getCallOptions(), request);
    }

    /**
     */
    public cmvr.api.ArmCommand.CalibrateZeroQ.Response calibrateZeroQ(cmvr.api.ArmCommand.CalibrateZeroQ.Request request) {
      return io.grpc.stub.ClientCalls.blockingUnaryCall(
          getChannel(), getCalibrateZeroQMethod(), getCallOptions(), request);
    }

    /**
     */
    public cmvr.api.ArmCommand.GetPoseMatrix.Response getPoseMatrix(cmvr.api.ArmCommand.GetPoseMatrix.Request request) {
      return io.grpc.stub.ClientCalls.blockingUnaryCall(
          getChannel(), getGetPoseMatrixMethod(), getCallOptions(), request);
    }

    /**
     */
    public cmvr.api.ArmCommand.ComputeForwardKinematics.Response computeForwardKinematics(cmvr.api.ArmCommand.ComputeForwardKinematics.Request request) {
      return io.grpc.stub.ClientCalls.blockingUnaryCall(
          getChannel(), getComputeForwardKinematicsMethod(), getCallOptions(), request);
    }
  }

  /**
   */
  public static final class ArmServiceFutureStub extends io.grpc.stub.AbstractFutureStub<ArmServiceFutureStub> {
    private ArmServiceFutureStub(
        io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
      super(channel, callOptions);
    }

    @java.lang.Override
    protected ArmServiceFutureStub build(
        io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
      return new ArmServiceFutureStub(channel, callOptions);
    }

    /**
     */
    public com.google.common.util.concurrent.ListenableFuture<cmvr.api.Common.CommandHeader.Feedback> torqueOff(
        cmvr.api.Common.CommandHeader.Request request) {
      return io.grpc.stub.ClientCalls.futureUnaryCall(
          getChannel().newCall(getTorqueOffMethod(), getCallOptions()), request);
    }

    /**
     */
    public com.google.common.util.concurrent.ListenableFuture<cmvr.api.Common.CommandHeader.Feedback> torqueOn(
        cmvr.api.Common.CommandHeader.Request request) {
      return io.grpc.stub.ClientCalls.futureUnaryCall(
          getChannel().newCall(getTorqueOnMethod(), getCallOptions()), request);
    }

    /**
     */
    public com.google.common.util.concurrent.ListenableFuture<cmvr.api.Common.CommandHeader.Feedback> clearFault(
        cmvr.api.Common.CommandHeader.Request request) {
      return io.grpc.stub.ClientCalls.futureUnaryCall(
          getChannel().newCall(getClearFaultMethod(), getCallOptions()), request);
    }

    /**
     */
    public com.google.common.util.concurrent.ListenableFuture<cmvr.api.ArmCommand.MoveJ.Response> moveJ(
        cmvr.api.ArmCommand.MoveJ.Request request) {
      return io.grpc.stub.ClientCalls.futureUnaryCall(
          getChannel().newCall(getMoveJMethod(), getCallOptions()), request);
    }

    /**
     */
    public com.google.common.util.concurrent.ListenableFuture<cmvr.api.ArmCommand.MoveL.Response> moveL(
        cmvr.api.ArmCommand.MoveL.Request request) {
      return io.grpc.stub.ClientCalls.futureUnaryCall(
          getChannel().newCall(getMoveLMethod(), getCallOptions()), request);
    }

    /**
     */
    public com.google.common.util.concurrent.ListenableFuture<cmvr.api.ArmCommand.SpeedJ.Response> speedJ(
        cmvr.api.ArmCommand.SpeedJ.Request request) {
      return io.grpc.stub.ClientCalls.futureUnaryCall(
          getChannel().newCall(getSpeedJMethod(), getCallOptions()), request);
    }

    /**
     */
    public com.google.common.util.concurrent.ListenableFuture<cmvr.api.ArmCommand.SpeedL.Response> speedL(
        cmvr.api.ArmCommand.SpeedL.Request request) {
      return io.grpc.stub.ClientCalls.futureUnaryCall(
          getChannel().newCall(getSpeedLMethod(), getCallOptions()), request);
    }

    /**
     */
    public com.google.common.util.concurrent.ListenableFuture<cmvr.api.ArmCommand.ServoJ.Response> servoJ(
        cmvr.api.ArmCommand.ServoJ.Request request) {
      return io.grpc.stub.ClientCalls.futureUnaryCall(
          getChannel().newCall(getServoJMethod(), getCallOptions()), request);
    }

    /**
     */
    public com.google.common.util.concurrent.ListenableFuture<cmvr.api.Common.CommandHeader.Feedback> stopMotion(
        cmvr.api.Common.CommandHeader.Request request) {
      return io.grpc.stub.ClientCalls.futureUnaryCall(
          getChannel().newCall(getStopMotionMethod(), getCallOptions()), request);
    }

    /**
     */
    public com.google.common.util.concurrent.ListenableFuture<cmvr.api.ArmCommand.JointResponse> getJointState(
        cmvr.api.ArmCommand.JointRequest request) {
      return io.grpc.stub.ClientCalls.futureUnaryCall(
          getChannel().newCall(getGetJointStateMethod(), getCallOptions()), request);
    }

    /**
     */
    public com.google.common.util.concurrent.ListenableFuture<cmvr.api.ArmCommand.GetPose.Response> getPose(
        cmvr.api.ArmCommand.GetPose.Request request) {
      return io.grpc.stub.ClientCalls.futureUnaryCall(
          getChannel().newCall(getGetPoseMethod(), getCallOptions()), request);
    }

    /**
     */
    public com.google.common.util.concurrent.ListenableFuture<cmvr.api.ArmCommand.CalibrateZeroQ.Response> calibrateZeroQ(
        cmvr.api.ArmCommand.CalibrateZeroQ.Request request) {
      return io.grpc.stub.ClientCalls.futureUnaryCall(
          getChannel().newCall(getCalibrateZeroQMethod(), getCallOptions()), request);
    }

    /**
     */
    public com.google.common.util.concurrent.ListenableFuture<cmvr.api.ArmCommand.GetPoseMatrix.Response> getPoseMatrix(
        cmvr.api.ArmCommand.GetPoseMatrix.Request request) {
      return io.grpc.stub.ClientCalls.futureUnaryCall(
          getChannel().newCall(getGetPoseMatrixMethod(), getCallOptions()), request);
    }

    /**
     */
    public com.google.common.util.concurrent.ListenableFuture<cmvr.api.ArmCommand.ComputeForwardKinematics.Response> computeForwardKinematics(
        cmvr.api.ArmCommand.ComputeForwardKinematics.Request request) {
      return io.grpc.stub.ClientCalls.futureUnaryCall(
          getChannel().newCall(getComputeForwardKinematicsMethod(), getCallOptions()), request);
    }
  }

  private static final int METHODID_TORQUE_OFF = 0;
  private static final int METHODID_TORQUE_ON = 1;
  private static final int METHODID_CLEAR_FAULT = 2;
  private static final int METHODID_MOVE_J = 3;
  private static final int METHODID_MOVE_L = 4;
  private static final int METHODID_SPEED_J = 5;
  private static final int METHODID_SPEED_L = 6;
  private static final int METHODID_SERVO_J = 7;
  private static final int METHODID_STOP_MOTION = 8;
  private static final int METHODID_GET_JOINT_STATE = 9;
  private static final int METHODID_GET_POSE = 10;
  private static final int METHODID_CALIBRATE_ZERO_Q = 11;
  private static final int METHODID_GET_POSE_MATRIX = 12;
  private static final int METHODID_COMPUTE_FORWARD_KINEMATICS = 13;

  private static final class MethodHandlers<Req, Resp> implements
      io.grpc.stub.ServerCalls.UnaryMethod<Req, Resp>,
      io.grpc.stub.ServerCalls.ServerStreamingMethod<Req, Resp>,
      io.grpc.stub.ServerCalls.ClientStreamingMethod<Req, Resp>,
      io.grpc.stub.ServerCalls.BidiStreamingMethod<Req, Resp> {
    private final ArmServiceImplBase serviceImpl;
    private final int methodId;

    MethodHandlers(ArmServiceImplBase serviceImpl, int methodId) {
      this.serviceImpl = serviceImpl;
      this.methodId = methodId;
    }

    @java.lang.Override
    @java.lang.SuppressWarnings("unchecked")
    public void invoke(Req request, io.grpc.stub.StreamObserver<Resp> responseObserver) {
      switch (methodId) {
        case METHODID_TORQUE_OFF:
          serviceImpl.torqueOff((cmvr.api.Common.CommandHeader.Request) request,
              (io.grpc.stub.StreamObserver<cmvr.api.Common.CommandHeader.Feedback>) responseObserver);
          break;
        case METHODID_TORQUE_ON:
          serviceImpl.torqueOn((cmvr.api.Common.CommandHeader.Request) request,
              (io.grpc.stub.StreamObserver<cmvr.api.Common.CommandHeader.Feedback>) responseObserver);
          break;
        case METHODID_CLEAR_FAULT:
          serviceImpl.clearFault((cmvr.api.Common.CommandHeader.Request) request,
              (io.grpc.stub.StreamObserver<cmvr.api.Common.CommandHeader.Feedback>) responseObserver);
          break;
        case METHODID_MOVE_J:
          serviceImpl.moveJ((cmvr.api.ArmCommand.MoveJ.Request) request,
              (io.grpc.stub.StreamObserver<cmvr.api.ArmCommand.MoveJ.Response>) responseObserver);
          break;
        case METHODID_MOVE_L:
          serviceImpl.moveL((cmvr.api.ArmCommand.MoveL.Request) request,
              (io.grpc.stub.StreamObserver<cmvr.api.ArmCommand.MoveL.Response>) responseObserver);
          break;
        case METHODID_SPEED_J:
          serviceImpl.speedJ((cmvr.api.ArmCommand.SpeedJ.Request) request,
              (io.grpc.stub.StreamObserver<cmvr.api.ArmCommand.SpeedJ.Response>) responseObserver);
          break;
        case METHODID_SPEED_L:
          serviceImpl.speedL((cmvr.api.ArmCommand.SpeedL.Request) request,
              (io.grpc.stub.StreamObserver<cmvr.api.ArmCommand.SpeedL.Response>) responseObserver);
          break;
        case METHODID_SERVO_J:
          serviceImpl.servoJ((cmvr.api.ArmCommand.ServoJ.Request) request,
              (io.grpc.stub.StreamObserver<cmvr.api.ArmCommand.ServoJ.Response>) responseObserver);
          break;
        case METHODID_STOP_MOTION:
          serviceImpl.stopMotion((cmvr.api.Common.CommandHeader.Request) request,
              (io.grpc.stub.StreamObserver<cmvr.api.Common.CommandHeader.Feedback>) responseObserver);
          break;
        case METHODID_GET_JOINT_STATE:
          serviceImpl.getJointState((cmvr.api.ArmCommand.JointRequest) request,
              (io.grpc.stub.StreamObserver<cmvr.api.ArmCommand.JointResponse>) responseObserver);
          break;
        case METHODID_GET_POSE:
          serviceImpl.getPose((cmvr.api.ArmCommand.GetPose.Request) request,
              (io.grpc.stub.StreamObserver<cmvr.api.ArmCommand.GetPose.Response>) responseObserver);
          break;
        case METHODID_CALIBRATE_ZERO_Q:
          serviceImpl.calibrateZeroQ((cmvr.api.ArmCommand.CalibrateZeroQ.Request) request,
              (io.grpc.stub.StreamObserver<cmvr.api.ArmCommand.CalibrateZeroQ.Response>) responseObserver);
          break;
        case METHODID_GET_POSE_MATRIX:
          serviceImpl.getPoseMatrix((cmvr.api.ArmCommand.GetPoseMatrix.Request) request,
              (io.grpc.stub.StreamObserver<cmvr.api.ArmCommand.GetPoseMatrix.Response>) responseObserver);
          break;
        case METHODID_COMPUTE_FORWARD_KINEMATICS:
          serviceImpl.computeForwardKinematics((cmvr.api.ArmCommand.ComputeForwardKinematics.Request) request,
              (io.grpc.stub.StreamObserver<cmvr.api.ArmCommand.ComputeForwardKinematics.Response>) responseObserver);
          break;
        default:
          throw new AssertionError();
      }
    }

    @java.lang.Override
    @java.lang.SuppressWarnings("unchecked")
    public io.grpc.stub.StreamObserver<Req> invoke(
        io.grpc.stub.StreamObserver<Resp> responseObserver) {
      switch (methodId) {
        default:
          throw new AssertionError();
      }
    }
  }

  private static abstract class ArmServiceBaseDescriptorSupplier
      implements io.grpc.protobuf.ProtoFileDescriptorSupplier, io.grpc.protobuf.ProtoServiceDescriptorSupplier {
    ArmServiceBaseDescriptorSupplier() {}

    @java.lang.Override
    public com.google.protobuf.Descriptors.FileDescriptor getFileDescriptor() {
      return cmvr.api.ArmServiceOuterClass.getDescriptor();
    }

    @java.lang.Override
    public com.google.protobuf.Descriptors.ServiceDescriptor getServiceDescriptor() {
      return getFileDescriptor().findServiceByName("ArmService");
    }
  }

  private static final class ArmServiceFileDescriptorSupplier
      extends ArmServiceBaseDescriptorSupplier {
    ArmServiceFileDescriptorSupplier() {}
  }

  private static final class ArmServiceMethodDescriptorSupplier
      extends ArmServiceBaseDescriptorSupplier
      implements io.grpc.protobuf.ProtoMethodDescriptorSupplier {
    private final String methodName;

    ArmServiceMethodDescriptorSupplier(String methodName) {
      this.methodName = methodName;
    }

    @java.lang.Override
    public com.google.protobuf.Descriptors.MethodDescriptor getMethodDescriptor() {
      return getServiceDescriptor().findMethodByName(methodName);
    }
  }

  private static volatile io.grpc.ServiceDescriptor serviceDescriptor;

  public static io.grpc.ServiceDescriptor getServiceDescriptor() {
    io.grpc.ServiceDescriptor result = serviceDescriptor;
    if (result == null) {
      synchronized (ArmServiceGrpc.class) {
        result = serviceDescriptor;
        if (result == null) {
          serviceDescriptor = result = io.grpc.ServiceDescriptor.newBuilder(SERVICE_NAME)
              .setSchemaDescriptor(new ArmServiceFileDescriptorSupplier())
              .addMethod(getTorqueOffMethod())
              .addMethod(getTorqueOnMethod())
              .addMethod(getClearFaultMethod())
              .addMethod(getMoveJMethod())
              .addMethod(getMoveLMethod())
              .addMethod(getSpeedJMethod())
              .addMethod(getSpeedLMethod())
              .addMethod(getServoJMethod())
              .addMethod(getStopMotionMethod())
              .addMethod(getGetJointStateMethod())
              .addMethod(getGetPoseMethod())
              .addMethod(getCalibrateZeroQMethod())
              .addMethod(getGetPoseMatrixMethod())
              .addMethod(getComputeForwardKinematicsMethod())
              .build();
        }
      }
    }
    return result;
  }
}
