// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: cmvr/api/agv_command.proto

package cmvr.api;

public final class AgvCommand {
  private AgvCommand() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }

  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
        (com.google.protobuf.ExtensionRegistryLite) registry);
  }
  public interface AgvStatusInfoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:cmvr.api.AgvStatusInfo)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * AGV ID
     * </pre>
     *
     * <code>optional string id = 1;</code>
     * @return Whether the id field is set.
     */
    boolean hasId();
    /**
     * <pre>
     * AGV ID
     * </pre>
     *
     * <code>optional string id = 1;</code>
     * @return The id.
     */
    java.lang.String getId();
    /**
     * <pre>
     * AGV ID
     * </pre>
     *
     * <code>optional string id = 1;</code>
     * @return The bytes for id.
     */
    com.google.protobuf.ByteString
        getIdBytes();

    /**
     * <pre>
     * 车辆ID
     * </pre>
     *
     * <code>optional string vehicle_id = 2;</code>
     * @return Whether the vehicleId field is set.
     */
    boolean hasVehicleId();
    /**
     * <pre>
     * 车辆ID
     * </pre>
     *
     * <code>optional string vehicle_id = 2;</code>
     * @return The vehicleId.
     */
    java.lang.String getVehicleId();
    /**
     * <pre>
     * 车辆ID
     * </pre>
     *
     * <code>optional string vehicle_id = 2;</code>
     * @return The bytes for vehicleId.
     */
    com.google.protobuf.ByteString
        getVehicleIdBytes();

    /**
     * <pre>
     * 软件版本
     * </pre>
     *
     * <code>optional string version = 3;</code>
     * @return Whether the version field is set.
     */
    boolean hasVersion();
    /**
     * <pre>
     * 软件版本
     * </pre>
     *
     * <code>optional string version = 3;</code>
     * @return The version.
     */
    java.lang.String getVersion();
    /**
     * <pre>
     * 软件版本
     * </pre>
     *
     * <code>optional string version = 3;</code>
     * @return The bytes for version.
     */
    com.google.protobuf.ByteString
        getVersionBytes();

    /**
     * <pre>
     * 型号
     * </pre>
     *
     * <code>optional string model = 4;</code>
     * @return Whether the model field is set.
     */
    boolean hasModel();
    /**
     * <pre>
     * 型号
     * </pre>
     *
     * <code>optional string model = 4;</code>
     * @return The model.
     */
    java.lang.String getModel();
    /**
     * <pre>
     * 型号
     * </pre>
     *
     * <code>optional string model = 4;</code>
     * @return The bytes for model.
     */
    com.google.protobuf.ByteString
        getModelBytes();

    /**
     * <pre>
     * DSP版本
     * </pre>
     *
     * <code>optional string dsp_version = 5;</code>
     * @return Whether the dspVersion field is set.
     */
    boolean hasDspVersion();
    /**
     * <pre>
     * DSP版本
     * </pre>
     *
     * <code>optional string dsp_version = 5;</code>
     * @return The dspVersion.
     */
    java.lang.String getDspVersion();
    /**
     * <pre>
     * DSP版本
     * </pre>
     *
     * <code>optional string dsp_version = 5;</code>
     * @return The bytes for dspVersion.
     */
    com.google.protobuf.ByteString
        getDspVersionBytes();

    /**
     * <pre>
     * 当前IP地址
     * </pre>
     *
     * <code>optional string current_ip = 6;</code>
     * @return Whether the currentIp field is set.
     */
    boolean hasCurrentIp();
    /**
     * <pre>
     * 当前IP地址
     * </pre>
     *
     * <code>optional string current_ip = 6;</code>
     * @return The currentIp.
     */
    java.lang.String getCurrentIp();
    /**
     * <pre>
     * 当前IP地址
     * </pre>
     *
     * <code>optional string current_ip = 6;</code>
     * @return The bytes for currentIp.
     */
    com.google.protobuf.ByteString
        getCurrentIpBytes();

    /**
     * <pre>
     * MAC地址
     * </pre>
     *
     * <code>optional string mac = 7;</code>
     * @return Whether the mac field is set.
     */
    boolean hasMac();
    /**
     * <pre>
     * MAC地址
     * </pre>
     *
     * <code>optional string mac = 7;</code>
     * @return The mac.
     */
    java.lang.String getMac();
    /**
     * <pre>
     * MAC地址
     * </pre>
     *
     * <code>optional string mac = 7;</code>
     * @return The bytes for mac.
     */
    com.google.protobuf.ByteString
        getMacBytes();

    /**
     * <pre>
     * 信号强度
     * </pre>
     *
     * <code>optional int32 rssi = 8;</code>
     * @return Whether the rssi field is set.
     */
    boolean hasRssi();
    /**
     * <pre>
     * 信号强度
     * </pre>
     *
     * <code>optional int32 rssi = 8;</code>
     * @return The rssi.
     */
    int getRssi();

    /**
     * <pre>
     * 返回码
     * </pre>
     *
     * <code>optional int32 ret_code = 9;</code>
     * @return Whether the retCode field is set.
     */
    boolean hasRetCode();
    /**
     * <pre>
     * 返回码
     * </pre>
     *
     * <code>optional int32 ret_code = 9;</code>
     * @return The retCode.
     */
    int getRetCode();

    /**
     * <pre>
     * 错误信息
     * </pre>
     *
     * <code>optional string err_msg = 10;</code>
     * @return Whether the errMsg field is set.
     */
    boolean hasErrMsg();
    /**
     * <pre>
     * 错误信息
     * </pre>
     *
     * <code>optional string err_msg = 10;</code>
     * @return The errMsg.
     */
    java.lang.String getErrMsg();
    /**
     * <pre>
     * 错误信息
     * </pre>
     *
     * <code>optional string err_msg = 10;</code>
     * @return The bytes for errMsg.
     */
    com.google.protobuf.ByteString
        getErrMsgBytes();
  }
  /**
   * <pre>
   * AGV状态信息
   * </pre>
   *
   * Protobuf type {@code cmvr.api.AgvStatusInfo}
   */
  public static final class AgvStatusInfo extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:cmvr.api.AgvStatusInfo)
      AgvStatusInfoOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AgvStatusInfo.newBuilder() to construct.
    private AgvStatusInfo(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private AgvStatusInfo() {
      id_ = "";
      vehicleId_ = "";
      version_ = "";
      model_ = "";
      dspVersion_ = "";
      currentIp_ = "";
      mac_ = "";
      errMsg_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new AgvStatusInfo();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvStatusInfo_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvStatusInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              cmvr.api.AgvCommand.AgvStatusInfo.class, cmvr.api.AgvCommand.AgvStatusInfo.Builder.class);
    }

    private int bitField0_;
    public static final int ID_FIELD_NUMBER = 1;
    private volatile java.lang.Object id_;
    /**
     * <pre>
     * AGV ID
     * </pre>
     *
     * <code>optional string id = 1;</code>
     * @return Whether the id field is set.
     */
    @java.lang.Override
    public boolean hasId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * AGV ID
     * </pre>
     *
     * <code>optional string id = 1;</code>
     * @return The id.
     */
    @java.lang.Override
    public java.lang.String getId() {
      java.lang.Object ref = id_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        id_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * AGV ID
     * </pre>
     *
     * <code>optional string id = 1;</code>
     * @return The bytes for id.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getIdBytes() {
      java.lang.Object ref = id_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        id_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int VEHICLE_ID_FIELD_NUMBER = 2;
    private volatile java.lang.Object vehicleId_;
    /**
     * <pre>
     * 车辆ID
     * </pre>
     *
     * <code>optional string vehicle_id = 2;</code>
     * @return Whether the vehicleId field is set.
     */
    @java.lang.Override
    public boolean hasVehicleId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * 车辆ID
     * </pre>
     *
     * <code>optional string vehicle_id = 2;</code>
     * @return The vehicleId.
     */
    @java.lang.Override
    public java.lang.String getVehicleId() {
      java.lang.Object ref = vehicleId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        vehicleId_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * 车辆ID
     * </pre>
     *
     * <code>optional string vehicle_id = 2;</code>
     * @return The bytes for vehicleId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getVehicleIdBytes() {
      java.lang.Object ref = vehicleId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        vehicleId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int VERSION_FIELD_NUMBER = 3;
    private volatile java.lang.Object version_;
    /**
     * <pre>
     * 软件版本
     * </pre>
     *
     * <code>optional string version = 3;</code>
     * @return Whether the version field is set.
     */
    @java.lang.Override
    public boolean hasVersion() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * 软件版本
     * </pre>
     *
     * <code>optional string version = 3;</code>
     * @return The version.
     */
    @java.lang.Override
    public java.lang.String getVersion() {
      java.lang.Object ref = version_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        version_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * 软件版本
     * </pre>
     *
     * <code>optional string version = 3;</code>
     * @return The bytes for version.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getVersionBytes() {
      java.lang.Object ref = version_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        version_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MODEL_FIELD_NUMBER = 4;
    private volatile java.lang.Object model_;
    /**
     * <pre>
     * 型号
     * </pre>
     *
     * <code>optional string model = 4;</code>
     * @return Whether the model field is set.
     */
    @java.lang.Override
    public boolean hasModel() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * 型号
     * </pre>
     *
     * <code>optional string model = 4;</code>
     * @return The model.
     */
    @java.lang.Override
    public java.lang.String getModel() {
      java.lang.Object ref = model_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        model_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * 型号
     * </pre>
     *
     * <code>optional string model = 4;</code>
     * @return The bytes for model.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getModelBytes() {
      java.lang.Object ref = model_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        model_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DSP_VERSION_FIELD_NUMBER = 5;
    private volatile java.lang.Object dspVersion_;
    /**
     * <pre>
     * DSP版本
     * </pre>
     *
     * <code>optional string dsp_version = 5;</code>
     * @return Whether the dspVersion field is set.
     */
    @java.lang.Override
    public boolean hasDspVersion() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <pre>
     * DSP版本
     * </pre>
     *
     * <code>optional string dsp_version = 5;</code>
     * @return The dspVersion.
     */
    @java.lang.Override
    public java.lang.String getDspVersion() {
      java.lang.Object ref = dspVersion_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        dspVersion_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * DSP版本
     * </pre>
     *
     * <code>optional string dsp_version = 5;</code>
     * @return The bytes for dspVersion.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getDspVersionBytes() {
      java.lang.Object ref = dspVersion_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        dspVersion_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CURRENT_IP_FIELD_NUMBER = 6;
    private volatile java.lang.Object currentIp_;
    /**
     * <pre>
     * 当前IP地址
     * </pre>
     *
     * <code>optional string current_ip = 6;</code>
     * @return Whether the currentIp field is set.
     */
    @java.lang.Override
    public boolean hasCurrentIp() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <pre>
     * 当前IP地址
     * </pre>
     *
     * <code>optional string current_ip = 6;</code>
     * @return The currentIp.
     */
    @java.lang.Override
    public java.lang.String getCurrentIp() {
      java.lang.Object ref = currentIp_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        currentIp_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * 当前IP地址
     * </pre>
     *
     * <code>optional string current_ip = 6;</code>
     * @return The bytes for currentIp.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getCurrentIpBytes() {
      java.lang.Object ref = currentIp_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        currentIp_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MAC_FIELD_NUMBER = 7;
    private volatile java.lang.Object mac_;
    /**
     * <pre>
     * MAC地址
     * </pre>
     *
     * <code>optional string mac = 7;</code>
     * @return Whether the mac field is set.
     */
    @java.lang.Override
    public boolean hasMac() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <pre>
     * MAC地址
     * </pre>
     *
     * <code>optional string mac = 7;</code>
     * @return The mac.
     */
    @java.lang.Override
    public java.lang.String getMac() {
      java.lang.Object ref = mac_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        mac_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * MAC地址
     * </pre>
     *
     * <code>optional string mac = 7;</code>
     * @return The bytes for mac.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getMacBytes() {
      java.lang.Object ref = mac_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        mac_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int RSSI_FIELD_NUMBER = 8;
    private int rssi_;
    /**
     * <pre>
     * 信号强度
     * </pre>
     *
     * <code>optional int32 rssi = 8;</code>
     * @return Whether the rssi field is set.
     */
    @java.lang.Override
    public boolean hasRssi() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * <pre>
     * 信号强度
     * </pre>
     *
     * <code>optional int32 rssi = 8;</code>
     * @return The rssi.
     */
    @java.lang.Override
    public int getRssi() {
      return rssi_;
    }

    public static final int RET_CODE_FIELD_NUMBER = 9;
    private int retCode_;
    /**
     * <pre>
     * 返回码
     * </pre>
     *
     * <code>optional int32 ret_code = 9;</code>
     * @return Whether the retCode field is set.
     */
    @java.lang.Override
    public boolean hasRetCode() {
      return ((bitField0_ & 0x00000100) != 0);
    }
    /**
     * <pre>
     * 返回码
     * </pre>
     *
     * <code>optional int32 ret_code = 9;</code>
     * @return The retCode.
     */
    @java.lang.Override
    public int getRetCode() {
      return retCode_;
    }

    public static final int ERR_MSG_FIELD_NUMBER = 10;
    private volatile java.lang.Object errMsg_;
    /**
     * <pre>
     * 错误信息
     * </pre>
     *
     * <code>optional string err_msg = 10;</code>
     * @return Whether the errMsg field is set.
     */
    @java.lang.Override
    public boolean hasErrMsg() {
      return ((bitField0_ & 0x00000200) != 0);
    }
    /**
     * <pre>
     * 错误信息
     * </pre>
     *
     * <code>optional string err_msg = 10;</code>
     * @return The errMsg.
     */
    @java.lang.Override
    public java.lang.String getErrMsg() {
      java.lang.Object ref = errMsg_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        errMsg_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * 错误信息
     * </pre>
     *
     * <code>optional string err_msg = 10;</code>
     * @return The bytes for errMsg.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getErrMsgBytes() {
      java.lang.Object ref = errMsg_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        errMsg_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, id_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, vehicleId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, version_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, model_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, dspVersion_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, currentIp_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, mac_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        output.writeInt32(8, rssi_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        output.writeInt32(9, retCode_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 10, errMsg_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, id_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, vehicleId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, version_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, model_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, dspVersion_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, currentIp_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, mac_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(8, rssi_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(9, retCode_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, errMsg_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof cmvr.api.AgvCommand.AgvStatusInfo)) {
        return super.equals(obj);
      }
      cmvr.api.AgvCommand.AgvStatusInfo other = (cmvr.api.AgvCommand.AgvStatusInfo) obj;

      if (hasId() != other.hasId()) return false;
      if (hasId()) {
        if (!getId()
            .equals(other.getId())) return false;
      }
      if (hasVehicleId() != other.hasVehicleId()) return false;
      if (hasVehicleId()) {
        if (!getVehicleId()
            .equals(other.getVehicleId())) return false;
      }
      if (hasVersion() != other.hasVersion()) return false;
      if (hasVersion()) {
        if (!getVersion()
            .equals(other.getVersion())) return false;
      }
      if (hasModel() != other.hasModel()) return false;
      if (hasModel()) {
        if (!getModel()
            .equals(other.getModel())) return false;
      }
      if (hasDspVersion() != other.hasDspVersion()) return false;
      if (hasDspVersion()) {
        if (!getDspVersion()
            .equals(other.getDspVersion())) return false;
      }
      if (hasCurrentIp() != other.hasCurrentIp()) return false;
      if (hasCurrentIp()) {
        if (!getCurrentIp()
            .equals(other.getCurrentIp())) return false;
      }
      if (hasMac() != other.hasMac()) return false;
      if (hasMac()) {
        if (!getMac()
            .equals(other.getMac())) return false;
      }
      if (hasRssi() != other.hasRssi()) return false;
      if (hasRssi()) {
        if (getRssi()
            != other.getRssi()) return false;
      }
      if (hasRetCode() != other.hasRetCode()) return false;
      if (hasRetCode()) {
        if (getRetCode()
            != other.getRetCode()) return false;
      }
      if (hasErrMsg() != other.hasErrMsg()) return false;
      if (hasErrMsg()) {
        if (!getErrMsg()
            .equals(other.getErrMsg())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasId()) {
        hash = (37 * hash) + ID_FIELD_NUMBER;
        hash = (53 * hash) + getId().hashCode();
      }
      if (hasVehicleId()) {
        hash = (37 * hash) + VEHICLE_ID_FIELD_NUMBER;
        hash = (53 * hash) + getVehicleId().hashCode();
      }
      if (hasVersion()) {
        hash = (37 * hash) + VERSION_FIELD_NUMBER;
        hash = (53 * hash) + getVersion().hashCode();
      }
      if (hasModel()) {
        hash = (37 * hash) + MODEL_FIELD_NUMBER;
        hash = (53 * hash) + getModel().hashCode();
      }
      if (hasDspVersion()) {
        hash = (37 * hash) + DSP_VERSION_FIELD_NUMBER;
        hash = (53 * hash) + getDspVersion().hashCode();
      }
      if (hasCurrentIp()) {
        hash = (37 * hash) + CURRENT_IP_FIELD_NUMBER;
        hash = (53 * hash) + getCurrentIp().hashCode();
      }
      if (hasMac()) {
        hash = (37 * hash) + MAC_FIELD_NUMBER;
        hash = (53 * hash) + getMac().hashCode();
      }
      if (hasRssi()) {
        hash = (37 * hash) + RSSI_FIELD_NUMBER;
        hash = (53 * hash) + getRssi();
      }
      if (hasRetCode()) {
        hash = (37 * hash) + RET_CODE_FIELD_NUMBER;
        hash = (53 * hash) + getRetCode();
      }
      if (hasErrMsg()) {
        hash = (37 * hash) + ERR_MSG_FIELD_NUMBER;
        hash = (53 * hash) + getErrMsg().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cmvr.api.AgvCommand.AgvStatusInfo parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.AgvStatusInfo parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.AgvStatusInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.AgvStatusInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.AgvStatusInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.AgvStatusInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.AgvStatusInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.AgvStatusInfo parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.AgvStatusInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.AgvStatusInfo parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.AgvStatusInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.AgvStatusInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(cmvr.api.AgvCommand.AgvStatusInfo prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * AGV状态信息
     * </pre>
     *
     * Protobuf type {@code cmvr.api.AgvStatusInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:cmvr.api.AgvStatusInfo)
        cmvr.api.AgvCommand.AgvStatusInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvStatusInfo_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvStatusInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.AgvCommand.AgvStatusInfo.class, cmvr.api.AgvCommand.AgvStatusInfo.Builder.class);
      }

      // Construct using cmvr.api.AgvCommand.AgvStatusInfo.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        id_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        vehicleId_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        version_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        model_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        dspVersion_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        currentIp_ = "";
        bitField0_ = (bitField0_ & ~0x00000020);
        mac_ = "";
        bitField0_ = (bitField0_ & ~0x00000040);
        rssi_ = 0;
        bitField0_ = (bitField0_ & ~0x00000080);
        retCode_ = 0;
        bitField0_ = (bitField0_ & ~0x00000100);
        errMsg_ = "";
        bitField0_ = (bitField0_ & ~0x00000200);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvStatusInfo_descriptor;
      }

      @java.lang.Override
      public cmvr.api.AgvCommand.AgvStatusInfo getDefaultInstanceForType() {
        return cmvr.api.AgvCommand.AgvStatusInfo.getDefaultInstance();
      }

      @java.lang.Override
      public cmvr.api.AgvCommand.AgvStatusInfo build() {
        cmvr.api.AgvCommand.AgvStatusInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cmvr.api.AgvCommand.AgvStatusInfo buildPartial() {
        cmvr.api.AgvCommand.AgvStatusInfo result = new cmvr.api.AgvCommand.AgvStatusInfo(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          to_bitField0_ |= 0x00000001;
        }
        result.id_ = id_;
        if (((from_bitField0_ & 0x00000002) != 0)) {
          to_bitField0_ |= 0x00000002;
        }
        result.vehicleId_ = vehicleId_;
        if (((from_bitField0_ & 0x00000004) != 0)) {
          to_bitField0_ |= 0x00000004;
        }
        result.version_ = version_;
        if (((from_bitField0_ & 0x00000008) != 0)) {
          to_bitField0_ |= 0x00000008;
        }
        result.model_ = model_;
        if (((from_bitField0_ & 0x00000010) != 0)) {
          to_bitField0_ |= 0x00000010;
        }
        result.dspVersion_ = dspVersion_;
        if (((from_bitField0_ & 0x00000020) != 0)) {
          to_bitField0_ |= 0x00000020;
        }
        result.currentIp_ = currentIp_;
        if (((from_bitField0_ & 0x00000040) != 0)) {
          to_bitField0_ |= 0x00000040;
        }
        result.mac_ = mac_;
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.rssi_ = rssi_;
          to_bitField0_ |= 0x00000080;
        }
        if (((from_bitField0_ & 0x00000100) != 0)) {
          result.retCode_ = retCode_;
          to_bitField0_ |= 0x00000100;
        }
        if (((from_bitField0_ & 0x00000200) != 0)) {
          to_bitField0_ |= 0x00000200;
        }
        result.errMsg_ = errMsg_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cmvr.api.AgvCommand.AgvStatusInfo) {
          return mergeFrom((cmvr.api.AgvCommand.AgvStatusInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cmvr.api.AgvCommand.AgvStatusInfo other) {
        if (other == cmvr.api.AgvCommand.AgvStatusInfo.getDefaultInstance()) return this;
        if (other.hasId()) {
          bitField0_ |= 0x00000001;
          id_ = other.id_;
          onChanged();
        }
        if (other.hasVehicleId()) {
          bitField0_ |= 0x00000002;
          vehicleId_ = other.vehicleId_;
          onChanged();
        }
        if (other.hasVersion()) {
          bitField0_ |= 0x00000004;
          version_ = other.version_;
          onChanged();
        }
        if (other.hasModel()) {
          bitField0_ |= 0x00000008;
          model_ = other.model_;
          onChanged();
        }
        if (other.hasDspVersion()) {
          bitField0_ |= 0x00000010;
          dspVersion_ = other.dspVersion_;
          onChanged();
        }
        if (other.hasCurrentIp()) {
          bitField0_ |= 0x00000020;
          currentIp_ = other.currentIp_;
          onChanged();
        }
        if (other.hasMac()) {
          bitField0_ |= 0x00000040;
          mac_ = other.mac_;
          onChanged();
        }
        if (other.hasRssi()) {
          setRssi(other.getRssi());
        }
        if (other.hasRetCode()) {
          setRetCode(other.getRetCode());
        }
        if (other.hasErrMsg()) {
          bitField0_ |= 0x00000200;
          errMsg_ = other.errMsg_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                id_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                vehicleId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                version_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 34: {
                model_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              case 42: {
                dspVersion_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000010;
                break;
              } // case 42
              case 50: {
                currentIp_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000020;
                break;
              } // case 50
              case 58: {
                mac_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000040;
                break;
              } // case 58
              case 64: {
                rssi_ = input.readInt32();
                bitField0_ |= 0x00000080;
                break;
              } // case 64
              case 72: {
                retCode_ = input.readInt32();
                bitField0_ |= 0x00000100;
                break;
              } // case 72
              case 82: {
                errMsg_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000200;
                break;
              } // case 82
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object id_ = "";
      /**
       * <pre>
       * AGV ID
       * </pre>
       *
       * <code>optional string id = 1;</code>
       * @return Whether the id field is set.
       */
      public boolean hasId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * AGV ID
       * </pre>
       *
       * <code>optional string id = 1;</code>
       * @return The id.
       */
      public java.lang.String getId() {
        java.lang.Object ref = id_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          id_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * AGV ID
       * </pre>
       *
       * <code>optional string id = 1;</code>
       * @return The bytes for id.
       */
      public com.google.protobuf.ByteString
          getIdBytes() {
        java.lang.Object ref = id_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          id_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * AGV ID
       * </pre>
       *
       * <code>optional string id = 1;</code>
       * @param value The id to set.
       * @return This builder for chaining.
       */
      public Builder setId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        id_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * AGV ID
       * </pre>
       *
       * <code>optional string id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        id_ = getDefaultInstance().getId();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * AGV ID
       * </pre>
       *
       * <code>optional string id = 1;</code>
       * @param value The bytes for id to set.
       * @return This builder for chaining.
       */
      public Builder setIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        bitField0_ |= 0x00000001;
        id_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object vehicleId_ = "";
      /**
       * <pre>
       * 车辆ID
       * </pre>
       *
       * <code>optional string vehicle_id = 2;</code>
       * @return Whether the vehicleId field is set.
       */
      public boolean hasVehicleId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * 车辆ID
       * </pre>
       *
       * <code>optional string vehicle_id = 2;</code>
       * @return The vehicleId.
       */
      public java.lang.String getVehicleId() {
        java.lang.Object ref = vehicleId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          vehicleId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * 车辆ID
       * </pre>
       *
       * <code>optional string vehicle_id = 2;</code>
       * @return The bytes for vehicleId.
       */
      public com.google.protobuf.ByteString
          getVehicleIdBytes() {
        java.lang.Object ref = vehicleId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          vehicleId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * 车辆ID
       * </pre>
       *
       * <code>optional string vehicle_id = 2;</code>
       * @param value The vehicleId to set.
       * @return This builder for chaining.
       */
      public Builder setVehicleId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        vehicleId_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 车辆ID
       * </pre>
       *
       * <code>optional string vehicle_id = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearVehicleId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        vehicleId_ = getDefaultInstance().getVehicleId();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 车辆ID
       * </pre>
       *
       * <code>optional string vehicle_id = 2;</code>
       * @param value The bytes for vehicleId to set.
       * @return This builder for chaining.
       */
      public Builder setVehicleIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        bitField0_ |= 0x00000002;
        vehicleId_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object version_ = "";
      /**
       * <pre>
       * 软件版本
       * </pre>
       *
       * <code>optional string version = 3;</code>
       * @return Whether the version field is set.
       */
      public boolean hasVersion() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * 软件版本
       * </pre>
       *
       * <code>optional string version = 3;</code>
       * @return The version.
       */
      public java.lang.String getVersion() {
        java.lang.Object ref = version_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          version_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * 软件版本
       * </pre>
       *
       * <code>optional string version = 3;</code>
       * @return The bytes for version.
       */
      public com.google.protobuf.ByteString
          getVersionBytes() {
        java.lang.Object ref = version_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          version_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * 软件版本
       * </pre>
       *
       * <code>optional string version = 3;</code>
       * @param value The version to set.
       * @return This builder for chaining.
       */
      public Builder setVersion(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        version_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 软件版本
       * </pre>
       *
       * <code>optional string version = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearVersion() {
        bitField0_ = (bitField0_ & ~0x00000004);
        version_ = getDefaultInstance().getVersion();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 软件版本
       * </pre>
       *
       * <code>optional string version = 3;</code>
       * @param value The bytes for version to set.
       * @return This builder for chaining.
       */
      public Builder setVersionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        bitField0_ |= 0x00000004;
        version_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object model_ = "";
      /**
       * <pre>
       * 型号
       * </pre>
       *
       * <code>optional string model = 4;</code>
       * @return Whether the model field is set.
       */
      public boolean hasModel() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * 型号
       * </pre>
       *
       * <code>optional string model = 4;</code>
       * @return The model.
       */
      public java.lang.String getModel() {
        java.lang.Object ref = model_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          model_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * 型号
       * </pre>
       *
       * <code>optional string model = 4;</code>
       * @return The bytes for model.
       */
      public com.google.protobuf.ByteString
          getModelBytes() {
        java.lang.Object ref = model_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          model_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * 型号
       * </pre>
       *
       * <code>optional string model = 4;</code>
       * @param value The model to set.
       * @return This builder for chaining.
       */
      public Builder setModel(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        model_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 型号
       * </pre>
       *
       * <code>optional string model = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearModel() {
        bitField0_ = (bitField0_ & ~0x00000008);
        model_ = getDefaultInstance().getModel();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 型号
       * </pre>
       *
       * <code>optional string model = 4;</code>
       * @param value The bytes for model to set.
       * @return This builder for chaining.
       */
      public Builder setModelBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        bitField0_ |= 0x00000008;
        model_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object dspVersion_ = "";
      /**
       * <pre>
       * DSP版本
       * </pre>
       *
       * <code>optional string dsp_version = 5;</code>
       * @return Whether the dspVersion field is set.
       */
      public boolean hasDspVersion() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * DSP版本
       * </pre>
       *
       * <code>optional string dsp_version = 5;</code>
       * @return The dspVersion.
       */
      public java.lang.String getDspVersion() {
        java.lang.Object ref = dspVersion_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          dspVersion_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * DSP版本
       * </pre>
       *
       * <code>optional string dsp_version = 5;</code>
       * @return The bytes for dspVersion.
       */
      public com.google.protobuf.ByteString
          getDspVersionBytes() {
        java.lang.Object ref = dspVersion_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          dspVersion_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * DSP版本
       * </pre>
       *
       * <code>optional string dsp_version = 5;</code>
       * @param value The dspVersion to set.
       * @return This builder for chaining.
       */
      public Builder setDspVersion(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        dspVersion_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * DSP版本
       * </pre>
       *
       * <code>optional string dsp_version = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearDspVersion() {
        bitField0_ = (bitField0_ & ~0x00000010);
        dspVersion_ = getDefaultInstance().getDspVersion();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * DSP版本
       * </pre>
       *
       * <code>optional string dsp_version = 5;</code>
       * @param value The bytes for dspVersion to set.
       * @return This builder for chaining.
       */
      public Builder setDspVersionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        bitField0_ |= 0x00000010;
        dspVersion_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object currentIp_ = "";
      /**
       * <pre>
       * 当前IP地址
       * </pre>
       *
       * <code>optional string current_ip = 6;</code>
       * @return Whether the currentIp field is set.
       */
      public boolean hasCurrentIp() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <pre>
       * 当前IP地址
       * </pre>
       *
       * <code>optional string current_ip = 6;</code>
       * @return The currentIp.
       */
      public java.lang.String getCurrentIp() {
        java.lang.Object ref = currentIp_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          currentIp_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * 当前IP地址
       * </pre>
       *
       * <code>optional string current_ip = 6;</code>
       * @return The bytes for currentIp.
       */
      public com.google.protobuf.ByteString
          getCurrentIpBytes() {
        java.lang.Object ref = currentIp_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          currentIp_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * 当前IP地址
       * </pre>
       *
       * <code>optional string current_ip = 6;</code>
       * @param value The currentIp to set.
       * @return This builder for chaining.
       */
      public Builder setCurrentIp(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        currentIp_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 当前IP地址
       * </pre>
       *
       * <code>optional string current_ip = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearCurrentIp() {
        bitField0_ = (bitField0_ & ~0x00000020);
        currentIp_ = getDefaultInstance().getCurrentIp();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 当前IP地址
       * </pre>
       *
       * <code>optional string current_ip = 6;</code>
       * @param value The bytes for currentIp to set.
       * @return This builder for chaining.
       */
      public Builder setCurrentIpBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        bitField0_ |= 0x00000020;
        currentIp_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object mac_ = "";
      /**
       * <pre>
       * MAC地址
       * </pre>
       *
       * <code>optional string mac = 7;</code>
       * @return Whether the mac field is set.
       */
      public boolean hasMac() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <pre>
       * MAC地址
       * </pre>
       *
       * <code>optional string mac = 7;</code>
       * @return The mac.
       */
      public java.lang.String getMac() {
        java.lang.Object ref = mac_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          mac_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * MAC地址
       * </pre>
       *
       * <code>optional string mac = 7;</code>
       * @return The bytes for mac.
       */
      public com.google.protobuf.ByteString
          getMacBytes() {
        java.lang.Object ref = mac_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          mac_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * MAC地址
       * </pre>
       *
       * <code>optional string mac = 7;</code>
       * @param value The mac to set.
       * @return This builder for chaining.
       */
      public Builder setMac(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000040;
        mac_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * MAC地址
       * </pre>
       *
       * <code>optional string mac = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearMac() {
        bitField0_ = (bitField0_ & ~0x00000040);
        mac_ = getDefaultInstance().getMac();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * MAC地址
       * </pre>
       *
       * <code>optional string mac = 7;</code>
       * @param value The bytes for mac to set.
       * @return This builder for chaining.
       */
      public Builder setMacBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        bitField0_ |= 0x00000040;
        mac_ = value;
        onChanged();
        return this;
      }

      private int rssi_ ;
      /**
       * <pre>
       * 信号强度
       * </pre>
       *
       * <code>optional int32 rssi = 8;</code>
       * @return Whether the rssi field is set.
       */
      @java.lang.Override
      public boolean hasRssi() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <pre>
       * 信号强度
       * </pre>
       *
       * <code>optional int32 rssi = 8;</code>
       * @return The rssi.
       */
      @java.lang.Override
      public int getRssi() {
        return rssi_;
      }
      /**
       * <pre>
       * 信号强度
       * </pre>
       *
       * <code>optional int32 rssi = 8;</code>
       * @param value The rssi to set.
       * @return This builder for chaining.
       */
      public Builder setRssi(int value) {
        bitField0_ |= 0x00000080;
        rssi_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 信号强度
       * </pre>
       *
       * <code>optional int32 rssi = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearRssi() {
        bitField0_ = (bitField0_ & ~0x00000080);
        rssi_ = 0;
        onChanged();
        return this;
      }

      private int retCode_ ;
      /**
       * <pre>
       * 返回码
       * </pre>
       *
       * <code>optional int32 ret_code = 9;</code>
       * @return Whether the retCode field is set.
       */
      @java.lang.Override
      public boolean hasRetCode() {
        return ((bitField0_ & 0x00000100) != 0);
      }
      /**
       * <pre>
       * 返回码
       * </pre>
       *
       * <code>optional int32 ret_code = 9;</code>
       * @return The retCode.
       */
      @java.lang.Override
      public int getRetCode() {
        return retCode_;
      }
      /**
       * <pre>
       * 返回码
       * </pre>
       *
       * <code>optional int32 ret_code = 9;</code>
       * @param value The retCode to set.
       * @return This builder for chaining.
       */
      public Builder setRetCode(int value) {
        bitField0_ |= 0x00000100;
        retCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 返回码
       * </pre>
       *
       * <code>optional int32 ret_code = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearRetCode() {
        bitField0_ = (bitField0_ & ~0x00000100);
        retCode_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object errMsg_ = "";
      /**
       * <pre>
       * 错误信息
       * </pre>
       *
       * <code>optional string err_msg = 10;</code>
       * @return Whether the errMsg field is set.
       */
      public boolean hasErrMsg() {
        return ((bitField0_ & 0x00000200) != 0);
      }
      /**
       * <pre>
       * 错误信息
       * </pre>
       *
       * <code>optional string err_msg = 10;</code>
       * @return The errMsg.
       */
      public java.lang.String getErrMsg() {
        java.lang.Object ref = errMsg_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          errMsg_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * 错误信息
       * </pre>
       *
       * <code>optional string err_msg = 10;</code>
       * @return The bytes for errMsg.
       */
      public com.google.protobuf.ByteString
          getErrMsgBytes() {
        java.lang.Object ref = errMsg_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          errMsg_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * 错误信息
       * </pre>
       *
       * <code>optional string err_msg = 10;</code>
       * @param value The errMsg to set.
       * @return This builder for chaining.
       */
      public Builder setErrMsg(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000200;
        errMsg_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 错误信息
       * </pre>
       *
       * <code>optional string err_msg = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearErrMsg() {
        bitField0_ = (bitField0_ & ~0x00000200);
        errMsg_ = getDefaultInstance().getErrMsg();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 错误信息
       * </pre>
       *
       * <code>optional string err_msg = 10;</code>
       * @param value The bytes for errMsg to set.
       * @return This builder for chaining.
       */
      public Builder setErrMsgBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        bitField0_ |= 0x00000200;
        errMsg_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:cmvr.api.AgvStatusInfo)
    }

    // @@protoc_insertion_point(class_scope:cmvr.api.AgvStatusInfo)
    private static final cmvr.api.AgvCommand.AgvStatusInfo DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new cmvr.api.AgvCommand.AgvStatusInfo();
    }

    public static cmvr.api.AgvCommand.AgvStatusInfo getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<AgvStatusInfo>
        PARSER = new com.google.protobuf.AbstractParser<AgvStatusInfo>() {
      @java.lang.Override
      public AgvStatusInfo parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<AgvStatusInfo> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<AgvStatusInfo> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public cmvr.api.AgvCommand.AgvStatusInfo getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface GetAgvStatusInfoCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:cmvr.api.GetAgvStatusInfoCommand)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * <pre>
   * 获取AGV状态命令
   * </pre>
   *
   * Protobuf type {@code cmvr.api.GetAgvStatusInfoCommand}
   */
  public static final class GetAgvStatusInfoCommand extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:cmvr.api.GetAgvStatusInfoCommand)
      GetAgvStatusInfoCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use GetAgvStatusInfoCommand.newBuilder() to construct.
    private GetAgvStatusInfoCommand(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private GetAgvStatusInfoCommand() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new GetAgvStatusInfoCommand();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return cmvr.api.AgvCommand.internal_static_cmvr_api_GetAgvStatusInfoCommand_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return cmvr.api.AgvCommand.internal_static_cmvr_api_GetAgvStatusInfoCommand_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              cmvr.api.AgvCommand.GetAgvStatusInfoCommand.class, cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Builder.class);
    }

    public interface RequestOrBuilder extends
        // @@protoc_insertion_point(interface_extends:cmvr.api.GetAgvStatusInfoCommand.Request)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Request getHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder();
    }
    /**
     * Protobuf type {@code cmvr.api.GetAgvStatusInfoCommand.Request}
     */
    public static final class Request extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.GetAgvStatusInfoCommand.Request)
        RequestOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Request.newBuilder() to construct.
      private Request(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Request() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Request();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_GetAgvStatusInfoCommand_Request_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_GetAgvStatusInfoCommand_Request_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Request.class, cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Request.Builder.class);
      }

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Request header_;
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return The header.
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.Request getHeader() {
        return header_ == null ? cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() {
        return getHeader();
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (header_ != null) {
          output.writeMessage(1, getHeader());
        }
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (header_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getHeader());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Request)) {
          return super.equals(obj);
        }
        cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Request other = (cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Request) obj;

        if (hasHeader() != other.hasHeader()) return false;
        if (hasHeader()) {
          if (!getHeader()
              .equals(other.getHeader())) return false;
        }
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasHeader()) {
          hash = (37 * hash) + HEADER_FIELD_NUMBER;
          hash = (53 * hash) + getHeader().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Request parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Request parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Request parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Request parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Request parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Request parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Request parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Request parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Request parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Request parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Request parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Request parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Request prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code cmvr.api.GetAgvStatusInfoCommand.Request}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.GetAgvStatusInfoCommand.Request)
          cmvr.api.AgvCommand.GetAgvStatusInfoCommand.RequestOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.AgvCommand.internal_static_cmvr_api_GetAgvStatusInfoCommand_Request_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return cmvr.api.AgvCommand.internal_static_cmvr_api_GetAgvStatusInfoCommand_Request_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Request.class, cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Request.Builder.class);
        }

        // Construct using cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Request.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          if (headerBuilder_ == null) {
            header_ = null;
          } else {
            header_ = null;
            headerBuilder_ = null;
          }
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return cmvr.api.AgvCommand.internal_static_cmvr_api_GetAgvStatusInfoCommand_Request_descriptor;
        }

        @java.lang.Override
        public cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Request getDefaultInstanceForType() {
          return cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Request.getDefaultInstance();
        }

        @java.lang.Override
        public cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Request build() {
          cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Request result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Request buildPartial() {
          cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Request result = new cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Request(this);
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Request) {
            return mergeFrom((cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Request)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Request other) {
          if (other == cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Request.getDefaultInstance()) return this;
          if (other.hasHeader()) {
            mergeHeader(other.getHeader());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  input.readMessage(
                      getHeaderFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 10
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }

        private cmvr.api.Common.CommandHeader.Request header_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder> headerBuilder_;
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         * @return The header.
         */
        public cmvr.api.Common.CommandHeader.Request getHeader() {
          if (headerBuilder_ == null) {
            return header_ == null ? cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
          } else {
            return headerBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder setHeader(cmvr.api.Common.CommandHeader.Request value) {
          if (headerBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            header_ = value;
            onChanged();
          } else {
            headerBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder setHeader(
            cmvr.api.Common.CommandHeader.Request.Builder builderForValue) {
          if (headerBuilder_ == null) {
            header_ = builderForValue.build();
            onChanged();
          } else {
            headerBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder mergeHeader(cmvr.api.Common.CommandHeader.Request value) {
          if (headerBuilder_ == null) {
            if (header_ != null) {
              header_ =
                cmvr.api.Common.CommandHeader.Request.newBuilder(header_).mergeFrom(value).buildPartial();
            } else {
              header_ = value;
            }
            onChanged();
          } else {
            headerBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Request.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() {
          if (headerBuilder_ != null) {
            return headerBuilder_.getMessageOrBuilder();
          } else {
            return header_ == null ?
                cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder> 
            getHeaderFieldBuilder() {
          if (headerBuilder_ == null) {
            headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder>(
                    getHeader(),
                    getParentForChildren(),
                    isClean());
            header_ = null;
          }
          return headerBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:cmvr.api.GetAgvStatusInfoCommand.Request)
      }

      // @@protoc_insertion_point(class_scope:cmvr.api.GetAgvStatusInfoCommand.Request)
      private static final cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Request DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Request();
      }

      public static cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Request getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser<Request>
          PARSER = new com.google.protobuf.AbstractParser<Request>() {
        @java.lang.Override
        public Request parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

      public static com.google.protobuf.Parser<Request> parser() {
        return PARSER;
      }

      @java.lang.Override
      public com.google.protobuf.Parser<Request> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Request getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface FeedbackOrBuilder extends
        // @@protoc_insertion_point(interface_extends:cmvr.api.GetAgvStatusInfoCommand.Feedback)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Feedback getHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder();

      /**
       * <code>.cmvr.api.AgvStatusInfo status = 2;</code>
       * @return Whether the status field is set.
       */
      boolean hasStatus();
      /**
       * <code>.cmvr.api.AgvStatusInfo status = 2;</code>
       * @return The status.
       */
      cmvr.api.AgvCommand.AgvStatusInfo getStatus();
      /**
       * <code>.cmvr.api.AgvStatusInfo status = 2;</code>
       */
      cmvr.api.AgvCommand.AgvStatusInfoOrBuilder getStatusOrBuilder();
    }
    /**
     * Protobuf type {@code cmvr.api.GetAgvStatusInfoCommand.Feedback}
     */
    public static final class Feedback extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.GetAgvStatusInfoCommand.Feedback)
        FeedbackOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Feedback.newBuilder() to construct.
      private Feedback(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Feedback() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Feedback();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_GetAgvStatusInfoCommand_Feedback_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_GetAgvStatusInfoCommand_Feedback_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Feedback.class, cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Feedback.Builder.class);
      }

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Feedback header_;
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return The header.
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.Feedback getHeader() {
        return header_ == null ? cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() {
        return getHeader();
      }

      public static final int STATUS_FIELD_NUMBER = 2;
      private cmvr.api.AgvCommand.AgvStatusInfo status_;
      /**
       * <code>.cmvr.api.AgvStatusInfo status = 2;</code>
       * @return Whether the status field is set.
       */
      @java.lang.Override
      public boolean hasStatus() {
        return status_ != null;
      }
      /**
       * <code>.cmvr.api.AgvStatusInfo status = 2;</code>
       * @return The status.
       */
      @java.lang.Override
      public cmvr.api.AgvCommand.AgvStatusInfo getStatus() {
        return status_ == null ? cmvr.api.AgvCommand.AgvStatusInfo.getDefaultInstance() : status_;
      }
      /**
       * <code>.cmvr.api.AgvStatusInfo status = 2;</code>
       */
      @java.lang.Override
      public cmvr.api.AgvCommand.AgvStatusInfoOrBuilder getStatusOrBuilder() {
        return getStatus();
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (header_ != null) {
          output.writeMessage(1, getHeader());
        }
        if (status_ != null) {
          output.writeMessage(2, getStatus());
        }
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (header_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getHeader());
        }
        if (status_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, getStatus());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Feedback)) {
          return super.equals(obj);
        }
        cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Feedback other = (cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Feedback) obj;

        if (hasHeader() != other.hasHeader()) return false;
        if (hasHeader()) {
          if (!getHeader()
              .equals(other.getHeader())) return false;
        }
        if (hasStatus() != other.hasStatus()) return false;
        if (hasStatus()) {
          if (!getStatus()
              .equals(other.getStatus())) return false;
        }
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasHeader()) {
          hash = (37 * hash) + HEADER_FIELD_NUMBER;
          hash = (53 * hash) + getHeader().hashCode();
        }
        if (hasStatus()) {
          hash = (37 * hash) + STATUS_FIELD_NUMBER;
          hash = (53 * hash) + getStatus().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Feedback parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Feedback parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Feedback parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Feedback parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Feedback parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Feedback parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Feedback parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Feedback parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Feedback parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Feedback parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Feedback parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Feedback parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Feedback prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code cmvr.api.GetAgvStatusInfoCommand.Feedback}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.GetAgvStatusInfoCommand.Feedback)
          cmvr.api.AgvCommand.GetAgvStatusInfoCommand.FeedbackOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.AgvCommand.internal_static_cmvr_api_GetAgvStatusInfoCommand_Feedback_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return cmvr.api.AgvCommand.internal_static_cmvr_api_GetAgvStatusInfoCommand_Feedback_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Feedback.class, cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Feedback.Builder.class);
        }

        // Construct using cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Feedback.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          if (headerBuilder_ == null) {
            header_ = null;
          } else {
            header_ = null;
            headerBuilder_ = null;
          }
          if (statusBuilder_ == null) {
            status_ = null;
          } else {
            status_ = null;
            statusBuilder_ = null;
          }
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return cmvr.api.AgvCommand.internal_static_cmvr_api_GetAgvStatusInfoCommand_Feedback_descriptor;
        }

        @java.lang.Override
        public cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Feedback getDefaultInstanceForType() {
          return cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Feedback.getDefaultInstance();
        }

        @java.lang.Override
        public cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Feedback build() {
          cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Feedback result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Feedback buildPartial() {
          cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Feedback result = new cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Feedback(this);
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          if (statusBuilder_ == null) {
            result.status_ = status_;
          } else {
            result.status_ = statusBuilder_.build();
          }
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Feedback) {
            return mergeFrom((cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Feedback)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Feedback other) {
          if (other == cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Feedback.getDefaultInstance()) return this;
          if (other.hasHeader()) {
            mergeHeader(other.getHeader());
          }
          if (other.hasStatus()) {
            mergeStatus(other.getStatus());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  input.readMessage(
                      getHeaderFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 10
                case 18: {
                  input.readMessage(
                      getStatusFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 18
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }

        private cmvr.api.Common.CommandHeader.Feedback header_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> headerBuilder_;
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         * @return The header.
         */
        public cmvr.api.Common.CommandHeader.Feedback getHeader() {
          if (headerBuilder_ == null) {
            return header_ == null ? cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
          } else {
            return headerBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder setHeader(cmvr.api.Common.CommandHeader.Feedback value) {
          if (headerBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            header_ = value;
            onChanged();
          } else {
            headerBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder setHeader(
            cmvr.api.Common.CommandHeader.Feedback.Builder builderForValue) {
          if (headerBuilder_ == null) {
            header_ = builderForValue.build();
            onChanged();
          } else {
            headerBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder mergeHeader(cmvr.api.Common.CommandHeader.Feedback value) {
          if (headerBuilder_ == null) {
            if (header_ != null) {
              header_ =
                cmvr.api.Common.CommandHeader.Feedback.newBuilder(header_).mergeFrom(value).buildPartial();
            } else {
              header_ = value;
            }
            onChanged();
          } else {
            headerBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Feedback.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() {
          if (headerBuilder_ != null) {
            return headerBuilder_.getMessageOrBuilder();
          } else {
            return header_ == null ?
                cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> 
            getHeaderFieldBuilder() {
          if (headerBuilder_ == null) {
            headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder>(
                    getHeader(),
                    getParentForChildren(),
                    isClean());
            header_ = null;
          }
          return headerBuilder_;
        }

        private cmvr.api.AgvCommand.AgvStatusInfo status_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.AgvCommand.AgvStatusInfo, cmvr.api.AgvCommand.AgvStatusInfo.Builder, cmvr.api.AgvCommand.AgvStatusInfoOrBuilder> statusBuilder_;
        /**
         * <code>.cmvr.api.AgvStatusInfo status = 2;</code>
         * @return Whether the status field is set.
         */
        public boolean hasStatus() {
          return statusBuilder_ != null || status_ != null;
        }
        /**
         * <code>.cmvr.api.AgvStatusInfo status = 2;</code>
         * @return The status.
         */
        public cmvr.api.AgvCommand.AgvStatusInfo getStatus() {
          if (statusBuilder_ == null) {
            return status_ == null ? cmvr.api.AgvCommand.AgvStatusInfo.getDefaultInstance() : status_;
          } else {
            return statusBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.AgvStatusInfo status = 2;</code>
         */
        public Builder setStatus(cmvr.api.AgvCommand.AgvStatusInfo value) {
          if (statusBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            status_ = value;
            onChanged();
          } else {
            statusBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.AgvStatusInfo status = 2;</code>
         */
        public Builder setStatus(
            cmvr.api.AgvCommand.AgvStatusInfo.Builder builderForValue) {
          if (statusBuilder_ == null) {
            status_ = builderForValue.build();
            onChanged();
          } else {
            statusBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.AgvStatusInfo status = 2;</code>
         */
        public Builder mergeStatus(cmvr.api.AgvCommand.AgvStatusInfo value) {
          if (statusBuilder_ == null) {
            if (status_ != null) {
              status_ =
                cmvr.api.AgvCommand.AgvStatusInfo.newBuilder(status_).mergeFrom(value).buildPartial();
            } else {
              status_ = value;
            }
            onChanged();
          } else {
            statusBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.AgvStatusInfo status = 2;</code>
         */
        public Builder clearStatus() {
          if (statusBuilder_ == null) {
            status_ = null;
            onChanged();
          } else {
            status_ = null;
            statusBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.AgvStatusInfo status = 2;</code>
         */
        public cmvr.api.AgvCommand.AgvStatusInfo.Builder getStatusBuilder() {
          
          onChanged();
          return getStatusFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.AgvStatusInfo status = 2;</code>
         */
        public cmvr.api.AgvCommand.AgvStatusInfoOrBuilder getStatusOrBuilder() {
          if (statusBuilder_ != null) {
            return statusBuilder_.getMessageOrBuilder();
          } else {
            return status_ == null ?
                cmvr.api.AgvCommand.AgvStatusInfo.getDefaultInstance() : status_;
          }
        }
        /**
         * <code>.cmvr.api.AgvStatusInfo status = 2;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.AgvCommand.AgvStatusInfo, cmvr.api.AgvCommand.AgvStatusInfo.Builder, cmvr.api.AgvCommand.AgvStatusInfoOrBuilder> 
            getStatusFieldBuilder() {
          if (statusBuilder_ == null) {
            statusBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.AgvCommand.AgvStatusInfo, cmvr.api.AgvCommand.AgvStatusInfo.Builder, cmvr.api.AgvCommand.AgvStatusInfoOrBuilder>(
                    getStatus(),
                    getParentForChildren(),
                    isClean());
            status_ = null;
          }
          return statusBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:cmvr.api.GetAgvStatusInfoCommand.Feedback)
      }

      // @@protoc_insertion_point(class_scope:cmvr.api.GetAgvStatusInfoCommand.Feedback)
      private static final cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Feedback DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Feedback();
      }

      public static cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Feedback getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser<Feedback>
          PARSER = new com.google.protobuf.AbstractParser<Feedback>() {
        @java.lang.Override
        public Feedback parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

      public static com.google.protobuf.Parser<Feedback> parser() {
        return PARSER;
      }

      @java.lang.Override
      public com.google.protobuf.Parser<Feedback> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Feedback getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof cmvr.api.AgvCommand.GetAgvStatusInfoCommand)) {
        return super.equals(obj);
      }
      cmvr.api.AgvCommand.GetAgvStatusInfoCommand other = (cmvr.api.AgvCommand.GetAgvStatusInfoCommand) obj;

      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cmvr.api.AgvCommand.GetAgvStatusInfoCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.GetAgvStatusInfoCommand parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.GetAgvStatusInfoCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.GetAgvStatusInfoCommand parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.GetAgvStatusInfoCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.GetAgvStatusInfoCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.GetAgvStatusInfoCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.GetAgvStatusInfoCommand parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.GetAgvStatusInfoCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.GetAgvStatusInfoCommand parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.GetAgvStatusInfoCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.GetAgvStatusInfoCommand parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(cmvr.api.AgvCommand.GetAgvStatusInfoCommand prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * 获取AGV状态命令
     * </pre>
     *
     * Protobuf type {@code cmvr.api.GetAgvStatusInfoCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:cmvr.api.GetAgvStatusInfoCommand)
        cmvr.api.AgvCommand.GetAgvStatusInfoCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_GetAgvStatusInfoCommand_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_GetAgvStatusInfoCommand_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.AgvCommand.GetAgvStatusInfoCommand.class, cmvr.api.AgvCommand.GetAgvStatusInfoCommand.Builder.class);
      }

      // Construct using cmvr.api.AgvCommand.GetAgvStatusInfoCommand.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_GetAgvStatusInfoCommand_descriptor;
      }

      @java.lang.Override
      public cmvr.api.AgvCommand.GetAgvStatusInfoCommand getDefaultInstanceForType() {
        return cmvr.api.AgvCommand.GetAgvStatusInfoCommand.getDefaultInstance();
      }

      @java.lang.Override
      public cmvr.api.AgvCommand.GetAgvStatusInfoCommand build() {
        cmvr.api.AgvCommand.GetAgvStatusInfoCommand result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cmvr.api.AgvCommand.GetAgvStatusInfoCommand buildPartial() {
        cmvr.api.AgvCommand.GetAgvStatusInfoCommand result = new cmvr.api.AgvCommand.GetAgvStatusInfoCommand(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cmvr.api.AgvCommand.GetAgvStatusInfoCommand) {
          return mergeFrom((cmvr.api.AgvCommand.GetAgvStatusInfoCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cmvr.api.AgvCommand.GetAgvStatusInfoCommand other) {
        if (other == cmvr.api.AgvCommand.GetAgvStatusInfoCommand.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:cmvr.api.GetAgvStatusInfoCommand)
    }

    // @@protoc_insertion_point(class_scope:cmvr.api.GetAgvStatusInfoCommand)
    private static final cmvr.api.AgvCommand.GetAgvStatusInfoCommand DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new cmvr.api.AgvCommand.GetAgvStatusInfoCommand();
    }

    public static cmvr.api.AgvCommand.GetAgvStatusInfoCommand getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<GetAgvStatusInfoCommand>
        PARSER = new com.google.protobuf.AbstractParser<GetAgvStatusInfoCommand>() {
      @java.lang.Override
      public GetAgvStatusInfoCommand parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<GetAgvStatusInfoCommand> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<GetAgvStatusInfoCommand> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public cmvr.api.AgvCommand.GetAgvStatusInfoCommand getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface AgvBatteryStatusOrBuilder extends
      // @@protoc_insertion_point(interface_extends:cmvr.api.AgvBatteryStatus)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * 电池电量 [0,1]
     * </pre>
     *
     * <code>optional double battery_level = 1;</code>
     * @return Whether the batteryLevel field is set.
     */
    boolean hasBatteryLevel();
    /**
     * <pre>
     * 电池电量 [0,1]
     * </pre>
     *
     * <code>optional double battery_level = 1;</code>
     * @return The batteryLevel.
     */
    double getBatteryLevel();

    /**
     * <pre>
     * 电池温度 ℃
     * </pre>
     *
     * <code>optional double battery_temp = 2;</code>
     * @return Whether the batteryTemp field is set.
     */
    boolean hasBatteryTemp();
    /**
     * <pre>
     * 电池温度 ℃
     * </pre>
     *
     * <code>optional double battery_temp = 2;</code>
     * @return The batteryTemp.
     */
    double getBatteryTemp();

    /**
     * <pre>
     * 是否正在充电
     * </pre>
     *
     * <code>optional bool charging = 3;</code>
     * @return Whether the charging field is set.
     */
    boolean hasCharging();
    /**
     * <pre>
     * 是否正在充电
     * </pre>
     *
     * <code>optional bool charging = 3;</code>
     * @return The charging.
     */
    boolean getCharging();

    /**
     * <pre>
     * 电压 V
     * </pre>
     *
     * <code>optional double voltage = 4;</code>
     * @return Whether the voltage field is set.
     */
    boolean hasVoltage();
    /**
     * <pre>
     * 电压 V
     * </pre>
     *
     * <code>optional double voltage = 4;</code>
     * @return The voltage.
     */
    double getVoltage();

    /**
     * <pre>
     * 电流 A
     * </pre>
     *
     * <code>optional double current = 5;</code>
     * @return Whether the current field is set.
     */
    boolean hasCurrent();
    /**
     * <pre>
     * 电流 A
     * </pre>
     *
     * <code>optional double current = 5;</code>
     * @return The current.
     */
    double getCurrent();

    /**
     * <pre>
     * 最大充电电压，-1=不支持
     * </pre>
     *
     * <code>optional double max_charge_voltage = 6;</code>
     * @return Whether the maxChargeVoltage field is set.
     */
    boolean hasMaxChargeVoltage();
    /**
     * <pre>
     * 最大充电电压，-1=不支持
     * </pre>
     *
     * <code>optional double max_charge_voltage = 6;</code>
     * @return The maxChargeVoltage.
     */
    double getMaxChargeVoltage();

    /**
     * <pre>
     * 最大充电电流，-1=不支持
     * </pre>
     *
     * <code>optional double max_charge_current = 7;</code>
     * @return Whether the maxChargeCurrent field is set.
     */
    boolean hasMaxChargeCurrent();
    /**
     * <pre>
     * 最大充电电流，-1=不支持
     * </pre>
     *
     * <code>optional double max_charge_current = 7;</code>
     * @return The maxChargeCurrent.
     */
    double getMaxChargeCurrent();

    /**
     * <pre>
     * 手动充电状态
     * </pre>
     *
     * <code>optional bool manual_charge = 8;</code>
     * @return Whether the manualCharge field is set.
     */
    boolean hasManualCharge();
    /**
     * <pre>
     * 手动充电状态
     * </pre>
     *
     * <code>optional bool manual_charge = 8;</code>
     * @return The manualCharge.
     */
    boolean getManualCharge();

    /**
     * <pre>
     * 自动充电状态
     * </pre>
     *
     * <code>optional bool auto_charge = 9;</code>
     * @return Whether the autoCharge field is set.
     */
    boolean hasAutoCharge();
    /**
     * <pre>
     * 自动充电状态
     * </pre>
     *
     * <code>optional bool auto_charge = 9;</code>
     * @return The autoCharge.
     */
    boolean getAutoCharge();

    /**
     * <pre>
     * 电池循环次数
     * </pre>
     *
     * <code>optional int32 battery_cycle = 10;</code>
     * @return Whether the batteryCycle field is set.
     */
    boolean hasBatteryCycle();
    /**
     * <pre>
     * 电池循环次数
     * </pre>
     *
     * <code>optional int32 battery_cycle = 10;</code>
     * @return The batteryCycle.
     */
    int getBatteryCycle();

    /**
     * <pre>
     * 电池自定义数据
     * </pre>
     *
     * <code>optional string battery_user_data = 11;</code>
     * @return Whether the batteryUserData field is set.
     */
    boolean hasBatteryUserData();
    /**
     * <pre>
     * 电池自定义数据
     * </pre>
     *
     * <code>optional string battery_user_data = 11;</code>
     * @return The batteryUserData.
     */
    java.lang.String getBatteryUserData();
    /**
     * <pre>
     * 电池自定义数据
     * </pre>
     *
     * <code>optional string battery_user_data = 11;</code>
     * @return The bytes for batteryUserData.
     */
    com.google.protobuf.ByteString
        getBatteryUserDataBytes();

    /**
     * <pre>
     * 客户自定义数据
     * </pre>
     *
     * <code>optional string extra = 12;</code>
     * @return Whether the extra field is set.
     */
    boolean hasExtra();
    /**
     * <pre>
     * 客户自定义数据
     * </pre>
     *
     * <code>optional string extra = 12;</code>
     * @return The extra.
     */
    java.lang.String getExtra();
    /**
     * <pre>
     * 客户自定义数据
     * </pre>
     *
     * <code>optional string extra = 12;</code>
     * @return The bytes for extra.
     */
    com.google.protobuf.ByteString
        getExtraBytes();

    /**
     * <pre>
     * 错误码
     * </pre>
     *
     * <code>optional int32 ret_code = 13;</code>
     * @return Whether the retCode field is set.
     */
    boolean hasRetCode();
    /**
     * <pre>
     * 错误码
     * </pre>
     *
     * <code>optional int32 ret_code = 13;</code>
     * @return The retCode.
     */
    int getRetCode();

    /**
     * <pre>
     * 时间戳
     * </pre>
     *
     * <code>optional string create_on = 14;</code>
     * @return Whether the createOn field is set.
     */
    boolean hasCreateOn();
    /**
     * <pre>
     * 时间戳
     * </pre>
     *
     * <code>optional string create_on = 14;</code>
     * @return The createOn.
     */
    java.lang.String getCreateOn();
    /**
     * <pre>
     * 时间戳
     * </pre>
     *
     * <code>optional string create_on = 14;</code>
     * @return The bytes for createOn.
     */
    com.google.protobuf.ByteString
        getCreateOnBytes();

    /**
     * <pre>
     * 错误信息
     * </pre>
     *
     * <code>optional string err_msg = 15;</code>
     * @return Whether the errMsg field is set.
     */
    boolean hasErrMsg();
    /**
     * <pre>
     * 错误信息
     * </pre>
     *
     * <code>optional string err_msg = 15;</code>
     * @return The errMsg.
     */
    java.lang.String getErrMsg();
    /**
     * <pre>
     * 错误信息
     * </pre>
     *
     * <code>optional string err_msg = 15;</code>
     * @return The bytes for errMsg.
     */
    com.google.protobuf.ByteString
        getErrMsgBytes();
  }
  /**
   * <pre>
   * ===================== 电池状态查询 =====================
   * </pre>
   *
   * Protobuf type {@code cmvr.api.AgvBatteryStatus}
   */
  public static final class AgvBatteryStatus extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:cmvr.api.AgvBatteryStatus)
      AgvBatteryStatusOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AgvBatteryStatus.newBuilder() to construct.
    private AgvBatteryStatus(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private AgvBatteryStatus() {
      batteryUserData_ = "";
      extra_ = "";
      createOn_ = "";
      errMsg_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new AgvBatteryStatus();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvBatteryStatus_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvBatteryStatus_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              cmvr.api.AgvCommand.AgvBatteryStatus.class, cmvr.api.AgvCommand.AgvBatteryStatus.Builder.class);
    }

    private int bitField0_;
    public static final int BATTERY_LEVEL_FIELD_NUMBER = 1;
    private double batteryLevel_;
    /**
     * <pre>
     * 电池电量 [0,1]
     * </pre>
     *
     * <code>optional double battery_level = 1;</code>
     * @return Whether the batteryLevel field is set.
     */
    @java.lang.Override
    public boolean hasBatteryLevel() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * 电池电量 [0,1]
     * </pre>
     *
     * <code>optional double battery_level = 1;</code>
     * @return The batteryLevel.
     */
    @java.lang.Override
    public double getBatteryLevel() {
      return batteryLevel_;
    }

    public static final int BATTERY_TEMP_FIELD_NUMBER = 2;
    private double batteryTemp_;
    /**
     * <pre>
     * 电池温度 ℃
     * </pre>
     *
     * <code>optional double battery_temp = 2;</code>
     * @return Whether the batteryTemp field is set.
     */
    @java.lang.Override
    public boolean hasBatteryTemp() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * 电池温度 ℃
     * </pre>
     *
     * <code>optional double battery_temp = 2;</code>
     * @return The batteryTemp.
     */
    @java.lang.Override
    public double getBatteryTemp() {
      return batteryTemp_;
    }

    public static final int CHARGING_FIELD_NUMBER = 3;
    private boolean charging_;
    /**
     * <pre>
     * 是否正在充电
     * </pre>
     *
     * <code>optional bool charging = 3;</code>
     * @return Whether the charging field is set.
     */
    @java.lang.Override
    public boolean hasCharging() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * 是否正在充电
     * </pre>
     *
     * <code>optional bool charging = 3;</code>
     * @return The charging.
     */
    @java.lang.Override
    public boolean getCharging() {
      return charging_;
    }

    public static final int VOLTAGE_FIELD_NUMBER = 4;
    private double voltage_;
    /**
     * <pre>
     * 电压 V
     * </pre>
     *
     * <code>optional double voltage = 4;</code>
     * @return Whether the voltage field is set.
     */
    @java.lang.Override
    public boolean hasVoltage() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * 电压 V
     * </pre>
     *
     * <code>optional double voltage = 4;</code>
     * @return The voltage.
     */
    @java.lang.Override
    public double getVoltage() {
      return voltage_;
    }

    public static final int CURRENT_FIELD_NUMBER = 5;
    private double current_;
    /**
     * <pre>
     * 电流 A
     * </pre>
     *
     * <code>optional double current = 5;</code>
     * @return Whether the current field is set.
     */
    @java.lang.Override
    public boolean hasCurrent() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <pre>
     * 电流 A
     * </pre>
     *
     * <code>optional double current = 5;</code>
     * @return The current.
     */
    @java.lang.Override
    public double getCurrent() {
      return current_;
    }

    public static final int MAX_CHARGE_VOLTAGE_FIELD_NUMBER = 6;
    private double maxChargeVoltage_;
    /**
     * <pre>
     * 最大充电电压，-1=不支持
     * </pre>
     *
     * <code>optional double max_charge_voltage = 6;</code>
     * @return Whether the maxChargeVoltage field is set.
     */
    @java.lang.Override
    public boolean hasMaxChargeVoltage() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <pre>
     * 最大充电电压，-1=不支持
     * </pre>
     *
     * <code>optional double max_charge_voltage = 6;</code>
     * @return The maxChargeVoltage.
     */
    @java.lang.Override
    public double getMaxChargeVoltage() {
      return maxChargeVoltage_;
    }

    public static final int MAX_CHARGE_CURRENT_FIELD_NUMBER = 7;
    private double maxChargeCurrent_;
    /**
     * <pre>
     * 最大充电电流，-1=不支持
     * </pre>
     *
     * <code>optional double max_charge_current = 7;</code>
     * @return Whether the maxChargeCurrent field is set.
     */
    @java.lang.Override
    public boolean hasMaxChargeCurrent() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <pre>
     * 最大充电电流，-1=不支持
     * </pre>
     *
     * <code>optional double max_charge_current = 7;</code>
     * @return The maxChargeCurrent.
     */
    @java.lang.Override
    public double getMaxChargeCurrent() {
      return maxChargeCurrent_;
    }

    public static final int MANUAL_CHARGE_FIELD_NUMBER = 8;
    private boolean manualCharge_;
    /**
     * <pre>
     * 手动充电状态
     * </pre>
     *
     * <code>optional bool manual_charge = 8;</code>
     * @return Whether the manualCharge field is set.
     */
    @java.lang.Override
    public boolean hasManualCharge() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * <pre>
     * 手动充电状态
     * </pre>
     *
     * <code>optional bool manual_charge = 8;</code>
     * @return The manualCharge.
     */
    @java.lang.Override
    public boolean getManualCharge() {
      return manualCharge_;
    }

    public static final int AUTO_CHARGE_FIELD_NUMBER = 9;
    private boolean autoCharge_;
    /**
     * <pre>
     * 自动充电状态
     * </pre>
     *
     * <code>optional bool auto_charge = 9;</code>
     * @return Whether the autoCharge field is set.
     */
    @java.lang.Override
    public boolean hasAutoCharge() {
      return ((bitField0_ & 0x00000100) != 0);
    }
    /**
     * <pre>
     * 自动充电状态
     * </pre>
     *
     * <code>optional bool auto_charge = 9;</code>
     * @return The autoCharge.
     */
    @java.lang.Override
    public boolean getAutoCharge() {
      return autoCharge_;
    }

    public static final int BATTERY_CYCLE_FIELD_NUMBER = 10;
    private int batteryCycle_;
    /**
     * <pre>
     * 电池循环次数
     * </pre>
     *
     * <code>optional int32 battery_cycle = 10;</code>
     * @return Whether the batteryCycle field is set.
     */
    @java.lang.Override
    public boolean hasBatteryCycle() {
      return ((bitField0_ & 0x00000200) != 0);
    }
    /**
     * <pre>
     * 电池循环次数
     * </pre>
     *
     * <code>optional int32 battery_cycle = 10;</code>
     * @return The batteryCycle.
     */
    @java.lang.Override
    public int getBatteryCycle() {
      return batteryCycle_;
    }

    public static final int BATTERY_USER_DATA_FIELD_NUMBER = 11;
    private volatile java.lang.Object batteryUserData_;
    /**
     * <pre>
     * 电池自定义数据
     * </pre>
     *
     * <code>optional string battery_user_data = 11;</code>
     * @return Whether the batteryUserData field is set.
     */
    @java.lang.Override
    public boolean hasBatteryUserData() {
      return ((bitField0_ & 0x00000400) != 0);
    }
    /**
     * <pre>
     * 电池自定义数据
     * </pre>
     *
     * <code>optional string battery_user_data = 11;</code>
     * @return The batteryUserData.
     */
    @java.lang.Override
    public java.lang.String getBatteryUserData() {
      java.lang.Object ref = batteryUserData_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        batteryUserData_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * 电池自定义数据
     * </pre>
     *
     * <code>optional string battery_user_data = 11;</code>
     * @return The bytes for batteryUserData.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getBatteryUserDataBytes() {
      java.lang.Object ref = batteryUserData_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        batteryUserData_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int EXTRA_FIELD_NUMBER = 12;
    private volatile java.lang.Object extra_;
    /**
     * <pre>
     * 客户自定义数据
     * </pre>
     *
     * <code>optional string extra = 12;</code>
     * @return Whether the extra field is set.
     */
    @java.lang.Override
    public boolean hasExtra() {
      return ((bitField0_ & 0x00000800) != 0);
    }
    /**
     * <pre>
     * 客户自定义数据
     * </pre>
     *
     * <code>optional string extra = 12;</code>
     * @return The extra.
     */
    @java.lang.Override
    public java.lang.String getExtra() {
      java.lang.Object ref = extra_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        extra_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * 客户自定义数据
     * </pre>
     *
     * <code>optional string extra = 12;</code>
     * @return The bytes for extra.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getExtraBytes() {
      java.lang.Object ref = extra_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        extra_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int RET_CODE_FIELD_NUMBER = 13;
    private int retCode_;
    /**
     * <pre>
     * 错误码
     * </pre>
     *
     * <code>optional int32 ret_code = 13;</code>
     * @return Whether the retCode field is set.
     */
    @java.lang.Override
    public boolean hasRetCode() {
      return ((bitField0_ & 0x00001000) != 0);
    }
    /**
     * <pre>
     * 错误码
     * </pre>
     *
     * <code>optional int32 ret_code = 13;</code>
     * @return The retCode.
     */
    @java.lang.Override
    public int getRetCode() {
      return retCode_;
    }

    public static final int CREATE_ON_FIELD_NUMBER = 14;
    private volatile java.lang.Object createOn_;
    /**
     * <pre>
     * 时间戳
     * </pre>
     *
     * <code>optional string create_on = 14;</code>
     * @return Whether the createOn field is set.
     */
    @java.lang.Override
    public boolean hasCreateOn() {
      return ((bitField0_ & 0x00002000) != 0);
    }
    /**
     * <pre>
     * 时间戳
     * </pre>
     *
     * <code>optional string create_on = 14;</code>
     * @return The createOn.
     */
    @java.lang.Override
    public java.lang.String getCreateOn() {
      java.lang.Object ref = createOn_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        createOn_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * 时间戳
     * </pre>
     *
     * <code>optional string create_on = 14;</code>
     * @return The bytes for createOn.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getCreateOnBytes() {
      java.lang.Object ref = createOn_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        createOn_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ERR_MSG_FIELD_NUMBER = 15;
    private volatile java.lang.Object errMsg_;
    /**
     * <pre>
     * 错误信息
     * </pre>
     *
     * <code>optional string err_msg = 15;</code>
     * @return Whether the errMsg field is set.
     */
    @java.lang.Override
    public boolean hasErrMsg() {
      return ((bitField0_ & 0x00004000) != 0);
    }
    /**
     * <pre>
     * 错误信息
     * </pre>
     *
     * <code>optional string err_msg = 15;</code>
     * @return The errMsg.
     */
    @java.lang.Override
    public java.lang.String getErrMsg() {
      java.lang.Object ref = errMsg_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        errMsg_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * 错误信息
     * </pre>
     *
     * <code>optional string err_msg = 15;</code>
     * @return The bytes for errMsg.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getErrMsgBytes() {
      java.lang.Object ref = errMsg_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        errMsg_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeDouble(1, batteryLevel_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeDouble(2, batteryTemp_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeBool(3, charging_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeDouble(4, voltage_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeDouble(5, current_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        output.writeDouble(6, maxChargeVoltage_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        output.writeDouble(7, maxChargeCurrent_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        output.writeBool(8, manualCharge_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        output.writeBool(9, autoCharge_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        output.writeInt32(10, batteryCycle_);
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 11, batteryUserData_);
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 12, extra_);
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        output.writeInt32(13, retCode_);
      }
      if (((bitField0_ & 0x00002000) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 14, createOn_);
      }
      if (((bitField0_ & 0x00004000) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 15, errMsg_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(1, batteryLevel_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(2, batteryTemp_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, charging_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(4, voltage_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(5, current_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(6, maxChargeVoltage_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(7, maxChargeCurrent_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(8, manualCharge_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(9, autoCharge_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(10, batteryCycle_);
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(11, batteryUserData_);
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(12, extra_);
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(13, retCode_);
      }
      if (((bitField0_ & 0x00002000) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(14, createOn_);
      }
      if (((bitField0_ & 0x00004000) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(15, errMsg_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof cmvr.api.AgvCommand.AgvBatteryStatus)) {
        return super.equals(obj);
      }
      cmvr.api.AgvCommand.AgvBatteryStatus other = (cmvr.api.AgvCommand.AgvBatteryStatus) obj;

      if (hasBatteryLevel() != other.hasBatteryLevel()) return false;
      if (hasBatteryLevel()) {
        if (java.lang.Double.doubleToLongBits(getBatteryLevel())
            != java.lang.Double.doubleToLongBits(
                other.getBatteryLevel())) return false;
      }
      if (hasBatteryTemp() != other.hasBatteryTemp()) return false;
      if (hasBatteryTemp()) {
        if (java.lang.Double.doubleToLongBits(getBatteryTemp())
            != java.lang.Double.doubleToLongBits(
                other.getBatteryTemp())) return false;
      }
      if (hasCharging() != other.hasCharging()) return false;
      if (hasCharging()) {
        if (getCharging()
            != other.getCharging()) return false;
      }
      if (hasVoltage() != other.hasVoltage()) return false;
      if (hasVoltage()) {
        if (java.lang.Double.doubleToLongBits(getVoltage())
            != java.lang.Double.doubleToLongBits(
                other.getVoltage())) return false;
      }
      if (hasCurrent() != other.hasCurrent()) return false;
      if (hasCurrent()) {
        if (java.lang.Double.doubleToLongBits(getCurrent())
            != java.lang.Double.doubleToLongBits(
                other.getCurrent())) return false;
      }
      if (hasMaxChargeVoltage() != other.hasMaxChargeVoltage()) return false;
      if (hasMaxChargeVoltage()) {
        if (java.lang.Double.doubleToLongBits(getMaxChargeVoltage())
            != java.lang.Double.doubleToLongBits(
                other.getMaxChargeVoltage())) return false;
      }
      if (hasMaxChargeCurrent() != other.hasMaxChargeCurrent()) return false;
      if (hasMaxChargeCurrent()) {
        if (java.lang.Double.doubleToLongBits(getMaxChargeCurrent())
            != java.lang.Double.doubleToLongBits(
                other.getMaxChargeCurrent())) return false;
      }
      if (hasManualCharge() != other.hasManualCharge()) return false;
      if (hasManualCharge()) {
        if (getManualCharge()
            != other.getManualCharge()) return false;
      }
      if (hasAutoCharge() != other.hasAutoCharge()) return false;
      if (hasAutoCharge()) {
        if (getAutoCharge()
            != other.getAutoCharge()) return false;
      }
      if (hasBatteryCycle() != other.hasBatteryCycle()) return false;
      if (hasBatteryCycle()) {
        if (getBatteryCycle()
            != other.getBatteryCycle()) return false;
      }
      if (hasBatteryUserData() != other.hasBatteryUserData()) return false;
      if (hasBatteryUserData()) {
        if (!getBatteryUserData()
            .equals(other.getBatteryUserData())) return false;
      }
      if (hasExtra() != other.hasExtra()) return false;
      if (hasExtra()) {
        if (!getExtra()
            .equals(other.getExtra())) return false;
      }
      if (hasRetCode() != other.hasRetCode()) return false;
      if (hasRetCode()) {
        if (getRetCode()
            != other.getRetCode()) return false;
      }
      if (hasCreateOn() != other.hasCreateOn()) return false;
      if (hasCreateOn()) {
        if (!getCreateOn()
            .equals(other.getCreateOn())) return false;
      }
      if (hasErrMsg() != other.hasErrMsg()) return false;
      if (hasErrMsg()) {
        if (!getErrMsg()
            .equals(other.getErrMsg())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasBatteryLevel()) {
        hash = (37 * hash) + BATTERY_LEVEL_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getBatteryLevel()));
      }
      if (hasBatteryTemp()) {
        hash = (37 * hash) + BATTERY_TEMP_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getBatteryTemp()));
      }
      if (hasCharging()) {
        hash = (37 * hash) + CHARGING_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getCharging());
      }
      if (hasVoltage()) {
        hash = (37 * hash) + VOLTAGE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getVoltage()));
      }
      if (hasCurrent()) {
        hash = (37 * hash) + CURRENT_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getCurrent()));
      }
      if (hasMaxChargeVoltage()) {
        hash = (37 * hash) + MAX_CHARGE_VOLTAGE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getMaxChargeVoltage()));
      }
      if (hasMaxChargeCurrent()) {
        hash = (37 * hash) + MAX_CHARGE_CURRENT_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getMaxChargeCurrent()));
      }
      if (hasManualCharge()) {
        hash = (37 * hash) + MANUAL_CHARGE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getManualCharge());
      }
      if (hasAutoCharge()) {
        hash = (37 * hash) + AUTO_CHARGE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getAutoCharge());
      }
      if (hasBatteryCycle()) {
        hash = (37 * hash) + BATTERY_CYCLE_FIELD_NUMBER;
        hash = (53 * hash) + getBatteryCycle();
      }
      if (hasBatteryUserData()) {
        hash = (37 * hash) + BATTERY_USER_DATA_FIELD_NUMBER;
        hash = (53 * hash) + getBatteryUserData().hashCode();
      }
      if (hasExtra()) {
        hash = (37 * hash) + EXTRA_FIELD_NUMBER;
        hash = (53 * hash) + getExtra().hashCode();
      }
      if (hasRetCode()) {
        hash = (37 * hash) + RET_CODE_FIELD_NUMBER;
        hash = (53 * hash) + getRetCode();
      }
      if (hasCreateOn()) {
        hash = (37 * hash) + CREATE_ON_FIELD_NUMBER;
        hash = (53 * hash) + getCreateOn().hashCode();
      }
      if (hasErrMsg()) {
        hash = (37 * hash) + ERR_MSG_FIELD_NUMBER;
        hash = (53 * hash) + getErrMsg().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cmvr.api.AgvCommand.AgvBatteryStatus parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.AgvBatteryStatus parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.AgvBatteryStatus parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.AgvBatteryStatus parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.AgvBatteryStatus parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.AgvBatteryStatus parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.AgvBatteryStatus parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.AgvBatteryStatus parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.AgvBatteryStatus parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.AgvBatteryStatus parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.AgvBatteryStatus parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.AgvBatteryStatus parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(cmvr.api.AgvCommand.AgvBatteryStatus prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * ===================== 电池状态查询 =====================
     * </pre>
     *
     * Protobuf type {@code cmvr.api.AgvBatteryStatus}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:cmvr.api.AgvBatteryStatus)
        cmvr.api.AgvCommand.AgvBatteryStatusOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvBatteryStatus_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvBatteryStatus_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.AgvCommand.AgvBatteryStatus.class, cmvr.api.AgvCommand.AgvBatteryStatus.Builder.class);
      }

      // Construct using cmvr.api.AgvCommand.AgvBatteryStatus.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        batteryLevel_ = 0D;
        bitField0_ = (bitField0_ & ~0x00000001);
        batteryTemp_ = 0D;
        bitField0_ = (bitField0_ & ~0x00000002);
        charging_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        voltage_ = 0D;
        bitField0_ = (bitField0_ & ~0x00000008);
        current_ = 0D;
        bitField0_ = (bitField0_ & ~0x00000010);
        maxChargeVoltage_ = 0D;
        bitField0_ = (bitField0_ & ~0x00000020);
        maxChargeCurrent_ = 0D;
        bitField0_ = (bitField0_ & ~0x00000040);
        manualCharge_ = false;
        bitField0_ = (bitField0_ & ~0x00000080);
        autoCharge_ = false;
        bitField0_ = (bitField0_ & ~0x00000100);
        batteryCycle_ = 0;
        bitField0_ = (bitField0_ & ~0x00000200);
        batteryUserData_ = "";
        bitField0_ = (bitField0_ & ~0x00000400);
        extra_ = "";
        bitField0_ = (bitField0_ & ~0x00000800);
        retCode_ = 0;
        bitField0_ = (bitField0_ & ~0x00001000);
        createOn_ = "";
        bitField0_ = (bitField0_ & ~0x00002000);
        errMsg_ = "";
        bitField0_ = (bitField0_ & ~0x00004000);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvBatteryStatus_descriptor;
      }

      @java.lang.Override
      public cmvr.api.AgvCommand.AgvBatteryStatus getDefaultInstanceForType() {
        return cmvr.api.AgvCommand.AgvBatteryStatus.getDefaultInstance();
      }

      @java.lang.Override
      public cmvr.api.AgvCommand.AgvBatteryStatus build() {
        cmvr.api.AgvCommand.AgvBatteryStatus result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cmvr.api.AgvCommand.AgvBatteryStatus buildPartial() {
        cmvr.api.AgvCommand.AgvBatteryStatus result = new cmvr.api.AgvCommand.AgvBatteryStatus(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.batteryLevel_ = batteryLevel_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.batteryTemp_ = batteryTemp_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.charging_ = charging_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.voltage_ = voltage_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.current_ = current_;
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.maxChargeVoltage_ = maxChargeVoltage_;
          to_bitField0_ |= 0x00000020;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.maxChargeCurrent_ = maxChargeCurrent_;
          to_bitField0_ |= 0x00000040;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.manualCharge_ = manualCharge_;
          to_bitField0_ |= 0x00000080;
        }
        if (((from_bitField0_ & 0x00000100) != 0)) {
          result.autoCharge_ = autoCharge_;
          to_bitField0_ |= 0x00000100;
        }
        if (((from_bitField0_ & 0x00000200) != 0)) {
          result.batteryCycle_ = batteryCycle_;
          to_bitField0_ |= 0x00000200;
        }
        if (((from_bitField0_ & 0x00000400) != 0)) {
          to_bitField0_ |= 0x00000400;
        }
        result.batteryUserData_ = batteryUserData_;
        if (((from_bitField0_ & 0x00000800) != 0)) {
          to_bitField0_ |= 0x00000800;
        }
        result.extra_ = extra_;
        if (((from_bitField0_ & 0x00001000) != 0)) {
          result.retCode_ = retCode_;
          to_bitField0_ |= 0x00001000;
        }
        if (((from_bitField0_ & 0x00002000) != 0)) {
          to_bitField0_ |= 0x00002000;
        }
        result.createOn_ = createOn_;
        if (((from_bitField0_ & 0x00004000) != 0)) {
          to_bitField0_ |= 0x00004000;
        }
        result.errMsg_ = errMsg_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cmvr.api.AgvCommand.AgvBatteryStatus) {
          return mergeFrom((cmvr.api.AgvCommand.AgvBatteryStatus)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cmvr.api.AgvCommand.AgvBatteryStatus other) {
        if (other == cmvr.api.AgvCommand.AgvBatteryStatus.getDefaultInstance()) return this;
        if (other.hasBatteryLevel()) {
          setBatteryLevel(other.getBatteryLevel());
        }
        if (other.hasBatteryTemp()) {
          setBatteryTemp(other.getBatteryTemp());
        }
        if (other.hasCharging()) {
          setCharging(other.getCharging());
        }
        if (other.hasVoltage()) {
          setVoltage(other.getVoltage());
        }
        if (other.hasCurrent()) {
          setCurrent(other.getCurrent());
        }
        if (other.hasMaxChargeVoltage()) {
          setMaxChargeVoltage(other.getMaxChargeVoltage());
        }
        if (other.hasMaxChargeCurrent()) {
          setMaxChargeCurrent(other.getMaxChargeCurrent());
        }
        if (other.hasManualCharge()) {
          setManualCharge(other.getManualCharge());
        }
        if (other.hasAutoCharge()) {
          setAutoCharge(other.getAutoCharge());
        }
        if (other.hasBatteryCycle()) {
          setBatteryCycle(other.getBatteryCycle());
        }
        if (other.hasBatteryUserData()) {
          bitField0_ |= 0x00000400;
          batteryUserData_ = other.batteryUserData_;
          onChanged();
        }
        if (other.hasExtra()) {
          bitField0_ |= 0x00000800;
          extra_ = other.extra_;
          onChanged();
        }
        if (other.hasRetCode()) {
          setRetCode(other.getRetCode());
        }
        if (other.hasCreateOn()) {
          bitField0_ |= 0x00002000;
          createOn_ = other.createOn_;
          onChanged();
        }
        if (other.hasErrMsg()) {
          bitField0_ |= 0x00004000;
          errMsg_ = other.errMsg_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 9: {
                batteryLevel_ = input.readDouble();
                bitField0_ |= 0x00000001;
                break;
              } // case 9
              case 17: {
                batteryTemp_ = input.readDouble();
                bitField0_ |= 0x00000002;
                break;
              } // case 17
              case 24: {
                charging_ = input.readBool();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 33: {
                voltage_ = input.readDouble();
                bitField0_ |= 0x00000008;
                break;
              } // case 33
              case 41: {
                current_ = input.readDouble();
                bitField0_ |= 0x00000010;
                break;
              } // case 41
              case 49: {
                maxChargeVoltage_ = input.readDouble();
                bitField0_ |= 0x00000020;
                break;
              } // case 49
              case 57: {
                maxChargeCurrent_ = input.readDouble();
                bitField0_ |= 0x00000040;
                break;
              } // case 57
              case 64: {
                manualCharge_ = input.readBool();
                bitField0_ |= 0x00000080;
                break;
              } // case 64
              case 72: {
                autoCharge_ = input.readBool();
                bitField0_ |= 0x00000100;
                break;
              } // case 72
              case 80: {
                batteryCycle_ = input.readInt32();
                bitField0_ |= 0x00000200;
                break;
              } // case 80
              case 90: {
                batteryUserData_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000400;
                break;
              } // case 90
              case 98: {
                extra_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000800;
                break;
              } // case 98
              case 104: {
                retCode_ = input.readInt32();
                bitField0_ |= 0x00001000;
                break;
              } // case 104
              case 114: {
                createOn_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00002000;
                break;
              } // case 114
              case 122: {
                errMsg_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00004000;
                break;
              } // case 122
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private double batteryLevel_ ;
      /**
       * <pre>
       * 电池电量 [0,1]
       * </pre>
       *
       * <code>optional double battery_level = 1;</code>
       * @return Whether the batteryLevel field is set.
       */
      @java.lang.Override
      public boolean hasBatteryLevel() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * 电池电量 [0,1]
       * </pre>
       *
       * <code>optional double battery_level = 1;</code>
       * @return The batteryLevel.
       */
      @java.lang.Override
      public double getBatteryLevel() {
        return batteryLevel_;
      }
      /**
       * <pre>
       * 电池电量 [0,1]
       * </pre>
       *
       * <code>optional double battery_level = 1;</code>
       * @param value The batteryLevel to set.
       * @return This builder for chaining.
       */
      public Builder setBatteryLevel(double value) {
        bitField0_ |= 0x00000001;
        batteryLevel_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 电池电量 [0,1]
       * </pre>
       *
       * <code>optional double battery_level = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearBatteryLevel() {
        bitField0_ = (bitField0_ & ~0x00000001);
        batteryLevel_ = 0D;
        onChanged();
        return this;
      }

      private double batteryTemp_ ;
      /**
       * <pre>
       * 电池温度 ℃
       * </pre>
       *
       * <code>optional double battery_temp = 2;</code>
       * @return Whether the batteryTemp field is set.
       */
      @java.lang.Override
      public boolean hasBatteryTemp() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * 电池温度 ℃
       * </pre>
       *
       * <code>optional double battery_temp = 2;</code>
       * @return The batteryTemp.
       */
      @java.lang.Override
      public double getBatteryTemp() {
        return batteryTemp_;
      }
      /**
       * <pre>
       * 电池温度 ℃
       * </pre>
       *
       * <code>optional double battery_temp = 2;</code>
       * @param value The batteryTemp to set.
       * @return This builder for chaining.
       */
      public Builder setBatteryTemp(double value) {
        bitField0_ |= 0x00000002;
        batteryTemp_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 电池温度 ℃
       * </pre>
       *
       * <code>optional double battery_temp = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearBatteryTemp() {
        bitField0_ = (bitField0_ & ~0x00000002);
        batteryTemp_ = 0D;
        onChanged();
        return this;
      }

      private boolean charging_ ;
      /**
       * <pre>
       * 是否正在充电
       * </pre>
       *
       * <code>optional bool charging = 3;</code>
       * @return Whether the charging field is set.
       */
      @java.lang.Override
      public boolean hasCharging() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * 是否正在充电
       * </pre>
       *
       * <code>optional bool charging = 3;</code>
       * @return The charging.
       */
      @java.lang.Override
      public boolean getCharging() {
        return charging_;
      }
      /**
       * <pre>
       * 是否正在充电
       * </pre>
       *
       * <code>optional bool charging = 3;</code>
       * @param value The charging to set.
       * @return This builder for chaining.
       */
      public Builder setCharging(boolean value) {
        bitField0_ |= 0x00000004;
        charging_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 是否正在充电
       * </pre>
       *
       * <code>optional bool charging = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearCharging() {
        bitField0_ = (bitField0_ & ~0x00000004);
        charging_ = false;
        onChanged();
        return this;
      }

      private double voltage_ ;
      /**
       * <pre>
       * 电压 V
       * </pre>
       *
       * <code>optional double voltage = 4;</code>
       * @return Whether the voltage field is set.
       */
      @java.lang.Override
      public boolean hasVoltage() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * 电压 V
       * </pre>
       *
       * <code>optional double voltage = 4;</code>
       * @return The voltage.
       */
      @java.lang.Override
      public double getVoltage() {
        return voltage_;
      }
      /**
       * <pre>
       * 电压 V
       * </pre>
       *
       * <code>optional double voltage = 4;</code>
       * @param value The voltage to set.
       * @return This builder for chaining.
       */
      public Builder setVoltage(double value) {
        bitField0_ |= 0x00000008;
        voltage_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 电压 V
       * </pre>
       *
       * <code>optional double voltage = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearVoltage() {
        bitField0_ = (bitField0_ & ~0x00000008);
        voltage_ = 0D;
        onChanged();
        return this;
      }

      private double current_ ;
      /**
       * <pre>
       * 电流 A
       * </pre>
       *
       * <code>optional double current = 5;</code>
       * @return Whether the current field is set.
       */
      @java.lang.Override
      public boolean hasCurrent() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * 电流 A
       * </pre>
       *
       * <code>optional double current = 5;</code>
       * @return The current.
       */
      @java.lang.Override
      public double getCurrent() {
        return current_;
      }
      /**
       * <pre>
       * 电流 A
       * </pre>
       *
       * <code>optional double current = 5;</code>
       * @param value The current to set.
       * @return This builder for chaining.
       */
      public Builder setCurrent(double value) {
        bitField0_ |= 0x00000010;
        current_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 电流 A
       * </pre>
       *
       * <code>optional double current = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearCurrent() {
        bitField0_ = (bitField0_ & ~0x00000010);
        current_ = 0D;
        onChanged();
        return this;
      }

      private double maxChargeVoltage_ ;
      /**
       * <pre>
       * 最大充电电压，-1=不支持
       * </pre>
       *
       * <code>optional double max_charge_voltage = 6;</code>
       * @return Whether the maxChargeVoltage field is set.
       */
      @java.lang.Override
      public boolean hasMaxChargeVoltage() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <pre>
       * 最大充电电压，-1=不支持
       * </pre>
       *
       * <code>optional double max_charge_voltage = 6;</code>
       * @return The maxChargeVoltage.
       */
      @java.lang.Override
      public double getMaxChargeVoltage() {
        return maxChargeVoltage_;
      }
      /**
       * <pre>
       * 最大充电电压，-1=不支持
       * </pre>
       *
       * <code>optional double max_charge_voltage = 6;</code>
       * @param value The maxChargeVoltage to set.
       * @return This builder for chaining.
       */
      public Builder setMaxChargeVoltage(double value) {
        bitField0_ |= 0x00000020;
        maxChargeVoltage_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 最大充电电压，-1=不支持
       * </pre>
       *
       * <code>optional double max_charge_voltage = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearMaxChargeVoltage() {
        bitField0_ = (bitField0_ & ~0x00000020);
        maxChargeVoltage_ = 0D;
        onChanged();
        return this;
      }

      private double maxChargeCurrent_ ;
      /**
       * <pre>
       * 最大充电电流，-1=不支持
       * </pre>
       *
       * <code>optional double max_charge_current = 7;</code>
       * @return Whether the maxChargeCurrent field is set.
       */
      @java.lang.Override
      public boolean hasMaxChargeCurrent() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <pre>
       * 最大充电电流，-1=不支持
       * </pre>
       *
       * <code>optional double max_charge_current = 7;</code>
       * @return The maxChargeCurrent.
       */
      @java.lang.Override
      public double getMaxChargeCurrent() {
        return maxChargeCurrent_;
      }
      /**
       * <pre>
       * 最大充电电流，-1=不支持
       * </pre>
       *
       * <code>optional double max_charge_current = 7;</code>
       * @param value The maxChargeCurrent to set.
       * @return This builder for chaining.
       */
      public Builder setMaxChargeCurrent(double value) {
        bitField0_ |= 0x00000040;
        maxChargeCurrent_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 最大充电电流，-1=不支持
       * </pre>
       *
       * <code>optional double max_charge_current = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearMaxChargeCurrent() {
        bitField0_ = (bitField0_ & ~0x00000040);
        maxChargeCurrent_ = 0D;
        onChanged();
        return this;
      }

      private boolean manualCharge_ ;
      /**
       * <pre>
       * 手动充电状态
       * </pre>
       *
       * <code>optional bool manual_charge = 8;</code>
       * @return Whether the manualCharge field is set.
       */
      @java.lang.Override
      public boolean hasManualCharge() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <pre>
       * 手动充电状态
       * </pre>
       *
       * <code>optional bool manual_charge = 8;</code>
       * @return The manualCharge.
       */
      @java.lang.Override
      public boolean getManualCharge() {
        return manualCharge_;
      }
      /**
       * <pre>
       * 手动充电状态
       * </pre>
       *
       * <code>optional bool manual_charge = 8;</code>
       * @param value The manualCharge to set.
       * @return This builder for chaining.
       */
      public Builder setManualCharge(boolean value) {
        bitField0_ |= 0x00000080;
        manualCharge_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 手动充电状态
       * </pre>
       *
       * <code>optional bool manual_charge = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearManualCharge() {
        bitField0_ = (bitField0_ & ~0x00000080);
        manualCharge_ = false;
        onChanged();
        return this;
      }

      private boolean autoCharge_ ;
      /**
       * <pre>
       * 自动充电状态
       * </pre>
       *
       * <code>optional bool auto_charge = 9;</code>
       * @return Whether the autoCharge field is set.
       */
      @java.lang.Override
      public boolean hasAutoCharge() {
        return ((bitField0_ & 0x00000100) != 0);
      }
      /**
       * <pre>
       * 自动充电状态
       * </pre>
       *
       * <code>optional bool auto_charge = 9;</code>
       * @return The autoCharge.
       */
      @java.lang.Override
      public boolean getAutoCharge() {
        return autoCharge_;
      }
      /**
       * <pre>
       * 自动充电状态
       * </pre>
       *
       * <code>optional bool auto_charge = 9;</code>
       * @param value The autoCharge to set.
       * @return This builder for chaining.
       */
      public Builder setAutoCharge(boolean value) {
        bitField0_ |= 0x00000100;
        autoCharge_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 自动充电状态
       * </pre>
       *
       * <code>optional bool auto_charge = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearAutoCharge() {
        bitField0_ = (bitField0_ & ~0x00000100);
        autoCharge_ = false;
        onChanged();
        return this;
      }

      private int batteryCycle_ ;
      /**
       * <pre>
       * 电池循环次数
       * </pre>
       *
       * <code>optional int32 battery_cycle = 10;</code>
       * @return Whether the batteryCycle field is set.
       */
      @java.lang.Override
      public boolean hasBatteryCycle() {
        return ((bitField0_ & 0x00000200) != 0);
      }
      /**
       * <pre>
       * 电池循环次数
       * </pre>
       *
       * <code>optional int32 battery_cycle = 10;</code>
       * @return The batteryCycle.
       */
      @java.lang.Override
      public int getBatteryCycle() {
        return batteryCycle_;
      }
      /**
       * <pre>
       * 电池循环次数
       * </pre>
       *
       * <code>optional int32 battery_cycle = 10;</code>
       * @param value The batteryCycle to set.
       * @return This builder for chaining.
       */
      public Builder setBatteryCycle(int value) {
        bitField0_ |= 0x00000200;
        batteryCycle_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 电池循环次数
       * </pre>
       *
       * <code>optional int32 battery_cycle = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearBatteryCycle() {
        bitField0_ = (bitField0_ & ~0x00000200);
        batteryCycle_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object batteryUserData_ = "";
      /**
       * <pre>
       * 电池自定义数据
       * </pre>
       *
       * <code>optional string battery_user_data = 11;</code>
       * @return Whether the batteryUserData field is set.
       */
      public boolean hasBatteryUserData() {
        return ((bitField0_ & 0x00000400) != 0);
      }
      /**
       * <pre>
       * 电池自定义数据
       * </pre>
       *
       * <code>optional string battery_user_data = 11;</code>
       * @return The batteryUserData.
       */
      public java.lang.String getBatteryUserData() {
        java.lang.Object ref = batteryUserData_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          batteryUserData_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * 电池自定义数据
       * </pre>
       *
       * <code>optional string battery_user_data = 11;</code>
       * @return The bytes for batteryUserData.
       */
      public com.google.protobuf.ByteString
          getBatteryUserDataBytes() {
        java.lang.Object ref = batteryUserData_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          batteryUserData_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * 电池自定义数据
       * </pre>
       *
       * <code>optional string battery_user_data = 11;</code>
       * @param value The batteryUserData to set.
       * @return This builder for chaining.
       */
      public Builder setBatteryUserData(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000400;
        batteryUserData_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 电池自定义数据
       * </pre>
       *
       * <code>optional string battery_user_data = 11;</code>
       * @return This builder for chaining.
       */
      public Builder clearBatteryUserData() {
        bitField0_ = (bitField0_ & ~0x00000400);
        batteryUserData_ = getDefaultInstance().getBatteryUserData();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 电池自定义数据
       * </pre>
       *
       * <code>optional string battery_user_data = 11;</code>
       * @param value The bytes for batteryUserData to set.
       * @return This builder for chaining.
       */
      public Builder setBatteryUserDataBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        bitField0_ |= 0x00000400;
        batteryUserData_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object extra_ = "";
      /**
       * <pre>
       * 客户自定义数据
       * </pre>
       *
       * <code>optional string extra = 12;</code>
       * @return Whether the extra field is set.
       */
      public boolean hasExtra() {
        return ((bitField0_ & 0x00000800) != 0);
      }
      /**
       * <pre>
       * 客户自定义数据
       * </pre>
       *
       * <code>optional string extra = 12;</code>
       * @return The extra.
       */
      public java.lang.String getExtra() {
        java.lang.Object ref = extra_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          extra_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * 客户自定义数据
       * </pre>
       *
       * <code>optional string extra = 12;</code>
       * @return The bytes for extra.
       */
      public com.google.protobuf.ByteString
          getExtraBytes() {
        java.lang.Object ref = extra_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          extra_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * 客户自定义数据
       * </pre>
       *
       * <code>optional string extra = 12;</code>
       * @param value The extra to set.
       * @return This builder for chaining.
       */
      public Builder setExtra(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000800;
        extra_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 客户自定义数据
       * </pre>
       *
       * <code>optional string extra = 12;</code>
       * @return This builder for chaining.
       */
      public Builder clearExtra() {
        bitField0_ = (bitField0_ & ~0x00000800);
        extra_ = getDefaultInstance().getExtra();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 客户自定义数据
       * </pre>
       *
       * <code>optional string extra = 12;</code>
       * @param value The bytes for extra to set.
       * @return This builder for chaining.
       */
      public Builder setExtraBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        bitField0_ |= 0x00000800;
        extra_ = value;
        onChanged();
        return this;
      }

      private int retCode_ ;
      /**
       * <pre>
       * 错误码
       * </pre>
       *
       * <code>optional int32 ret_code = 13;</code>
       * @return Whether the retCode field is set.
       */
      @java.lang.Override
      public boolean hasRetCode() {
        return ((bitField0_ & 0x00001000) != 0);
      }
      /**
       * <pre>
       * 错误码
       * </pre>
       *
       * <code>optional int32 ret_code = 13;</code>
       * @return The retCode.
       */
      @java.lang.Override
      public int getRetCode() {
        return retCode_;
      }
      /**
       * <pre>
       * 错误码
       * </pre>
       *
       * <code>optional int32 ret_code = 13;</code>
       * @param value The retCode to set.
       * @return This builder for chaining.
       */
      public Builder setRetCode(int value) {
        bitField0_ |= 0x00001000;
        retCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 错误码
       * </pre>
       *
       * <code>optional int32 ret_code = 13;</code>
       * @return This builder for chaining.
       */
      public Builder clearRetCode() {
        bitField0_ = (bitField0_ & ~0x00001000);
        retCode_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object createOn_ = "";
      /**
       * <pre>
       * 时间戳
       * </pre>
       *
       * <code>optional string create_on = 14;</code>
       * @return Whether the createOn field is set.
       */
      public boolean hasCreateOn() {
        return ((bitField0_ & 0x00002000) != 0);
      }
      /**
       * <pre>
       * 时间戳
       * </pre>
       *
       * <code>optional string create_on = 14;</code>
       * @return The createOn.
       */
      public java.lang.String getCreateOn() {
        java.lang.Object ref = createOn_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          createOn_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * 时间戳
       * </pre>
       *
       * <code>optional string create_on = 14;</code>
       * @return The bytes for createOn.
       */
      public com.google.protobuf.ByteString
          getCreateOnBytes() {
        java.lang.Object ref = createOn_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          createOn_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * 时间戳
       * </pre>
       *
       * <code>optional string create_on = 14;</code>
       * @param value The createOn to set.
       * @return This builder for chaining.
       */
      public Builder setCreateOn(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00002000;
        createOn_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 时间戳
       * </pre>
       *
       * <code>optional string create_on = 14;</code>
       * @return This builder for chaining.
       */
      public Builder clearCreateOn() {
        bitField0_ = (bitField0_ & ~0x00002000);
        createOn_ = getDefaultInstance().getCreateOn();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 时间戳
       * </pre>
       *
       * <code>optional string create_on = 14;</code>
       * @param value The bytes for createOn to set.
       * @return This builder for chaining.
       */
      public Builder setCreateOnBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        bitField0_ |= 0x00002000;
        createOn_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object errMsg_ = "";
      /**
       * <pre>
       * 错误信息
       * </pre>
       *
       * <code>optional string err_msg = 15;</code>
       * @return Whether the errMsg field is set.
       */
      public boolean hasErrMsg() {
        return ((bitField0_ & 0x00004000) != 0);
      }
      /**
       * <pre>
       * 错误信息
       * </pre>
       *
       * <code>optional string err_msg = 15;</code>
       * @return The errMsg.
       */
      public java.lang.String getErrMsg() {
        java.lang.Object ref = errMsg_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          errMsg_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * 错误信息
       * </pre>
       *
       * <code>optional string err_msg = 15;</code>
       * @return The bytes for errMsg.
       */
      public com.google.protobuf.ByteString
          getErrMsgBytes() {
        java.lang.Object ref = errMsg_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          errMsg_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * 错误信息
       * </pre>
       *
       * <code>optional string err_msg = 15;</code>
       * @param value The errMsg to set.
       * @return This builder for chaining.
       */
      public Builder setErrMsg(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00004000;
        errMsg_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 错误信息
       * </pre>
       *
       * <code>optional string err_msg = 15;</code>
       * @return This builder for chaining.
       */
      public Builder clearErrMsg() {
        bitField0_ = (bitField0_ & ~0x00004000);
        errMsg_ = getDefaultInstance().getErrMsg();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 错误信息
       * </pre>
       *
       * <code>optional string err_msg = 15;</code>
       * @param value The bytes for errMsg to set.
       * @return This builder for chaining.
       */
      public Builder setErrMsgBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        bitField0_ |= 0x00004000;
        errMsg_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:cmvr.api.AgvBatteryStatus)
    }

    // @@protoc_insertion_point(class_scope:cmvr.api.AgvBatteryStatus)
    private static final cmvr.api.AgvCommand.AgvBatteryStatus DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new cmvr.api.AgvCommand.AgvBatteryStatus();
    }

    public static cmvr.api.AgvCommand.AgvBatteryStatus getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<AgvBatteryStatus>
        PARSER = new com.google.protobuf.AbstractParser<AgvBatteryStatus>() {
      @java.lang.Override
      public AgvBatteryStatus parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<AgvBatteryStatus> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<AgvBatteryStatus> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public cmvr.api.AgvCommand.AgvBatteryStatus getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface RobotStatusBatteryRequestDataOrBuilder extends
      // @@protoc_insertion_point(interface_extends:cmvr.api.RobotStatusBatteryRequestData)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * true:仅简单数据 false:全量数据，默认false
     * </pre>
     *
     * <code>optional bool simple = 1;</code>
     * @return Whether the simple field is set.
     */
    boolean hasSimple();
    /**
     * <pre>
     * true:仅简单数据 false:全量数据，默认false
     * </pre>
     *
     * <code>optional bool simple = 1;</code>
     * @return The simple.
     */
    boolean getSimple();
  }
  /**
   * Protobuf type {@code cmvr.api.RobotStatusBatteryRequestData}
   */
  public static final class RobotStatusBatteryRequestData extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:cmvr.api.RobotStatusBatteryRequestData)
      RobotStatusBatteryRequestDataOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use RobotStatusBatteryRequestData.newBuilder() to construct.
    private RobotStatusBatteryRequestData(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private RobotStatusBatteryRequestData() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new RobotStatusBatteryRequestData();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotStatusBatteryRequestData_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotStatusBatteryRequestData_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              cmvr.api.AgvCommand.RobotStatusBatteryRequestData.class, cmvr.api.AgvCommand.RobotStatusBatteryRequestData.Builder.class);
    }

    private int bitField0_;
    public static final int SIMPLE_FIELD_NUMBER = 1;
    private boolean simple_;
    /**
     * <pre>
     * true:仅简单数据 false:全量数据，默认false
     * </pre>
     *
     * <code>optional bool simple = 1;</code>
     * @return Whether the simple field is set.
     */
    @java.lang.Override
    public boolean hasSimple() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * true:仅简单数据 false:全量数据，默认false
     * </pre>
     *
     * <code>optional bool simple = 1;</code>
     * @return The simple.
     */
    @java.lang.Override
    public boolean getSimple() {
      return simple_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeBool(1, simple_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(1, simple_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof cmvr.api.AgvCommand.RobotStatusBatteryRequestData)) {
        return super.equals(obj);
      }
      cmvr.api.AgvCommand.RobotStatusBatteryRequestData other = (cmvr.api.AgvCommand.RobotStatusBatteryRequestData) obj;

      if (hasSimple() != other.hasSimple()) return false;
      if (hasSimple()) {
        if (getSimple()
            != other.getSimple()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasSimple()) {
        hash = (37 * hash) + SIMPLE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getSimple());
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cmvr.api.AgvCommand.RobotStatusBatteryRequestData parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.RobotStatusBatteryRequestData parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.RobotStatusBatteryRequestData parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.RobotStatusBatteryRequestData parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.RobotStatusBatteryRequestData parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.RobotStatusBatteryRequestData parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.RobotStatusBatteryRequestData parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.RobotStatusBatteryRequestData parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.RobotStatusBatteryRequestData parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.RobotStatusBatteryRequestData parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.RobotStatusBatteryRequestData parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.RobotStatusBatteryRequestData parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(cmvr.api.AgvCommand.RobotStatusBatteryRequestData prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code cmvr.api.RobotStatusBatteryRequestData}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:cmvr.api.RobotStatusBatteryRequestData)
        cmvr.api.AgvCommand.RobotStatusBatteryRequestDataOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotStatusBatteryRequestData_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotStatusBatteryRequestData_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.AgvCommand.RobotStatusBatteryRequestData.class, cmvr.api.AgvCommand.RobotStatusBatteryRequestData.Builder.class);
      }

      // Construct using cmvr.api.AgvCommand.RobotStatusBatteryRequestData.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        simple_ = false;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotStatusBatteryRequestData_descriptor;
      }

      @java.lang.Override
      public cmvr.api.AgvCommand.RobotStatusBatteryRequestData getDefaultInstanceForType() {
        return cmvr.api.AgvCommand.RobotStatusBatteryRequestData.getDefaultInstance();
      }

      @java.lang.Override
      public cmvr.api.AgvCommand.RobotStatusBatteryRequestData build() {
        cmvr.api.AgvCommand.RobotStatusBatteryRequestData result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cmvr.api.AgvCommand.RobotStatusBatteryRequestData buildPartial() {
        cmvr.api.AgvCommand.RobotStatusBatteryRequestData result = new cmvr.api.AgvCommand.RobotStatusBatteryRequestData(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.simple_ = simple_;
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cmvr.api.AgvCommand.RobotStatusBatteryRequestData) {
          return mergeFrom((cmvr.api.AgvCommand.RobotStatusBatteryRequestData)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cmvr.api.AgvCommand.RobotStatusBatteryRequestData other) {
        if (other == cmvr.api.AgvCommand.RobotStatusBatteryRequestData.getDefaultInstance()) return this;
        if (other.hasSimple()) {
          setSimple(other.getSimple());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                simple_ = input.readBool();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private boolean simple_ ;
      /**
       * <pre>
       * true:仅简单数据 false:全量数据，默认false
       * </pre>
       *
       * <code>optional bool simple = 1;</code>
       * @return Whether the simple field is set.
       */
      @java.lang.Override
      public boolean hasSimple() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * true:仅简单数据 false:全量数据，默认false
       * </pre>
       *
       * <code>optional bool simple = 1;</code>
       * @return The simple.
       */
      @java.lang.Override
      public boolean getSimple() {
        return simple_;
      }
      /**
       * <pre>
       * true:仅简单数据 false:全量数据，默认false
       * </pre>
       *
       * <code>optional bool simple = 1;</code>
       * @param value The simple to set.
       * @return This builder for chaining.
       */
      public Builder setSimple(boolean value) {
        bitField0_ |= 0x00000001;
        simple_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * true:仅简单数据 false:全量数据，默认false
       * </pre>
       *
       * <code>optional bool simple = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearSimple() {
        bitField0_ = (bitField0_ & ~0x00000001);
        simple_ = false;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:cmvr.api.RobotStatusBatteryRequestData)
    }

    // @@protoc_insertion_point(class_scope:cmvr.api.RobotStatusBatteryRequestData)
    private static final cmvr.api.AgvCommand.RobotStatusBatteryRequestData DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new cmvr.api.AgvCommand.RobotStatusBatteryRequestData();
    }

    public static cmvr.api.AgvCommand.RobotStatusBatteryRequestData getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<RobotStatusBatteryRequestData>
        PARSER = new com.google.protobuf.AbstractParser<RobotStatusBatteryRequestData>() {
      @java.lang.Override
      public RobotStatusBatteryRequestData parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<RobotStatusBatteryRequestData> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<RobotStatusBatteryRequestData> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public cmvr.api.AgvCommand.RobotStatusBatteryRequestData getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface RobotStatusBatteryCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:cmvr.api.RobotStatusBatteryCommand)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code cmvr.api.RobotStatusBatteryCommand}
   */
  public static final class RobotStatusBatteryCommand extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:cmvr.api.RobotStatusBatteryCommand)
      RobotStatusBatteryCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use RobotStatusBatteryCommand.newBuilder() to construct.
    private RobotStatusBatteryCommand(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private RobotStatusBatteryCommand() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new RobotStatusBatteryCommand();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotStatusBatteryCommand_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotStatusBatteryCommand_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              cmvr.api.AgvCommand.RobotStatusBatteryCommand.class, cmvr.api.AgvCommand.RobotStatusBatteryCommand.Builder.class);
    }

    public interface RequestOrBuilder extends
        // @@protoc_insertion_point(interface_extends:cmvr.api.RobotStatusBatteryCommand.Request)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Request getHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder();

      /**
       * <code>.cmvr.api.RobotStatusBatteryRequestData data = 2;</code>
       * @return Whether the data field is set.
       */
      boolean hasData();
      /**
       * <code>.cmvr.api.RobotStatusBatteryRequestData data = 2;</code>
       * @return The data.
       */
      cmvr.api.AgvCommand.RobotStatusBatteryRequestData getData();
      /**
       * <code>.cmvr.api.RobotStatusBatteryRequestData data = 2;</code>
       */
      cmvr.api.AgvCommand.RobotStatusBatteryRequestDataOrBuilder getDataOrBuilder();
    }
    /**
     * Protobuf type {@code cmvr.api.RobotStatusBatteryCommand.Request}
     */
    public static final class Request extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.RobotStatusBatteryCommand.Request)
        RequestOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Request.newBuilder() to construct.
      private Request(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Request() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Request();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotStatusBatteryCommand_Request_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotStatusBatteryCommand_Request_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.AgvCommand.RobotStatusBatteryCommand.Request.class, cmvr.api.AgvCommand.RobotStatusBatteryCommand.Request.Builder.class);
      }

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Request header_;
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return The header.
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.Request getHeader() {
        return header_ == null ? cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() {
        return getHeader();
      }

      public static final int DATA_FIELD_NUMBER = 2;
      private cmvr.api.AgvCommand.RobotStatusBatteryRequestData data_;
      /**
       * <code>.cmvr.api.RobotStatusBatteryRequestData data = 2;</code>
       * @return Whether the data field is set.
       */
      @java.lang.Override
      public boolean hasData() {
        return data_ != null;
      }
      /**
       * <code>.cmvr.api.RobotStatusBatteryRequestData data = 2;</code>
       * @return The data.
       */
      @java.lang.Override
      public cmvr.api.AgvCommand.RobotStatusBatteryRequestData getData() {
        return data_ == null ? cmvr.api.AgvCommand.RobotStatusBatteryRequestData.getDefaultInstance() : data_;
      }
      /**
       * <code>.cmvr.api.RobotStatusBatteryRequestData data = 2;</code>
       */
      @java.lang.Override
      public cmvr.api.AgvCommand.RobotStatusBatteryRequestDataOrBuilder getDataOrBuilder() {
        return getData();
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (header_ != null) {
          output.writeMessage(1, getHeader());
        }
        if (data_ != null) {
          output.writeMessage(2, getData());
        }
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (header_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getHeader());
        }
        if (data_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, getData());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof cmvr.api.AgvCommand.RobotStatusBatteryCommand.Request)) {
          return super.equals(obj);
        }
        cmvr.api.AgvCommand.RobotStatusBatteryCommand.Request other = (cmvr.api.AgvCommand.RobotStatusBatteryCommand.Request) obj;

        if (hasHeader() != other.hasHeader()) return false;
        if (hasHeader()) {
          if (!getHeader()
              .equals(other.getHeader())) return false;
        }
        if (hasData() != other.hasData()) return false;
        if (hasData()) {
          if (!getData()
              .equals(other.getData())) return false;
        }
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasHeader()) {
          hash = (37 * hash) + HEADER_FIELD_NUMBER;
          hash = (53 * hash) + getHeader().hashCode();
        }
        if (hasData()) {
          hash = (37 * hash) + DATA_FIELD_NUMBER;
          hash = (53 * hash) + getData().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.AgvCommand.RobotStatusBatteryCommand.Request parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.RobotStatusBatteryCommand.Request parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.RobotStatusBatteryCommand.Request parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.RobotStatusBatteryCommand.Request parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.RobotStatusBatteryCommand.Request parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.RobotStatusBatteryCommand.Request parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.RobotStatusBatteryCommand.Request parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.RobotStatusBatteryCommand.Request parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.RobotStatusBatteryCommand.Request parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.RobotStatusBatteryCommand.Request parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.RobotStatusBatteryCommand.Request parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.RobotStatusBatteryCommand.Request parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(cmvr.api.AgvCommand.RobotStatusBatteryCommand.Request prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code cmvr.api.RobotStatusBatteryCommand.Request}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.RobotStatusBatteryCommand.Request)
          cmvr.api.AgvCommand.RobotStatusBatteryCommand.RequestOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotStatusBatteryCommand_Request_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotStatusBatteryCommand_Request_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  cmvr.api.AgvCommand.RobotStatusBatteryCommand.Request.class, cmvr.api.AgvCommand.RobotStatusBatteryCommand.Request.Builder.class);
        }

        // Construct using cmvr.api.AgvCommand.RobotStatusBatteryCommand.Request.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          if (headerBuilder_ == null) {
            header_ = null;
          } else {
            header_ = null;
            headerBuilder_ = null;
          }
          if (dataBuilder_ == null) {
            data_ = null;
          } else {
            data_ = null;
            dataBuilder_ = null;
          }
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotStatusBatteryCommand_Request_descriptor;
        }

        @java.lang.Override
        public cmvr.api.AgvCommand.RobotStatusBatteryCommand.Request getDefaultInstanceForType() {
          return cmvr.api.AgvCommand.RobotStatusBatteryCommand.Request.getDefaultInstance();
        }

        @java.lang.Override
        public cmvr.api.AgvCommand.RobotStatusBatteryCommand.Request build() {
          cmvr.api.AgvCommand.RobotStatusBatteryCommand.Request result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public cmvr.api.AgvCommand.RobotStatusBatteryCommand.Request buildPartial() {
          cmvr.api.AgvCommand.RobotStatusBatteryCommand.Request result = new cmvr.api.AgvCommand.RobotStatusBatteryCommand.Request(this);
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          if (dataBuilder_ == null) {
            result.data_ = data_;
          } else {
            result.data_ = dataBuilder_.build();
          }
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof cmvr.api.AgvCommand.RobotStatusBatteryCommand.Request) {
            return mergeFrom((cmvr.api.AgvCommand.RobotStatusBatteryCommand.Request)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.AgvCommand.RobotStatusBatteryCommand.Request other) {
          if (other == cmvr.api.AgvCommand.RobotStatusBatteryCommand.Request.getDefaultInstance()) return this;
          if (other.hasHeader()) {
            mergeHeader(other.getHeader());
          }
          if (other.hasData()) {
            mergeData(other.getData());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  input.readMessage(
                      getHeaderFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 10
                case 18: {
                  input.readMessage(
                      getDataFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 18
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }

        private cmvr.api.Common.CommandHeader.Request header_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder> headerBuilder_;
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         * @return The header.
         */
        public cmvr.api.Common.CommandHeader.Request getHeader() {
          if (headerBuilder_ == null) {
            return header_ == null ? cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
          } else {
            return headerBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder setHeader(cmvr.api.Common.CommandHeader.Request value) {
          if (headerBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            header_ = value;
            onChanged();
          } else {
            headerBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder setHeader(
            cmvr.api.Common.CommandHeader.Request.Builder builderForValue) {
          if (headerBuilder_ == null) {
            header_ = builderForValue.build();
            onChanged();
          } else {
            headerBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder mergeHeader(cmvr.api.Common.CommandHeader.Request value) {
          if (headerBuilder_ == null) {
            if (header_ != null) {
              header_ =
                cmvr.api.Common.CommandHeader.Request.newBuilder(header_).mergeFrom(value).buildPartial();
            } else {
              header_ = value;
            }
            onChanged();
          } else {
            headerBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Request.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() {
          if (headerBuilder_ != null) {
            return headerBuilder_.getMessageOrBuilder();
          } else {
            return header_ == null ?
                cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder> 
            getHeaderFieldBuilder() {
          if (headerBuilder_ == null) {
            headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder>(
                    getHeader(),
                    getParentForChildren(),
                    isClean());
            header_ = null;
          }
          return headerBuilder_;
        }

        private cmvr.api.AgvCommand.RobotStatusBatteryRequestData data_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.AgvCommand.RobotStatusBatteryRequestData, cmvr.api.AgvCommand.RobotStatusBatteryRequestData.Builder, cmvr.api.AgvCommand.RobotStatusBatteryRequestDataOrBuilder> dataBuilder_;
        /**
         * <code>.cmvr.api.RobotStatusBatteryRequestData data = 2;</code>
         * @return Whether the data field is set.
         */
        public boolean hasData() {
          return dataBuilder_ != null || data_ != null;
        }
        /**
         * <code>.cmvr.api.RobotStatusBatteryRequestData data = 2;</code>
         * @return The data.
         */
        public cmvr.api.AgvCommand.RobotStatusBatteryRequestData getData() {
          if (dataBuilder_ == null) {
            return data_ == null ? cmvr.api.AgvCommand.RobotStatusBatteryRequestData.getDefaultInstance() : data_;
          } else {
            return dataBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.RobotStatusBatteryRequestData data = 2;</code>
         */
        public Builder setData(cmvr.api.AgvCommand.RobotStatusBatteryRequestData value) {
          if (dataBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            data_ = value;
            onChanged();
          } else {
            dataBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.RobotStatusBatteryRequestData data = 2;</code>
         */
        public Builder setData(
            cmvr.api.AgvCommand.RobotStatusBatteryRequestData.Builder builderForValue) {
          if (dataBuilder_ == null) {
            data_ = builderForValue.build();
            onChanged();
          } else {
            dataBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.RobotStatusBatteryRequestData data = 2;</code>
         */
        public Builder mergeData(cmvr.api.AgvCommand.RobotStatusBatteryRequestData value) {
          if (dataBuilder_ == null) {
            if (data_ != null) {
              data_ =
                cmvr.api.AgvCommand.RobotStatusBatteryRequestData.newBuilder(data_).mergeFrom(value).buildPartial();
            } else {
              data_ = value;
            }
            onChanged();
          } else {
            dataBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.RobotStatusBatteryRequestData data = 2;</code>
         */
        public Builder clearData() {
          if (dataBuilder_ == null) {
            data_ = null;
            onChanged();
          } else {
            data_ = null;
            dataBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.RobotStatusBatteryRequestData data = 2;</code>
         */
        public cmvr.api.AgvCommand.RobotStatusBatteryRequestData.Builder getDataBuilder() {
          
          onChanged();
          return getDataFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.RobotStatusBatteryRequestData data = 2;</code>
         */
        public cmvr.api.AgvCommand.RobotStatusBatteryRequestDataOrBuilder getDataOrBuilder() {
          if (dataBuilder_ != null) {
            return dataBuilder_.getMessageOrBuilder();
          } else {
            return data_ == null ?
                cmvr.api.AgvCommand.RobotStatusBatteryRequestData.getDefaultInstance() : data_;
          }
        }
        /**
         * <code>.cmvr.api.RobotStatusBatteryRequestData data = 2;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.AgvCommand.RobotStatusBatteryRequestData, cmvr.api.AgvCommand.RobotStatusBatteryRequestData.Builder, cmvr.api.AgvCommand.RobotStatusBatteryRequestDataOrBuilder> 
            getDataFieldBuilder() {
          if (dataBuilder_ == null) {
            dataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.AgvCommand.RobotStatusBatteryRequestData, cmvr.api.AgvCommand.RobotStatusBatteryRequestData.Builder, cmvr.api.AgvCommand.RobotStatusBatteryRequestDataOrBuilder>(
                    getData(),
                    getParentForChildren(),
                    isClean());
            data_ = null;
          }
          return dataBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:cmvr.api.RobotStatusBatteryCommand.Request)
      }

      // @@protoc_insertion_point(class_scope:cmvr.api.RobotStatusBatteryCommand.Request)
      private static final cmvr.api.AgvCommand.RobotStatusBatteryCommand.Request DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new cmvr.api.AgvCommand.RobotStatusBatteryCommand.Request();
      }

      public static cmvr.api.AgvCommand.RobotStatusBatteryCommand.Request getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser<Request>
          PARSER = new com.google.protobuf.AbstractParser<Request>() {
        @java.lang.Override
        public Request parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

      public static com.google.protobuf.Parser<Request> parser() {
        return PARSER;
      }

      @java.lang.Override
      public com.google.protobuf.Parser<Request> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public cmvr.api.AgvCommand.RobotStatusBatteryCommand.Request getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface FeedbackOrBuilder extends
        // @@protoc_insertion_point(interface_extends:cmvr.api.RobotStatusBatteryCommand.Feedback)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Feedback getHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder();

      /**
       * <code>.cmvr.api.AgvBatteryStatus status = 2;</code>
       * @return Whether the status field is set.
       */
      boolean hasStatus();
      /**
       * <code>.cmvr.api.AgvBatteryStatus status = 2;</code>
       * @return The status.
       */
      cmvr.api.AgvCommand.AgvBatteryStatus getStatus();
      /**
       * <code>.cmvr.api.AgvBatteryStatus status = 2;</code>
       */
      cmvr.api.AgvCommand.AgvBatteryStatusOrBuilder getStatusOrBuilder();
    }
    /**
     * Protobuf type {@code cmvr.api.RobotStatusBatteryCommand.Feedback}
     */
    public static final class Feedback extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.RobotStatusBatteryCommand.Feedback)
        FeedbackOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Feedback.newBuilder() to construct.
      private Feedback(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Feedback() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Feedback();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotStatusBatteryCommand_Feedback_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotStatusBatteryCommand_Feedback_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.AgvCommand.RobotStatusBatteryCommand.Feedback.class, cmvr.api.AgvCommand.RobotStatusBatteryCommand.Feedback.Builder.class);
      }

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Feedback header_;
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return The header.
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.Feedback getHeader() {
        return header_ == null ? cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() {
        return getHeader();
      }

      public static final int STATUS_FIELD_NUMBER = 2;
      private cmvr.api.AgvCommand.AgvBatteryStatus status_;
      /**
       * <code>.cmvr.api.AgvBatteryStatus status = 2;</code>
       * @return Whether the status field is set.
       */
      @java.lang.Override
      public boolean hasStatus() {
        return status_ != null;
      }
      /**
       * <code>.cmvr.api.AgvBatteryStatus status = 2;</code>
       * @return The status.
       */
      @java.lang.Override
      public cmvr.api.AgvCommand.AgvBatteryStatus getStatus() {
        return status_ == null ? cmvr.api.AgvCommand.AgvBatteryStatus.getDefaultInstance() : status_;
      }
      /**
       * <code>.cmvr.api.AgvBatteryStatus status = 2;</code>
       */
      @java.lang.Override
      public cmvr.api.AgvCommand.AgvBatteryStatusOrBuilder getStatusOrBuilder() {
        return getStatus();
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (header_ != null) {
          output.writeMessage(1, getHeader());
        }
        if (status_ != null) {
          output.writeMessage(2, getStatus());
        }
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (header_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getHeader());
        }
        if (status_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, getStatus());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof cmvr.api.AgvCommand.RobotStatusBatteryCommand.Feedback)) {
          return super.equals(obj);
        }
        cmvr.api.AgvCommand.RobotStatusBatteryCommand.Feedback other = (cmvr.api.AgvCommand.RobotStatusBatteryCommand.Feedback) obj;

        if (hasHeader() != other.hasHeader()) return false;
        if (hasHeader()) {
          if (!getHeader()
              .equals(other.getHeader())) return false;
        }
        if (hasStatus() != other.hasStatus()) return false;
        if (hasStatus()) {
          if (!getStatus()
              .equals(other.getStatus())) return false;
        }
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasHeader()) {
          hash = (37 * hash) + HEADER_FIELD_NUMBER;
          hash = (53 * hash) + getHeader().hashCode();
        }
        if (hasStatus()) {
          hash = (37 * hash) + STATUS_FIELD_NUMBER;
          hash = (53 * hash) + getStatus().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.AgvCommand.RobotStatusBatteryCommand.Feedback parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.RobotStatusBatteryCommand.Feedback parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.RobotStatusBatteryCommand.Feedback parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.RobotStatusBatteryCommand.Feedback parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.RobotStatusBatteryCommand.Feedback parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.RobotStatusBatteryCommand.Feedback parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.RobotStatusBatteryCommand.Feedback parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.RobotStatusBatteryCommand.Feedback parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.RobotStatusBatteryCommand.Feedback parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.RobotStatusBatteryCommand.Feedback parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.RobotStatusBatteryCommand.Feedback parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.RobotStatusBatteryCommand.Feedback parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(cmvr.api.AgvCommand.RobotStatusBatteryCommand.Feedback prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code cmvr.api.RobotStatusBatteryCommand.Feedback}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.RobotStatusBatteryCommand.Feedback)
          cmvr.api.AgvCommand.RobotStatusBatteryCommand.FeedbackOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotStatusBatteryCommand_Feedback_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotStatusBatteryCommand_Feedback_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  cmvr.api.AgvCommand.RobotStatusBatteryCommand.Feedback.class, cmvr.api.AgvCommand.RobotStatusBatteryCommand.Feedback.Builder.class);
        }

        // Construct using cmvr.api.AgvCommand.RobotStatusBatteryCommand.Feedback.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          if (headerBuilder_ == null) {
            header_ = null;
          } else {
            header_ = null;
            headerBuilder_ = null;
          }
          if (statusBuilder_ == null) {
            status_ = null;
          } else {
            status_ = null;
            statusBuilder_ = null;
          }
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotStatusBatteryCommand_Feedback_descriptor;
        }

        @java.lang.Override
        public cmvr.api.AgvCommand.RobotStatusBatteryCommand.Feedback getDefaultInstanceForType() {
          return cmvr.api.AgvCommand.RobotStatusBatteryCommand.Feedback.getDefaultInstance();
        }

        @java.lang.Override
        public cmvr.api.AgvCommand.RobotStatusBatteryCommand.Feedback build() {
          cmvr.api.AgvCommand.RobotStatusBatteryCommand.Feedback result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public cmvr.api.AgvCommand.RobotStatusBatteryCommand.Feedback buildPartial() {
          cmvr.api.AgvCommand.RobotStatusBatteryCommand.Feedback result = new cmvr.api.AgvCommand.RobotStatusBatteryCommand.Feedback(this);
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          if (statusBuilder_ == null) {
            result.status_ = status_;
          } else {
            result.status_ = statusBuilder_.build();
          }
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof cmvr.api.AgvCommand.RobotStatusBatteryCommand.Feedback) {
            return mergeFrom((cmvr.api.AgvCommand.RobotStatusBatteryCommand.Feedback)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.AgvCommand.RobotStatusBatteryCommand.Feedback other) {
          if (other == cmvr.api.AgvCommand.RobotStatusBatteryCommand.Feedback.getDefaultInstance()) return this;
          if (other.hasHeader()) {
            mergeHeader(other.getHeader());
          }
          if (other.hasStatus()) {
            mergeStatus(other.getStatus());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  input.readMessage(
                      getHeaderFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 10
                case 18: {
                  input.readMessage(
                      getStatusFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 18
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }

        private cmvr.api.Common.CommandHeader.Feedback header_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> headerBuilder_;
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         * @return The header.
         */
        public cmvr.api.Common.CommandHeader.Feedback getHeader() {
          if (headerBuilder_ == null) {
            return header_ == null ? cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
          } else {
            return headerBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder setHeader(cmvr.api.Common.CommandHeader.Feedback value) {
          if (headerBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            header_ = value;
            onChanged();
          } else {
            headerBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder setHeader(
            cmvr.api.Common.CommandHeader.Feedback.Builder builderForValue) {
          if (headerBuilder_ == null) {
            header_ = builderForValue.build();
            onChanged();
          } else {
            headerBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder mergeHeader(cmvr.api.Common.CommandHeader.Feedback value) {
          if (headerBuilder_ == null) {
            if (header_ != null) {
              header_ =
                cmvr.api.Common.CommandHeader.Feedback.newBuilder(header_).mergeFrom(value).buildPartial();
            } else {
              header_ = value;
            }
            onChanged();
          } else {
            headerBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Feedback.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() {
          if (headerBuilder_ != null) {
            return headerBuilder_.getMessageOrBuilder();
          } else {
            return header_ == null ?
                cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> 
            getHeaderFieldBuilder() {
          if (headerBuilder_ == null) {
            headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder>(
                    getHeader(),
                    getParentForChildren(),
                    isClean());
            header_ = null;
          }
          return headerBuilder_;
        }

        private cmvr.api.AgvCommand.AgvBatteryStatus status_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.AgvCommand.AgvBatteryStatus, cmvr.api.AgvCommand.AgvBatteryStatus.Builder, cmvr.api.AgvCommand.AgvBatteryStatusOrBuilder> statusBuilder_;
        /**
         * <code>.cmvr.api.AgvBatteryStatus status = 2;</code>
         * @return Whether the status field is set.
         */
        public boolean hasStatus() {
          return statusBuilder_ != null || status_ != null;
        }
        /**
         * <code>.cmvr.api.AgvBatteryStatus status = 2;</code>
         * @return The status.
         */
        public cmvr.api.AgvCommand.AgvBatteryStatus getStatus() {
          if (statusBuilder_ == null) {
            return status_ == null ? cmvr.api.AgvCommand.AgvBatteryStatus.getDefaultInstance() : status_;
          } else {
            return statusBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.AgvBatteryStatus status = 2;</code>
         */
        public Builder setStatus(cmvr.api.AgvCommand.AgvBatteryStatus value) {
          if (statusBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            status_ = value;
            onChanged();
          } else {
            statusBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.AgvBatteryStatus status = 2;</code>
         */
        public Builder setStatus(
            cmvr.api.AgvCommand.AgvBatteryStatus.Builder builderForValue) {
          if (statusBuilder_ == null) {
            status_ = builderForValue.build();
            onChanged();
          } else {
            statusBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.AgvBatteryStatus status = 2;</code>
         */
        public Builder mergeStatus(cmvr.api.AgvCommand.AgvBatteryStatus value) {
          if (statusBuilder_ == null) {
            if (status_ != null) {
              status_ =
                cmvr.api.AgvCommand.AgvBatteryStatus.newBuilder(status_).mergeFrom(value).buildPartial();
            } else {
              status_ = value;
            }
            onChanged();
          } else {
            statusBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.AgvBatteryStatus status = 2;</code>
         */
        public Builder clearStatus() {
          if (statusBuilder_ == null) {
            status_ = null;
            onChanged();
          } else {
            status_ = null;
            statusBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.AgvBatteryStatus status = 2;</code>
         */
        public cmvr.api.AgvCommand.AgvBatteryStatus.Builder getStatusBuilder() {
          
          onChanged();
          return getStatusFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.AgvBatteryStatus status = 2;</code>
         */
        public cmvr.api.AgvCommand.AgvBatteryStatusOrBuilder getStatusOrBuilder() {
          if (statusBuilder_ != null) {
            return statusBuilder_.getMessageOrBuilder();
          } else {
            return status_ == null ?
                cmvr.api.AgvCommand.AgvBatteryStatus.getDefaultInstance() : status_;
          }
        }
        /**
         * <code>.cmvr.api.AgvBatteryStatus status = 2;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.AgvCommand.AgvBatteryStatus, cmvr.api.AgvCommand.AgvBatteryStatus.Builder, cmvr.api.AgvCommand.AgvBatteryStatusOrBuilder> 
            getStatusFieldBuilder() {
          if (statusBuilder_ == null) {
            statusBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.AgvCommand.AgvBatteryStatus, cmvr.api.AgvCommand.AgvBatteryStatus.Builder, cmvr.api.AgvCommand.AgvBatteryStatusOrBuilder>(
                    getStatus(),
                    getParentForChildren(),
                    isClean());
            status_ = null;
          }
          return statusBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:cmvr.api.RobotStatusBatteryCommand.Feedback)
      }

      // @@protoc_insertion_point(class_scope:cmvr.api.RobotStatusBatteryCommand.Feedback)
      private static final cmvr.api.AgvCommand.RobotStatusBatteryCommand.Feedback DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new cmvr.api.AgvCommand.RobotStatusBatteryCommand.Feedback();
      }

      public static cmvr.api.AgvCommand.RobotStatusBatteryCommand.Feedback getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser<Feedback>
          PARSER = new com.google.protobuf.AbstractParser<Feedback>() {
        @java.lang.Override
        public Feedback parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

      public static com.google.protobuf.Parser<Feedback> parser() {
        return PARSER;
      }

      @java.lang.Override
      public com.google.protobuf.Parser<Feedback> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public cmvr.api.AgvCommand.RobotStatusBatteryCommand.Feedback getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof cmvr.api.AgvCommand.RobotStatusBatteryCommand)) {
        return super.equals(obj);
      }
      cmvr.api.AgvCommand.RobotStatusBatteryCommand other = (cmvr.api.AgvCommand.RobotStatusBatteryCommand) obj;

      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cmvr.api.AgvCommand.RobotStatusBatteryCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.RobotStatusBatteryCommand parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.RobotStatusBatteryCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.RobotStatusBatteryCommand parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.RobotStatusBatteryCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.RobotStatusBatteryCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.RobotStatusBatteryCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.RobotStatusBatteryCommand parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.RobotStatusBatteryCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.RobotStatusBatteryCommand parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.RobotStatusBatteryCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.RobotStatusBatteryCommand parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(cmvr.api.AgvCommand.RobotStatusBatteryCommand prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code cmvr.api.RobotStatusBatteryCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:cmvr.api.RobotStatusBatteryCommand)
        cmvr.api.AgvCommand.RobotStatusBatteryCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotStatusBatteryCommand_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotStatusBatteryCommand_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.AgvCommand.RobotStatusBatteryCommand.class, cmvr.api.AgvCommand.RobotStatusBatteryCommand.Builder.class);
      }

      // Construct using cmvr.api.AgvCommand.RobotStatusBatteryCommand.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotStatusBatteryCommand_descriptor;
      }

      @java.lang.Override
      public cmvr.api.AgvCommand.RobotStatusBatteryCommand getDefaultInstanceForType() {
        return cmvr.api.AgvCommand.RobotStatusBatteryCommand.getDefaultInstance();
      }

      @java.lang.Override
      public cmvr.api.AgvCommand.RobotStatusBatteryCommand build() {
        cmvr.api.AgvCommand.RobotStatusBatteryCommand result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cmvr.api.AgvCommand.RobotStatusBatteryCommand buildPartial() {
        cmvr.api.AgvCommand.RobotStatusBatteryCommand result = new cmvr.api.AgvCommand.RobotStatusBatteryCommand(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cmvr.api.AgvCommand.RobotStatusBatteryCommand) {
          return mergeFrom((cmvr.api.AgvCommand.RobotStatusBatteryCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cmvr.api.AgvCommand.RobotStatusBatteryCommand other) {
        if (other == cmvr.api.AgvCommand.RobotStatusBatteryCommand.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:cmvr.api.RobotStatusBatteryCommand)
    }

    // @@protoc_insertion_point(class_scope:cmvr.api.RobotStatusBatteryCommand)
    private static final cmvr.api.AgvCommand.RobotStatusBatteryCommand DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new cmvr.api.AgvCommand.RobotStatusBatteryCommand();
    }

    public static cmvr.api.AgvCommand.RobotStatusBatteryCommand getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<RobotStatusBatteryCommand>
        PARSER = new com.google.protobuf.AbstractParser<RobotStatusBatteryCommand>() {
      @java.lang.Override
      public RobotStatusBatteryCommand parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<RobotStatusBatteryCommand> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<RobotStatusBatteryCommand> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public cmvr.api.AgvCommand.RobotStatusBatteryCommand getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface AgvRobotLocationOrBuilder extends
      // @@protoc_insertion_point(interface_extends:cmvr.api.AgvRobotLocation)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * X坐标(m)
     * </pre>
     *
     * <code>optional double x = 1;</code>
     * @return Whether the x field is set.
     */
    boolean hasX();
    /**
     * <pre>
     * X坐标(m)
     * </pre>
     *
     * <code>optional double x = 1;</code>
     * @return The x.
     */
    double getX();

    /**
     * <pre>
     * Y坐标(m)
     * </pre>
     *
     * <code>optional double y = 2;</code>
     * @return Whether the y field is set.
     */
    boolean hasY();
    /**
     * <pre>
     * Y坐标(m)
     * </pre>
     *
     * <code>optional double y = 2;</code>
     * @return The y.
     */
    double getY();

    /**
     * <pre>
     * 姿态角(rad)
     * </pre>
     *
     * <code>optional double angle = 3;</code>
     * @return Whether the angle field is set.
     */
    boolean hasAngle();
    /**
     * <pre>
     * 姿态角(rad)
     * </pre>
     *
     * <code>optional double angle = 3;</code>
     * @return The angle.
     */
    double getAngle();

    /**
     * <pre>
     * 定位置信度[0,1]
     * </pre>
     *
     * <code>optional double confidence = 4;</code>
     * @return Whether the confidence field is set.
     */
    boolean hasConfidence();
    /**
     * <pre>
     * 定位置信度[0,1]
     * </pre>
     *
     * <code>optional double confidence = 4;</code>
     * @return The confidence.
     */
    double getConfidence();

    /**
     * <pre>
     * 当前最近站点ID
     * </pre>
     *
     * <code>optional string current_station = 5;</code>
     * @return Whether the currentStation field is set.
     */
    boolean hasCurrentStation();
    /**
     * <pre>
     * 当前最近站点ID
     * </pre>
     *
     * <code>optional string current_station = 5;</code>
     * @return The currentStation.
     */
    java.lang.String getCurrentStation();
    /**
     * <pre>
     * 当前最近站点ID
     * </pre>
     *
     * <code>optional string current_station = 5;</code>
     * @return The bytes for currentStation.
     */
    com.google.protobuf.ByteString
        getCurrentStationBytes();

    /**
     * <pre>
     * 上一站点ID
     * </pre>
     *
     * <code>optional string last_station = 6;</code>
     * @return Whether the lastStation field is set.
     */
    boolean hasLastStation();
    /**
     * <pre>
     * 上一站点ID
     * </pre>
     *
     * <code>optional string last_station = 6;</code>
     * @return The lastStation.
     */
    java.lang.String getLastStation();
    /**
     * <pre>
     * 上一站点ID
     * </pre>
     *
     * <code>optional string last_station = 6;</code>
     * @return The bytes for lastStation.
     */
    com.google.protobuf.ByteString
        getLastStationBytes();

    /**
     * <pre>
     * 定位方式
     * </pre>
     *
     * <code>optional int32 loc_method = 7;</code>
     * @return Whether the locMethod field is set.
     */
    boolean hasLocMethod();
    /**
     * <pre>
     * 定位方式
     * </pre>
     *
     * <code>optional int32 loc_method = 7;</code>
     * @return The locMethod.
     */
    int getLocMethod();

    /**
     * <pre>
     * 错误码
     * </pre>
     *
     * <code>optional int32 ret_code = 8;</code>
     * @return Whether the retCode field is set.
     */
    boolean hasRetCode();
    /**
     * <pre>
     * 错误码
     * </pre>
     *
     * <code>optional int32 ret_code = 8;</code>
     * @return The retCode.
     */
    int getRetCode();

    /**
     * <pre>
     * 时间戳
     * </pre>
     *
     * <code>optional string create_on = 9;</code>
     * @return Whether the createOn field is set.
     */
    boolean hasCreateOn();
    /**
     * <pre>
     * 时间戳
     * </pre>
     *
     * <code>optional string create_on = 9;</code>
     * @return The createOn.
     */
    java.lang.String getCreateOn();
    /**
     * <pre>
     * 时间戳
     * </pre>
     *
     * <code>optional string create_on = 9;</code>
     * @return The bytes for createOn.
     */
    com.google.protobuf.ByteString
        getCreateOnBytes();

    /**
     * <pre>
     * 错误信息
     * </pre>
     *
     * <code>optional string err_msg = 10;</code>
     * @return Whether the errMsg field is set.
     */
    boolean hasErrMsg();
    /**
     * <pre>
     * 错误信息
     * </pre>
     *
     * <code>optional string err_msg = 10;</code>
     * @return The errMsg.
     */
    java.lang.String getErrMsg();
    /**
     * <pre>
     * 错误信息
     * </pre>
     *
     * <code>optional string err_msg = 10;</code>
     * @return The bytes for errMsg.
     */
    com.google.protobuf.ByteString
        getErrMsgBytes();
  }
  /**
   * <pre>
   * ===================== 机器人位置查询 =====================
   * </pre>
   *
   * Protobuf type {@code cmvr.api.AgvRobotLocation}
   */
  public static final class AgvRobotLocation extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:cmvr.api.AgvRobotLocation)
      AgvRobotLocationOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AgvRobotLocation.newBuilder() to construct.
    private AgvRobotLocation(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private AgvRobotLocation() {
      currentStation_ = "";
      lastStation_ = "";
      createOn_ = "";
      errMsg_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new AgvRobotLocation();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvRobotLocation_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvRobotLocation_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              cmvr.api.AgvCommand.AgvRobotLocation.class, cmvr.api.AgvCommand.AgvRobotLocation.Builder.class);
    }

    private int bitField0_;
    public static final int X_FIELD_NUMBER = 1;
    private double x_;
    /**
     * <pre>
     * X坐标(m)
     * </pre>
     *
     * <code>optional double x = 1;</code>
     * @return Whether the x field is set.
     */
    @java.lang.Override
    public boolean hasX() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * X坐标(m)
     * </pre>
     *
     * <code>optional double x = 1;</code>
     * @return The x.
     */
    @java.lang.Override
    public double getX() {
      return x_;
    }

    public static final int Y_FIELD_NUMBER = 2;
    private double y_;
    /**
     * <pre>
     * Y坐标(m)
     * </pre>
     *
     * <code>optional double y = 2;</code>
     * @return Whether the y field is set.
     */
    @java.lang.Override
    public boolean hasY() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * Y坐标(m)
     * </pre>
     *
     * <code>optional double y = 2;</code>
     * @return The y.
     */
    @java.lang.Override
    public double getY() {
      return y_;
    }

    public static final int ANGLE_FIELD_NUMBER = 3;
    private double angle_;
    /**
     * <pre>
     * 姿态角(rad)
     * </pre>
     *
     * <code>optional double angle = 3;</code>
     * @return Whether the angle field is set.
     */
    @java.lang.Override
    public boolean hasAngle() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * 姿态角(rad)
     * </pre>
     *
     * <code>optional double angle = 3;</code>
     * @return The angle.
     */
    @java.lang.Override
    public double getAngle() {
      return angle_;
    }

    public static final int CONFIDENCE_FIELD_NUMBER = 4;
    private double confidence_;
    /**
     * <pre>
     * 定位置信度[0,1]
     * </pre>
     *
     * <code>optional double confidence = 4;</code>
     * @return Whether the confidence field is set.
     */
    @java.lang.Override
    public boolean hasConfidence() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * 定位置信度[0,1]
     * </pre>
     *
     * <code>optional double confidence = 4;</code>
     * @return The confidence.
     */
    @java.lang.Override
    public double getConfidence() {
      return confidence_;
    }

    public static final int CURRENT_STATION_FIELD_NUMBER = 5;
    private volatile java.lang.Object currentStation_;
    /**
     * <pre>
     * 当前最近站点ID
     * </pre>
     *
     * <code>optional string current_station = 5;</code>
     * @return Whether the currentStation field is set.
     */
    @java.lang.Override
    public boolean hasCurrentStation() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <pre>
     * 当前最近站点ID
     * </pre>
     *
     * <code>optional string current_station = 5;</code>
     * @return The currentStation.
     */
    @java.lang.Override
    public java.lang.String getCurrentStation() {
      java.lang.Object ref = currentStation_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        currentStation_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * 当前最近站点ID
     * </pre>
     *
     * <code>optional string current_station = 5;</code>
     * @return The bytes for currentStation.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getCurrentStationBytes() {
      java.lang.Object ref = currentStation_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        currentStation_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int LAST_STATION_FIELD_NUMBER = 6;
    private volatile java.lang.Object lastStation_;
    /**
     * <pre>
     * 上一站点ID
     * </pre>
     *
     * <code>optional string last_station = 6;</code>
     * @return Whether the lastStation field is set.
     */
    @java.lang.Override
    public boolean hasLastStation() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <pre>
     * 上一站点ID
     * </pre>
     *
     * <code>optional string last_station = 6;</code>
     * @return The lastStation.
     */
    @java.lang.Override
    public java.lang.String getLastStation() {
      java.lang.Object ref = lastStation_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        lastStation_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * 上一站点ID
     * </pre>
     *
     * <code>optional string last_station = 6;</code>
     * @return The bytes for lastStation.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getLastStationBytes() {
      java.lang.Object ref = lastStation_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        lastStation_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int LOC_METHOD_FIELD_NUMBER = 7;
    private int locMethod_;
    /**
     * <pre>
     * 定位方式
     * </pre>
     *
     * <code>optional int32 loc_method = 7;</code>
     * @return Whether the locMethod field is set.
     */
    @java.lang.Override
    public boolean hasLocMethod() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <pre>
     * 定位方式
     * </pre>
     *
     * <code>optional int32 loc_method = 7;</code>
     * @return The locMethod.
     */
    @java.lang.Override
    public int getLocMethod() {
      return locMethod_;
    }

    public static final int RET_CODE_FIELD_NUMBER = 8;
    private int retCode_;
    /**
     * <pre>
     * 错误码
     * </pre>
     *
     * <code>optional int32 ret_code = 8;</code>
     * @return Whether the retCode field is set.
     */
    @java.lang.Override
    public boolean hasRetCode() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * <pre>
     * 错误码
     * </pre>
     *
     * <code>optional int32 ret_code = 8;</code>
     * @return The retCode.
     */
    @java.lang.Override
    public int getRetCode() {
      return retCode_;
    }

    public static final int CREATE_ON_FIELD_NUMBER = 9;
    private volatile java.lang.Object createOn_;
    /**
     * <pre>
     * 时间戳
     * </pre>
     *
     * <code>optional string create_on = 9;</code>
     * @return Whether the createOn field is set.
     */
    @java.lang.Override
    public boolean hasCreateOn() {
      return ((bitField0_ & 0x00000100) != 0);
    }
    /**
     * <pre>
     * 时间戳
     * </pre>
     *
     * <code>optional string create_on = 9;</code>
     * @return The createOn.
     */
    @java.lang.Override
    public java.lang.String getCreateOn() {
      java.lang.Object ref = createOn_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        createOn_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * 时间戳
     * </pre>
     *
     * <code>optional string create_on = 9;</code>
     * @return The bytes for createOn.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getCreateOnBytes() {
      java.lang.Object ref = createOn_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        createOn_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ERR_MSG_FIELD_NUMBER = 10;
    private volatile java.lang.Object errMsg_;
    /**
     * <pre>
     * 错误信息
     * </pre>
     *
     * <code>optional string err_msg = 10;</code>
     * @return Whether the errMsg field is set.
     */
    @java.lang.Override
    public boolean hasErrMsg() {
      return ((bitField0_ & 0x00000200) != 0);
    }
    /**
     * <pre>
     * 错误信息
     * </pre>
     *
     * <code>optional string err_msg = 10;</code>
     * @return The errMsg.
     */
    @java.lang.Override
    public java.lang.String getErrMsg() {
      java.lang.Object ref = errMsg_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        errMsg_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * 错误信息
     * </pre>
     *
     * <code>optional string err_msg = 10;</code>
     * @return The bytes for errMsg.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getErrMsgBytes() {
      java.lang.Object ref = errMsg_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        errMsg_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeDouble(1, x_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeDouble(2, y_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeDouble(3, angle_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeDouble(4, confidence_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, currentStation_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, lastStation_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        output.writeInt32(7, locMethod_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        output.writeInt32(8, retCode_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 9, createOn_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 10, errMsg_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(1, x_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(2, y_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(3, angle_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(4, confidence_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, currentStation_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, lastStation_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(7, locMethod_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(8, retCode_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(9, createOn_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, errMsg_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof cmvr.api.AgvCommand.AgvRobotLocation)) {
        return super.equals(obj);
      }
      cmvr.api.AgvCommand.AgvRobotLocation other = (cmvr.api.AgvCommand.AgvRobotLocation) obj;

      if (hasX() != other.hasX()) return false;
      if (hasX()) {
        if (java.lang.Double.doubleToLongBits(getX())
            != java.lang.Double.doubleToLongBits(
                other.getX())) return false;
      }
      if (hasY() != other.hasY()) return false;
      if (hasY()) {
        if (java.lang.Double.doubleToLongBits(getY())
            != java.lang.Double.doubleToLongBits(
                other.getY())) return false;
      }
      if (hasAngle() != other.hasAngle()) return false;
      if (hasAngle()) {
        if (java.lang.Double.doubleToLongBits(getAngle())
            != java.lang.Double.doubleToLongBits(
                other.getAngle())) return false;
      }
      if (hasConfidence() != other.hasConfidence()) return false;
      if (hasConfidence()) {
        if (java.lang.Double.doubleToLongBits(getConfidence())
            != java.lang.Double.doubleToLongBits(
                other.getConfidence())) return false;
      }
      if (hasCurrentStation() != other.hasCurrentStation()) return false;
      if (hasCurrentStation()) {
        if (!getCurrentStation()
            .equals(other.getCurrentStation())) return false;
      }
      if (hasLastStation() != other.hasLastStation()) return false;
      if (hasLastStation()) {
        if (!getLastStation()
            .equals(other.getLastStation())) return false;
      }
      if (hasLocMethod() != other.hasLocMethod()) return false;
      if (hasLocMethod()) {
        if (getLocMethod()
            != other.getLocMethod()) return false;
      }
      if (hasRetCode() != other.hasRetCode()) return false;
      if (hasRetCode()) {
        if (getRetCode()
            != other.getRetCode()) return false;
      }
      if (hasCreateOn() != other.hasCreateOn()) return false;
      if (hasCreateOn()) {
        if (!getCreateOn()
            .equals(other.getCreateOn())) return false;
      }
      if (hasErrMsg() != other.hasErrMsg()) return false;
      if (hasErrMsg()) {
        if (!getErrMsg()
            .equals(other.getErrMsg())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasX()) {
        hash = (37 * hash) + X_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getX()));
      }
      if (hasY()) {
        hash = (37 * hash) + Y_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getY()));
      }
      if (hasAngle()) {
        hash = (37 * hash) + ANGLE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getAngle()));
      }
      if (hasConfidence()) {
        hash = (37 * hash) + CONFIDENCE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getConfidence()));
      }
      if (hasCurrentStation()) {
        hash = (37 * hash) + CURRENT_STATION_FIELD_NUMBER;
        hash = (53 * hash) + getCurrentStation().hashCode();
      }
      if (hasLastStation()) {
        hash = (37 * hash) + LAST_STATION_FIELD_NUMBER;
        hash = (53 * hash) + getLastStation().hashCode();
      }
      if (hasLocMethod()) {
        hash = (37 * hash) + LOC_METHOD_FIELD_NUMBER;
        hash = (53 * hash) + getLocMethod();
      }
      if (hasRetCode()) {
        hash = (37 * hash) + RET_CODE_FIELD_NUMBER;
        hash = (53 * hash) + getRetCode();
      }
      if (hasCreateOn()) {
        hash = (37 * hash) + CREATE_ON_FIELD_NUMBER;
        hash = (53 * hash) + getCreateOn().hashCode();
      }
      if (hasErrMsg()) {
        hash = (37 * hash) + ERR_MSG_FIELD_NUMBER;
        hash = (53 * hash) + getErrMsg().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cmvr.api.AgvCommand.AgvRobotLocation parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.AgvRobotLocation parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.AgvRobotLocation parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.AgvRobotLocation parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.AgvRobotLocation parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.AgvRobotLocation parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.AgvRobotLocation parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.AgvRobotLocation parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.AgvRobotLocation parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.AgvRobotLocation parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.AgvRobotLocation parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.AgvRobotLocation parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(cmvr.api.AgvCommand.AgvRobotLocation prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * ===================== 机器人位置查询 =====================
     * </pre>
     *
     * Protobuf type {@code cmvr.api.AgvRobotLocation}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:cmvr.api.AgvRobotLocation)
        cmvr.api.AgvCommand.AgvRobotLocationOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvRobotLocation_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvRobotLocation_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.AgvCommand.AgvRobotLocation.class, cmvr.api.AgvCommand.AgvRobotLocation.Builder.class);
      }

      // Construct using cmvr.api.AgvCommand.AgvRobotLocation.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        x_ = 0D;
        bitField0_ = (bitField0_ & ~0x00000001);
        y_ = 0D;
        bitField0_ = (bitField0_ & ~0x00000002);
        angle_ = 0D;
        bitField0_ = (bitField0_ & ~0x00000004);
        confidence_ = 0D;
        bitField0_ = (bitField0_ & ~0x00000008);
        currentStation_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        lastStation_ = "";
        bitField0_ = (bitField0_ & ~0x00000020);
        locMethod_ = 0;
        bitField0_ = (bitField0_ & ~0x00000040);
        retCode_ = 0;
        bitField0_ = (bitField0_ & ~0x00000080);
        createOn_ = "";
        bitField0_ = (bitField0_ & ~0x00000100);
        errMsg_ = "";
        bitField0_ = (bitField0_ & ~0x00000200);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvRobotLocation_descriptor;
      }

      @java.lang.Override
      public cmvr.api.AgvCommand.AgvRobotLocation getDefaultInstanceForType() {
        return cmvr.api.AgvCommand.AgvRobotLocation.getDefaultInstance();
      }

      @java.lang.Override
      public cmvr.api.AgvCommand.AgvRobotLocation build() {
        cmvr.api.AgvCommand.AgvRobotLocation result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cmvr.api.AgvCommand.AgvRobotLocation buildPartial() {
        cmvr.api.AgvCommand.AgvRobotLocation result = new cmvr.api.AgvCommand.AgvRobotLocation(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.x_ = x_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.y_ = y_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.angle_ = angle_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.confidence_ = confidence_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          to_bitField0_ |= 0x00000010;
        }
        result.currentStation_ = currentStation_;
        if (((from_bitField0_ & 0x00000020) != 0)) {
          to_bitField0_ |= 0x00000020;
        }
        result.lastStation_ = lastStation_;
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.locMethod_ = locMethod_;
          to_bitField0_ |= 0x00000040;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.retCode_ = retCode_;
          to_bitField0_ |= 0x00000080;
        }
        if (((from_bitField0_ & 0x00000100) != 0)) {
          to_bitField0_ |= 0x00000100;
        }
        result.createOn_ = createOn_;
        if (((from_bitField0_ & 0x00000200) != 0)) {
          to_bitField0_ |= 0x00000200;
        }
        result.errMsg_ = errMsg_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cmvr.api.AgvCommand.AgvRobotLocation) {
          return mergeFrom((cmvr.api.AgvCommand.AgvRobotLocation)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cmvr.api.AgvCommand.AgvRobotLocation other) {
        if (other == cmvr.api.AgvCommand.AgvRobotLocation.getDefaultInstance()) return this;
        if (other.hasX()) {
          setX(other.getX());
        }
        if (other.hasY()) {
          setY(other.getY());
        }
        if (other.hasAngle()) {
          setAngle(other.getAngle());
        }
        if (other.hasConfidence()) {
          setConfidence(other.getConfidence());
        }
        if (other.hasCurrentStation()) {
          bitField0_ |= 0x00000010;
          currentStation_ = other.currentStation_;
          onChanged();
        }
        if (other.hasLastStation()) {
          bitField0_ |= 0x00000020;
          lastStation_ = other.lastStation_;
          onChanged();
        }
        if (other.hasLocMethod()) {
          setLocMethod(other.getLocMethod());
        }
        if (other.hasRetCode()) {
          setRetCode(other.getRetCode());
        }
        if (other.hasCreateOn()) {
          bitField0_ |= 0x00000100;
          createOn_ = other.createOn_;
          onChanged();
        }
        if (other.hasErrMsg()) {
          bitField0_ |= 0x00000200;
          errMsg_ = other.errMsg_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 9: {
                x_ = input.readDouble();
                bitField0_ |= 0x00000001;
                break;
              } // case 9
              case 17: {
                y_ = input.readDouble();
                bitField0_ |= 0x00000002;
                break;
              } // case 17
              case 25: {
                angle_ = input.readDouble();
                bitField0_ |= 0x00000004;
                break;
              } // case 25
              case 33: {
                confidence_ = input.readDouble();
                bitField0_ |= 0x00000008;
                break;
              } // case 33
              case 42: {
                currentStation_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000010;
                break;
              } // case 42
              case 50: {
                lastStation_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000020;
                break;
              } // case 50
              case 56: {
                locMethod_ = input.readInt32();
                bitField0_ |= 0x00000040;
                break;
              } // case 56
              case 64: {
                retCode_ = input.readInt32();
                bitField0_ |= 0x00000080;
                break;
              } // case 64
              case 74: {
                createOn_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000100;
                break;
              } // case 74
              case 82: {
                errMsg_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000200;
                break;
              } // case 82
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private double x_ ;
      /**
       * <pre>
       * X坐标(m)
       * </pre>
       *
       * <code>optional double x = 1;</code>
       * @return Whether the x field is set.
       */
      @java.lang.Override
      public boolean hasX() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * X坐标(m)
       * </pre>
       *
       * <code>optional double x = 1;</code>
       * @return The x.
       */
      @java.lang.Override
      public double getX() {
        return x_;
      }
      /**
       * <pre>
       * X坐标(m)
       * </pre>
       *
       * <code>optional double x = 1;</code>
       * @param value The x to set.
       * @return This builder for chaining.
       */
      public Builder setX(double value) {
        bitField0_ |= 0x00000001;
        x_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * X坐标(m)
       * </pre>
       *
       * <code>optional double x = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearX() {
        bitField0_ = (bitField0_ & ~0x00000001);
        x_ = 0D;
        onChanged();
        return this;
      }

      private double y_ ;
      /**
       * <pre>
       * Y坐标(m)
       * </pre>
       *
       * <code>optional double y = 2;</code>
       * @return Whether the y field is set.
       */
      @java.lang.Override
      public boolean hasY() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * Y坐标(m)
       * </pre>
       *
       * <code>optional double y = 2;</code>
       * @return The y.
       */
      @java.lang.Override
      public double getY() {
        return y_;
      }
      /**
       * <pre>
       * Y坐标(m)
       * </pre>
       *
       * <code>optional double y = 2;</code>
       * @param value The y to set.
       * @return This builder for chaining.
       */
      public Builder setY(double value) {
        bitField0_ |= 0x00000002;
        y_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Y坐标(m)
       * </pre>
       *
       * <code>optional double y = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearY() {
        bitField0_ = (bitField0_ & ~0x00000002);
        y_ = 0D;
        onChanged();
        return this;
      }

      private double angle_ ;
      /**
       * <pre>
       * 姿态角(rad)
       * </pre>
       *
       * <code>optional double angle = 3;</code>
       * @return Whether the angle field is set.
       */
      @java.lang.Override
      public boolean hasAngle() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * 姿态角(rad)
       * </pre>
       *
       * <code>optional double angle = 3;</code>
       * @return The angle.
       */
      @java.lang.Override
      public double getAngle() {
        return angle_;
      }
      /**
       * <pre>
       * 姿态角(rad)
       * </pre>
       *
       * <code>optional double angle = 3;</code>
       * @param value The angle to set.
       * @return This builder for chaining.
       */
      public Builder setAngle(double value) {
        bitField0_ |= 0x00000004;
        angle_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 姿态角(rad)
       * </pre>
       *
       * <code>optional double angle = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearAngle() {
        bitField0_ = (bitField0_ & ~0x00000004);
        angle_ = 0D;
        onChanged();
        return this;
      }

      private double confidence_ ;
      /**
       * <pre>
       * 定位置信度[0,1]
       * </pre>
       *
       * <code>optional double confidence = 4;</code>
       * @return Whether the confidence field is set.
       */
      @java.lang.Override
      public boolean hasConfidence() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * 定位置信度[0,1]
       * </pre>
       *
       * <code>optional double confidence = 4;</code>
       * @return The confidence.
       */
      @java.lang.Override
      public double getConfidence() {
        return confidence_;
      }
      /**
       * <pre>
       * 定位置信度[0,1]
       * </pre>
       *
       * <code>optional double confidence = 4;</code>
       * @param value The confidence to set.
       * @return This builder for chaining.
       */
      public Builder setConfidence(double value) {
        bitField0_ |= 0x00000008;
        confidence_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 定位置信度[0,1]
       * </pre>
       *
       * <code>optional double confidence = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearConfidence() {
        bitField0_ = (bitField0_ & ~0x00000008);
        confidence_ = 0D;
        onChanged();
        return this;
      }

      private java.lang.Object currentStation_ = "";
      /**
       * <pre>
       * 当前最近站点ID
       * </pre>
       *
       * <code>optional string current_station = 5;</code>
       * @return Whether the currentStation field is set.
       */
      public boolean hasCurrentStation() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * 当前最近站点ID
       * </pre>
       *
       * <code>optional string current_station = 5;</code>
       * @return The currentStation.
       */
      public java.lang.String getCurrentStation() {
        java.lang.Object ref = currentStation_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          currentStation_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * 当前最近站点ID
       * </pre>
       *
       * <code>optional string current_station = 5;</code>
       * @return The bytes for currentStation.
       */
      public com.google.protobuf.ByteString
          getCurrentStationBytes() {
        java.lang.Object ref = currentStation_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          currentStation_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * 当前最近站点ID
       * </pre>
       *
       * <code>optional string current_station = 5;</code>
       * @param value The currentStation to set.
       * @return This builder for chaining.
       */
      public Builder setCurrentStation(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        currentStation_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 当前最近站点ID
       * </pre>
       *
       * <code>optional string current_station = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearCurrentStation() {
        bitField0_ = (bitField0_ & ~0x00000010);
        currentStation_ = getDefaultInstance().getCurrentStation();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 当前最近站点ID
       * </pre>
       *
       * <code>optional string current_station = 5;</code>
       * @param value The bytes for currentStation to set.
       * @return This builder for chaining.
       */
      public Builder setCurrentStationBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        bitField0_ |= 0x00000010;
        currentStation_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object lastStation_ = "";
      /**
       * <pre>
       * 上一站点ID
       * </pre>
       *
       * <code>optional string last_station = 6;</code>
       * @return Whether the lastStation field is set.
       */
      public boolean hasLastStation() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <pre>
       * 上一站点ID
       * </pre>
       *
       * <code>optional string last_station = 6;</code>
       * @return The lastStation.
       */
      public java.lang.String getLastStation() {
        java.lang.Object ref = lastStation_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          lastStation_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * 上一站点ID
       * </pre>
       *
       * <code>optional string last_station = 6;</code>
       * @return The bytes for lastStation.
       */
      public com.google.protobuf.ByteString
          getLastStationBytes() {
        java.lang.Object ref = lastStation_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          lastStation_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * 上一站点ID
       * </pre>
       *
       * <code>optional string last_station = 6;</code>
       * @param value The lastStation to set.
       * @return This builder for chaining.
       */
      public Builder setLastStation(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        lastStation_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 上一站点ID
       * </pre>
       *
       * <code>optional string last_station = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearLastStation() {
        bitField0_ = (bitField0_ & ~0x00000020);
        lastStation_ = getDefaultInstance().getLastStation();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 上一站点ID
       * </pre>
       *
       * <code>optional string last_station = 6;</code>
       * @param value The bytes for lastStation to set.
       * @return This builder for chaining.
       */
      public Builder setLastStationBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        bitField0_ |= 0x00000020;
        lastStation_ = value;
        onChanged();
        return this;
      }

      private int locMethod_ ;
      /**
       * <pre>
       * 定位方式
       * </pre>
       *
       * <code>optional int32 loc_method = 7;</code>
       * @return Whether the locMethod field is set.
       */
      @java.lang.Override
      public boolean hasLocMethod() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <pre>
       * 定位方式
       * </pre>
       *
       * <code>optional int32 loc_method = 7;</code>
       * @return The locMethod.
       */
      @java.lang.Override
      public int getLocMethod() {
        return locMethod_;
      }
      /**
       * <pre>
       * 定位方式
       * </pre>
       *
       * <code>optional int32 loc_method = 7;</code>
       * @param value The locMethod to set.
       * @return This builder for chaining.
       */
      public Builder setLocMethod(int value) {
        bitField0_ |= 0x00000040;
        locMethod_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 定位方式
       * </pre>
       *
       * <code>optional int32 loc_method = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearLocMethod() {
        bitField0_ = (bitField0_ & ~0x00000040);
        locMethod_ = 0;
        onChanged();
        return this;
      }

      private int retCode_ ;
      /**
       * <pre>
       * 错误码
       * </pre>
       *
       * <code>optional int32 ret_code = 8;</code>
       * @return Whether the retCode field is set.
       */
      @java.lang.Override
      public boolean hasRetCode() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <pre>
       * 错误码
       * </pre>
       *
       * <code>optional int32 ret_code = 8;</code>
       * @return The retCode.
       */
      @java.lang.Override
      public int getRetCode() {
        return retCode_;
      }
      /**
       * <pre>
       * 错误码
       * </pre>
       *
       * <code>optional int32 ret_code = 8;</code>
       * @param value The retCode to set.
       * @return This builder for chaining.
       */
      public Builder setRetCode(int value) {
        bitField0_ |= 0x00000080;
        retCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 错误码
       * </pre>
       *
       * <code>optional int32 ret_code = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearRetCode() {
        bitField0_ = (bitField0_ & ~0x00000080);
        retCode_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object createOn_ = "";
      /**
       * <pre>
       * 时间戳
       * </pre>
       *
       * <code>optional string create_on = 9;</code>
       * @return Whether the createOn field is set.
       */
      public boolean hasCreateOn() {
        return ((bitField0_ & 0x00000100) != 0);
      }
      /**
       * <pre>
       * 时间戳
       * </pre>
       *
       * <code>optional string create_on = 9;</code>
       * @return The createOn.
       */
      public java.lang.String getCreateOn() {
        java.lang.Object ref = createOn_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          createOn_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * 时间戳
       * </pre>
       *
       * <code>optional string create_on = 9;</code>
       * @return The bytes for createOn.
       */
      public com.google.protobuf.ByteString
          getCreateOnBytes() {
        java.lang.Object ref = createOn_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          createOn_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * 时间戳
       * </pre>
       *
       * <code>optional string create_on = 9;</code>
       * @param value The createOn to set.
       * @return This builder for chaining.
       */
      public Builder setCreateOn(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000100;
        createOn_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 时间戳
       * </pre>
       *
       * <code>optional string create_on = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearCreateOn() {
        bitField0_ = (bitField0_ & ~0x00000100);
        createOn_ = getDefaultInstance().getCreateOn();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 时间戳
       * </pre>
       *
       * <code>optional string create_on = 9;</code>
       * @param value The bytes for createOn to set.
       * @return This builder for chaining.
       */
      public Builder setCreateOnBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        bitField0_ |= 0x00000100;
        createOn_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object errMsg_ = "";
      /**
       * <pre>
       * 错误信息
       * </pre>
       *
       * <code>optional string err_msg = 10;</code>
       * @return Whether the errMsg field is set.
       */
      public boolean hasErrMsg() {
        return ((bitField0_ & 0x00000200) != 0);
      }
      /**
       * <pre>
       * 错误信息
       * </pre>
       *
       * <code>optional string err_msg = 10;</code>
       * @return The errMsg.
       */
      public java.lang.String getErrMsg() {
        java.lang.Object ref = errMsg_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          errMsg_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * 错误信息
       * </pre>
       *
       * <code>optional string err_msg = 10;</code>
       * @return The bytes for errMsg.
       */
      public com.google.protobuf.ByteString
          getErrMsgBytes() {
        java.lang.Object ref = errMsg_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          errMsg_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * 错误信息
       * </pre>
       *
       * <code>optional string err_msg = 10;</code>
       * @param value The errMsg to set.
       * @return This builder for chaining.
       */
      public Builder setErrMsg(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000200;
        errMsg_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 错误信息
       * </pre>
       *
       * <code>optional string err_msg = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearErrMsg() {
        bitField0_ = (bitField0_ & ~0x00000200);
        errMsg_ = getDefaultInstance().getErrMsg();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 错误信息
       * </pre>
       *
       * <code>optional string err_msg = 10;</code>
       * @param value The bytes for errMsg to set.
       * @return This builder for chaining.
       */
      public Builder setErrMsgBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        bitField0_ |= 0x00000200;
        errMsg_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:cmvr.api.AgvRobotLocation)
    }

    // @@protoc_insertion_point(class_scope:cmvr.api.AgvRobotLocation)
    private static final cmvr.api.AgvCommand.AgvRobotLocation DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new cmvr.api.AgvCommand.AgvRobotLocation();
    }

    public static cmvr.api.AgvCommand.AgvRobotLocation getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<AgvRobotLocation>
        PARSER = new com.google.protobuf.AbstractParser<AgvRobotLocation>() {
      @java.lang.Override
      public AgvRobotLocation parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<AgvRobotLocation> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<AgvRobotLocation> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public cmvr.api.AgvCommand.AgvRobotLocation getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface RobotStatusLocCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:cmvr.api.RobotStatusLocCommand)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code cmvr.api.RobotStatusLocCommand}
   */
  public static final class RobotStatusLocCommand extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:cmvr.api.RobotStatusLocCommand)
      RobotStatusLocCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use RobotStatusLocCommand.newBuilder() to construct.
    private RobotStatusLocCommand(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private RobotStatusLocCommand() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new RobotStatusLocCommand();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotStatusLocCommand_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotStatusLocCommand_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              cmvr.api.AgvCommand.RobotStatusLocCommand.class, cmvr.api.AgvCommand.RobotStatusLocCommand.Builder.class);
    }

    public interface RequestOrBuilder extends
        // @@protoc_insertion_point(interface_extends:cmvr.api.RobotStatusLocCommand.Request)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Request getHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder();
    }
    /**
     * Protobuf type {@code cmvr.api.RobotStatusLocCommand.Request}
     */
    public static final class Request extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.RobotStatusLocCommand.Request)
        RequestOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Request.newBuilder() to construct.
      private Request(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Request() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Request();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotStatusLocCommand_Request_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotStatusLocCommand_Request_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.AgvCommand.RobotStatusLocCommand.Request.class, cmvr.api.AgvCommand.RobotStatusLocCommand.Request.Builder.class);
      }

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Request header_;
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return The header.
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.Request getHeader() {
        return header_ == null ? cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() {
        return getHeader();
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (header_ != null) {
          output.writeMessage(1, getHeader());
        }
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (header_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getHeader());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof cmvr.api.AgvCommand.RobotStatusLocCommand.Request)) {
          return super.equals(obj);
        }
        cmvr.api.AgvCommand.RobotStatusLocCommand.Request other = (cmvr.api.AgvCommand.RobotStatusLocCommand.Request) obj;

        if (hasHeader() != other.hasHeader()) return false;
        if (hasHeader()) {
          if (!getHeader()
              .equals(other.getHeader())) return false;
        }
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasHeader()) {
          hash = (37 * hash) + HEADER_FIELD_NUMBER;
          hash = (53 * hash) + getHeader().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.AgvCommand.RobotStatusLocCommand.Request parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.RobotStatusLocCommand.Request parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.RobotStatusLocCommand.Request parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.RobotStatusLocCommand.Request parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.RobotStatusLocCommand.Request parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.RobotStatusLocCommand.Request parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.RobotStatusLocCommand.Request parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.RobotStatusLocCommand.Request parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.RobotStatusLocCommand.Request parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.RobotStatusLocCommand.Request parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.RobotStatusLocCommand.Request parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.RobotStatusLocCommand.Request parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(cmvr.api.AgvCommand.RobotStatusLocCommand.Request prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code cmvr.api.RobotStatusLocCommand.Request}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.RobotStatusLocCommand.Request)
          cmvr.api.AgvCommand.RobotStatusLocCommand.RequestOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotStatusLocCommand_Request_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotStatusLocCommand_Request_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  cmvr.api.AgvCommand.RobotStatusLocCommand.Request.class, cmvr.api.AgvCommand.RobotStatusLocCommand.Request.Builder.class);
        }

        // Construct using cmvr.api.AgvCommand.RobotStatusLocCommand.Request.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          if (headerBuilder_ == null) {
            header_ = null;
          } else {
            header_ = null;
            headerBuilder_ = null;
          }
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotStatusLocCommand_Request_descriptor;
        }

        @java.lang.Override
        public cmvr.api.AgvCommand.RobotStatusLocCommand.Request getDefaultInstanceForType() {
          return cmvr.api.AgvCommand.RobotStatusLocCommand.Request.getDefaultInstance();
        }

        @java.lang.Override
        public cmvr.api.AgvCommand.RobotStatusLocCommand.Request build() {
          cmvr.api.AgvCommand.RobotStatusLocCommand.Request result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public cmvr.api.AgvCommand.RobotStatusLocCommand.Request buildPartial() {
          cmvr.api.AgvCommand.RobotStatusLocCommand.Request result = new cmvr.api.AgvCommand.RobotStatusLocCommand.Request(this);
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof cmvr.api.AgvCommand.RobotStatusLocCommand.Request) {
            return mergeFrom((cmvr.api.AgvCommand.RobotStatusLocCommand.Request)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.AgvCommand.RobotStatusLocCommand.Request other) {
          if (other == cmvr.api.AgvCommand.RobotStatusLocCommand.Request.getDefaultInstance()) return this;
          if (other.hasHeader()) {
            mergeHeader(other.getHeader());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  input.readMessage(
                      getHeaderFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 10
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }

        private cmvr.api.Common.CommandHeader.Request header_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder> headerBuilder_;
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         * @return The header.
         */
        public cmvr.api.Common.CommandHeader.Request getHeader() {
          if (headerBuilder_ == null) {
            return header_ == null ? cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
          } else {
            return headerBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder setHeader(cmvr.api.Common.CommandHeader.Request value) {
          if (headerBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            header_ = value;
            onChanged();
          } else {
            headerBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder setHeader(
            cmvr.api.Common.CommandHeader.Request.Builder builderForValue) {
          if (headerBuilder_ == null) {
            header_ = builderForValue.build();
            onChanged();
          } else {
            headerBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder mergeHeader(cmvr.api.Common.CommandHeader.Request value) {
          if (headerBuilder_ == null) {
            if (header_ != null) {
              header_ =
                cmvr.api.Common.CommandHeader.Request.newBuilder(header_).mergeFrom(value).buildPartial();
            } else {
              header_ = value;
            }
            onChanged();
          } else {
            headerBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Request.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() {
          if (headerBuilder_ != null) {
            return headerBuilder_.getMessageOrBuilder();
          } else {
            return header_ == null ?
                cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder> 
            getHeaderFieldBuilder() {
          if (headerBuilder_ == null) {
            headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder>(
                    getHeader(),
                    getParentForChildren(),
                    isClean());
            header_ = null;
          }
          return headerBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:cmvr.api.RobotStatusLocCommand.Request)
      }

      // @@protoc_insertion_point(class_scope:cmvr.api.RobotStatusLocCommand.Request)
      private static final cmvr.api.AgvCommand.RobotStatusLocCommand.Request DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new cmvr.api.AgvCommand.RobotStatusLocCommand.Request();
      }

      public static cmvr.api.AgvCommand.RobotStatusLocCommand.Request getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser<Request>
          PARSER = new com.google.protobuf.AbstractParser<Request>() {
        @java.lang.Override
        public Request parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

      public static com.google.protobuf.Parser<Request> parser() {
        return PARSER;
      }

      @java.lang.Override
      public com.google.protobuf.Parser<Request> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public cmvr.api.AgvCommand.RobotStatusLocCommand.Request getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface FeedbackOrBuilder extends
        // @@protoc_insertion_point(interface_extends:cmvr.api.RobotStatusLocCommand.Feedback)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Feedback getHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder();

      /**
       * <code>.cmvr.api.AgvRobotLocation status = 2;</code>
       * @return Whether the status field is set.
       */
      boolean hasStatus();
      /**
       * <code>.cmvr.api.AgvRobotLocation status = 2;</code>
       * @return The status.
       */
      cmvr.api.AgvCommand.AgvRobotLocation getStatus();
      /**
       * <code>.cmvr.api.AgvRobotLocation status = 2;</code>
       */
      cmvr.api.AgvCommand.AgvRobotLocationOrBuilder getStatusOrBuilder();
    }
    /**
     * Protobuf type {@code cmvr.api.RobotStatusLocCommand.Feedback}
     */
    public static final class Feedback extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.RobotStatusLocCommand.Feedback)
        FeedbackOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Feedback.newBuilder() to construct.
      private Feedback(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Feedback() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Feedback();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotStatusLocCommand_Feedback_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotStatusLocCommand_Feedback_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.AgvCommand.RobotStatusLocCommand.Feedback.class, cmvr.api.AgvCommand.RobotStatusLocCommand.Feedback.Builder.class);
      }

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Feedback header_;
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return The header.
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.Feedback getHeader() {
        return header_ == null ? cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() {
        return getHeader();
      }

      public static final int STATUS_FIELD_NUMBER = 2;
      private cmvr.api.AgvCommand.AgvRobotLocation status_;
      /**
       * <code>.cmvr.api.AgvRobotLocation status = 2;</code>
       * @return Whether the status field is set.
       */
      @java.lang.Override
      public boolean hasStatus() {
        return status_ != null;
      }
      /**
       * <code>.cmvr.api.AgvRobotLocation status = 2;</code>
       * @return The status.
       */
      @java.lang.Override
      public cmvr.api.AgvCommand.AgvRobotLocation getStatus() {
        return status_ == null ? cmvr.api.AgvCommand.AgvRobotLocation.getDefaultInstance() : status_;
      }
      /**
       * <code>.cmvr.api.AgvRobotLocation status = 2;</code>
       */
      @java.lang.Override
      public cmvr.api.AgvCommand.AgvRobotLocationOrBuilder getStatusOrBuilder() {
        return getStatus();
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (header_ != null) {
          output.writeMessage(1, getHeader());
        }
        if (status_ != null) {
          output.writeMessage(2, getStatus());
        }
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (header_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getHeader());
        }
        if (status_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, getStatus());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof cmvr.api.AgvCommand.RobotStatusLocCommand.Feedback)) {
          return super.equals(obj);
        }
        cmvr.api.AgvCommand.RobotStatusLocCommand.Feedback other = (cmvr.api.AgvCommand.RobotStatusLocCommand.Feedback) obj;

        if (hasHeader() != other.hasHeader()) return false;
        if (hasHeader()) {
          if (!getHeader()
              .equals(other.getHeader())) return false;
        }
        if (hasStatus() != other.hasStatus()) return false;
        if (hasStatus()) {
          if (!getStatus()
              .equals(other.getStatus())) return false;
        }
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasHeader()) {
          hash = (37 * hash) + HEADER_FIELD_NUMBER;
          hash = (53 * hash) + getHeader().hashCode();
        }
        if (hasStatus()) {
          hash = (37 * hash) + STATUS_FIELD_NUMBER;
          hash = (53 * hash) + getStatus().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.AgvCommand.RobotStatusLocCommand.Feedback parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.RobotStatusLocCommand.Feedback parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.RobotStatusLocCommand.Feedback parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.RobotStatusLocCommand.Feedback parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.RobotStatusLocCommand.Feedback parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.RobotStatusLocCommand.Feedback parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.RobotStatusLocCommand.Feedback parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.RobotStatusLocCommand.Feedback parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.RobotStatusLocCommand.Feedback parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.RobotStatusLocCommand.Feedback parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.RobotStatusLocCommand.Feedback parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.RobotStatusLocCommand.Feedback parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(cmvr.api.AgvCommand.RobotStatusLocCommand.Feedback prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code cmvr.api.RobotStatusLocCommand.Feedback}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.RobotStatusLocCommand.Feedback)
          cmvr.api.AgvCommand.RobotStatusLocCommand.FeedbackOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotStatusLocCommand_Feedback_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotStatusLocCommand_Feedback_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  cmvr.api.AgvCommand.RobotStatusLocCommand.Feedback.class, cmvr.api.AgvCommand.RobotStatusLocCommand.Feedback.Builder.class);
        }

        // Construct using cmvr.api.AgvCommand.RobotStatusLocCommand.Feedback.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          if (headerBuilder_ == null) {
            header_ = null;
          } else {
            header_ = null;
            headerBuilder_ = null;
          }
          if (statusBuilder_ == null) {
            status_ = null;
          } else {
            status_ = null;
            statusBuilder_ = null;
          }
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotStatusLocCommand_Feedback_descriptor;
        }

        @java.lang.Override
        public cmvr.api.AgvCommand.RobotStatusLocCommand.Feedback getDefaultInstanceForType() {
          return cmvr.api.AgvCommand.RobotStatusLocCommand.Feedback.getDefaultInstance();
        }

        @java.lang.Override
        public cmvr.api.AgvCommand.RobotStatusLocCommand.Feedback build() {
          cmvr.api.AgvCommand.RobotStatusLocCommand.Feedback result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public cmvr.api.AgvCommand.RobotStatusLocCommand.Feedback buildPartial() {
          cmvr.api.AgvCommand.RobotStatusLocCommand.Feedback result = new cmvr.api.AgvCommand.RobotStatusLocCommand.Feedback(this);
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          if (statusBuilder_ == null) {
            result.status_ = status_;
          } else {
            result.status_ = statusBuilder_.build();
          }
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof cmvr.api.AgvCommand.RobotStatusLocCommand.Feedback) {
            return mergeFrom((cmvr.api.AgvCommand.RobotStatusLocCommand.Feedback)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.AgvCommand.RobotStatusLocCommand.Feedback other) {
          if (other == cmvr.api.AgvCommand.RobotStatusLocCommand.Feedback.getDefaultInstance()) return this;
          if (other.hasHeader()) {
            mergeHeader(other.getHeader());
          }
          if (other.hasStatus()) {
            mergeStatus(other.getStatus());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  input.readMessage(
                      getHeaderFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 10
                case 18: {
                  input.readMessage(
                      getStatusFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 18
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }

        private cmvr.api.Common.CommandHeader.Feedback header_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> headerBuilder_;
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         * @return The header.
         */
        public cmvr.api.Common.CommandHeader.Feedback getHeader() {
          if (headerBuilder_ == null) {
            return header_ == null ? cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
          } else {
            return headerBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder setHeader(cmvr.api.Common.CommandHeader.Feedback value) {
          if (headerBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            header_ = value;
            onChanged();
          } else {
            headerBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder setHeader(
            cmvr.api.Common.CommandHeader.Feedback.Builder builderForValue) {
          if (headerBuilder_ == null) {
            header_ = builderForValue.build();
            onChanged();
          } else {
            headerBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder mergeHeader(cmvr.api.Common.CommandHeader.Feedback value) {
          if (headerBuilder_ == null) {
            if (header_ != null) {
              header_ =
                cmvr.api.Common.CommandHeader.Feedback.newBuilder(header_).mergeFrom(value).buildPartial();
            } else {
              header_ = value;
            }
            onChanged();
          } else {
            headerBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Feedback.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() {
          if (headerBuilder_ != null) {
            return headerBuilder_.getMessageOrBuilder();
          } else {
            return header_ == null ?
                cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> 
            getHeaderFieldBuilder() {
          if (headerBuilder_ == null) {
            headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder>(
                    getHeader(),
                    getParentForChildren(),
                    isClean());
            header_ = null;
          }
          return headerBuilder_;
        }

        private cmvr.api.AgvCommand.AgvRobotLocation status_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.AgvCommand.AgvRobotLocation, cmvr.api.AgvCommand.AgvRobotLocation.Builder, cmvr.api.AgvCommand.AgvRobotLocationOrBuilder> statusBuilder_;
        /**
         * <code>.cmvr.api.AgvRobotLocation status = 2;</code>
         * @return Whether the status field is set.
         */
        public boolean hasStatus() {
          return statusBuilder_ != null || status_ != null;
        }
        /**
         * <code>.cmvr.api.AgvRobotLocation status = 2;</code>
         * @return The status.
         */
        public cmvr.api.AgvCommand.AgvRobotLocation getStatus() {
          if (statusBuilder_ == null) {
            return status_ == null ? cmvr.api.AgvCommand.AgvRobotLocation.getDefaultInstance() : status_;
          } else {
            return statusBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.AgvRobotLocation status = 2;</code>
         */
        public Builder setStatus(cmvr.api.AgvCommand.AgvRobotLocation value) {
          if (statusBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            status_ = value;
            onChanged();
          } else {
            statusBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.AgvRobotLocation status = 2;</code>
         */
        public Builder setStatus(
            cmvr.api.AgvCommand.AgvRobotLocation.Builder builderForValue) {
          if (statusBuilder_ == null) {
            status_ = builderForValue.build();
            onChanged();
          } else {
            statusBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.AgvRobotLocation status = 2;</code>
         */
        public Builder mergeStatus(cmvr.api.AgvCommand.AgvRobotLocation value) {
          if (statusBuilder_ == null) {
            if (status_ != null) {
              status_ =
                cmvr.api.AgvCommand.AgvRobotLocation.newBuilder(status_).mergeFrom(value).buildPartial();
            } else {
              status_ = value;
            }
            onChanged();
          } else {
            statusBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.AgvRobotLocation status = 2;</code>
         */
        public Builder clearStatus() {
          if (statusBuilder_ == null) {
            status_ = null;
            onChanged();
          } else {
            status_ = null;
            statusBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.AgvRobotLocation status = 2;</code>
         */
        public cmvr.api.AgvCommand.AgvRobotLocation.Builder getStatusBuilder() {
          
          onChanged();
          return getStatusFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.AgvRobotLocation status = 2;</code>
         */
        public cmvr.api.AgvCommand.AgvRobotLocationOrBuilder getStatusOrBuilder() {
          if (statusBuilder_ != null) {
            return statusBuilder_.getMessageOrBuilder();
          } else {
            return status_ == null ?
                cmvr.api.AgvCommand.AgvRobotLocation.getDefaultInstance() : status_;
          }
        }
        /**
         * <code>.cmvr.api.AgvRobotLocation status = 2;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.AgvCommand.AgvRobotLocation, cmvr.api.AgvCommand.AgvRobotLocation.Builder, cmvr.api.AgvCommand.AgvRobotLocationOrBuilder> 
            getStatusFieldBuilder() {
          if (statusBuilder_ == null) {
            statusBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.AgvCommand.AgvRobotLocation, cmvr.api.AgvCommand.AgvRobotLocation.Builder, cmvr.api.AgvCommand.AgvRobotLocationOrBuilder>(
                    getStatus(),
                    getParentForChildren(),
                    isClean());
            status_ = null;
          }
          return statusBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:cmvr.api.RobotStatusLocCommand.Feedback)
      }

      // @@protoc_insertion_point(class_scope:cmvr.api.RobotStatusLocCommand.Feedback)
      private static final cmvr.api.AgvCommand.RobotStatusLocCommand.Feedback DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new cmvr.api.AgvCommand.RobotStatusLocCommand.Feedback();
      }

      public static cmvr.api.AgvCommand.RobotStatusLocCommand.Feedback getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser<Feedback>
          PARSER = new com.google.protobuf.AbstractParser<Feedback>() {
        @java.lang.Override
        public Feedback parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

      public static com.google.protobuf.Parser<Feedback> parser() {
        return PARSER;
      }

      @java.lang.Override
      public com.google.protobuf.Parser<Feedback> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public cmvr.api.AgvCommand.RobotStatusLocCommand.Feedback getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof cmvr.api.AgvCommand.RobotStatusLocCommand)) {
        return super.equals(obj);
      }
      cmvr.api.AgvCommand.RobotStatusLocCommand other = (cmvr.api.AgvCommand.RobotStatusLocCommand) obj;

      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cmvr.api.AgvCommand.RobotStatusLocCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.RobotStatusLocCommand parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.RobotStatusLocCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.RobotStatusLocCommand parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.RobotStatusLocCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.RobotStatusLocCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.RobotStatusLocCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.RobotStatusLocCommand parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.RobotStatusLocCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.RobotStatusLocCommand parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.RobotStatusLocCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.RobotStatusLocCommand parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(cmvr.api.AgvCommand.RobotStatusLocCommand prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code cmvr.api.RobotStatusLocCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:cmvr.api.RobotStatusLocCommand)
        cmvr.api.AgvCommand.RobotStatusLocCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotStatusLocCommand_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotStatusLocCommand_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.AgvCommand.RobotStatusLocCommand.class, cmvr.api.AgvCommand.RobotStatusLocCommand.Builder.class);
      }

      // Construct using cmvr.api.AgvCommand.RobotStatusLocCommand.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotStatusLocCommand_descriptor;
      }

      @java.lang.Override
      public cmvr.api.AgvCommand.RobotStatusLocCommand getDefaultInstanceForType() {
        return cmvr.api.AgvCommand.RobotStatusLocCommand.getDefaultInstance();
      }

      @java.lang.Override
      public cmvr.api.AgvCommand.RobotStatusLocCommand build() {
        cmvr.api.AgvCommand.RobotStatusLocCommand result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cmvr.api.AgvCommand.RobotStatusLocCommand buildPartial() {
        cmvr.api.AgvCommand.RobotStatusLocCommand result = new cmvr.api.AgvCommand.RobotStatusLocCommand(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cmvr.api.AgvCommand.RobotStatusLocCommand) {
          return mergeFrom((cmvr.api.AgvCommand.RobotStatusLocCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cmvr.api.AgvCommand.RobotStatusLocCommand other) {
        if (other == cmvr.api.AgvCommand.RobotStatusLocCommand.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:cmvr.api.RobotStatusLocCommand)
    }

    // @@protoc_insertion_point(class_scope:cmvr.api.RobotStatusLocCommand)
    private static final cmvr.api.AgvCommand.RobotStatusLocCommand DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new cmvr.api.AgvCommand.RobotStatusLocCommand();
    }

    public static cmvr.api.AgvCommand.RobotStatusLocCommand getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<RobotStatusLocCommand>
        PARSER = new com.google.protobuf.AbstractParser<RobotStatusLocCommand>() {
      @java.lang.Override
      public RobotStatusLocCommand parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<RobotStatusLocCommand> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<RobotStatusLocCommand> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public cmvr.api.AgvCommand.RobotStatusLocCommand getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface RobotConfigDownloadMapRequestDataOrBuilder extends
      // @@protoc_insertion_point(interface_extends:cmvr.api.RobotConfigDownloadMapRequestData)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * 地图名称
     * </pre>
     *
     * <code>optional string map_name = 1;</code>
     * @return Whether the mapName field is set.
     */
    boolean hasMapName();
    /**
     * <pre>
     * 地图名称
     * </pre>
     *
     * <code>optional string map_name = 1;</code>
     * @return The mapName.
     */
    java.lang.String getMapName();
    /**
     * <pre>
     * 地图名称
     * </pre>
     *
     * <code>optional string map_name = 1;</code>
     * @return The bytes for mapName.
     */
    com.google.protobuf.ByteString
        getMapNameBytes();
  }
  /**
   * <pre>
   * ===================== 地图下载 =====================
   * </pre>
   *
   * Protobuf type {@code cmvr.api.RobotConfigDownloadMapRequestData}
   */
  public static final class RobotConfigDownloadMapRequestData extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:cmvr.api.RobotConfigDownloadMapRequestData)
      RobotConfigDownloadMapRequestDataOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use RobotConfigDownloadMapRequestData.newBuilder() to construct.
    private RobotConfigDownloadMapRequestData(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private RobotConfigDownloadMapRequestData() {
      mapName_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new RobotConfigDownloadMapRequestData();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotConfigDownloadMapRequestData_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotConfigDownloadMapRequestData_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              cmvr.api.AgvCommand.RobotConfigDownloadMapRequestData.class, cmvr.api.AgvCommand.RobotConfigDownloadMapRequestData.Builder.class);
    }

    private int bitField0_;
    public static final int MAP_NAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object mapName_;
    /**
     * <pre>
     * 地图名称
     * </pre>
     *
     * <code>optional string map_name = 1;</code>
     * @return Whether the mapName field is set.
     */
    @java.lang.Override
    public boolean hasMapName() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * 地图名称
     * </pre>
     *
     * <code>optional string map_name = 1;</code>
     * @return The mapName.
     */
    @java.lang.Override
    public java.lang.String getMapName() {
      java.lang.Object ref = mapName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        mapName_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * 地图名称
     * </pre>
     *
     * <code>optional string map_name = 1;</code>
     * @return The bytes for mapName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getMapNameBytes() {
      java.lang.Object ref = mapName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        mapName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, mapName_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, mapName_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof cmvr.api.AgvCommand.RobotConfigDownloadMapRequestData)) {
        return super.equals(obj);
      }
      cmvr.api.AgvCommand.RobotConfigDownloadMapRequestData other = (cmvr.api.AgvCommand.RobotConfigDownloadMapRequestData) obj;

      if (hasMapName() != other.hasMapName()) return false;
      if (hasMapName()) {
        if (!getMapName()
            .equals(other.getMapName())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasMapName()) {
        hash = (37 * hash) + MAP_NAME_FIELD_NUMBER;
        hash = (53 * hash) + getMapName().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cmvr.api.AgvCommand.RobotConfigDownloadMapRequestData parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.RobotConfigDownloadMapRequestData parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.RobotConfigDownloadMapRequestData parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.RobotConfigDownloadMapRequestData parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.RobotConfigDownloadMapRequestData parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.RobotConfigDownloadMapRequestData parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.RobotConfigDownloadMapRequestData parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.RobotConfigDownloadMapRequestData parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.RobotConfigDownloadMapRequestData parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.RobotConfigDownloadMapRequestData parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.RobotConfigDownloadMapRequestData parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.RobotConfigDownloadMapRequestData parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(cmvr.api.AgvCommand.RobotConfigDownloadMapRequestData prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * ===================== 地图下载 =====================
     * </pre>
     *
     * Protobuf type {@code cmvr.api.RobotConfigDownloadMapRequestData}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:cmvr.api.RobotConfigDownloadMapRequestData)
        cmvr.api.AgvCommand.RobotConfigDownloadMapRequestDataOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotConfigDownloadMapRequestData_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotConfigDownloadMapRequestData_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.AgvCommand.RobotConfigDownloadMapRequestData.class, cmvr.api.AgvCommand.RobotConfigDownloadMapRequestData.Builder.class);
      }

      // Construct using cmvr.api.AgvCommand.RobotConfigDownloadMapRequestData.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        mapName_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotConfigDownloadMapRequestData_descriptor;
      }

      @java.lang.Override
      public cmvr.api.AgvCommand.RobotConfigDownloadMapRequestData getDefaultInstanceForType() {
        return cmvr.api.AgvCommand.RobotConfigDownloadMapRequestData.getDefaultInstance();
      }

      @java.lang.Override
      public cmvr.api.AgvCommand.RobotConfigDownloadMapRequestData build() {
        cmvr.api.AgvCommand.RobotConfigDownloadMapRequestData result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cmvr.api.AgvCommand.RobotConfigDownloadMapRequestData buildPartial() {
        cmvr.api.AgvCommand.RobotConfigDownloadMapRequestData result = new cmvr.api.AgvCommand.RobotConfigDownloadMapRequestData(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          to_bitField0_ |= 0x00000001;
        }
        result.mapName_ = mapName_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cmvr.api.AgvCommand.RobotConfigDownloadMapRequestData) {
          return mergeFrom((cmvr.api.AgvCommand.RobotConfigDownloadMapRequestData)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cmvr.api.AgvCommand.RobotConfigDownloadMapRequestData other) {
        if (other == cmvr.api.AgvCommand.RobotConfigDownloadMapRequestData.getDefaultInstance()) return this;
        if (other.hasMapName()) {
          bitField0_ |= 0x00000001;
          mapName_ = other.mapName_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                mapName_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object mapName_ = "";
      /**
       * <pre>
       * 地图名称
       * </pre>
       *
       * <code>optional string map_name = 1;</code>
       * @return Whether the mapName field is set.
       */
      public boolean hasMapName() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * 地图名称
       * </pre>
       *
       * <code>optional string map_name = 1;</code>
       * @return The mapName.
       */
      public java.lang.String getMapName() {
        java.lang.Object ref = mapName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          mapName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * 地图名称
       * </pre>
       *
       * <code>optional string map_name = 1;</code>
       * @return The bytes for mapName.
       */
      public com.google.protobuf.ByteString
          getMapNameBytes() {
        java.lang.Object ref = mapName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          mapName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * 地图名称
       * </pre>
       *
       * <code>optional string map_name = 1;</code>
       * @param value The mapName to set.
       * @return This builder for chaining.
       */
      public Builder setMapName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        mapName_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 地图名称
       * </pre>
       *
       * <code>optional string map_name = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearMapName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        mapName_ = getDefaultInstance().getMapName();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 地图名称
       * </pre>
       *
       * <code>optional string map_name = 1;</code>
       * @param value The bytes for mapName to set.
       * @return This builder for chaining.
       */
      public Builder setMapNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        bitField0_ |= 0x00000001;
        mapName_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:cmvr.api.RobotConfigDownloadMapRequestData)
    }

    // @@protoc_insertion_point(class_scope:cmvr.api.RobotConfigDownloadMapRequestData)
    private static final cmvr.api.AgvCommand.RobotConfigDownloadMapRequestData DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new cmvr.api.AgvCommand.RobotConfigDownloadMapRequestData();
    }

    public static cmvr.api.AgvCommand.RobotConfigDownloadMapRequestData getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<RobotConfigDownloadMapRequestData>
        PARSER = new com.google.protobuf.AbstractParser<RobotConfigDownloadMapRequestData>() {
      @java.lang.Override
      public RobotConfigDownloadMapRequestData parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<RobotConfigDownloadMapRequestData> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<RobotConfigDownloadMapRequestData> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public cmvr.api.AgvCommand.RobotConfigDownloadMapRequestData getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface AgvDownloadMapResultOrBuilder extends
      // @@protoc_insertion_point(interface_extends:cmvr.api.AgvDownloadMapResult)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>optional int32 ret_code = 1;</code>
     * @return Whether the retCode field is set.
     */
    boolean hasRetCode();
    /**
     * <code>optional int32 ret_code = 1;</code>
     * @return The retCode.
     */
    int getRetCode();

    /**
     * <code>optional string create_on = 2;</code>
     * @return Whether the createOn field is set.
     */
    boolean hasCreateOn();
    /**
     * <code>optional string create_on = 2;</code>
     * @return The createOn.
     */
    java.lang.String getCreateOn();
    /**
     * <code>optional string create_on = 2;</code>
     * @return The bytes for createOn.
     */
    com.google.protobuf.ByteString
        getCreateOnBytes();

    /**
     * <code>optional string err_msg = 3;</code>
     * @return Whether the errMsg field is set.
     */
    boolean hasErrMsg();
    /**
     * <code>optional string err_msg = 3;</code>
     * @return The errMsg.
     */
    java.lang.String getErrMsg();
    /**
     * <code>optional string err_msg = 3;</code>
     * @return The bytes for errMsg.
     */
    com.google.protobuf.ByteString
        getErrMsgBytes();

    /**
     * <pre>
     * 完整地图JSON文本
     * </pre>
     *
     * <code>optional string map_content = 4;</code>
     * @return Whether the mapContent field is set.
     */
    boolean hasMapContent();
    /**
     * <pre>
     * 完整地图JSON文本
     * </pre>
     *
     * <code>optional string map_content = 4;</code>
     * @return The mapContent.
     */
    java.lang.String getMapContent();
    /**
     * <pre>
     * 完整地图JSON文本
     * </pre>
     *
     * <code>optional string map_content = 4;</code>
     * @return The bytes for mapContent.
     */
    com.google.protobuf.ByteString
        getMapContentBytes();
  }
  /**
   * Protobuf type {@code cmvr.api.AgvDownloadMapResult}
   */
  public static final class AgvDownloadMapResult extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:cmvr.api.AgvDownloadMapResult)
      AgvDownloadMapResultOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AgvDownloadMapResult.newBuilder() to construct.
    private AgvDownloadMapResult(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private AgvDownloadMapResult() {
      createOn_ = "";
      errMsg_ = "";
      mapContent_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new AgvDownloadMapResult();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvDownloadMapResult_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvDownloadMapResult_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              cmvr.api.AgvCommand.AgvDownloadMapResult.class, cmvr.api.AgvCommand.AgvDownloadMapResult.Builder.class);
    }

    private int bitField0_;
    public static final int RET_CODE_FIELD_NUMBER = 1;
    private int retCode_;
    /**
     * <code>optional int32 ret_code = 1;</code>
     * @return Whether the retCode field is set.
     */
    @java.lang.Override
    public boolean hasRetCode() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional int32 ret_code = 1;</code>
     * @return The retCode.
     */
    @java.lang.Override
    public int getRetCode() {
      return retCode_;
    }

    public static final int CREATE_ON_FIELD_NUMBER = 2;
    private volatile java.lang.Object createOn_;
    /**
     * <code>optional string create_on = 2;</code>
     * @return Whether the createOn field is set.
     */
    @java.lang.Override
    public boolean hasCreateOn() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional string create_on = 2;</code>
     * @return The createOn.
     */
    @java.lang.Override
    public java.lang.String getCreateOn() {
      java.lang.Object ref = createOn_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        createOn_ = s;
        return s;
      }
    }
    /**
     * <code>optional string create_on = 2;</code>
     * @return The bytes for createOn.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getCreateOnBytes() {
      java.lang.Object ref = createOn_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        createOn_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ERR_MSG_FIELD_NUMBER = 3;
    private volatile java.lang.Object errMsg_;
    /**
     * <code>optional string err_msg = 3;</code>
     * @return Whether the errMsg field is set.
     */
    @java.lang.Override
    public boolean hasErrMsg() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional string err_msg = 3;</code>
     * @return The errMsg.
     */
    @java.lang.Override
    public java.lang.String getErrMsg() {
      java.lang.Object ref = errMsg_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        errMsg_ = s;
        return s;
      }
    }
    /**
     * <code>optional string err_msg = 3;</code>
     * @return The bytes for errMsg.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getErrMsgBytes() {
      java.lang.Object ref = errMsg_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        errMsg_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MAP_CONTENT_FIELD_NUMBER = 4;
    private volatile java.lang.Object mapContent_;
    /**
     * <pre>
     * 完整地图JSON文本
     * </pre>
     *
     * <code>optional string map_content = 4;</code>
     * @return Whether the mapContent field is set.
     */
    @java.lang.Override
    public boolean hasMapContent() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * 完整地图JSON文本
     * </pre>
     *
     * <code>optional string map_content = 4;</code>
     * @return The mapContent.
     */
    @java.lang.Override
    public java.lang.String getMapContent() {
      java.lang.Object ref = mapContent_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        mapContent_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * 完整地图JSON文本
     * </pre>
     *
     * <code>optional string map_content = 4;</code>
     * @return The bytes for mapContent.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getMapContentBytes() {
      java.lang.Object ref = mapContent_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        mapContent_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeInt32(1, retCode_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, createOn_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, errMsg_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, mapContent_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, retCode_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, createOn_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, errMsg_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, mapContent_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof cmvr.api.AgvCommand.AgvDownloadMapResult)) {
        return super.equals(obj);
      }
      cmvr.api.AgvCommand.AgvDownloadMapResult other = (cmvr.api.AgvCommand.AgvDownloadMapResult) obj;

      if (hasRetCode() != other.hasRetCode()) return false;
      if (hasRetCode()) {
        if (getRetCode()
            != other.getRetCode()) return false;
      }
      if (hasCreateOn() != other.hasCreateOn()) return false;
      if (hasCreateOn()) {
        if (!getCreateOn()
            .equals(other.getCreateOn())) return false;
      }
      if (hasErrMsg() != other.hasErrMsg()) return false;
      if (hasErrMsg()) {
        if (!getErrMsg()
            .equals(other.getErrMsg())) return false;
      }
      if (hasMapContent() != other.hasMapContent()) return false;
      if (hasMapContent()) {
        if (!getMapContent()
            .equals(other.getMapContent())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasRetCode()) {
        hash = (37 * hash) + RET_CODE_FIELD_NUMBER;
        hash = (53 * hash) + getRetCode();
      }
      if (hasCreateOn()) {
        hash = (37 * hash) + CREATE_ON_FIELD_NUMBER;
        hash = (53 * hash) + getCreateOn().hashCode();
      }
      if (hasErrMsg()) {
        hash = (37 * hash) + ERR_MSG_FIELD_NUMBER;
        hash = (53 * hash) + getErrMsg().hashCode();
      }
      if (hasMapContent()) {
        hash = (37 * hash) + MAP_CONTENT_FIELD_NUMBER;
        hash = (53 * hash) + getMapContent().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cmvr.api.AgvCommand.AgvDownloadMapResult parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.AgvDownloadMapResult parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.AgvDownloadMapResult parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.AgvDownloadMapResult parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.AgvDownloadMapResult parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.AgvDownloadMapResult parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.AgvDownloadMapResult parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.AgvDownloadMapResult parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.AgvDownloadMapResult parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.AgvDownloadMapResult parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.AgvDownloadMapResult parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.AgvDownloadMapResult parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(cmvr.api.AgvCommand.AgvDownloadMapResult prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code cmvr.api.AgvDownloadMapResult}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:cmvr.api.AgvDownloadMapResult)
        cmvr.api.AgvCommand.AgvDownloadMapResultOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvDownloadMapResult_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvDownloadMapResult_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.AgvCommand.AgvDownloadMapResult.class, cmvr.api.AgvCommand.AgvDownloadMapResult.Builder.class);
      }

      // Construct using cmvr.api.AgvCommand.AgvDownloadMapResult.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        retCode_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        createOn_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        errMsg_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        mapContent_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvDownloadMapResult_descriptor;
      }

      @java.lang.Override
      public cmvr.api.AgvCommand.AgvDownloadMapResult getDefaultInstanceForType() {
        return cmvr.api.AgvCommand.AgvDownloadMapResult.getDefaultInstance();
      }

      @java.lang.Override
      public cmvr.api.AgvCommand.AgvDownloadMapResult build() {
        cmvr.api.AgvCommand.AgvDownloadMapResult result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cmvr.api.AgvCommand.AgvDownloadMapResult buildPartial() {
        cmvr.api.AgvCommand.AgvDownloadMapResult result = new cmvr.api.AgvCommand.AgvDownloadMapResult(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.retCode_ = retCode_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          to_bitField0_ |= 0x00000002;
        }
        result.createOn_ = createOn_;
        if (((from_bitField0_ & 0x00000004) != 0)) {
          to_bitField0_ |= 0x00000004;
        }
        result.errMsg_ = errMsg_;
        if (((from_bitField0_ & 0x00000008) != 0)) {
          to_bitField0_ |= 0x00000008;
        }
        result.mapContent_ = mapContent_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cmvr.api.AgvCommand.AgvDownloadMapResult) {
          return mergeFrom((cmvr.api.AgvCommand.AgvDownloadMapResult)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cmvr.api.AgvCommand.AgvDownloadMapResult other) {
        if (other == cmvr.api.AgvCommand.AgvDownloadMapResult.getDefaultInstance()) return this;
        if (other.hasRetCode()) {
          setRetCode(other.getRetCode());
        }
        if (other.hasCreateOn()) {
          bitField0_ |= 0x00000002;
          createOn_ = other.createOn_;
          onChanged();
        }
        if (other.hasErrMsg()) {
          bitField0_ |= 0x00000004;
          errMsg_ = other.errMsg_;
          onChanged();
        }
        if (other.hasMapContent()) {
          bitField0_ |= 0x00000008;
          mapContent_ = other.mapContent_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                retCode_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                createOn_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                errMsg_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 34: {
                mapContent_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int retCode_ ;
      /**
       * <code>optional int32 ret_code = 1;</code>
       * @return Whether the retCode field is set.
       */
      @java.lang.Override
      public boolean hasRetCode() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>optional int32 ret_code = 1;</code>
       * @return The retCode.
       */
      @java.lang.Override
      public int getRetCode() {
        return retCode_;
      }
      /**
       * <code>optional int32 ret_code = 1;</code>
       * @param value The retCode to set.
       * @return This builder for chaining.
       */
      public Builder setRetCode(int value) {
        bitField0_ |= 0x00000001;
        retCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 ret_code = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearRetCode() {
        bitField0_ = (bitField0_ & ~0x00000001);
        retCode_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object createOn_ = "";
      /**
       * <code>optional string create_on = 2;</code>
       * @return Whether the createOn field is set.
       */
      public boolean hasCreateOn() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional string create_on = 2;</code>
       * @return The createOn.
       */
      public java.lang.String getCreateOn() {
        java.lang.Object ref = createOn_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          createOn_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string create_on = 2;</code>
       * @return The bytes for createOn.
       */
      public com.google.protobuf.ByteString
          getCreateOnBytes() {
        java.lang.Object ref = createOn_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          createOn_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string create_on = 2;</code>
       * @param value The createOn to set.
       * @return This builder for chaining.
       */
      public Builder setCreateOn(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        createOn_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string create_on = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearCreateOn() {
        bitField0_ = (bitField0_ & ~0x00000002);
        createOn_ = getDefaultInstance().getCreateOn();
        onChanged();
        return this;
      }
      /**
       * <code>optional string create_on = 2;</code>
       * @param value The bytes for createOn to set.
       * @return This builder for chaining.
       */
      public Builder setCreateOnBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        bitField0_ |= 0x00000002;
        createOn_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object errMsg_ = "";
      /**
       * <code>optional string err_msg = 3;</code>
       * @return Whether the errMsg field is set.
       */
      public boolean hasErrMsg() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>optional string err_msg = 3;</code>
       * @return The errMsg.
       */
      public java.lang.String getErrMsg() {
        java.lang.Object ref = errMsg_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          errMsg_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string err_msg = 3;</code>
       * @return The bytes for errMsg.
       */
      public com.google.protobuf.ByteString
          getErrMsgBytes() {
        java.lang.Object ref = errMsg_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          errMsg_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string err_msg = 3;</code>
       * @param value The errMsg to set.
       * @return This builder for chaining.
       */
      public Builder setErrMsg(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        errMsg_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string err_msg = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearErrMsg() {
        bitField0_ = (bitField0_ & ~0x00000004);
        errMsg_ = getDefaultInstance().getErrMsg();
        onChanged();
        return this;
      }
      /**
       * <code>optional string err_msg = 3;</code>
       * @param value The bytes for errMsg to set.
       * @return This builder for chaining.
       */
      public Builder setErrMsgBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        bitField0_ |= 0x00000004;
        errMsg_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object mapContent_ = "";
      /**
       * <pre>
       * 完整地图JSON文本
       * </pre>
       *
       * <code>optional string map_content = 4;</code>
       * @return Whether the mapContent field is set.
       */
      public boolean hasMapContent() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * 完整地图JSON文本
       * </pre>
       *
       * <code>optional string map_content = 4;</code>
       * @return The mapContent.
       */
      public java.lang.String getMapContent() {
        java.lang.Object ref = mapContent_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          mapContent_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * 完整地图JSON文本
       * </pre>
       *
       * <code>optional string map_content = 4;</code>
       * @return The bytes for mapContent.
       */
      public com.google.protobuf.ByteString
          getMapContentBytes() {
        java.lang.Object ref = mapContent_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          mapContent_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * 完整地图JSON文本
       * </pre>
       *
       * <code>optional string map_content = 4;</code>
       * @param value The mapContent to set.
       * @return This builder for chaining.
       */
      public Builder setMapContent(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        mapContent_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 完整地图JSON文本
       * </pre>
       *
       * <code>optional string map_content = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearMapContent() {
        bitField0_ = (bitField0_ & ~0x00000008);
        mapContent_ = getDefaultInstance().getMapContent();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 完整地图JSON文本
       * </pre>
       *
       * <code>optional string map_content = 4;</code>
       * @param value The bytes for mapContent to set.
       * @return This builder for chaining.
       */
      public Builder setMapContentBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        bitField0_ |= 0x00000008;
        mapContent_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:cmvr.api.AgvDownloadMapResult)
    }

    // @@protoc_insertion_point(class_scope:cmvr.api.AgvDownloadMapResult)
    private static final cmvr.api.AgvCommand.AgvDownloadMapResult DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new cmvr.api.AgvCommand.AgvDownloadMapResult();
    }

    public static cmvr.api.AgvCommand.AgvDownloadMapResult getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<AgvDownloadMapResult>
        PARSER = new com.google.protobuf.AbstractParser<AgvDownloadMapResult>() {
      @java.lang.Override
      public AgvDownloadMapResult parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<AgvDownloadMapResult> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<AgvDownloadMapResult> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public cmvr.api.AgvCommand.AgvDownloadMapResult getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface RobotConfigDownloadMapCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:cmvr.api.RobotConfigDownloadMapCommand)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code cmvr.api.RobotConfigDownloadMapCommand}
   */
  public static final class RobotConfigDownloadMapCommand extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:cmvr.api.RobotConfigDownloadMapCommand)
      RobotConfigDownloadMapCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use RobotConfigDownloadMapCommand.newBuilder() to construct.
    private RobotConfigDownloadMapCommand(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private RobotConfigDownloadMapCommand() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new RobotConfigDownloadMapCommand();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotConfigDownloadMapCommand_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotConfigDownloadMapCommand_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.class, cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Builder.class);
    }

    public interface RequestOrBuilder extends
        // @@protoc_insertion_point(interface_extends:cmvr.api.RobotConfigDownloadMapCommand.Request)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Request getHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder();

      /**
       * <code>.cmvr.api.RobotConfigDownloadMapRequestData data = 2;</code>
       * @return Whether the data field is set.
       */
      boolean hasData();
      /**
       * <code>.cmvr.api.RobotConfigDownloadMapRequestData data = 2;</code>
       * @return The data.
       */
      cmvr.api.AgvCommand.RobotConfigDownloadMapRequestData getData();
      /**
       * <code>.cmvr.api.RobotConfigDownloadMapRequestData data = 2;</code>
       */
      cmvr.api.AgvCommand.RobotConfigDownloadMapRequestDataOrBuilder getDataOrBuilder();
    }
    /**
     * Protobuf type {@code cmvr.api.RobotConfigDownloadMapCommand.Request}
     */
    public static final class Request extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.RobotConfigDownloadMapCommand.Request)
        RequestOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Request.newBuilder() to construct.
      private Request(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Request() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Request();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotConfigDownloadMapCommand_Request_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotConfigDownloadMapCommand_Request_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Request.class, cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Request.Builder.class);
      }

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Request header_;
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return The header.
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.Request getHeader() {
        return header_ == null ? cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() {
        return getHeader();
      }

      public static final int DATA_FIELD_NUMBER = 2;
      private cmvr.api.AgvCommand.RobotConfigDownloadMapRequestData data_;
      /**
       * <code>.cmvr.api.RobotConfigDownloadMapRequestData data = 2;</code>
       * @return Whether the data field is set.
       */
      @java.lang.Override
      public boolean hasData() {
        return data_ != null;
      }
      /**
       * <code>.cmvr.api.RobotConfigDownloadMapRequestData data = 2;</code>
       * @return The data.
       */
      @java.lang.Override
      public cmvr.api.AgvCommand.RobotConfigDownloadMapRequestData getData() {
        return data_ == null ? cmvr.api.AgvCommand.RobotConfigDownloadMapRequestData.getDefaultInstance() : data_;
      }
      /**
       * <code>.cmvr.api.RobotConfigDownloadMapRequestData data = 2;</code>
       */
      @java.lang.Override
      public cmvr.api.AgvCommand.RobotConfigDownloadMapRequestDataOrBuilder getDataOrBuilder() {
        return getData();
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (header_ != null) {
          output.writeMessage(1, getHeader());
        }
        if (data_ != null) {
          output.writeMessage(2, getData());
        }
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (header_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getHeader());
        }
        if (data_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, getData());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Request)) {
          return super.equals(obj);
        }
        cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Request other = (cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Request) obj;

        if (hasHeader() != other.hasHeader()) return false;
        if (hasHeader()) {
          if (!getHeader()
              .equals(other.getHeader())) return false;
        }
        if (hasData() != other.hasData()) return false;
        if (hasData()) {
          if (!getData()
              .equals(other.getData())) return false;
        }
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasHeader()) {
          hash = (37 * hash) + HEADER_FIELD_NUMBER;
          hash = (53 * hash) + getHeader().hashCode();
        }
        if (hasData()) {
          hash = (37 * hash) + DATA_FIELD_NUMBER;
          hash = (53 * hash) + getData().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Request parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Request parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Request parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Request parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Request parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Request parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Request parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Request parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Request parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Request parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Request parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Request parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Request prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code cmvr.api.RobotConfigDownloadMapCommand.Request}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.RobotConfigDownloadMapCommand.Request)
          cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.RequestOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotConfigDownloadMapCommand_Request_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotConfigDownloadMapCommand_Request_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Request.class, cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Request.Builder.class);
        }

        // Construct using cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Request.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          if (headerBuilder_ == null) {
            header_ = null;
          } else {
            header_ = null;
            headerBuilder_ = null;
          }
          if (dataBuilder_ == null) {
            data_ = null;
          } else {
            data_ = null;
            dataBuilder_ = null;
          }
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotConfigDownloadMapCommand_Request_descriptor;
        }

        @java.lang.Override
        public cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Request getDefaultInstanceForType() {
          return cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Request.getDefaultInstance();
        }

        @java.lang.Override
        public cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Request build() {
          cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Request result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Request buildPartial() {
          cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Request result = new cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Request(this);
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          if (dataBuilder_ == null) {
            result.data_ = data_;
          } else {
            result.data_ = dataBuilder_.build();
          }
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Request) {
            return mergeFrom((cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Request)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Request other) {
          if (other == cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Request.getDefaultInstance()) return this;
          if (other.hasHeader()) {
            mergeHeader(other.getHeader());
          }
          if (other.hasData()) {
            mergeData(other.getData());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  input.readMessage(
                      getHeaderFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 10
                case 18: {
                  input.readMessage(
                      getDataFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 18
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }

        private cmvr.api.Common.CommandHeader.Request header_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder> headerBuilder_;
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         * @return The header.
         */
        public cmvr.api.Common.CommandHeader.Request getHeader() {
          if (headerBuilder_ == null) {
            return header_ == null ? cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
          } else {
            return headerBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder setHeader(cmvr.api.Common.CommandHeader.Request value) {
          if (headerBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            header_ = value;
            onChanged();
          } else {
            headerBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder setHeader(
            cmvr.api.Common.CommandHeader.Request.Builder builderForValue) {
          if (headerBuilder_ == null) {
            header_ = builderForValue.build();
            onChanged();
          } else {
            headerBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder mergeHeader(cmvr.api.Common.CommandHeader.Request value) {
          if (headerBuilder_ == null) {
            if (header_ != null) {
              header_ =
                cmvr.api.Common.CommandHeader.Request.newBuilder(header_).mergeFrom(value).buildPartial();
            } else {
              header_ = value;
            }
            onChanged();
          } else {
            headerBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Request.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() {
          if (headerBuilder_ != null) {
            return headerBuilder_.getMessageOrBuilder();
          } else {
            return header_ == null ?
                cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder> 
            getHeaderFieldBuilder() {
          if (headerBuilder_ == null) {
            headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder>(
                    getHeader(),
                    getParentForChildren(),
                    isClean());
            header_ = null;
          }
          return headerBuilder_;
        }

        private cmvr.api.AgvCommand.RobotConfigDownloadMapRequestData data_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.AgvCommand.RobotConfigDownloadMapRequestData, cmvr.api.AgvCommand.RobotConfigDownloadMapRequestData.Builder, cmvr.api.AgvCommand.RobotConfigDownloadMapRequestDataOrBuilder> dataBuilder_;
        /**
         * <code>.cmvr.api.RobotConfigDownloadMapRequestData data = 2;</code>
         * @return Whether the data field is set.
         */
        public boolean hasData() {
          return dataBuilder_ != null || data_ != null;
        }
        /**
         * <code>.cmvr.api.RobotConfigDownloadMapRequestData data = 2;</code>
         * @return The data.
         */
        public cmvr.api.AgvCommand.RobotConfigDownloadMapRequestData getData() {
          if (dataBuilder_ == null) {
            return data_ == null ? cmvr.api.AgvCommand.RobotConfigDownloadMapRequestData.getDefaultInstance() : data_;
          } else {
            return dataBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.RobotConfigDownloadMapRequestData data = 2;</code>
         */
        public Builder setData(cmvr.api.AgvCommand.RobotConfigDownloadMapRequestData value) {
          if (dataBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            data_ = value;
            onChanged();
          } else {
            dataBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.RobotConfigDownloadMapRequestData data = 2;</code>
         */
        public Builder setData(
            cmvr.api.AgvCommand.RobotConfigDownloadMapRequestData.Builder builderForValue) {
          if (dataBuilder_ == null) {
            data_ = builderForValue.build();
            onChanged();
          } else {
            dataBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.RobotConfigDownloadMapRequestData data = 2;</code>
         */
        public Builder mergeData(cmvr.api.AgvCommand.RobotConfigDownloadMapRequestData value) {
          if (dataBuilder_ == null) {
            if (data_ != null) {
              data_ =
                cmvr.api.AgvCommand.RobotConfigDownloadMapRequestData.newBuilder(data_).mergeFrom(value).buildPartial();
            } else {
              data_ = value;
            }
            onChanged();
          } else {
            dataBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.RobotConfigDownloadMapRequestData data = 2;</code>
         */
        public Builder clearData() {
          if (dataBuilder_ == null) {
            data_ = null;
            onChanged();
          } else {
            data_ = null;
            dataBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.RobotConfigDownloadMapRequestData data = 2;</code>
         */
        public cmvr.api.AgvCommand.RobotConfigDownloadMapRequestData.Builder getDataBuilder() {
          
          onChanged();
          return getDataFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.RobotConfigDownloadMapRequestData data = 2;</code>
         */
        public cmvr.api.AgvCommand.RobotConfigDownloadMapRequestDataOrBuilder getDataOrBuilder() {
          if (dataBuilder_ != null) {
            return dataBuilder_.getMessageOrBuilder();
          } else {
            return data_ == null ?
                cmvr.api.AgvCommand.RobotConfigDownloadMapRequestData.getDefaultInstance() : data_;
          }
        }
        /**
         * <code>.cmvr.api.RobotConfigDownloadMapRequestData data = 2;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.AgvCommand.RobotConfigDownloadMapRequestData, cmvr.api.AgvCommand.RobotConfigDownloadMapRequestData.Builder, cmvr.api.AgvCommand.RobotConfigDownloadMapRequestDataOrBuilder> 
            getDataFieldBuilder() {
          if (dataBuilder_ == null) {
            dataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.AgvCommand.RobotConfigDownloadMapRequestData, cmvr.api.AgvCommand.RobotConfigDownloadMapRequestData.Builder, cmvr.api.AgvCommand.RobotConfigDownloadMapRequestDataOrBuilder>(
                    getData(),
                    getParentForChildren(),
                    isClean());
            data_ = null;
          }
          return dataBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:cmvr.api.RobotConfigDownloadMapCommand.Request)
      }

      // @@protoc_insertion_point(class_scope:cmvr.api.RobotConfigDownloadMapCommand.Request)
      private static final cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Request DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Request();
      }

      public static cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Request getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser<Request>
          PARSER = new com.google.protobuf.AbstractParser<Request>() {
        @java.lang.Override
        public Request parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

      public static com.google.protobuf.Parser<Request> parser() {
        return PARSER;
      }

      @java.lang.Override
      public com.google.protobuf.Parser<Request> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Request getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface FeedbackOrBuilder extends
        // @@protoc_insertion_point(interface_extends:cmvr.api.RobotConfigDownloadMapCommand.Feedback)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Feedback getHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder();

      /**
       * <code>.cmvr.api.AgvDownloadMapResult status = 2;</code>
       * @return Whether the status field is set.
       */
      boolean hasStatus();
      /**
       * <code>.cmvr.api.AgvDownloadMapResult status = 2;</code>
       * @return The status.
       */
      cmvr.api.AgvCommand.AgvDownloadMapResult getStatus();
      /**
       * <code>.cmvr.api.AgvDownloadMapResult status = 2;</code>
       */
      cmvr.api.AgvCommand.AgvDownloadMapResultOrBuilder getStatusOrBuilder();
    }
    /**
     * Protobuf type {@code cmvr.api.RobotConfigDownloadMapCommand.Feedback}
     */
    public static final class Feedback extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.RobotConfigDownloadMapCommand.Feedback)
        FeedbackOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Feedback.newBuilder() to construct.
      private Feedback(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Feedback() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Feedback();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotConfigDownloadMapCommand_Feedback_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotConfigDownloadMapCommand_Feedback_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Feedback.class, cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Feedback.Builder.class);
      }

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Feedback header_;
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return The header.
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.Feedback getHeader() {
        return header_ == null ? cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() {
        return getHeader();
      }

      public static final int STATUS_FIELD_NUMBER = 2;
      private cmvr.api.AgvCommand.AgvDownloadMapResult status_;
      /**
       * <code>.cmvr.api.AgvDownloadMapResult status = 2;</code>
       * @return Whether the status field is set.
       */
      @java.lang.Override
      public boolean hasStatus() {
        return status_ != null;
      }
      /**
       * <code>.cmvr.api.AgvDownloadMapResult status = 2;</code>
       * @return The status.
       */
      @java.lang.Override
      public cmvr.api.AgvCommand.AgvDownloadMapResult getStatus() {
        return status_ == null ? cmvr.api.AgvCommand.AgvDownloadMapResult.getDefaultInstance() : status_;
      }
      /**
       * <code>.cmvr.api.AgvDownloadMapResult status = 2;</code>
       */
      @java.lang.Override
      public cmvr.api.AgvCommand.AgvDownloadMapResultOrBuilder getStatusOrBuilder() {
        return getStatus();
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (header_ != null) {
          output.writeMessage(1, getHeader());
        }
        if (status_ != null) {
          output.writeMessage(2, getStatus());
        }
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (header_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getHeader());
        }
        if (status_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, getStatus());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Feedback)) {
          return super.equals(obj);
        }
        cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Feedback other = (cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Feedback) obj;

        if (hasHeader() != other.hasHeader()) return false;
        if (hasHeader()) {
          if (!getHeader()
              .equals(other.getHeader())) return false;
        }
        if (hasStatus() != other.hasStatus()) return false;
        if (hasStatus()) {
          if (!getStatus()
              .equals(other.getStatus())) return false;
        }
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasHeader()) {
          hash = (37 * hash) + HEADER_FIELD_NUMBER;
          hash = (53 * hash) + getHeader().hashCode();
        }
        if (hasStatus()) {
          hash = (37 * hash) + STATUS_FIELD_NUMBER;
          hash = (53 * hash) + getStatus().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Feedback parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Feedback parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Feedback parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Feedback parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Feedback parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Feedback parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Feedback parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Feedback parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Feedback parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Feedback parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Feedback parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Feedback parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Feedback prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code cmvr.api.RobotConfigDownloadMapCommand.Feedback}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.RobotConfigDownloadMapCommand.Feedback)
          cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.FeedbackOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotConfigDownloadMapCommand_Feedback_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotConfigDownloadMapCommand_Feedback_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Feedback.class, cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Feedback.Builder.class);
        }

        // Construct using cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Feedback.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          if (headerBuilder_ == null) {
            header_ = null;
          } else {
            header_ = null;
            headerBuilder_ = null;
          }
          if (statusBuilder_ == null) {
            status_ = null;
          } else {
            status_ = null;
            statusBuilder_ = null;
          }
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotConfigDownloadMapCommand_Feedback_descriptor;
        }

        @java.lang.Override
        public cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Feedback getDefaultInstanceForType() {
          return cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Feedback.getDefaultInstance();
        }

        @java.lang.Override
        public cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Feedback build() {
          cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Feedback result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Feedback buildPartial() {
          cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Feedback result = new cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Feedback(this);
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          if (statusBuilder_ == null) {
            result.status_ = status_;
          } else {
            result.status_ = statusBuilder_.build();
          }
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Feedback) {
            return mergeFrom((cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Feedback)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Feedback other) {
          if (other == cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Feedback.getDefaultInstance()) return this;
          if (other.hasHeader()) {
            mergeHeader(other.getHeader());
          }
          if (other.hasStatus()) {
            mergeStatus(other.getStatus());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  input.readMessage(
                      getHeaderFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 10
                case 18: {
                  input.readMessage(
                      getStatusFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 18
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }

        private cmvr.api.Common.CommandHeader.Feedback header_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> headerBuilder_;
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         * @return The header.
         */
        public cmvr.api.Common.CommandHeader.Feedback getHeader() {
          if (headerBuilder_ == null) {
            return header_ == null ? cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
          } else {
            return headerBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder setHeader(cmvr.api.Common.CommandHeader.Feedback value) {
          if (headerBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            header_ = value;
            onChanged();
          } else {
            headerBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder setHeader(
            cmvr.api.Common.CommandHeader.Feedback.Builder builderForValue) {
          if (headerBuilder_ == null) {
            header_ = builderForValue.build();
            onChanged();
          } else {
            headerBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder mergeHeader(cmvr.api.Common.CommandHeader.Feedback value) {
          if (headerBuilder_ == null) {
            if (header_ != null) {
              header_ =
                cmvr.api.Common.CommandHeader.Feedback.newBuilder(header_).mergeFrom(value).buildPartial();
            } else {
              header_ = value;
            }
            onChanged();
          } else {
            headerBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Feedback.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() {
          if (headerBuilder_ != null) {
            return headerBuilder_.getMessageOrBuilder();
          } else {
            return header_ == null ?
                cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> 
            getHeaderFieldBuilder() {
          if (headerBuilder_ == null) {
            headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder>(
                    getHeader(),
                    getParentForChildren(),
                    isClean());
            header_ = null;
          }
          return headerBuilder_;
        }

        private cmvr.api.AgvCommand.AgvDownloadMapResult status_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.AgvCommand.AgvDownloadMapResult, cmvr.api.AgvCommand.AgvDownloadMapResult.Builder, cmvr.api.AgvCommand.AgvDownloadMapResultOrBuilder> statusBuilder_;
        /**
         * <code>.cmvr.api.AgvDownloadMapResult status = 2;</code>
         * @return Whether the status field is set.
         */
        public boolean hasStatus() {
          return statusBuilder_ != null || status_ != null;
        }
        /**
         * <code>.cmvr.api.AgvDownloadMapResult status = 2;</code>
         * @return The status.
         */
        public cmvr.api.AgvCommand.AgvDownloadMapResult getStatus() {
          if (statusBuilder_ == null) {
            return status_ == null ? cmvr.api.AgvCommand.AgvDownloadMapResult.getDefaultInstance() : status_;
          } else {
            return statusBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.AgvDownloadMapResult status = 2;</code>
         */
        public Builder setStatus(cmvr.api.AgvCommand.AgvDownloadMapResult value) {
          if (statusBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            status_ = value;
            onChanged();
          } else {
            statusBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.AgvDownloadMapResult status = 2;</code>
         */
        public Builder setStatus(
            cmvr.api.AgvCommand.AgvDownloadMapResult.Builder builderForValue) {
          if (statusBuilder_ == null) {
            status_ = builderForValue.build();
            onChanged();
          } else {
            statusBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.AgvDownloadMapResult status = 2;</code>
         */
        public Builder mergeStatus(cmvr.api.AgvCommand.AgvDownloadMapResult value) {
          if (statusBuilder_ == null) {
            if (status_ != null) {
              status_ =
                cmvr.api.AgvCommand.AgvDownloadMapResult.newBuilder(status_).mergeFrom(value).buildPartial();
            } else {
              status_ = value;
            }
            onChanged();
          } else {
            statusBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.AgvDownloadMapResult status = 2;</code>
         */
        public Builder clearStatus() {
          if (statusBuilder_ == null) {
            status_ = null;
            onChanged();
          } else {
            status_ = null;
            statusBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.AgvDownloadMapResult status = 2;</code>
         */
        public cmvr.api.AgvCommand.AgvDownloadMapResult.Builder getStatusBuilder() {
          
          onChanged();
          return getStatusFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.AgvDownloadMapResult status = 2;</code>
         */
        public cmvr.api.AgvCommand.AgvDownloadMapResultOrBuilder getStatusOrBuilder() {
          if (statusBuilder_ != null) {
            return statusBuilder_.getMessageOrBuilder();
          } else {
            return status_ == null ?
                cmvr.api.AgvCommand.AgvDownloadMapResult.getDefaultInstance() : status_;
          }
        }
        /**
         * <code>.cmvr.api.AgvDownloadMapResult status = 2;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.AgvCommand.AgvDownloadMapResult, cmvr.api.AgvCommand.AgvDownloadMapResult.Builder, cmvr.api.AgvCommand.AgvDownloadMapResultOrBuilder> 
            getStatusFieldBuilder() {
          if (statusBuilder_ == null) {
            statusBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.AgvCommand.AgvDownloadMapResult, cmvr.api.AgvCommand.AgvDownloadMapResult.Builder, cmvr.api.AgvCommand.AgvDownloadMapResultOrBuilder>(
                    getStatus(),
                    getParentForChildren(),
                    isClean());
            status_ = null;
          }
          return statusBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:cmvr.api.RobotConfigDownloadMapCommand.Feedback)
      }

      // @@protoc_insertion_point(class_scope:cmvr.api.RobotConfigDownloadMapCommand.Feedback)
      private static final cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Feedback DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Feedback();
      }

      public static cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Feedback getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser<Feedback>
          PARSER = new com.google.protobuf.AbstractParser<Feedback>() {
        @java.lang.Override
        public Feedback parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

      public static com.google.protobuf.Parser<Feedback> parser() {
        return PARSER;
      }

      @java.lang.Override
      public com.google.protobuf.Parser<Feedback> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Feedback getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof cmvr.api.AgvCommand.RobotConfigDownloadMapCommand)) {
        return super.equals(obj);
      }
      cmvr.api.AgvCommand.RobotConfigDownloadMapCommand other = (cmvr.api.AgvCommand.RobotConfigDownloadMapCommand) obj;

      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cmvr.api.AgvCommand.RobotConfigDownloadMapCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.RobotConfigDownloadMapCommand parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.RobotConfigDownloadMapCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.RobotConfigDownloadMapCommand parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.RobotConfigDownloadMapCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.RobotConfigDownloadMapCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.RobotConfigDownloadMapCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.RobotConfigDownloadMapCommand parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.RobotConfigDownloadMapCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.RobotConfigDownloadMapCommand parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.RobotConfigDownloadMapCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.RobotConfigDownloadMapCommand parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(cmvr.api.AgvCommand.RobotConfigDownloadMapCommand prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code cmvr.api.RobotConfigDownloadMapCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:cmvr.api.RobotConfigDownloadMapCommand)
        cmvr.api.AgvCommand.RobotConfigDownloadMapCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotConfigDownloadMapCommand_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotConfigDownloadMapCommand_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.class, cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.Builder.class);
      }

      // Construct using cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotConfigDownloadMapCommand_descriptor;
      }

      @java.lang.Override
      public cmvr.api.AgvCommand.RobotConfigDownloadMapCommand getDefaultInstanceForType() {
        return cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.getDefaultInstance();
      }

      @java.lang.Override
      public cmvr.api.AgvCommand.RobotConfigDownloadMapCommand build() {
        cmvr.api.AgvCommand.RobotConfigDownloadMapCommand result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cmvr.api.AgvCommand.RobotConfigDownloadMapCommand buildPartial() {
        cmvr.api.AgvCommand.RobotConfigDownloadMapCommand result = new cmvr.api.AgvCommand.RobotConfigDownloadMapCommand(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cmvr.api.AgvCommand.RobotConfigDownloadMapCommand) {
          return mergeFrom((cmvr.api.AgvCommand.RobotConfigDownloadMapCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cmvr.api.AgvCommand.RobotConfigDownloadMapCommand other) {
        if (other == cmvr.api.AgvCommand.RobotConfigDownloadMapCommand.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:cmvr.api.RobotConfigDownloadMapCommand)
    }

    // @@protoc_insertion_point(class_scope:cmvr.api.RobotConfigDownloadMapCommand)
    private static final cmvr.api.AgvCommand.RobotConfigDownloadMapCommand DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new cmvr.api.AgvCommand.RobotConfigDownloadMapCommand();
    }

    public static cmvr.api.AgvCommand.RobotConfigDownloadMapCommand getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<RobotConfigDownloadMapCommand>
        PARSER = new com.google.protobuf.AbstractParser<RobotConfigDownloadMapCommand>() {
      @java.lang.Override
      public RobotConfigDownloadMapCommand parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<RobotConfigDownloadMapCommand> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<RobotConfigDownloadMapCommand> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public cmvr.api.AgvCommand.RobotConfigDownloadMapCommand getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface MapFileInfoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:cmvr.api.MapFileInfo)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>optional string name = 1;</code>
     * @return Whether the name field is set.
     */
    boolean hasName();
    /**
     * <code>optional string name = 1;</code>
     * @return The name.
     */
    java.lang.String getName();
    /**
     * <code>optional string name = 1;</code>
     * @return The bytes for name.
     */
    com.google.protobuf.ByteString
        getNameBytes();

    /**
     * <code>optional string modified = 2;</code>
     * @return Whether the modified field is set.
     */
    boolean hasModified();
    /**
     * <code>optional string modified = 2;</code>
     * @return The modified.
     */
    java.lang.String getModified();
    /**
     * <code>optional string modified = 2;</code>
     * @return The bytes for modified.
     */
    com.google.protobuf.ByteString
        getModifiedBytes();

    /**
     * <code>optional int64 size = 3;</code>
     * @return Whether the size field is set.
     */
    boolean hasSize();
    /**
     * <code>optional int64 size = 3;</code>
     * @return The size.
     */
    long getSize();
  }
  /**
   * <pre>
   * 单条地图文件信息
   * </pre>
   *
   * Protobuf type {@code cmvr.api.MapFileInfo}
   */
  public static final class MapFileInfo extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:cmvr.api.MapFileInfo)
      MapFileInfoOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use MapFileInfo.newBuilder() to construct.
    private MapFileInfo(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private MapFileInfo() {
      name_ = "";
      modified_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new MapFileInfo();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return cmvr.api.AgvCommand.internal_static_cmvr_api_MapFileInfo_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return cmvr.api.AgvCommand.internal_static_cmvr_api_MapFileInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              cmvr.api.AgvCommand.MapFileInfo.class, cmvr.api.AgvCommand.MapFileInfo.Builder.class);
    }

    private int bitField0_;
    public static final int NAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object name_;
    /**
     * <code>optional string name = 1;</code>
     * @return Whether the name field is set.
     */
    @java.lang.Override
    public boolean hasName() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional string name = 1;</code>
     * @return The name.
     */
    @java.lang.Override
    public java.lang.String getName() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        name_ = s;
        return s;
      }
    }
    /**
     * <code>optional string name = 1;</code>
     * @return The bytes for name.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getNameBytes() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        name_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MODIFIED_FIELD_NUMBER = 2;
    private volatile java.lang.Object modified_;
    /**
     * <code>optional string modified = 2;</code>
     * @return Whether the modified field is set.
     */
    @java.lang.Override
    public boolean hasModified() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional string modified = 2;</code>
     * @return The modified.
     */
    @java.lang.Override
    public java.lang.String getModified() {
      java.lang.Object ref = modified_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        modified_ = s;
        return s;
      }
    }
    /**
     * <code>optional string modified = 2;</code>
     * @return The bytes for modified.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getModifiedBytes() {
      java.lang.Object ref = modified_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        modified_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SIZE_FIELD_NUMBER = 3;
    private long size_;
    /**
     * <code>optional int64 size = 3;</code>
     * @return Whether the size field is set.
     */
    @java.lang.Override
    public boolean hasSize() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional int64 size = 3;</code>
     * @return The size.
     */
    @java.lang.Override
    public long getSize() {
      return size_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, modified_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeInt64(3, size_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, modified_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(3, size_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof cmvr.api.AgvCommand.MapFileInfo)) {
        return super.equals(obj);
      }
      cmvr.api.AgvCommand.MapFileInfo other = (cmvr.api.AgvCommand.MapFileInfo) obj;

      if (hasName() != other.hasName()) return false;
      if (hasName()) {
        if (!getName()
            .equals(other.getName())) return false;
      }
      if (hasModified() != other.hasModified()) return false;
      if (hasModified()) {
        if (!getModified()
            .equals(other.getModified())) return false;
      }
      if (hasSize() != other.hasSize()) return false;
      if (hasSize()) {
        if (getSize()
            != other.getSize()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasName()) {
        hash = (37 * hash) + NAME_FIELD_NUMBER;
        hash = (53 * hash) + getName().hashCode();
      }
      if (hasModified()) {
        hash = (37 * hash) + MODIFIED_FIELD_NUMBER;
        hash = (53 * hash) + getModified().hashCode();
      }
      if (hasSize()) {
        hash = (37 * hash) + SIZE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getSize());
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cmvr.api.AgvCommand.MapFileInfo parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.MapFileInfo parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.MapFileInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.MapFileInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.MapFileInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.MapFileInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.MapFileInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.MapFileInfo parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.MapFileInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.MapFileInfo parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.MapFileInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.MapFileInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(cmvr.api.AgvCommand.MapFileInfo prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * 单条地图文件信息
     * </pre>
     *
     * Protobuf type {@code cmvr.api.MapFileInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:cmvr.api.MapFileInfo)
        cmvr.api.AgvCommand.MapFileInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_MapFileInfo_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_MapFileInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.AgvCommand.MapFileInfo.class, cmvr.api.AgvCommand.MapFileInfo.Builder.class);
      }

      // Construct using cmvr.api.AgvCommand.MapFileInfo.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        name_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        modified_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        size_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_MapFileInfo_descriptor;
      }

      @java.lang.Override
      public cmvr.api.AgvCommand.MapFileInfo getDefaultInstanceForType() {
        return cmvr.api.AgvCommand.MapFileInfo.getDefaultInstance();
      }

      @java.lang.Override
      public cmvr.api.AgvCommand.MapFileInfo build() {
        cmvr.api.AgvCommand.MapFileInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cmvr.api.AgvCommand.MapFileInfo buildPartial() {
        cmvr.api.AgvCommand.MapFileInfo result = new cmvr.api.AgvCommand.MapFileInfo(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          to_bitField0_ |= 0x00000001;
        }
        result.name_ = name_;
        if (((from_bitField0_ & 0x00000002) != 0)) {
          to_bitField0_ |= 0x00000002;
        }
        result.modified_ = modified_;
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.size_ = size_;
          to_bitField0_ |= 0x00000004;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cmvr.api.AgvCommand.MapFileInfo) {
          return mergeFrom((cmvr.api.AgvCommand.MapFileInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cmvr.api.AgvCommand.MapFileInfo other) {
        if (other == cmvr.api.AgvCommand.MapFileInfo.getDefaultInstance()) return this;
        if (other.hasName()) {
          bitField0_ |= 0x00000001;
          name_ = other.name_;
          onChanged();
        }
        if (other.hasModified()) {
          bitField0_ |= 0x00000002;
          modified_ = other.modified_;
          onChanged();
        }
        if (other.hasSize()) {
          setSize(other.getSize());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                name_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                modified_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 24: {
                size_ = input.readInt64();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object name_ = "";
      /**
       * <code>optional string name = 1;</code>
       * @return Whether the name field is set.
       */
      public boolean hasName() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>optional string name = 1;</code>
       * @return The name.
       */
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          name_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string name = 1;</code>
       * @return The bytes for name.
       */
      public com.google.protobuf.ByteString
          getNameBytes() {
        java.lang.Object ref = name_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string name = 1;</code>
       * @param value The name to set.
       * @return This builder for chaining.
       */
      public Builder setName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string name = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       * <code>optional string name = 1;</code>
       * @param value The bytes for name to set.
       * @return This builder for chaining.
       */
      public Builder setNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object modified_ = "";
      /**
       * <code>optional string modified = 2;</code>
       * @return Whether the modified field is set.
       */
      public boolean hasModified() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional string modified = 2;</code>
       * @return The modified.
       */
      public java.lang.String getModified() {
        java.lang.Object ref = modified_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          modified_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string modified = 2;</code>
       * @return The bytes for modified.
       */
      public com.google.protobuf.ByteString
          getModifiedBytes() {
        java.lang.Object ref = modified_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          modified_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string modified = 2;</code>
       * @param value The modified to set.
       * @return This builder for chaining.
       */
      public Builder setModified(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        modified_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string modified = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearModified() {
        bitField0_ = (bitField0_ & ~0x00000002);
        modified_ = getDefaultInstance().getModified();
        onChanged();
        return this;
      }
      /**
       * <code>optional string modified = 2;</code>
       * @param value The bytes for modified to set.
       * @return This builder for chaining.
       */
      public Builder setModifiedBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        bitField0_ |= 0x00000002;
        modified_ = value;
        onChanged();
        return this;
      }

      private long size_ ;
      /**
       * <code>optional int64 size = 3;</code>
       * @return Whether the size field is set.
       */
      @java.lang.Override
      public boolean hasSize() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>optional int64 size = 3;</code>
       * @return The size.
       */
      @java.lang.Override
      public long getSize() {
        return size_;
      }
      /**
       * <code>optional int64 size = 3;</code>
       * @param value The size to set.
       * @return This builder for chaining.
       */
      public Builder setSize(long value) {
        bitField0_ |= 0x00000004;
        size_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 size = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearSize() {
        bitField0_ = (bitField0_ & ~0x00000004);
        size_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:cmvr.api.MapFileInfo)
    }

    // @@protoc_insertion_point(class_scope:cmvr.api.MapFileInfo)
    private static final cmvr.api.AgvCommand.MapFileInfo DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new cmvr.api.AgvCommand.MapFileInfo();
    }

    public static cmvr.api.AgvCommand.MapFileInfo getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<MapFileInfo>
        PARSER = new com.google.protobuf.AbstractParser<MapFileInfo>() {
      @java.lang.Override
      public MapFileInfo parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<MapFileInfo> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<MapFileInfo> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public cmvr.api.AgvCommand.MapFileInfo getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface AgvMapStatusOrBuilder extends
      // @@protoc_insertion_point(interface_extends:cmvr.api.AgvMapStatus)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>optional string current_map = 1;</code>
     * @return Whether the currentMap field is set.
     */
    boolean hasCurrentMap();
    /**
     * <code>optional string current_map = 1;</code>
     * @return The currentMap.
     */
    java.lang.String getCurrentMap();
    /**
     * <code>optional string current_map = 1;</code>
     * @return The bytes for currentMap.
     */
    com.google.protobuf.ByteString
        getCurrentMapBytes();

    /**
     * <code>optional string current_map_md5 = 2;</code>
     * @return Whether the currentMapMd5 field is set.
     */
    boolean hasCurrentMapMd5();
    /**
     * <code>optional string current_map_md5 = 2;</code>
     * @return The currentMapMd5.
     */
    java.lang.String getCurrentMapMd5();
    /**
     * <code>optional string current_map_md5 = 2;</code>
     * @return The bytes for currentMapMd5.
     */
    com.google.protobuf.ByteString
        getCurrentMapMd5Bytes();

    /**
     * <code>repeated string maps = 3;</code>
     * @return A list containing the maps.
     */
    java.util.List<java.lang.String>
        getMapsList();
    /**
     * <code>repeated string maps = 3;</code>
     * @return The count of maps.
     */
    int getMapsCount();
    /**
     * <code>repeated string maps = 3;</code>
     * @param index The index of the element to return.
     * @return The maps at the given index.
     */
    java.lang.String getMaps(int index);
    /**
     * <code>repeated string maps = 3;</code>
     * @param index The index of the value to return.
     * @return The bytes of the maps at the given index.
     */
    com.google.protobuf.ByteString
        getMapsBytes(int index);

    /**
     * <code>repeated .cmvr.api.MapFileInfo map_files_info = 4;</code>
     */
    java.util.List<cmvr.api.AgvCommand.MapFileInfo> 
        getMapFilesInfoList();
    /**
     * <code>repeated .cmvr.api.MapFileInfo map_files_info = 4;</code>
     */
    cmvr.api.AgvCommand.MapFileInfo getMapFilesInfo(int index);
    /**
     * <code>repeated .cmvr.api.MapFileInfo map_files_info = 4;</code>
     */
    int getMapFilesInfoCount();
    /**
     * <code>repeated .cmvr.api.MapFileInfo map_files_info = 4;</code>
     */
    java.util.List<? extends cmvr.api.AgvCommand.MapFileInfoOrBuilder> 
        getMapFilesInfoOrBuilderList();
    /**
     * <code>repeated .cmvr.api.MapFileInfo map_files_info = 4;</code>
     */
    cmvr.api.AgvCommand.MapFileInfoOrBuilder getMapFilesInfoOrBuilder(
        int index);

    /**
     * <code>optional int32 ret_code = 5;</code>
     * @return Whether the retCode field is set.
     */
    boolean hasRetCode();
    /**
     * <code>optional int32 ret_code = 5;</code>
     * @return The retCode.
     */
    int getRetCode();

    /**
     * <code>optional string create_on = 6;</code>
     * @return Whether the createOn field is set.
     */
    boolean hasCreateOn();
    /**
     * <code>optional string create_on = 6;</code>
     * @return The createOn.
     */
    java.lang.String getCreateOn();
    /**
     * <code>optional string create_on = 6;</code>
     * @return The bytes for createOn.
     */
    com.google.protobuf.ByteString
        getCreateOnBytes();

    /**
     * <code>optional string err_msg = 7;</code>
     * @return Whether the errMsg field is set.
     */
    boolean hasErrMsg();
    /**
     * <code>optional string err_msg = 7;</code>
     * @return The errMsg.
     */
    java.lang.String getErrMsg();
    /**
     * <code>optional string err_msg = 7;</code>
     * @return The bytes for errMsg.
     */
    com.google.protobuf.ByteString
        getErrMsgBytes();
  }
  /**
   * <pre>
   * 地图查询响应
   * </pre>
   *
   * Protobuf type {@code cmvr.api.AgvMapStatus}
   */
  public static final class AgvMapStatus extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:cmvr.api.AgvMapStatus)
      AgvMapStatusOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AgvMapStatus.newBuilder() to construct.
    private AgvMapStatus(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private AgvMapStatus() {
      currentMap_ = "";
      currentMapMd5_ = "";
      maps_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      mapFilesInfo_ = java.util.Collections.emptyList();
      createOn_ = "";
      errMsg_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new AgvMapStatus();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvMapStatus_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvMapStatus_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              cmvr.api.AgvCommand.AgvMapStatus.class, cmvr.api.AgvCommand.AgvMapStatus.Builder.class);
    }

    private int bitField0_;
    public static final int CURRENT_MAP_FIELD_NUMBER = 1;
    private volatile java.lang.Object currentMap_;
    /**
     * <code>optional string current_map = 1;</code>
     * @return Whether the currentMap field is set.
     */
    @java.lang.Override
    public boolean hasCurrentMap() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional string current_map = 1;</code>
     * @return The currentMap.
     */
    @java.lang.Override
    public java.lang.String getCurrentMap() {
      java.lang.Object ref = currentMap_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        currentMap_ = s;
        return s;
      }
    }
    /**
     * <code>optional string current_map = 1;</code>
     * @return The bytes for currentMap.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getCurrentMapBytes() {
      java.lang.Object ref = currentMap_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        currentMap_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CURRENT_MAP_MD5_FIELD_NUMBER = 2;
    private volatile java.lang.Object currentMapMd5_;
    /**
     * <code>optional string current_map_md5 = 2;</code>
     * @return Whether the currentMapMd5 field is set.
     */
    @java.lang.Override
    public boolean hasCurrentMapMd5() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional string current_map_md5 = 2;</code>
     * @return The currentMapMd5.
     */
    @java.lang.Override
    public java.lang.String getCurrentMapMd5() {
      java.lang.Object ref = currentMapMd5_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        currentMapMd5_ = s;
        return s;
      }
    }
    /**
     * <code>optional string current_map_md5 = 2;</code>
     * @return The bytes for currentMapMd5.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getCurrentMapMd5Bytes() {
      java.lang.Object ref = currentMapMd5_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        currentMapMd5_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MAPS_FIELD_NUMBER = 3;
    private com.google.protobuf.LazyStringList maps_;
    /**
     * <code>repeated string maps = 3;</code>
     * @return A list containing the maps.
     */
    public com.google.protobuf.ProtocolStringList
        getMapsList() {
      return maps_;
    }
    /**
     * <code>repeated string maps = 3;</code>
     * @return The count of maps.
     */
    public int getMapsCount() {
      return maps_.size();
    }
    /**
     * <code>repeated string maps = 3;</code>
     * @param index The index of the element to return.
     * @return The maps at the given index.
     */
    public java.lang.String getMaps(int index) {
      return maps_.get(index);
    }
    /**
     * <code>repeated string maps = 3;</code>
     * @param index The index of the value to return.
     * @return The bytes of the maps at the given index.
     */
    public com.google.protobuf.ByteString
        getMapsBytes(int index) {
      return maps_.getByteString(index);
    }

    public static final int MAP_FILES_INFO_FIELD_NUMBER = 4;
    private java.util.List<cmvr.api.AgvCommand.MapFileInfo> mapFilesInfo_;
    /**
     * <code>repeated .cmvr.api.MapFileInfo map_files_info = 4;</code>
     */
    @java.lang.Override
    public java.util.List<cmvr.api.AgvCommand.MapFileInfo> getMapFilesInfoList() {
      return mapFilesInfo_;
    }
    /**
     * <code>repeated .cmvr.api.MapFileInfo map_files_info = 4;</code>
     */
    @java.lang.Override
    public java.util.List<? extends cmvr.api.AgvCommand.MapFileInfoOrBuilder> 
        getMapFilesInfoOrBuilderList() {
      return mapFilesInfo_;
    }
    /**
     * <code>repeated .cmvr.api.MapFileInfo map_files_info = 4;</code>
     */
    @java.lang.Override
    public int getMapFilesInfoCount() {
      return mapFilesInfo_.size();
    }
    /**
     * <code>repeated .cmvr.api.MapFileInfo map_files_info = 4;</code>
     */
    @java.lang.Override
    public cmvr.api.AgvCommand.MapFileInfo getMapFilesInfo(int index) {
      return mapFilesInfo_.get(index);
    }
    /**
     * <code>repeated .cmvr.api.MapFileInfo map_files_info = 4;</code>
     */
    @java.lang.Override
    public cmvr.api.AgvCommand.MapFileInfoOrBuilder getMapFilesInfoOrBuilder(
        int index) {
      return mapFilesInfo_.get(index);
    }

    public static final int RET_CODE_FIELD_NUMBER = 5;
    private int retCode_;
    /**
     * <code>optional int32 ret_code = 5;</code>
     * @return Whether the retCode field is set.
     */
    @java.lang.Override
    public boolean hasRetCode() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional int32 ret_code = 5;</code>
     * @return The retCode.
     */
    @java.lang.Override
    public int getRetCode() {
      return retCode_;
    }

    public static final int CREATE_ON_FIELD_NUMBER = 6;
    private volatile java.lang.Object createOn_;
    /**
     * <code>optional string create_on = 6;</code>
     * @return Whether the createOn field is set.
     */
    @java.lang.Override
    public boolean hasCreateOn() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>optional string create_on = 6;</code>
     * @return The createOn.
     */
    @java.lang.Override
    public java.lang.String getCreateOn() {
      java.lang.Object ref = createOn_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        createOn_ = s;
        return s;
      }
    }
    /**
     * <code>optional string create_on = 6;</code>
     * @return The bytes for createOn.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getCreateOnBytes() {
      java.lang.Object ref = createOn_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        createOn_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ERR_MSG_FIELD_NUMBER = 7;
    private volatile java.lang.Object errMsg_;
    /**
     * <code>optional string err_msg = 7;</code>
     * @return Whether the errMsg field is set.
     */
    @java.lang.Override
    public boolean hasErrMsg() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>optional string err_msg = 7;</code>
     * @return The errMsg.
     */
    @java.lang.Override
    public java.lang.String getErrMsg() {
      java.lang.Object ref = errMsg_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        errMsg_ = s;
        return s;
      }
    }
    /**
     * <code>optional string err_msg = 7;</code>
     * @return The bytes for errMsg.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getErrMsgBytes() {
      java.lang.Object ref = errMsg_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        errMsg_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, currentMap_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, currentMapMd5_);
      }
      for (int i = 0; i < maps_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, maps_.getRaw(i));
      }
      for (int i = 0; i < mapFilesInfo_.size(); i++) {
        output.writeMessage(4, mapFilesInfo_.get(i));
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeInt32(5, retCode_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, createOn_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, errMsg_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, currentMap_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, currentMapMd5_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < maps_.size(); i++) {
          dataSize += computeStringSizeNoTag(maps_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getMapsList().size();
      }
      for (int i = 0; i < mapFilesInfo_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, mapFilesInfo_.get(i));
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, retCode_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, createOn_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, errMsg_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof cmvr.api.AgvCommand.AgvMapStatus)) {
        return super.equals(obj);
      }
      cmvr.api.AgvCommand.AgvMapStatus other = (cmvr.api.AgvCommand.AgvMapStatus) obj;

      if (hasCurrentMap() != other.hasCurrentMap()) return false;
      if (hasCurrentMap()) {
        if (!getCurrentMap()
            .equals(other.getCurrentMap())) return false;
      }
      if (hasCurrentMapMd5() != other.hasCurrentMapMd5()) return false;
      if (hasCurrentMapMd5()) {
        if (!getCurrentMapMd5()
            .equals(other.getCurrentMapMd5())) return false;
      }
      if (!getMapsList()
          .equals(other.getMapsList())) return false;
      if (!getMapFilesInfoList()
          .equals(other.getMapFilesInfoList())) return false;
      if (hasRetCode() != other.hasRetCode()) return false;
      if (hasRetCode()) {
        if (getRetCode()
            != other.getRetCode()) return false;
      }
      if (hasCreateOn() != other.hasCreateOn()) return false;
      if (hasCreateOn()) {
        if (!getCreateOn()
            .equals(other.getCreateOn())) return false;
      }
      if (hasErrMsg() != other.hasErrMsg()) return false;
      if (hasErrMsg()) {
        if (!getErrMsg()
            .equals(other.getErrMsg())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasCurrentMap()) {
        hash = (37 * hash) + CURRENT_MAP_FIELD_NUMBER;
        hash = (53 * hash) + getCurrentMap().hashCode();
      }
      if (hasCurrentMapMd5()) {
        hash = (37 * hash) + CURRENT_MAP_MD5_FIELD_NUMBER;
        hash = (53 * hash) + getCurrentMapMd5().hashCode();
      }
      if (getMapsCount() > 0) {
        hash = (37 * hash) + MAPS_FIELD_NUMBER;
        hash = (53 * hash) + getMapsList().hashCode();
      }
      if (getMapFilesInfoCount() > 0) {
        hash = (37 * hash) + MAP_FILES_INFO_FIELD_NUMBER;
        hash = (53 * hash) + getMapFilesInfoList().hashCode();
      }
      if (hasRetCode()) {
        hash = (37 * hash) + RET_CODE_FIELD_NUMBER;
        hash = (53 * hash) + getRetCode();
      }
      if (hasCreateOn()) {
        hash = (37 * hash) + CREATE_ON_FIELD_NUMBER;
        hash = (53 * hash) + getCreateOn().hashCode();
      }
      if (hasErrMsg()) {
        hash = (37 * hash) + ERR_MSG_FIELD_NUMBER;
        hash = (53 * hash) + getErrMsg().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cmvr.api.AgvCommand.AgvMapStatus parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.AgvMapStatus parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.AgvMapStatus parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.AgvMapStatus parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.AgvMapStatus parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.AgvMapStatus parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.AgvMapStatus parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.AgvMapStatus parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.AgvMapStatus parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.AgvMapStatus parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.AgvMapStatus parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.AgvMapStatus parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(cmvr.api.AgvCommand.AgvMapStatus prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * 地图查询响应
     * </pre>
     *
     * Protobuf type {@code cmvr.api.AgvMapStatus}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:cmvr.api.AgvMapStatus)
        cmvr.api.AgvCommand.AgvMapStatusOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvMapStatus_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvMapStatus_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.AgvCommand.AgvMapStatus.class, cmvr.api.AgvCommand.AgvMapStatus.Builder.class);
      }

      // Construct using cmvr.api.AgvCommand.AgvMapStatus.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        currentMap_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        currentMapMd5_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        maps_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        if (mapFilesInfoBuilder_ == null) {
          mapFilesInfo_ = java.util.Collections.emptyList();
        } else {
          mapFilesInfo_ = null;
          mapFilesInfoBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        retCode_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        createOn_ = "";
        bitField0_ = (bitField0_ & ~0x00000020);
        errMsg_ = "";
        bitField0_ = (bitField0_ & ~0x00000040);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvMapStatus_descriptor;
      }

      @java.lang.Override
      public cmvr.api.AgvCommand.AgvMapStatus getDefaultInstanceForType() {
        return cmvr.api.AgvCommand.AgvMapStatus.getDefaultInstance();
      }

      @java.lang.Override
      public cmvr.api.AgvCommand.AgvMapStatus build() {
        cmvr.api.AgvCommand.AgvMapStatus result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cmvr.api.AgvCommand.AgvMapStatus buildPartial() {
        cmvr.api.AgvCommand.AgvMapStatus result = new cmvr.api.AgvCommand.AgvMapStatus(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          to_bitField0_ |= 0x00000001;
        }
        result.currentMap_ = currentMap_;
        if (((from_bitField0_ & 0x00000002) != 0)) {
          to_bitField0_ |= 0x00000002;
        }
        result.currentMapMd5_ = currentMapMd5_;
        if (((bitField0_ & 0x00000004) != 0)) {
          maps_ = maps_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000004);
        }
        result.maps_ = maps_;
        if (mapFilesInfoBuilder_ == null) {
          if (((bitField0_ & 0x00000008) != 0)) {
            mapFilesInfo_ = java.util.Collections.unmodifiableList(mapFilesInfo_);
            bitField0_ = (bitField0_ & ~0x00000008);
          }
          result.mapFilesInfo_ = mapFilesInfo_;
        } else {
          result.mapFilesInfo_ = mapFilesInfoBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.retCode_ = retCode_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          to_bitField0_ |= 0x00000008;
        }
        result.createOn_ = createOn_;
        if (((from_bitField0_ & 0x00000040) != 0)) {
          to_bitField0_ |= 0x00000010;
        }
        result.errMsg_ = errMsg_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cmvr.api.AgvCommand.AgvMapStatus) {
          return mergeFrom((cmvr.api.AgvCommand.AgvMapStatus)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cmvr.api.AgvCommand.AgvMapStatus other) {
        if (other == cmvr.api.AgvCommand.AgvMapStatus.getDefaultInstance()) return this;
        if (other.hasCurrentMap()) {
          bitField0_ |= 0x00000001;
          currentMap_ = other.currentMap_;
          onChanged();
        }
        if (other.hasCurrentMapMd5()) {
          bitField0_ |= 0x00000002;
          currentMapMd5_ = other.currentMapMd5_;
          onChanged();
        }
        if (!other.maps_.isEmpty()) {
          if (maps_.isEmpty()) {
            maps_ = other.maps_;
            bitField0_ = (bitField0_ & ~0x00000004);
          } else {
            ensureMapsIsMutable();
            maps_.addAll(other.maps_);
          }
          onChanged();
        }
        if (mapFilesInfoBuilder_ == null) {
          if (!other.mapFilesInfo_.isEmpty()) {
            if (mapFilesInfo_.isEmpty()) {
              mapFilesInfo_ = other.mapFilesInfo_;
              bitField0_ = (bitField0_ & ~0x00000008);
            } else {
              ensureMapFilesInfoIsMutable();
              mapFilesInfo_.addAll(other.mapFilesInfo_);
            }
            onChanged();
          }
        } else {
          if (!other.mapFilesInfo_.isEmpty()) {
            if (mapFilesInfoBuilder_.isEmpty()) {
              mapFilesInfoBuilder_.dispose();
              mapFilesInfoBuilder_ = null;
              mapFilesInfo_ = other.mapFilesInfo_;
              bitField0_ = (bitField0_ & ~0x00000008);
              mapFilesInfoBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getMapFilesInfoFieldBuilder() : null;
            } else {
              mapFilesInfoBuilder_.addAllMessages(other.mapFilesInfo_);
            }
          }
        }
        if (other.hasRetCode()) {
          setRetCode(other.getRetCode());
        }
        if (other.hasCreateOn()) {
          bitField0_ |= 0x00000020;
          createOn_ = other.createOn_;
          onChanged();
        }
        if (other.hasErrMsg()) {
          bitField0_ |= 0x00000040;
          errMsg_ = other.errMsg_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                currentMap_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                currentMapMd5_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                java.lang.String s = input.readStringRequireUtf8();
                ensureMapsIsMutable();
                maps_.add(s);
                break;
              } // case 26
              case 34: {
                cmvr.api.AgvCommand.MapFileInfo m =
                    input.readMessage(
                        cmvr.api.AgvCommand.MapFileInfo.parser(),
                        extensionRegistry);
                if (mapFilesInfoBuilder_ == null) {
                  ensureMapFilesInfoIsMutable();
                  mapFilesInfo_.add(m);
                } else {
                  mapFilesInfoBuilder_.addMessage(m);
                }
                break;
              } // case 34
              case 40: {
                retCode_ = input.readInt32();
                bitField0_ |= 0x00000010;
                break;
              } // case 40
              case 50: {
                createOn_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000020;
                break;
              } // case 50
              case 58: {
                errMsg_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000040;
                break;
              } // case 58
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object currentMap_ = "";
      /**
       * <code>optional string current_map = 1;</code>
       * @return Whether the currentMap field is set.
       */
      public boolean hasCurrentMap() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>optional string current_map = 1;</code>
       * @return The currentMap.
       */
      public java.lang.String getCurrentMap() {
        java.lang.Object ref = currentMap_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          currentMap_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string current_map = 1;</code>
       * @return The bytes for currentMap.
       */
      public com.google.protobuf.ByteString
          getCurrentMapBytes() {
        java.lang.Object ref = currentMap_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          currentMap_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string current_map = 1;</code>
       * @param value The currentMap to set.
       * @return This builder for chaining.
       */
      public Builder setCurrentMap(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        currentMap_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string current_map = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearCurrentMap() {
        bitField0_ = (bitField0_ & ~0x00000001);
        currentMap_ = getDefaultInstance().getCurrentMap();
        onChanged();
        return this;
      }
      /**
       * <code>optional string current_map = 1;</code>
       * @param value The bytes for currentMap to set.
       * @return This builder for chaining.
       */
      public Builder setCurrentMapBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        bitField0_ |= 0x00000001;
        currentMap_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object currentMapMd5_ = "";
      /**
       * <code>optional string current_map_md5 = 2;</code>
       * @return Whether the currentMapMd5 field is set.
       */
      public boolean hasCurrentMapMd5() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional string current_map_md5 = 2;</code>
       * @return The currentMapMd5.
       */
      public java.lang.String getCurrentMapMd5() {
        java.lang.Object ref = currentMapMd5_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          currentMapMd5_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string current_map_md5 = 2;</code>
       * @return The bytes for currentMapMd5.
       */
      public com.google.protobuf.ByteString
          getCurrentMapMd5Bytes() {
        java.lang.Object ref = currentMapMd5_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          currentMapMd5_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string current_map_md5 = 2;</code>
       * @param value The currentMapMd5 to set.
       * @return This builder for chaining.
       */
      public Builder setCurrentMapMd5(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        currentMapMd5_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string current_map_md5 = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearCurrentMapMd5() {
        bitField0_ = (bitField0_ & ~0x00000002);
        currentMapMd5_ = getDefaultInstance().getCurrentMapMd5();
        onChanged();
        return this;
      }
      /**
       * <code>optional string current_map_md5 = 2;</code>
       * @param value The bytes for currentMapMd5 to set.
       * @return This builder for chaining.
       */
      public Builder setCurrentMapMd5Bytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        bitField0_ |= 0x00000002;
        currentMapMd5_ = value;
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList maps_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureMapsIsMutable() {
        if (!((bitField0_ & 0x00000004) != 0)) {
          maps_ = new com.google.protobuf.LazyStringArrayList(maps_);
          bitField0_ |= 0x00000004;
         }
      }
      /**
       * <code>repeated string maps = 3;</code>
       * @return A list containing the maps.
       */
      public com.google.protobuf.ProtocolStringList
          getMapsList() {
        return maps_.getUnmodifiableView();
      }
      /**
       * <code>repeated string maps = 3;</code>
       * @return The count of maps.
       */
      public int getMapsCount() {
        return maps_.size();
      }
      /**
       * <code>repeated string maps = 3;</code>
       * @param index The index of the element to return.
       * @return The maps at the given index.
       */
      public java.lang.String getMaps(int index) {
        return maps_.get(index);
      }
      /**
       * <code>repeated string maps = 3;</code>
       * @param index The index of the value to return.
       * @return The bytes of the maps at the given index.
       */
      public com.google.protobuf.ByteString
          getMapsBytes(int index) {
        return maps_.getByteString(index);
      }
      /**
       * <code>repeated string maps = 3;</code>
       * @param index The index to set the value at.
       * @param value The maps to set.
       * @return This builder for chaining.
       */
      public Builder setMaps(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureMapsIsMutable();
        maps_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string maps = 3;</code>
       * @param value The maps to add.
       * @return This builder for chaining.
       */
      public Builder addMaps(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureMapsIsMutable();
        maps_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string maps = 3;</code>
       * @param values The maps to add.
       * @return This builder for chaining.
       */
      public Builder addAllMaps(
          java.lang.Iterable<java.lang.String> values) {
        ensureMapsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, maps_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string maps = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearMaps() {
        maps_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string maps = 3;</code>
       * @param value The bytes of the maps to add.
       * @return This builder for chaining.
       */
      public Builder addMapsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureMapsIsMutable();
        maps_.add(value);
        onChanged();
        return this;
      }

      private java.util.List<cmvr.api.AgvCommand.MapFileInfo> mapFilesInfo_ =
        java.util.Collections.emptyList();
      private void ensureMapFilesInfoIsMutable() {
        if (!((bitField0_ & 0x00000008) != 0)) {
          mapFilesInfo_ = new java.util.ArrayList<cmvr.api.AgvCommand.MapFileInfo>(mapFilesInfo_);
          bitField0_ |= 0x00000008;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          cmvr.api.AgvCommand.MapFileInfo, cmvr.api.AgvCommand.MapFileInfo.Builder, cmvr.api.AgvCommand.MapFileInfoOrBuilder> mapFilesInfoBuilder_;

      /**
       * <code>repeated .cmvr.api.MapFileInfo map_files_info = 4;</code>
       */
      public java.util.List<cmvr.api.AgvCommand.MapFileInfo> getMapFilesInfoList() {
        if (mapFilesInfoBuilder_ == null) {
          return java.util.Collections.unmodifiableList(mapFilesInfo_);
        } else {
          return mapFilesInfoBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .cmvr.api.MapFileInfo map_files_info = 4;</code>
       */
      public int getMapFilesInfoCount() {
        if (mapFilesInfoBuilder_ == null) {
          return mapFilesInfo_.size();
        } else {
          return mapFilesInfoBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .cmvr.api.MapFileInfo map_files_info = 4;</code>
       */
      public cmvr.api.AgvCommand.MapFileInfo getMapFilesInfo(int index) {
        if (mapFilesInfoBuilder_ == null) {
          return mapFilesInfo_.get(index);
        } else {
          return mapFilesInfoBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .cmvr.api.MapFileInfo map_files_info = 4;</code>
       */
      public Builder setMapFilesInfo(
          int index, cmvr.api.AgvCommand.MapFileInfo value) {
        if (mapFilesInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMapFilesInfoIsMutable();
          mapFilesInfo_.set(index, value);
          onChanged();
        } else {
          mapFilesInfoBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .cmvr.api.MapFileInfo map_files_info = 4;</code>
       */
      public Builder setMapFilesInfo(
          int index, cmvr.api.AgvCommand.MapFileInfo.Builder builderForValue) {
        if (mapFilesInfoBuilder_ == null) {
          ensureMapFilesInfoIsMutable();
          mapFilesInfo_.set(index, builderForValue.build());
          onChanged();
        } else {
          mapFilesInfoBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .cmvr.api.MapFileInfo map_files_info = 4;</code>
       */
      public Builder addMapFilesInfo(cmvr.api.AgvCommand.MapFileInfo value) {
        if (mapFilesInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMapFilesInfoIsMutable();
          mapFilesInfo_.add(value);
          onChanged();
        } else {
          mapFilesInfoBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .cmvr.api.MapFileInfo map_files_info = 4;</code>
       */
      public Builder addMapFilesInfo(
          int index, cmvr.api.AgvCommand.MapFileInfo value) {
        if (mapFilesInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMapFilesInfoIsMutable();
          mapFilesInfo_.add(index, value);
          onChanged();
        } else {
          mapFilesInfoBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .cmvr.api.MapFileInfo map_files_info = 4;</code>
       */
      public Builder addMapFilesInfo(
          cmvr.api.AgvCommand.MapFileInfo.Builder builderForValue) {
        if (mapFilesInfoBuilder_ == null) {
          ensureMapFilesInfoIsMutable();
          mapFilesInfo_.add(builderForValue.build());
          onChanged();
        } else {
          mapFilesInfoBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .cmvr.api.MapFileInfo map_files_info = 4;</code>
       */
      public Builder addMapFilesInfo(
          int index, cmvr.api.AgvCommand.MapFileInfo.Builder builderForValue) {
        if (mapFilesInfoBuilder_ == null) {
          ensureMapFilesInfoIsMutable();
          mapFilesInfo_.add(index, builderForValue.build());
          onChanged();
        } else {
          mapFilesInfoBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .cmvr.api.MapFileInfo map_files_info = 4;</code>
       */
      public Builder addAllMapFilesInfo(
          java.lang.Iterable<? extends cmvr.api.AgvCommand.MapFileInfo> values) {
        if (mapFilesInfoBuilder_ == null) {
          ensureMapFilesInfoIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, mapFilesInfo_);
          onChanged();
        } else {
          mapFilesInfoBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .cmvr.api.MapFileInfo map_files_info = 4;</code>
       */
      public Builder clearMapFilesInfo() {
        if (mapFilesInfoBuilder_ == null) {
          mapFilesInfo_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
          onChanged();
        } else {
          mapFilesInfoBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .cmvr.api.MapFileInfo map_files_info = 4;</code>
       */
      public Builder removeMapFilesInfo(int index) {
        if (mapFilesInfoBuilder_ == null) {
          ensureMapFilesInfoIsMutable();
          mapFilesInfo_.remove(index);
          onChanged();
        } else {
          mapFilesInfoBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .cmvr.api.MapFileInfo map_files_info = 4;</code>
       */
      public cmvr.api.AgvCommand.MapFileInfo.Builder getMapFilesInfoBuilder(
          int index) {
        return getMapFilesInfoFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .cmvr.api.MapFileInfo map_files_info = 4;</code>
       */
      public cmvr.api.AgvCommand.MapFileInfoOrBuilder getMapFilesInfoOrBuilder(
          int index) {
        if (mapFilesInfoBuilder_ == null) {
          return mapFilesInfo_.get(index);  } else {
          return mapFilesInfoBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .cmvr.api.MapFileInfo map_files_info = 4;</code>
       */
      public java.util.List<? extends cmvr.api.AgvCommand.MapFileInfoOrBuilder> 
           getMapFilesInfoOrBuilderList() {
        if (mapFilesInfoBuilder_ != null) {
          return mapFilesInfoBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(mapFilesInfo_);
        }
      }
      /**
       * <code>repeated .cmvr.api.MapFileInfo map_files_info = 4;</code>
       */
      public cmvr.api.AgvCommand.MapFileInfo.Builder addMapFilesInfoBuilder() {
        return getMapFilesInfoFieldBuilder().addBuilder(
            cmvr.api.AgvCommand.MapFileInfo.getDefaultInstance());
      }
      /**
       * <code>repeated .cmvr.api.MapFileInfo map_files_info = 4;</code>
       */
      public cmvr.api.AgvCommand.MapFileInfo.Builder addMapFilesInfoBuilder(
          int index) {
        return getMapFilesInfoFieldBuilder().addBuilder(
            index, cmvr.api.AgvCommand.MapFileInfo.getDefaultInstance());
      }
      /**
       * <code>repeated .cmvr.api.MapFileInfo map_files_info = 4;</code>
       */
      public java.util.List<cmvr.api.AgvCommand.MapFileInfo.Builder> 
           getMapFilesInfoBuilderList() {
        return getMapFilesInfoFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          cmvr.api.AgvCommand.MapFileInfo, cmvr.api.AgvCommand.MapFileInfo.Builder, cmvr.api.AgvCommand.MapFileInfoOrBuilder> 
          getMapFilesInfoFieldBuilder() {
        if (mapFilesInfoBuilder_ == null) {
          mapFilesInfoBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              cmvr.api.AgvCommand.MapFileInfo, cmvr.api.AgvCommand.MapFileInfo.Builder, cmvr.api.AgvCommand.MapFileInfoOrBuilder>(
                  mapFilesInfo_,
                  ((bitField0_ & 0x00000008) != 0),
                  getParentForChildren(),
                  isClean());
          mapFilesInfo_ = null;
        }
        return mapFilesInfoBuilder_;
      }

      private int retCode_ ;
      /**
       * <code>optional int32 ret_code = 5;</code>
       * @return Whether the retCode field is set.
       */
      @java.lang.Override
      public boolean hasRetCode() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <code>optional int32 ret_code = 5;</code>
       * @return The retCode.
       */
      @java.lang.Override
      public int getRetCode() {
        return retCode_;
      }
      /**
       * <code>optional int32 ret_code = 5;</code>
       * @param value The retCode to set.
       * @return This builder for chaining.
       */
      public Builder setRetCode(int value) {
        bitField0_ |= 0x00000010;
        retCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 ret_code = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearRetCode() {
        bitField0_ = (bitField0_ & ~0x00000010);
        retCode_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object createOn_ = "";
      /**
       * <code>optional string create_on = 6;</code>
       * @return Whether the createOn field is set.
       */
      public boolean hasCreateOn() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <code>optional string create_on = 6;</code>
       * @return The createOn.
       */
      public java.lang.String getCreateOn() {
        java.lang.Object ref = createOn_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          createOn_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string create_on = 6;</code>
       * @return The bytes for createOn.
       */
      public com.google.protobuf.ByteString
          getCreateOnBytes() {
        java.lang.Object ref = createOn_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          createOn_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string create_on = 6;</code>
       * @param value The createOn to set.
       * @return This builder for chaining.
       */
      public Builder setCreateOn(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        createOn_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string create_on = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearCreateOn() {
        bitField0_ = (bitField0_ & ~0x00000020);
        createOn_ = getDefaultInstance().getCreateOn();
        onChanged();
        return this;
      }
      /**
       * <code>optional string create_on = 6;</code>
       * @param value The bytes for createOn to set.
       * @return This builder for chaining.
       */
      public Builder setCreateOnBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        bitField0_ |= 0x00000020;
        createOn_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object errMsg_ = "";
      /**
       * <code>optional string err_msg = 7;</code>
       * @return Whether the errMsg field is set.
       */
      public boolean hasErrMsg() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <code>optional string err_msg = 7;</code>
       * @return The errMsg.
       */
      public java.lang.String getErrMsg() {
        java.lang.Object ref = errMsg_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          errMsg_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string err_msg = 7;</code>
       * @return The bytes for errMsg.
       */
      public com.google.protobuf.ByteString
          getErrMsgBytes() {
        java.lang.Object ref = errMsg_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          errMsg_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string err_msg = 7;</code>
       * @param value The errMsg to set.
       * @return This builder for chaining.
       */
      public Builder setErrMsg(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000040;
        errMsg_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string err_msg = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearErrMsg() {
        bitField0_ = (bitField0_ & ~0x00000040);
        errMsg_ = getDefaultInstance().getErrMsg();
        onChanged();
        return this;
      }
      /**
       * <code>optional string err_msg = 7;</code>
       * @param value The bytes for errMsg to set.
       * @return This builder for chaining.
       */
      public Builder setErrMsgBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        bitField0_ |= 0x00000040;
        errMsg_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:cmvr.api.AgvMapStatus)
    }

    // @@protoc_insertion_point(class_scope:cmvr.api.AgvMapStatus)
    private static final cmvr.api.AgvCommand.AgvMapStatus DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new cmvr.api.AgvCommand.AgvMapStatus();
    }

    public static cmvr.api.AgvCommand.AgvMapStatus getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<AgvMapStatus>
        PARSER = new com.google.protobuf.AbstractParser<AgvMapStatus>() {
      @java.lang.Override
      public AgvMapStatus parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<AgvMapStatus> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<AgvMapStatus> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public cmvr.api.AgvCommand.AgvMapStatus getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface RobotStatusMapCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:cmvr.api.RobotStatusMapCommand)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * <pre>
   * 查询地图状态命令
   * </pre>
   *
   * Protobuf type {@code cmvr.api.RobotStatusMapCommand}
   */
  public static final class RobotStatusMapCommand extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:cmvr.api.RobotStatusMapCommand)
      RobotStatusMapCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use RobotStatusMapCommand.newBuilder() to construct.
    private RobotStatusMapCommand(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private RobotStatusMapCommand() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new RobotStatusMapCommand();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotStatusMapCommand_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotStatusMapCommand_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              cmvr.api.AgvCommand.RobotStatusMapCommand.class, cmvr.api.AgvCommand.RobotStatusMapCommand.Builder.class);
    }

    public interface RequestOrBuilder extends
        // @@protoc_insertion_point(interface_extends:cmvr.api.RobotStatusMapCommand.Request)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Request getHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder();
    }
    /**
     * Protobuf type {@code cmvr.api.RobotStatusMapCommand.Request}
     */
    public static final class Request extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.RobotStatusMapCommand.Request)
        RequestOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Request.newBuilder() to construct.
      private Request(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Request() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Request();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotStatusMapCommand_Request_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotStatusMapCommand_Request_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.AgvCommand.RobotStatusMapCommand.Request.class, cmvr.api.AgvCommand.RobotStatusMapCommand.Request.Builder.class);
      }

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Request header_;
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return The header.
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.Request getHeader() {
        return header_ == null ? cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() {
        return getHeader();
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (header_ != null) {
          output.writeMessage(1, getHeader());
        }
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (header_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getHeader());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof cmvr.api.AgvCommand.RobotStatusMapCommand.Request)) {
          return super.equals(obj);
        }
        cmvr.api.AgvCommand.RobotStatusMapCommand.Request other = (cmvr.api.AgvCommand.RobotStatusMapCommand.Request) obj;

        if (hasHeader() != other.hasHeader()) return false;
        if (hasHeader()) {
          if (!getHeader()
              .equals(other.getHeader())) return false;
        }
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasHeader()) {
          hash = (37 * hash) + HEADER_FIELD_NUMBER;
          hash = (53 * hash) + getHeader().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.AgvCommand.RobotStatusMapCommand.Request parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.RobotStatusMapCommand.Request parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.RobotStatusMapCommand.Request parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.RobotStatusMapCommand.Request parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.RobotStatusMapCommand.Request parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.RobotStatusMapCommand.Request parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.RobotStatusMapCommand.Request parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.RobotStatusMapCommand.Request parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.RobotStatusMapCommand.Request parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.RobotStatusMapCommand.Request parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.RobotStatusMapCommand.Request parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.RobotStatusMapCommand.Request parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(cmvr.api.AgvCommand.RobotStatusMapCommand.Request prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code cmvr.api.RobotStatusMapCommand.Request}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.RobotStatusMapCommand.Request)
          cmvr.api.AgvCommand.RobotStatusMapCommand.RequestOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotStatusMapCommand_Request_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotStatusMapCommand_Request_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  cmvr.api.AgvCommand.RobotStatusMapCommand.Request.class, cmvr.api.AgvCommand.RobotStatusMapCommand.Request.Builder.class);
        }

        // Construct using cmvr.api.AgvCommand.RobotStatusMapCommand.Request.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          if (headerBuilder_ == null) {
            header_ = null;
          } else {
            header_ = null;
            headerBuilder_ = null;
          }
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotStatusMapCommand_Request_descriptor;
        }

        @java.lang.Override
        public cmvr.api.AgvCommand.RobotStatusMapCommand.Request getDefaultInstanceForType() {
          return cmvr.api.AgvCommand.RobotStatusMapCommand.Request.getDefaultInstance();
        }

        @java.lang.Override
        public cmvr.api.AgvCommand.RobotStatusMapCommand.Request build() {
          cmvr.api.AgvCommand.RobotStatusMapCommand.Request result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public cmvr.api.AgvCommand.RobotStatusMapCommand.Request buildPartial() {
          cmvr.api.AgvCommand.RobotStatusMapCommand.Request result = new cmvr.api.AgvCommand.RobotStatusMapCommand.Request(this);
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof cmvr.api.AgvCommand.RobotStatusMapCommand.Request) {
            return mergeFrom((cmvr.api.AgvCommand.RobotStatusMapCommand.Request)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.AgvCommand.RobotStatusMapCommand.Request other) {
          if (other == cmvr.api.AgvCommand.RobotStatusMapCommand.Request.getDefaultInstance()) return this;
          if (other.hasHeader()) {
            mergeHeader(other.getHeader());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  input.readMessage(
                      getHeaderFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 10
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }

        private cmvr.api.Common.CommandHeader.Request header_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder> headerBuilder_;
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         * @return The header.
         */
        public cmvr.api.Common.CommandHeader.Request getHeader() {
          if (headerBuilder_ == null) {
            return header_ == null ? cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
          } else {
            return headerBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder setHeader(cmvr.api.Common.CommandHeader.Request value) {
          if (headerBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            header_ = value;
            onChanged();
          } else {
            headerBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder setHeader(
            cmvr.api.Common.CommandHeader.Request.Builder builderForValue) {
          if (headerBuilder_ == null) {
            header_ = builderForValue.build();
            onChanged();
          } else {
            headerBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder mergeHeader(cmvr.api.Common.CommandHeader.Request value) {
          if (headerBuilder_ == null) {
            if (header_ != null) {
              header_ =
                cmvr.api.Common.CommandHeader.Request.newBuilder(header_).mergeFrom(value).buildPartial();
            } else {
              header_ = value;
            }
            onChanged();
          } else {
            headerBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Request.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() {
          if (headerBuilder_ != null) {
            return headerBuilder_.getMessageOrBuilder();
          } else {
            return header_ == null ?
                cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder> 
            getHeaderFieldBuilder() {
          if (headerBuilder_ == null) {
            headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder>(
                    getHeader(),
                    getParentForChildren(),
                    isClean());
            header_ = null;
          }
          return headerBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:cmvr.api.RobotStatusMapCommand.Request)
      }

      // @@protoc_insertion_point(class_scope:cmvr.api.RobotStatusMapCommand.Request)
      private static final cmvr.api.AgvCommand.RobotStatusMapCommand.Request DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new cmvr.api.AgvCommand.RobotStatusMapCommand.Request();
      }

      public static cmvr.api.AgvCommand.RobotStatusMapCommand.Request getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser<Request>
          PARSER = new com.google.protobuf.AbstractParser<Request>() {
        @java.lang.Override
        public Request parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

      public static com.google.protobuf.Parser<Request> parser() {
        return PARSER;
      }

      @java.lang.Override
      public com.google.protobuf.Parser<Request> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public cmvr.api.AgvCommand.RobotStatusMapCommand.Request getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface FeedbackOrBuilder extends
        // @@protoc_insertion_point(interface_extends:cmvr.api.RobotStatusMapCommand.Feedback)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Feedback getHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder();

      /**
       * <code>.cmvr.api.AgvMapStatus status = 2;</code>
       * @return Whether the status field is set.
       */
      boolean hasStatus();
      /**
       * <code>.cmvr.api.AgvMapStatus status = 2;</code>
       * @return The status.
       */
      cmvr.api.AgvCommand.AgvMapStatus getStatus();
      /**
       * <code>.cmvr.api.AgvMapStatus status = 2;</code>
       */
      cmvr.api.AgvCommand.AgvMapStatusOrBuilder getStatusOrBuilder();
    }
    /**
     * Protobuf type {@code cmvr.api.RobotStatusMapCommand.Feedback}
     */
    public static final class Feedback extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.RobotStatusMapCommand.Feedback)
        FeedbackOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Feedback.newBuilder() to construct.
      private Feedback(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Feedback() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Feedback();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotStatusMapCommand_Feedback_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotStatusMapCommand_Feedback_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.AgvCommand.RobotStatusMapCommand.Feedback.class, cmvr.api.AgvCommand.RobotStatusMapCommand.Feedback.Builder.class);
      }

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Feedback header_;
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return The header.
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.Feedback getHeader() {
        return header_ == null ? cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() {
        return getHeader();
      }

      public static final int STATUS_FIELD_NUMBER = 2;
      private cmvr.api.AgvCommand.AgvMapStatus status_;
      /**
       * <code>.cmvr.api.AgvMapStatus status = 2;</code>
       * @return Whether the status field is set.
       */
      @java.lang.Override
      public boolean hasStatus() {
        return status_ != null;
      }
      /**
       * <code>.cmvr.api.AgvMapStatus status = 2;</code>
       * @return The status.
       */
      @java.lang.Override
      public cmvr.api.AgvCommand.AgvMapStatus getStatus() {
        return status_ == null ? cmvr.api.AgvCommand.AgvMapStatus.getDefaultInstance() : status_;
      }
      /**
       * <code>.cmvr.api.AgvMapStatus status = 2;</code>
       */
      @java.lang.Override
      public cmvr.api.AgvCommand.AgvMapStatusOrBuilder getStatusOrBuilder() {
        return getStatus();
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (header_ != null) {
          output.writeMessage(1, getHeader());
        }
        if (status_ != null) {
          output.writeMessage(2, getStatus());
        }
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (header_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getHeader());
        }
        if (status_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, getStatus());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof cmvr.api.AgvCommand.RobotStatusMapCommand.Feedback)) {
          return super.equals(obj);
        }
        cmvr.api.AgvCommand.RobotStatusMapCommand.Feedback other = (cmvr.api.AgvCommand.RobotStatusMapCommand.Feedback) obj;

        if (hasHeader() != other.hasHeader()) return false;
        if (hasHeader()) {
          if (!getHeader()
              .equals(other.getHeader())) return false;
        }
        if (hasStatus() != other.hasStatus()) return false;
        if (hasStatus()) {
          if (!getStatus()
              .equals(other.getStatus())) return false;
        }
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasHeader()) {
          hash = (37 * hash) + HEADER_FIELD_NUMBER;
          hash = (53 * hash) + getHeader().hashCode();
        }
        if (hasStatus()) {
          hash = (37 * hash) + STATUS_FIELD_NUMBER;
          hash = (53 * hash) + getStatus().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.AgvCommand.RobotStatusMapCommand.Feedback parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.RobotStatusMapCommand.Feedback parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.RobotStatusMapCommand.Feedback parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.RobotStatusMapCommand.Feedback parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.RobotStatusMapCommand.Feedback parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.RobotStatusMapCommand.Feedback parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.RobotStatusMapCommand.Feedback parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.RobotStatusMapCommand.Feedback parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.RobotStatusMapCommand.Feedback parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.RobotStatusMapCommand.Feedback parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.RobotStatusMapCommand.Feedback parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.RobotStatusMapCommand.Feedback parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(cmvr.api.AgvCommand.RobotStatusMapCommand.Feedback prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code cmvr.api.RobotStatusMapCommand.Feedback}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.RobotStatusMapCommand.Feedback)
          cmvr.api.AgvCommand.RobotStatusMapCommand.FeedbackOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotStatusMapCommand_Feedback_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotStatusMapCommand_Feedback_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  cmvr.api.AgvCommand.RobotStatusMapCommand.Feedback.class, cmvr.api.AgvCommand.RobotStatusMapCommand.Feedback.Builder.class);
        }

        // Construct using cmvr.api.AgvCommand.RobotStatusMapCommand.Feedback.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          if (headerBuilder_ == null) {
            header_ = null;
          } else {
            header_ = null;
            headerBuilder_ = null;
          }
          if (statusBuilder_ == null) {
            status_ = null;
          } else {
            status_ = null;
            statusBuilder_ = null;
          }
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotStatusMapCommand_Feedback_descriptor;
        }

        @java.lang.Override
        public cmvr.api.AgvCommand.RobotStatusMapCommand.Feedback getDefaultInstanceForType() {
          return cmvr.api.AgvCommand.RobotStatusMapCommand.Feedback.getDefaultInstance();
        }

        @java.lang.Override
        public cmvr.api.AgvCommand.RobotStatusMapCommand.Feedback build() {
          cmvr.api.AgvCommand.RobotStatusMapCommand.Feedback result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public cmvr.api.AgvCommand.RobotStatusMapCommand.Feedback buildPartial() {
          cmvr.api.AgvCommand.RobotStatusMapCommand.Feedback result = new cmvr.api.AgvCommand.RobotStatusMapCommand.Feedback(this);
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          if (statusBuilder_ == null) {
            result.status_ = status_;
          } else {
            result.status_ = statusBuilder_.build();
          }
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof cmvr.api.AgvCommand.RobotStatusMapCommand.Feedback) {
            return mergeFrom((cmvr.api.AgvCommand.RobotStatusMapCommand.Feedback)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.AgvCommand.RobotStatusMapCommand.Feedback other) {
          if (other == cmvr.api.AgvCommand.RobotStatusMapCommand.Feedback.getDefaultInstance()) return this;
          if (other.hasHeader()) {
            mergeHeader(other.getHeader());
          }
          if (other.hasStatus()) {
            mergeStatus(other.getStatus());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  input.readMessage(
                      getHeaderFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 10
                case 18: {
                  input.readMessage(
                      getStatusFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 18
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }

        private cmvr.api.Common.CommandHeader.Feedback header_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> headerBuilder_;
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         * @return The header.
         */
        public cmvr.api.Common.CommandHeader.Feedback getHeader() {
          if (headerBuilder_ == null) {
            return header_ == null ? cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
          } else {
            return headerBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder setHeader(cmvr.api.Common.CommandHeader.Feedback value) {
          if (headerBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            header_ = value;
            onChanged();
          } else {
            headerBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder setHeader(
            cmvr.api.Common.CommandHeader.Feedback.Builder builderForValue) {
          if (headerBuilder_ == null) {
            header_ = builderForValue.build();
            onChanged();
          } else {
            headerBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder mergeHeader(cmvr.api.Common.CommandHeader.Feedback value) {
          if (headerBuilder_ == null) {
            if (header_ != null) {
              header_ =
                cmvr.api.Common.CommandHeader.Feedback.newBuilder(header_).mergeFrom(value).buildPartial();
            } else {
              header_ = value;
            }
            onChanged();
          } else {
            headerBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Feedback.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() {
          if (headerBuilder_ != null) {
            return headerBuilder_.getMessageOrBuilder();
          } else {
            return header_ == null ?
                cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> 
            getHeaderFieldBuilder() {
          if (headerBuilder_ == null) {
            headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder>(
                    getHeader(),
                    getParentForChildren(),
                    isClean());
            header_ = null;
          }
          return headerBuilder_;
        }

        private cmvr.api.AgvCommand.AgvMapStatus status_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.AgvCommand.AgvMapStatus, cmvr.api.AgvCommand.AgvMapStatus.Builder, cmvr.api.AgvCommand.AgvMapStatusOrBuilder> statusBuilder_;
        /**
         * <code>.cmvr.api.AgvMapStatus status = 2;</code>
         * @return Whether the status field is set.
         */
        public boolean hasStatus() {
          return statusBuilder_ != null || status_ != null;
        }
        /**
         * <code>.cmvr.api.AgvMapStatus status = 2;</code>
         * @return The status.
         */
        public cmvr.api.AgvCommand.AgvMapStatus getStatus() {
          if (statusBuilder_ == null) {
            return status_ == null ? cmvr.api.AgvCommand.AgvMapStatus.getDefaultInstance() : status_;
          } else {
            return statusBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.AgvMapStatus status = 2;</code>
         */
        public Builder setStatus(cmvr.api.AgvCommand.AgvMapStatus value) {
          if (statusBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            status_ = value;
            onChanged();
          } else {
            statusBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.AgvMapStatus status = 2;</code>
         */
        public Builder setStatus(
            cmvr.api.AgvCommand.AgvMapStatus.Builder builderForValue) {
          if (statusBuilder_ == null) {
            status_ = builderForValue.build();
            onChanged();
          } else {
            statusBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.AgvMapStatus status = 2;</code>
         */
        public Builder mergeStatus(cmvr.api.AgvCommand.AgvMapStatus value) {
          if (statusBuilder_ == null) {
            if (status_ != null) {
              status_ =
                cmvr.api.AgvCommand.AgvMapStatus.newBuilder(status_).mergeFrom(value).buildPartial();
            } else {
              status_ = value;
            }
            onChanged();
          } else {
            statusBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.AgvMapStatus status = 2;</code>
         */
        public Builder clearStatus() {
          if (statusBuilder_ == null) {
            status_ = null;
            onChanged();
          } else {
            status_ = null;
            statusBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.AgvMapStatus status = 2;</code>
         */
        public cmvr.api.AgvCommand.AgvMapStatus.Builder getStatusBuilder() {
          
          onChanged();
          return getStatusFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.AgvMapStatus status = 2;</code>
         */
        public cmvr.api.AgvCommand.AgvMapStatusOrBuilder getStatusOrBuilder() {
          if (statusBuilder_ != null) {
            return statusBuilder_.getMessageOrBuilder();
          } else {
            return status_ == null ?
                cmvr.api.AgvCommand.AgvMapStatus.getDefaultInstance() : status_;
          }
        }
        /**
         * <code>.cmvr.api.AgvMapStatus status = 2;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.AgvCommand.AgvMapStatus, cmvr.api.AgvCommand.AgvMapStatus.Builder, cmvr.api.AgvCommand.AgvMapStatusOrBuilder> 
            getStatusFieldBuilder() {
          if (statusBuilder_ == null) {
            statusBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.AgvCommand.AgvMapStatus, cmvr.api.AgvCommand.AgvMapStatus.Builder, cmvr.api.AgvCommand.AgvMapStatusOrBuilder>(
                    getStatus(),
                    getParentForChildren(),
                    isClean());
            status_ = null;
          }
          return statusBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:cmvr.api.RobotStatusMapCommand.Feedback)
      }

      // @@protoc_insertion_point(class_scope:cmvr.api.RobotStatusMapCommand.Feedback)
      private static final cmvr.api.AgvCommand.RobotStatusMapCommand.Feedback DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new cmvr.api.AgvCommand.RobotStatusMapCommand.Feedback();
      }

      public static cmvr.api.AgvCommand.RobotStatusMapCommand.Feedback getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser<Feedback>
          PARSER = new com.google.protobuf.AbstractParser<Feedback>() {
        @java.lang.Override
        public Feedback parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

      public static com.google.protobuf.Parser<Feedback> parser() {
        return PARSER;
      }

      @java.lang.Override
      public com.google.protobuf.Parser<Feedback> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public cmvr.api.AgvCommand.RobotStatusMapCommand.Feedback getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof cmvr.api.AgvCommand.RobotStatusMapCommand)) {
        return super.equals(obj);
      }
      cmvr.api.AgvCommand.RobotStatusMapCommand other = (cmvr.api.AgvCommand.RobotStatusMapCommand) obj;

      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cmvr.api.AgvCommand.RobotStatusMapCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.RobotStatusMapCommand parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.RobotStatusMapCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.RobotStatusMapCommand parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.RobotStatusMapCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.RobotStatusMapCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.RobotStatusMapCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.RobotStatusMapCommand parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.RobotStatusMapCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.RobotStatusMapCommand parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.RobotStatusMapCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.RobotStatusMapCommand parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(cmvr.api.AgvCommand.RobotStatusMapCommand prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * 查询地图状态命令
     * </pre>
     *
     * Protobuf type {@code cmvr.api.RobotStatusMapCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:cmvr.api.RobotStatusMapCommand)
        cmvr.api.AgvCommand.RobotStatusMapCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotStatusMapCommand_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotStatusMapCommand_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.AgvCommand.RobotStatusMapCommand.class, cmvr.api.AgvCommand.RobotStatusMapCommand.Builder.class);
      }

      // Construct using cmvr.api.AgvCommand.RobotStatusMapCommand.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_RobotStatusMapCommand_descriptor;
      }

      @java.lang.Override
      public cmvr.api.AgvCommand.RobotStatusMapCommand getDefaultInstanceForType() {
        return cmvr.api.AgvCommand.RobotStatusMapCommand.getDefaultInstance();
      }

      @java.lang.Override
      public cmvr.api.AgvCommand.RobotStatusMapCommand build() {
        cmvr.api.AgvCommand.RobotStatusMapCommand result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cmvr.api.AgvCommand.RobotStatusMapCommand buildPartial() {
        cmvr.api.AgvCommand.RobotStatusMapCommand result = new cmvr.api.AgvCommand.RobotStatusMapCommand(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cmvr.api.AgvCommand.RobotStatusMapCommand) {
          return mergeFrom((cmvr.api.AgvCommand.RobotStatusMapCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cmvr.api.AgvCommand.RobotStatusMapCommand other) {
        if (other == cmvr.api.AgvCommand.RobotStatusMapCommand.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:cmvr.api.RobotStatusMapCommand)
    }

    // @@protoc_insertion_point(class_scope:cmvr.api.RobotStatusMapCommand)
    private static final cmvr.api.AgvCommand.RobotStatusMapCommand DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new cmvr.api.AgvCommand.RobotStatusMapCommand();
    }

    public static cmvr.api.AgvCommand.RobotStatusMapCommand getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<RobotStatusMapCommand>
        PARSER = new com.google.protobuf.AbstractParser<RobotStatusMapCommand>() {
      @java.lang.Override
      public RobotStatusMapCommand parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<RobotStatusMapCommand> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<RobotStatusMapCommand> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public cmvr.api.AgvCommand.RobotStatusMapCommand getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_AgvStatusInfo_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_AgvStatusInfo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_GetAgvStatusInfoCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_GetAgvStatusInfoCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_GetAgvStatusInfoCommand_Request_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_GetAgvStatusInfoCommand_Request_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_GetAgvStatusInfoCommand_Feedback_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_GetAgvStatusInfoCommand_Feedback_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_AgvBatteryStatus_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_AgvBatteryStatus_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_RobotStatusBatteryRequestData_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_RobotStatusBatteryRequestData_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_RobotStatusBatteryCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_RobotStatusBatteryCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_RobotStatusBatteryCommand_Request_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_RobotStatusBatteryCommand_Request_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_RobotStatusBatteryCommand_Feedback_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_RobotStatusBatteryCommand_Feedback_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_AgvRobotLocation_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_AgvRobotLocation_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_RobotStatusLocCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_RobotStatusLocCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_RobotStatusLocCommand_Request_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_RobotStatusLocCommand_Request_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_RobotStatusLocCommand_Feedback_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_RobotStatusLocCommand_Feedback_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_RobotConfigDownloadMapRequestData_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_RobotConfigDownloadMapRequestData_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_AgvDownloadMapResult_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_AgvDownloadMapResult_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_RobotConfigDownloadMapCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_RobotConfigDownloadMapCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_RobotConfigDownloadMapCommand_Request_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_RobotConfigDownloadMapCommand_Request_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_RobotConfigDownloadMapCommand_Feedback_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_RobotConfigDownloadMapCommand_Feedback_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_MapFileInfo_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_MapFileInfo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_AgvMapStatus_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_AgvMapStatus_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_RobotStatusMapCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_RobotStatusMapCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_RobotStatusMapCommand_Request_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_RobotStatusMapCommand_Request_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_RobotStatusMapCommand_Feedback_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_RobotStatusMapCommand_Feedback_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static  com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\032cmvr/api/agv_command.proto\022\010cmvr.api\032\025" +
      "cmvr/api/common.proto\"\335\002\n\rAgvStatusInfo\022" +
      "\017\n\002id\030\001 \001(\tH\000\210\001\001\022\027\n\nvehicle_id\030\002 \001(\tH\001\210\001" +
      "\001\022\024\n\007version\030\003 \001(\tH\002\210\001\001\022\022\n\005model\030\004 \001(\tH\003" +
      "\210\001\001\022\030\n\013dsp_version\030\005 \001(\tH\004\210\001\001\022\027\n\ncurrent" +
      "_ip\030\006 \001(\tH\005\210\001\001\022\020\n\003mac\030\007 \001(\tH\006\210\001\001\022\021\n\004rssi" +
      "\030\010 \001(\005H\007\210\001\001\022\025\n\010ret_code\030\t \001(\005H\010\210\001\001\022\024\n\007er" +
      "r_msg\030\n \001(\tH\t\210\001\001B\005\n\003_idB\r\n\013_vehicle_idB\n" +
      "\n\010_versionB\010\n\006_modelB\016\n\014_dsp_versionB\r\n\013" +
      "_current_ipB\006\n\004_macB\007\n\005_rssiB\013\n\t_ret_cod" +
      "eB\n\n\010_err_msg\"\274\001\n\027GetAgvStatusInfoComman" +
      "d\032:\n\007Request\022/\n\006header\030\001 \001(\0132\037.cmvr.api." +
      "CommandHeader.Request\032e\n\010Feedback\0220\n\006hea" +
      "der\030\001 \001(\0132 .cmvr.api.CommandHeader.Feedb" +
      "ack\022\'\n\006status\030\002 \001(\0132\027.cmvr.api.AgvStatus" +
      "Info\"\212\005\n\020AgvBatteryStatus\022\032\n\rbattery_lev" +
      "el\030\001 \001(\001H\000\210\001\001\022\031\n\014battery_temp\030\002 \001(\001H\001\210\001\001" +
      "\022\025\n\010charging\030\003 \001(\010H\002\210\001\001\022\024\n\007voltage\030\004 \001(\001" +
      "H\003\210\001\001\022\024\n\007current\030\005 \001(\001H\004\210\001\001\022\037\n\022max_charg" +
      "e_voltage\030\006 \001(\001H\005\210\001\001\022\037\n\022max_charge_curre" +
      "nt\030\007 \001(\001H\006\210\001\001\022\032\n\rmanual_charge\030\010 \001(\010H\007\210\001" +
      "\001\022\030\n\013auto_charge\030\t \001(\010H\010\210\001\001\022\032\n\rbattery_c" +
      "ycle\030\n \001(\005H\t\210\001\001\022\036\n\021battery_user_data\030\013 \001" +
      "(\tH\n\210\001\001\022\022\n\005extra\030\014 \001(\tH\013\210\001\001\022\025\n\010ret_code\030" +
      "\r \001(\005H\014\210\001\001\022\026\n\tcreate_on\030\016 \001(\tH\r\210\001\001\022\024\n\007er" +
      "r_msg\030\017 \001(\tH\016\210\001\001B\020\n\016_battery_levelB\017\n\r_b" +
      "attery_tempB\013\n\t_chargingB\n\n\010_voltageB\n\n\010" +
      "_currentB\025\n\023_max_charge_voltageB\025\n\023_max_" +
      "charge_currentB\020\n\016_manual_chargeB\016\n\014_aut" +
      "o_chargeB\020\n\016_battery_cycleB\024\n\022_battery_u" +
      "ser_dataB\010\n\006_extraB\013\n\t_ret_codeB\014\n\n_crea" +
      "te_onB\n\n\010_err_msg\"?\n\035RobotStatusBatteryR" +
      "equestData\022\023\n\006simple\030\001 \001(\010H\000\210\001\001B\t\n\007_simp" +
      "le\"\370\001\n\031RobotStatusBatteryCommand\032q\n\007Requ" +
      "est\022/\n\006header\030\001 \001(\0132\037.cmvr.api.CommandHe" +
      "ader.Request\0225\n\004data\030\002 \001(\0132\'.cmvr.api.Ro" +
      "botStatusBatteryRequestData\032h\n\010Feedback\022" +
      "0\n\006header\030\001 \001(\0132 .cmvr.api.CommandHeader" +
      ".Feedback\022*\n\006status\030\002 \001(\0132\032.cmvr.api.Agv" +
      "BatteryStatus\"\366\002\n\020AgvRobotLocation\022\016\n\001x\030" +
      "\001 \001(\001H\000\210\001\001\022\016\n\001y\030\002 \001(\001H\001\210\001\001\022\022\n\005angle\030\003 \001(" +
      "\001H\002\210\001\001\022\027\n\nconfidence\030\004 \001(\001H\003\210\001\001\022\034\n\017curre" +
      "nt_station\030\005 \001(\tH\004\210\001\001\022\031\n\014last_station\030\006 " +
      "\001(\tH\005\210\001\001\022\027\n\nloc_method\030\007 \001(\005H\006\210\001\001\022\025\n\010ret" +
      "_code\030\010 \001(\005H\007\210\001\001\022\026\n\tcreate_on\030\t \001(\tH\010\210\001\001" +
      "\022\024\n\007err_msg\030\n \001(\tH\t\210\001\001B\004\n\002_xB\004\n\002_yB\010\n\006_a" +
      "ngleB\r\n\013_confidenceB\022\n\020_current_stationB" +
      "\017\n\r_last_stationB\r\n\013_loc_methodB\013\n\t_ret_" +
      "codeB\014\n\n_create_onB\n\n\010_err_msg\"\275\001\n\025Robot" +
      "StatusLocCommand\032:\n\007Request\022/\n\006header\030\001 " +
      "\001(\0132\037.cmvr.api.CommandHeader.Request\032h\n\010" +
      "Feedback\0220\n\006header\030\001 \001(\0132 .cmvr.api.Comm" +
      "andHeader.Feedback\022*\n\006status\030\002 \001(\0132\032.cmv" +
      "r.api.AgvRobotLocation\"G\n!RobotConfigDow" +
      "nloadMapRequestData\022\025\n\010map_name\030\001 \001(\tH\000\210" +
      "\001\001B\013\n\t_map_name\"\254\001\n\024AgvDownloadMapResult" +
      "\022\025\n\010ret_code\030\001 \001(\005H\000\210\001\001\022\026\n\tcreate_on\030\002 \001" +
      "(\tH\001\210\001\001\022\024\n\007err_msg\030\003 \001(\tH\002\210\001\001\022\030\n\013map_con" +
      "tent\030\004 \001(\tH\003\210\001\001B\013\n\t_ret_codeB\014\n\n_create_" +
      "onB\n\n\010_err_msgB\016\n\014_map_content\"\204\002\n\035Robot" +
      "ConfigDownloadMapCommand\032u\n\007Request\022/\n\006h" +
      "eader\030\001 \001(\0132\037.cmvr.api.CommandHeader.Req" +
      "uest\0229\n\004data\030\002 \001(\0132+.cmvr.api.RobotConfi" +
      "gDownloadMapRequestData\032l\n\010Feedback\0220\n\006h" +
      "eader\030\001 \001(\0132 .cmvr.api.CommandHeader.Fee" +
      "dback\022.\n\006status\030\002 \001(\0132\036.cmvr.api.AgvDown" +
      "loadMapResult\"i\n\013MapFileInfo\022\021\n\004name\030\001 \001" +
      "(\tH\000\210\001\001\022\025\n\010modified\030\002 \001(\tH\001\210\001\001\022\021\n\004size\030\003" +
      " \001(\003H\002\210\001\001B\007\n\005_nameB\013\n\t_modifiedB\007\n\005_size" +
      "\"\223\002\n\014AgvMapStatus\022\030\n\013current_map\030\001 \001(\tH\000" +
      "\210\001\001\022\034\n\017current_map_md5\030\002 \001(\tH\001\210\001\001\022\014\n\004map" +
      "s\030\003 \003(\t\022-\n\016map_files_info\030\004 \003(\0132\025.cmvr.a" +
      "pi.MapFileInfo\022\025\n\010ret_code\030\005 \001(\005H\002\210\001\001\022\026\n" +
      "\tcreate_on\030\006 \001(\tH\003\210\001\001\022\024\n\007err_msg\030\007 \001(\tH\004" +
      "\210\001\001B\016\n\014_current_mapB\022\n\020_current_map_md5B" +
      "\013\n\t_ret_codeB\014\n\n_create_onB\n\n\010_err_msg\"\271" +
      "\001\n\025RobotStatusMapCommand\032:\n\007Request\022/\n\006h" +
      "eader\030\001 \001(\0132\037.cmvr.api.CommandHeader.Req" +
      "uest\032d\n\010Feedback\0220\n\006header\030\001 \001(\0132 .cmvr." +
      "api.CommandHeader.Feedback\022&\n\006status\030\002 \001" +
      "(\0132\026.cmvr.api.AgvMapStatusb\006proto3"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          cmvr.api.Common.getDescriptor(),
        });
    internal_static_cmvr_api_AgvStatusInfo_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_cmvr_api_AgvStatusInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_AgvStatusInfo_descriptor,
        new java.lang.String[] { "Id", "VehicleId", "Version", "Model", "DspVersion", "CurrentIp", "Mac", "Rssi", "RetCode", "ErrMsg", "Id", "VehicleId", "Version", "Model", "DspVersion", "CurrentIp", "Mac", "Rssi", "RetCode", "ErrMsg", });
    internal_static_cmvr_api_GetAgvStatusInfoCommand_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_cmvr_api_GetAgvStatusInfoCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_GetAgvStatusInfoCommand_descriptor,
        new java.lang.String[] { });
    internal_static_cmvr_api_GetAgvStatusInfoCommand_Request_descriptor =
      internal_static_cmvr_api_GetAgvStatusInfoCommand_descriptor.getNestedTypes().get(0);
    internal_static_cmvr_api_GetAgvStatusInfoCommand_Request_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_GetAgvStatusInfoCommand_Request_descriptor,
        new java.lang.String[] { "Header", });
    internal_static_cmvr_api_GetAgvStatusInfoCommand_Feedback_descriptor =
      internal_static_cmvr_api_GetAgvStatusInfoCommand_descriptor.getNestedTypes().get(1);
    internal_static_cmvr_api_GetAgvStatusInfoCommand_Feedback_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_GetAgvStatusInfoCommand_Feedback_descriptor,
        new java.lang.String[] { "Header", "Status", });
    internal_static_cmvr_api_AgvBatteryStatus_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_cmvr_api_AgvBatteryStatus_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_AgvBatteryStatus_descriptor,
        new java.lang.String[] { "BatteryLevel", "BatteryTemp", "Charging", "Voltage", "Current", "MaxChargeVoltage", "MaxChargeCurrent", "ManualCharge", "AutoCharge", "BatteryCycle", "BatteryUserData", "Extra", "RetCode", "CreateOn", "ErrMsg", "BatteryLevel", "BatteryTemp", "Charging", "Voltage", "Current", "MaxChargeVoltage", "MaxChargeCurrent", "ManualCharge", "AutoCharge", "BatteryCycle", "BatteryUserData", "Extra", "RetCode", "CreateOn", "ErrMsg", });
    internal_static_cmvr_api_RobotStatusBatteryRequestData_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_cmvr_api_RobotStatusBatteryRequestData_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_RobotStatusBatteryRequestData_descriptor,
        new java.lang.String[] { "Simple", "Simple", });
    internal_static_cmvr_api_RobotStatusBatteryCommand_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_cmvr_api_RobotStatusBatteryCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_RobotStatusBatteryCommand_descriptor,
        new java.lang.String[] { });
    internal_static_cmvr_api_RobotStatusBatteryCommand_Request_descriptor =
      internal_static_cmvr_api_RobotStatusBatteryCommand_descriptor.getNestedTypes().get(0);
    internal_static_cmvr_api_RobotStatusBatteryCommand_Request_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_RobotStatusBatteryCommand_Request_descriptor,
        new java.lang.String[] { "Header", "Data", });
    internal_static_cmvr_api_RobotStatusBatteryCommand_Feedback_descriptor =
      internal_static_cmvr_api_RobotStatusBatteryCommand_descriptor.getNestedTypes().get(1);
    internal_static_cmvr_api_RobotStatusBatteryCommand_Feedback_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_RobotStatusBatteryCommand_Feedback_descriptor,
        new java.lang.String[] { "Header", "Status", });
    internal_static_cmvr_api_AgvRobotLocation_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_cmvr_api_AgvRobotLocation_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_AgvRobotLocation_descriptor,
        new java.lang.String[] { "X", "Y", "Angle", "Confidence", "CurrentStation", "LastStation", "LocMethod", "RetCode", "CreateOn", "ErrMsg", "X", "Y", "Angle", "Confidence", "CurrentStation", "LastStation", "LocMethod", "RetCode", "CreateOn", "ErrMsg", });
    internal_static_cmvr_api_RobotStatusLocCommand_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_cmvr_api_RobotStatusLocCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_RobotStatusLocCommand_descriptor,
        new java.lang.String[] { });
    internal_static_cmvr_api_RobotStatusLocCommand_Request_descriptor =
      internal_static_cmvr_api_RobotStatusLocCommand_descriptor.getNestedTypes().get(0);
    internal_static_cmvr_api_RobotStatusLocCommand_Request_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_RobotStatusLocCommand_Request_descriptor,
        new java.lang.String[] { "Header", });
    internal_static_cmvr_api_RobotStatusLocCommand_Feedback_descriptor =
      internal_static_cmvr_api_RobotStatusLocCommand_descriptor.getNestedTypes().get(1);
    internal_static_cmvr_api_RobotStatusLocCommand_Feedback_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_RobotStatusLocCommand_Feedback_descriptor,
        new java.lang.String[] { "Header", "Status", });
    internal_static_cmvr_api_RobotConfigDownloadMapRequestData_descriptor =
      getDescriptor().getMessageTypes().get(7);
    internal_static_cmvr_api_RobotConfigDownloadMapRequestData_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_RobotConfigDownloadMapRequestData_descriptor,
        new java.lang.String[] { "MapName", "MapName", });
    internal_static_cmvr_api_AgvDownloadMapResult_descriptor =
      getDescriptor().getMessageTypes().get(8);
    internal_static_cmvr_api_AgvDownloadMapResult_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_AgvDownloadMapResult_descriptor,
        new java.lang.String[] { "RetCode", "CreateOn", "ErrMsg", "MapContent", "RetCode", "CreateOn", "ErrMsg", "MapContent", });
    internal_static_cmvr_api_RobotConfigDownloadMapCommand_descriptor =
      getDescriptor().getMessageTypes().get(9);
    internal_static_cmvr_api_RobotConfigDownloadMapCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_RobotConfigDownloadMapCommand_descriptor,
        new java.lang.String[] { });
    internal_static_cmvr_api_RobotConfigDownloadMapCommand_Request_descriptor =
      internal_static_cmvr_api_RobotConfigDownloadMapCommand_descriptor.getNestedTypes().get(0);
    internal_static_cmvr_api_RobotConfigDownloadMapCommand_Request_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_RobotConfigDownloadMapCommand_Request_descriptor,
        new java.lang.String[] { "Header", "Data", });
    internal_static_cmvr_api_RobotConfigDownloadMapCommand_Feedback_descriptor =
      internal_static_cmvr_api_RobotConfigDownloadMapCommand_descriptor.getNestedTypes().get(1);
    internal_static_cmvr_api_RobotConfigDownloadMapCommand_Feedback_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_RobotConfigDownloadMapCommand_Feedback_descriptor,
        new java.lang.String[] { "Header", "Status", });
    internal_static_cmvr_api_MapFileInfo_descriptor =
      getDescriptor().getMessageTypes().get(10);
    internal_static_cmvr_api_MapFileInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_MapFileInfo_descriptor,
        new java.lang.String[] { "Name", "Modified", "Size", "Name", "Modified", "Size", });
    internal_static_cmvr_api_AgvMapStatus_descriptor =
      getDescriptor().getMessageTypes().get(11);
    internal_static_cmvr_api_AgvMapStatus_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_AgvMapStatus_descriptor,
        new java.lang.String[] { "CurrentMap", "CurrentMapMd5", "Maps", "MapFilesInfo", "RetCode", "CreateOn", "ErrMsg", "CurrentMap", "CurrentMapMd5", "RetCode", "CreateOn", "ErrMsg", });
    internal_static_cmvr_api_RobotStatusMapCommand_descriptor =
      getDescriptor().getMessageTypes().get(12);
    internal_static_cmvr_api_RobotStatusMapCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_RobotStatusMapCommand_descriptor,
        new java.lang.String[] { });
    internal_static_cmvr_api_RobotStatusMapCommand_Request_descriptor =
      internal_static_cmvr_api_RobotStatusMapCommand_descriptor.getNestedTypes().get(0);
    internal_static_cmvr_api_RobotStatusMapCommand_Request_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_RobotStatusMapCommand_Request_descriptor,
        new java.lang.String[] { "Header", });
    internal_static_cmvr_api_RobotStatusMapCommand_Feedback_descriptor =
      internal_static_cmvr_api_RobotStatusMapCommand_descriptor.getNestedTypes().get(1);
    internal_static_cmvr_api_RobotStatusMapCommand_Feedback_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_RobotStatusMapCommand_Feedback_descriptor,
        new java.lang.String[] { "Header", "Status", });
    cmvr.api.Common.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
