// 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 AgvRuntimeStateCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:cmvr.api.AgvRuntimeStateCommand)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * <pre>
   * 查询 AGV 运行状态命令。
   * </pre>
   *
   * Protobuf type {@code cmvr.api.AgvRuntimeStateCommand}
   */
  public static final class AgvRuntimeStateCommand extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:cmvr.api.AgvRuntimeStateCommand)
      AgvRuntimeStateCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AgvRuntimeStateCommand.newBuilder() to construct.
    private AgvRuntimeStateCommand(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private AgvRuntimeStateCommand() {
    }

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

    @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_AgvRuntimeStateCommand_descriptor;
    }

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

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

      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Request getHeader();
      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder();
    }
    /**
     * <pre>
     * 请求体。
     * </pre>
     *
     * Protobuf type {@code cmvr.api.AgvRuntimeStateCommand.Request}
     */
    public static final class Request extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.AgvRuntimeStateCommand.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_AgvRuntimeStateCommand_Request_descriptor;
      }

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

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Request header_;
      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <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_;
      }
      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <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.AgvRuntimeStateCommand.Request)) {
          return super.equals(obj);
        }
        cmvr.api.AgvCommand.AgvRuntimeStateCommand.Request other = (cmvr.api.AgvCommand.AgvRuntimeStateCommand.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.AgvRuntimeStateCommand.Request parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvRuntimeStateCommand.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.AgvRuntimeStateCommand.Request parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvRuntimeStateCommand.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.AgvRuntimeStateCommand.Request parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvRuntimeStateCommand.Request parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.AgvRuntimeStateCommand.Request parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvRuntimeStateCommand.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.AgvRuntimeStateCommand.Request parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvRuntimeStateCommand.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.AgvRuntimeStateCommand.Request parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvRuntimeStateCommand.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.AgvRuntimeStateCommand.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;
      }
      /**
       * <pre>
       * 请求体。
       * </pre>
       *
       * Protobuf type {@code cmvr.api.AgvRuntimeStateCommand.Request}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.AgvRuntimeStateCommand.Request)
          cmvr.api.AgvCommand.AgvRuntimeStateCommand.RequestOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvRuntimeStateCommand_Request_descriptor;
        }

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

        // Construct using cmvr.api.AgvCommand.AgvRuntimeStateCommand.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_AgvRuntimeStateCommand_Request_descriptor;
        }

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

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

        @java.lang.Override
        public cmvr.api.AgvCommand.AgvRuntimeStateCommand.Request buildPartial() {
          cmvr.api.AgvCommand.AgvRuntimeStateCommand.Request result = new cmvr.api.AgvCommand.AgvRuntimeStateCommand.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.AgvRuntimeStateCommand.Request) {
            return mergeFrom((cmvr.api.AgvCommand.AgvRuntimeStateCommand.Request)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.AgvCommand.AgvRuntimeStateCommand.Request other) {
          if (other == cmvr.api.AgvCommand.AgvRuntimeStateCommand.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_;
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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();
          }
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Request.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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_;
          }
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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.AgvRuntimeStateCommand.Request)
      }

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

      public static cmvr.api.AgvCommand.AgvRuntimeStateCommand.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.AgvRuntimeStateCommand.Request getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

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

      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Feedback getHeader();
      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder();

      /**
       * <pre>
       * AGV 当前运行状态快照。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvRuntimeState state = 2;</code>
       * @return Whether the state field is set.
       */
      boolean hasState();
      /**
       * <pre>
       * AGV 当前运行状态快照。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvRuntimeState state = 2;</code>
       * @return The state.
       */
      cmvr.msgs.Agv.AgvRuntimeState getState();
      /**
       * <pre>
       * AGV 当前运行状态快照。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvRuntimeState state = 2;</code>
       */
      cmvr.msgs.Agv.AgvRuntimeStateOrBuilder getStateOrBuilder();
    }
    /**
     * <pre>
     * 反馈体。
     * </pre>
     *
     * Protobuf type {@code cmvr.api.AgvRuntimeStateCommand.Feedback}
     */
    public static final class Feedback extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.AgvRuntimeStateCommand.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_AgvRuntimeStateCommand_Feedback_descriptor;
      }

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

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Feedback header_;
      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <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_;
      }
      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() {
        return getHeader();
      }

      public static final int STATE_FIELD_NUMBER = 2;
      private cmvr.msgs.Agv.AgvRuntimeState state_;
      /**
       * <pre>
       * AGV 当前运行状态快照。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvRuntimeState state = 2;</code>
       * @return Whether the state field is set.
       */
      @java.lang.Override
      public boolean hasState() {
        return state_ != null;
      }
      /**
       * <pre>
       * AGV 当前运行状态快照。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvRuntimeState state = 2;</code>
       * @return The state.
       */
      @java.lang.Override
      public cmvr.msgs.Agv.AgvRuntimeState getState() {
        return state_ == null ? cmvr.msgs.Agv.AgvRuntimeState.getDefaultInstance() : state_;
      }
      /**
       * <pre>
       * AGV 当前运行状态快照。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvRuntimeState state = 2;</code>
       */
      @java.lang.Override
      public cmvr.msgs.Agv.AgvRuntimeStateOrBuilder getStateOrBuilder() {
        return getState();
      }

      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 (state_ != null) {
          output.writeMessage(2, getState());
        }
        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 (state_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, getState());
        }
        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.AgvRuntimeStateCommand.Feedback)) {
          return super.equals(obj);
        }
        cmvr.api.AgvCommand.AgvRuntimeStateCommand.Feedback other = (cmvr.api.AgvCommand.AgvRuntimeStateCommand.Feedback) obj;

        if (hasHeader() != other.hasHeader()) return false;
        if (hasHeader()) {
          if (!getHeader()
              .equals(other.getHeader())) return false;
        }
        if (hasState() != other.hasState()) return false;
        if (hasState()) {
          if (!getState()
              .equals(other.getState())) 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 (hasState()) {
          hash = (37 * hash) + STATE_FIELD_NUMBER;
          hash = (53 * hash) + getState().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.AgvCommand.AgvRuntimeStateCommand.Feedback parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvRuntimeStateCommand.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.AgvRuntimeStateCommand.Feedback parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvRuntimeStateCommand.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.AgvRuntimeStateCommand.Feedback parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvRuntimeStateCommand.Feedback parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.AgvRuntimeStateCommand.Feedback parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvRuntimeStateCommand.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.AgvRuntimeStateCommand.Feedback parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvRuntimeStateCommand.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.AgvRuntimeStateCommand.Feedback parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvRuntimeStateCommand.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.AgvRuntimeStateCommand.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;
      }
      /**
       * <pre>
       * 反馈体。
       * </pre>
       *
       * Protobuf type {@code cmvr.api.AgvRuntimeStateCommand.Feedback}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.AgvRuntimeStateCommand.Feedback)
          cmvr.api.AgvCommand.AgvRuntimeStateCommand.FeedbackOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvRuntimeStateCommand_Feedback_descriptor;
        }

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

        // Construct using cmvr.api.AgvCommand.AgvRuntimeStateCommand.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 (stateBuilder_ == null) {
            state_ = null;
          } else {
            state_ = null;
            stateBuilder_ = null;
          }
          return this;
        }

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

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

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

        @java.lang.Override
        public cmvr.api.AgvCommand.AgvRuntimeStateCommand.Feedback buildPartial() {
          cmvr.api.AgvCommand.AgvRuntimeStateCommand.Feedback result = new cmvr.api.AgvCommand.AgvRuntimeStateCommand.Feedback(this);
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          if (stateBuilder_ == null) {
            result.state_ = state_;
          } else {
            result.state_ = stateBuilder_.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.AgvRuntimeStateCommand.Feedback) {
            return mergeFrom((cmvr.api.AgvCommand.AgvRuntimeStateCommand.Feedback)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.AgvCommand.AgvRuntimeStateCommand.Feedback other) {
          if (other == cmvr.api.AgvCommand.AgvRuntimeStateCommand.Feedback.getDefaultInstance()) return this;
          if (other.hasHeader()) {
            mergeHeader(other.getHeader());
          }
          if (other.hasState()) {
            mergeState(other.getState());
          }
          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(
                      getStateFieldBuilder().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_;
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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();
          }
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Feedback.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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_;
          }
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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.msgs.Agv.AgvRuntimeState state_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.msgs.Agv.AgvRuntimeState, cmvr.msgs.Agv.AgvRuntimeState.Builder, cmvr.msgs.Agv.AgvRuntimeStateOrBuilder> stateBuilder_;
        /**
         * <pre>
         * AGV 当前运行状态快照。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvRuntimeState state = 2;</code>
         * @return Whether the state field is set.
         */
        public boolean hasState() {
          return stateBuilder_ != null || state_ != null;
        }
        /**
         * <pre>
         * AGV 当前运行状态快照。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvRuntimeState state = 2;</code>
         * @return The state.
         */
        public cmvr.msgs.Agv.AgvRuntimeState getState() {
          if (stateBuilder_ == null) {
            return state_ == null ? cmvr.msgs.Agv.AgvRuntimeState.getDefaultInstance() : state_;
          } else {
            return stateBuilder_.getMessage();
          }
        }
        /**
         * <pre>
         * AGV 当前运行状态快照。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvRuntimeState state = 2;</code>
         */
        public Builder setState(cmvr.msgs.Agv.AgvRuntimeState value) {
          if (stateBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            state_ = value;
            onChanged();
          } else {
            stateBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <pre>
         * AGV 当前运行状态快照。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvRuntimeState state = 2;</code>
         */
        public Builder setState(
            cmvr.msgs.Agv.AgvRuntimeState.Builder builderForValue) {
          if (stateBuilder_ == null) {
            state_ = builderForValue.build();
            onChanged();
          } else {
            stateBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <pre>
         * AGV 当前运行状态快照。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvRuntimeState state = 2;</code>
         */
        public Builder mergeState(cmvr.msgs.Agv.AgvRuntimeState value) {
          if (stateBuilder_ == null) {
            if (state_ != null) {
              state_ =
                cmvr.msgs.Agv.AgvRuntimeState.newBuilder(state_).mergeFrom(value).buildPartial();
            } else {
              state_ = value;
            }
            onChanged();
          } else {
            stateBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <pre>
         * AGV 当前运行状态快照。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvRuntimeState state = 2;</code>
         */
        public Builder clearState() {
          if (stateBuilder_ == null) {
            state_ = null;
            onChanged();
          } else {
            state_ = null;
            stateBuilder_ = null;
          }

          return this;
        }
        /**
         * <pre>
         * AGV 当前运行状态快照。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvRuntimeState state = 2;</code>
         */
        public cmvr.msgs.Agv.AgvRuntimeState.Builder getStateBuilder() {
          
          onChanged();
          return getStateFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * AGV 当前运行状态快照。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvRuntimeState state = 2;</code>
         */
        public cmvr.msgs.Agv.AgvRuntimeStateOrBuilder getStateOrBuilder() {
          if (stateBuilder_ != null) {
            return stateBuilder_.getMessageOrBuilder();
          } else {
            return state_ == null ?
                cmvr.msgs.Agv.AgvRuntimeState.getDefaultInstance() : state_;
          }
        }
        /**
         * <pre>
         * AGV 当前运行状态快照。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvRuntimeState state = 2;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.msgs.Agv.AgvRuntimeState, cmvr.msgs.Agv.AgvRuntimeState.Builder, cmvr.msgs.Agv.AgvRuntimeStateOrBuilder> 
            getStateFieldBuilder() {
          if (stateBuilder_ == null) {
            stateBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.msgs.Agv.AgvRuntimeState, cmvr.msgs.Agv.AgvRuntimeState.Builder, cmvr.msgs.Agv.AgvRuntimeStateOrBuilder>(
                    getState(),
                    getParentForChildren(),
                    isClean());
            state_ = null;
          }
          return stateBuilder_;
        }
        @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.AgvRuntimeStateCommand.Feedback)
      }

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

      public static cmvr.api.AgvCommand.AgvRuntimeStateCommand.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.AgvRuntimeStateCommand.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.AgvRuntimeStateCommand)) {
        return super.equals(obj);
      }
      cmvr.api.AgvCommand.AgvRuntimeStateCommand other = (cmvr.api.AgvCommand.AgvRuntimeStateCommand) 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.AgvRuntimeStateCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.AgvRuntimeStateCommand 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.AgvRuntimeStateCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.AgvRuntimeStateCommand 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.AgvRuntimeStateCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.AgvRuntimeStateCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.AgvRuntimeStateCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.AgvRuntimeStateCommand 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.AgvRuntimeStateCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.AgvRuntimeStateCommand 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.AgvRuntimeStateCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.AgvRuntimeStateCommand 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.AgvRuntimeStateCommand 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.AgvRuntimeStateCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:cmvr.api.AgvRuntimeStateCommand)
        cmvr.api.AgvCommand.AgvRuntimeStateCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvRuntimeStateCommand_descriptor;
      }

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

      // Construct using cmvr.api.AgvCommand.AgvRuntimeStateCommand.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_AgvRuntimeStateCommand_descriptor;
      }

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

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

      @java.lang.Override
      public cmvr.api.AgvCommand.AgvRuntimeStateCommand buildPartial() {
        cmvr.api.AgvCommand.AgvRuntimeStateCommand result = new cmvr.api.AgvCommand.AgvRuntimeStateCommand(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.AgvRuntimeStateCommand) {
          return mergeFrom((cmvr.api.AgvCommand.AgvRuntimeStateCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cmvr.api.AgvCommand.AgvRuntimeStateCommand other) {
        if (other == cmvr.api.AgvCommand.AgvRuntimeStateCommand.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.AgvRuntimeStateCommand)
    }

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

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

    private static final com.google.protobuf.Parser<AgvRuntimeStateCommand>
        PARSER = new com.google.protobuf.AbstractParser<AgvRuntimeStateCommand>() {
      @java.lang.Override
      public AgvRuntimeStateCommand 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<AgvRuntimeStateCommand> parser() {
      return PARSER;
    }

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

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

  }

  public interface AgvNavigationStatusCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:cmvr.api.AgvNavigationStatusCommand)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * <pre>
   * 查询 AGV 当前导航任务状态命令。
   * </pre>
   *
   * Protobuf type {@code cmvr.api.AgvNavigationStatusCommand}
   */
  public static final class AgvNavigationStatusCommand extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:cmvr.api.AgvNavigationStatusCommand)
      AgvNavigationStatusCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AgvNavigationStatusCommand.newBuilder() to construct.
    private AgvNavigationStatusCommand(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private AgvNavigationStatusCommand() {
    }

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

    @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_AgvNavigationStatusCommand_descriptor;
    }

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

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

      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Request getHeader();
      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder();
    }
    /**
     * <pre>
     * 请求体。
     * </pre>
     *
     * Protobuf type {@code cmvr.api.AgvNavigationStatusCommand.Request}
     */
    public static final class Request extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.AgvNavigationStatusCommand.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_AgvNavigationStatusCommand_Request_descriptor;
      }

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

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Request header_;
      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <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_;
      }
      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <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.AgvNavigationStatusCommand.Request)) {
          return super.equals(obj);
        }
        cmvr.api.AgvCommand.AgvNavigationStatusCommand.Request other = (cmvr.api.AgvCommand.AgvNavigationStatusCommand.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.AgvNavigationStatusCommand.Request parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvNavigationStatusCommand.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.AgvNavigationStatusCommand.Request parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvNavigationStatusCommand.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.AgvNavigationStatusCommand.Request parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvNavigationStatusCommand.Request parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.AgvNavigationStatusCommand.Request parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvNavigationStatusCommand.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.AgvNavigationStatusCommand.Request parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvNavigationStatusCommand.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.AgvNavigationStatusCommand.Request parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvNavigationStatusCommand.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.AgvNavigationStatusCommand.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;
      }
      /**
       * <pre>
       * 请求体。
       * </pre>
       *
       * Protobuf type {@code cmvr.api.AgvNavigationStatusCommand.Request}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.AgvNavigationStatusCommand.Request)
          cmvr.api.AgvCommand.AgvNavigationStatusCommand.RequestOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvNavigationStatusCommand_Request_descriptor;
        }

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

        // Construct using cmvr.api.AgvCommand.AgvNavigationStatusCommand.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_AgvNavigationStatusCommand_Request_descriptor;
        }

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

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

        @java.lang.Override
        public cmvr.api.AgvCommand.AgvNavigationStatusCommand.Request buildPartial() {
          cmvr.api.AgvCommand.AgvNavigationStatusCommand.Request result = new cmvr.api.AgvCommand.AgvNavigationStatusCommand.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.AgvNavigationStatusCommand.Request) {
            return mergeFrom((cmvr.api.AgvCommand.AgvNavigationStatusCommand.Request)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.AgvCommand.AgvNavigationStatusCommand.Request other) {
          if (other == cmvr.api.AgvCommand.AgvNavigationStatusCommand.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_;
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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();
          }
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Request.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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_;
          }
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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.AgvNavigationStatusCommand.Request)
      }

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

      public static cmvr.api.AgvCommand.AgvNavigationStatusCommand.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.AgvNavigationStatusCommand.Request getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

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

      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Feedback getHeader();
      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder();

      /**
       * <pre>
       * 当前导航任务状态。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvNavigationStatus status = 2;</code>
       * @return Whether the status field is set.
       */
      boolean hasStatus();
      /**
       * <pre>
       * 当前导航任务状态。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvNavigationStatus status = 2;</code>
       * @return The status.
       */
      cmvr.msgs.Agv.AgvNavigationStatus getStatus();
      /**
       * <pre>
       * 当前导航任务状态。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvNavigationStatus status = 2;</code>
       */
      cmvr.msgs.Agv.AgvNavigationStatusOrBuilder getStatusOrBuilder();
    }
    /**
     * <pre>
     * 反馈体。
     * </pre>
     *
     * Protobuf type {@code cmvr.api.AgvNavigationStatusCommand.Feedback}
     */
    public static final class Feedback extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.AgvNavigationStatusCommand.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_AgvNavigationStatusCommand_Feedback_descriptor;
      }

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

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Feedback header_;
      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <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_;
      }
      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <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.msgs.Agv.AgvNavigationStatus status_;
      /**
       * <pre>
       * 当前导航任务状态。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvNavigationStatus status = 2;</code>
       * @return Whether the status field is set.
       */
      @java.lang.Override
      public boolean hasStatus() {
        return status_ != null;
      }
      /**
       * <pre>
       * 当前导航任务状态。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvNavigationStatus status = 2;</code>
       * @return The status.
       */
      @java.lang.Override
      public cmvr.msgs.Agv.AgvNavigationStatus getStatus() {
        return status_ == null ? cmvr.msgs.Agv.AgvNavigationStatus.getDefaultInstance() : status_;
      }
      /**
       * <pre>
       * 当前导航任务状态。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvNavigationStatus status = 2;</code>
       */
      @java.lang.Override
      public cmvr.msgs.Agv.AgvNavigationStatusOrBuilder 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.AgvNavigationStatusCommand.Feedback)) {
          return super.equals(obj);
        }
        cmvr.api.AgvCommand.AgvNavigationStatusCommand.Feedback other = (cmvr.api.AgvCommand.AgvNavigationStatusCommand.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.AgvNavigationStatusCommand.Feedback parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvNavigationStatusCommand.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.AgvNavigationStatusCommand.Feedback parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvNavigationStatusCommand.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.AgvNavigationStatusCommand.Feedback parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvNavigationStatusCommand.Feedback parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.AgvNavigationStatusCommand.Feedback parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvNavigationStatusCommand.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.AgvNavigationStatusCommand.Feedback parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvNavigationStatusCommand.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.AgvNavigationStatusCommand.Feedback parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvNavigationStatusCommand.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.AgvNavigationStatusCommand.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;
      }
      /**
       * <pre>
       * 反馈体。
       * </pre>
       *
       * Protobuf type {@code cmvr.api.AgvNavigationStatusCommand.Feedback}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.AgvNavigationStatusCommand.Feedback)
          cmvr.api.AgvCommand.AgvNavigationStatusCommand.FeedbackOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvNavigationStatusCommand_Feedback_descriptor;
        }

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

        // Construct using cmvr.api.AgvCommand.AgvNavigationStatusCommand.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_AgvNavigationStatusCommand_Feedback_descriptor;
        }

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

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

        @java.lang.Override
        public cmvr.api.AgvCommand.AgvNavigationStatusCommand.Feedback buildPartial() {
          cmvr.api.AgvCommand.AgvNavigationStatusCommand.Feedback result = new cmvr.api.AgvCommand.AgvNavigationStatusCommand.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.AgvNavigationStatusCommand.Feedback) {
            return mergeFrom((cmvr.api.AgvCommand.AgvNavigationStatusCommand.Feedback)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.AgvCommand.AgvNavigationStatusCommand.Feedback other) {
          if (other == cmvr.api.AgvCommand.AgvNavigationStatusCommand.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_;
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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();
          }
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Feedback.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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_;
          }
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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.msgs.Agv.AgvNavigationStatus status_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.msgs.Agv.AgvNavigationStatus, cmvr.msgs.Agv.AgvNavigationStatus.Builder, cmvr.msgs.Agv.AgvNavigationStatusOrBuilder> statusBuilder_;
        /**
         * <pre>
         * 当前导航任务状态。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvNavigationStatus status = 2;</code>
         * @return Whether the status field is set.
         */
        public boolean hasStatus() {
          return statusBuilder_ != null || status_ != null;
        }
        /**
         * <pre>
         * 当前导航任务状态。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvNavigationStatus status = 2;</code>
         * @return The status.
         */
        public cmvr.msgs.Agv.AgvNavigationStatus getStatus() {
          if (statusBuilder_ == null) {
            return status_ == null ? cmvr.msgs.Agv.AgvNavigationStatus.getDefaultInstance() : status_;
          } else {
            return statusBuilder_.getMessage();
          }
        }
        /**
         * <pre>
         * 当前导航任务状态。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvNavigationStatus status = 2;</code>
         */
        public Builder setStatus(cmvr.msgs.Agv.AgvNavigationStatus value) {
          if (statusBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            status_ = value;
            onChanged();
          } else {
            statusBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <pre>
         * 当前导航任务状态。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvNavigationStatus status = 2;</code>
         */
        public Builder setStatus(
            cmvr.msgs.Agv.AgvNavigationStatus.Builder builderForValue) {
          if (statusBuilder_ == null) {
            status_ = builderForValue.build();
            onChanged();
          } else {
            statusBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <pre>
         * 当前导航任务状态。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvNavigationStatus status = 2;</code>
         */
        public Builder mergeStatus(cmvr.msgs.Agv.AgvNavigationStatus value) {
          if (statusBuilder_ == null) {
            if (status_ != null) {
              status_ =
                cmvr.msgs.Agv.AgvNavigationStatus.newBuilder(status_).mergeFrom(value).buildPartial();
            } else {
              status_ = value;
            }
            onChanged();
          } else {
            statusBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <pre>
         * 当前导航任务状态。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvNavigationStatus status = 2;</code>
         */
        public Builder clearStatus() {
          if (statusBuilder_ == null) {
            status_ = null;
            onChanged();
          } else {
            status_ = null;
            statusBuilder_ = null;
          }

          return this;
        }
        /**
         * <pre>
         * 当前导航任务状态。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvNavigationStatus status = 2;</code>
         */
        public cmvr.msgs.Agv.AgvNavigationStatus.Builder getStatusBuilder() {
          
          onChanged();
          return getStatusFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * 当前导航任务状态。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvNavigationStatus status = 2;</code>
         */
        public cmvr.msgs.Agv.AgvNavigationStatusOrBuilder getStatusOrBuilder() {
          if (statusBuilder_ != null) {
            return statusBuilder_.getMessageOrBuilder();
          } else {
            return status_ == null ?
                cmvr.msgs.Agv.AgvNavigationStatus.getDefaultInstance() : status_;
          }
        }
        /**
         * <pre>
         * 当前导航任务状态。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvNavigationStatus status = 2;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.msgs.Agv.AgvNavigationStatus, cmvr.msgs.Agv.AgvNavigationStatus.Builder, cmvr.msgs.Agv.AgvNavigationStatusOrBuilder> 
            getStatusFieldBuilder() {
          if (statusBuilder_ == null) {
            statusBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.msgs.Agv.AgvNavigationStatus, cmvr.msgs.Agv.AgvNavigationStatus.Builder, cmvr.msgs.Agv.AgvNavigationStatusOrBuilder>(
                    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.AgvNavigationStatusCommand.Feedback)
      }

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

      public static cmvr.api.AgvCommand.AgvNavigationStatusCommand.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.AgvNavigationStatusCommand.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.AgvNavigationStatusCommand)) {
        return super.equals(obj);
      }
      cmvr.api.AgvCommand.AgvNavigationStatusCommand other = (cmvr.api.AgvCommand.AgvNavigationStatusCommand) 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.AgvNavigationStatusCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.AgvNavigationStatusCommand 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.AgvNavigationStatusCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.AgvNavigationStatusCommand 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.AgvNavigationStatusCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.AgvNavigationStatusCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.AgvNavigationStatusCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.AgvNavigationStatusCommand 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.AgvNavigationStatusCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.AgvNavigationStatusCommand 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.AgvNavigationStatusCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.AgvNavigationStatusCommand 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.AgvNavigationStatusCommand 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.AgvNavigationStatusCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:cmvr.api.AgvNavigationStatusCommand)
        cmvr.api.AgvCommand.AgvNavigationStatusCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvNavigationStatusCommand_descriptor;
      }

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

      // Construct using cmvr.api.AgvCommand.AgvNavigationStatusCommand.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_AgvNavigationStatusCommand_descriptor;
      }

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

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

      @java.lang.Override
      public cmvr.api.AgvCommand.AgvNavigationStatusCommand buildPartial() {
        cmvr.api.AgvCommand.AgvNavigationStatusCommand result = new cmvr.api.AgvCommand.AgvNavigationStatusCommand(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.AgvNavigationStatusCommand) {
          return mergeFrom((cmvr.api.AgvCommand.AgvNavigationStatusCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cmvr.api.AgvCommand.AgvNavigationStatusCommand other) {
        if (other == cmvr.api.AgvCommand.AgvNavigationStatusCommand.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.AgvNavigationStatusCommand)
    }

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

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

    private static final com.google.protobuf.Parser<AgvNavigationStatusCommand>
        PARSER = new com.google.protobuf.AbstractParser<AgvNavigationStatusCommand>() {
      @java.lang.Override
      public AgvNavigationStatusCommand 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<AgvNavigationStatusCommand> parser() {
      return PARSER;
    }

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

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

  }

  public interface AgvNavigateToPoseCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:cmvr.api.AgvNavigateToPoseCommand)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * <pre>
   * 导航到指定地图位姿命令。
   * </pre>
   *
   * Protobuf type {@code cmvr.api.AgvNavigateToPoseCommand}
   */
  public static final class AgvNavigateToPoseCommand extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:cmvr.api.AgvNavigateToPoseCommand)
      AgvNavigateToPoseCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AgvNavigateToPoseCommand.newBuilder() to construct.
    private AgvNavigateToPoseCommand(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private AgvNavigateToPoseCommand() {
    }

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

    @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_AgvNavigateToPoseCommand_descriptor;
    }

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

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

      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Request getHeader();
      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder();

      /**
       * <pre>
       * 目标位姿。x/y 单位：米，theta 单位：弧度。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvPose2d pose = 2;</code>
       * @return Whether the pose field is set.
       */
      boolean hasPose();
      /**
       * <pre>
       * 目标位姿。x/y 单位：米，theta 单位：弧度。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvPose2d pose = 2;</code>
       * @return The pose.
       */
      cmvr.msgs.Agv.AgvPose2d getPose();
      /**
       * <pre>
       * 目标位姿。x/y 单位：米，theta 单位：弧度。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvPose2d pose = 2;</code>
       */
      cmvr.msgs.Agv.AgvPose2dOrBuilder getPoseOrBuilder();

      /**
       * <pre>
       * 通用运动约束和执行选项。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvMotionOptions options = 3;</code>
       * @return Whether the options field is set.
       */
      boolean hasOptions();
      /**
       * <pre>
       * 通用运动约束和执行选项。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvMotionOptions options = 3;</code>
       * @return The options.
       */
      cmvr.msgs.Agv.AgvMotionOptions getOptions();
      /**
       * <pre>
       * 通用运动约束和执行选项。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvMotionOptions options = 3;</code>
       */
      cmvr.msgs.Agv.AgvMotionOptionsOrBuilder getOptionsOrBuilder();

      /**
       * <pre>
       * AGV 适配器扩展参数，用于传递厂商特有选项。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvAdapterParams adapter_params = 4;</code>
       * @return Whether the adapterParams field is set.
       */
      boolean hasAdapterParams();
      /**
       * <pre>
       * AGV 适配器扩展参数，用于传递厂商特有选项。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvAdapterParams adapter_params = 4;</code>
       * @return The adapterParams.
       */
      cmvr.msgs.Agv.AgvAdapterParams getAdapterParams();
      /**
       * <pre>
       * AGV 适配器扩展参数，用于传递厂商特有选项。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvAdapterParams adapter_params = 4;</code>
       */
      cmvr.msgs.Agv.AgvAdapterParamsOrBuilder getAdapterParamsOrBuilder();
    }
    /**
     * <pre>
     * 请求体。
     * </pre>
     *
     * Protobuf type {@code cmvr.api.AgvNavigateToPoseCommand.Request}
     */
    public static final class Request extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.AgvNavigateToPoseCommand.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_AgvNavigateToPoseCommand_Request_descriptor;
      }

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

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Request header_;
      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <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_;
      }
      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() {
        return getHeader();
      }

      public static final int POSE_FIELD_NUMBER = 2;
      private cmvr.msgs.Agv.AgvPose2d pose_;
      /**
       * <pre>
       * 目标位姿。x/y 单位：米，theta 单位：弧度。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvPose2d pose = 2;</code>
       * @return Whether the pose field is set.
       */
      @java.lang.Override
      public boolean hasPose() {
        return pose_ != null;
      }
      /**
       * <pre>
       * 目标位姿。x/y 单位：米，theta 单位：弧度。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvPose2d pose = 2;</code>
       * @return The pose.
       */
      @java.lang.Override
      public cmvr.msgs.Agv.AgvPose2d getPose() {
        return pose_ == null ? cmvr.msgs.Agv.AgvPose2d.getDefaultInstance() : pose_;
      }
      /**
       * <pre>
       * 目标位姿。x/y 单位：米，theta 单位：弧度。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvPose2d pose = 2;</code>
       */
      @java.lang.Override
      public cmvr.msgs.Agv.AgvPose2dOrBuilder getPoseOrBuilder() {
        return getPose();
      }

      public static final int OPTIONS_FIELD_NUMBER = 3;
      private cmvr.msgs.Agv.AgvMotionOptions options_;
      /**
       * <pre>
       * 通用运动约束和执行选项。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvMotionOptions options = 3;</code>
       * @return Whether the options field is set.
       */
      @java.lang.Override
      public boolean hasOptions() {
        return options_ != null;
      }
      /**
       * <pre>
       * 通用运动约束和执行选项。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvMotionOptions options = 3;</code>
       * @return The options.
       */
      @java.lang.Override
      public cmvr.msgs.Agv.AgvMotionOptions getOptions() {
        return options_ == null ? cmvr.msgs.Agv.AgvMotionOptions.getDefaultInstance() : options_;
      }
      /**
       * <pre>
       * 通用运动约束和执行选项。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvMotionOptions options = 3;</code>
       */
      @java.lang.Override
      public cmvr.msgs.Agv.AgvMotionOptionsOrBuilder getOptionsOrBuilder() {
        return getOptions();
      }

      public static final int ADAPTER_PARAMS_FIELD_NUMBER = 4;
      private cmvr.msgs.Agv.AgvAdapterParams adapterParams_;
      /**
       * <pre>
       * AGV 适配器扩展参数，用于传递厂商特有选项。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvAdapterParams adapter_params = 4;</code>
       * @return Whether the adapterParams field is set.
       */
      @java.lang.Override
      public boolean hasAdapterParams() {
        return adapterParams_ != null;
      }
      /**
       * <pre>
       * AGV 适配器扩展参数，用于传递厂商特有选项。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvAdapterParams adapter_params = 4;</code>
       * @return The adapterParams.
       */
      @java.lang.Override
      public cmvr.msgs.Agv.AgvAdapterParams getAdapterParams() {
        return adapterParams_ == null ? cmvr.msgs.Agv.AgvAdapterParams.getDefaultInstance() : adapterParams_;
      }
      /**
       * <pre>
       * AGV 适配器扩展参数，用于传递厂商特有选项。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvAdapterParams adapter_params = 4;</code>
       */
      @java.lang.Override
      public cmvr.msgs.Agv.AgvAdapterParamsOrBuilder getAdapterParamsOrBuilder() {
        return getAdapterParams();
      }

      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 (pose_ != null) {
          output.writeMessage(2, getPose());
        }
        if (options_ != null) {
          output.writeMessage(3, getOptions());
        }
        if (adapterParams_ != null) {
          output.writeMessage(4, getAdapterParams());
        }
        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 (pose_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, getPose());
        }
        if (options_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(3, getOptions());
        }
        if (adapterParams_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(4, getAdapterParams());
        }
        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.AgvNavigateToPoseCommand.Request)) {
          return super.equals(obj);
        }
        cmvr.api.AgvCommand.AgvNavigateToPoseCommand.Request other = (cmvr.api.AgvCommand.AgvNavigateToPoseCommand.Request) obj;

        if (hasHeader() != other.hasHeader()) return false;
        if (hasHeader()) {
          if (!getHeader()
              .equals(other.getHeader())) return false;
        }
        if (hasPose() != other.hasPose()) return false;
        if (hasPose()) {
          if (!getPose()
              .equals(other.getPose())) return false;
        }
        if (hasOptions() != other.hasOptions()) return false;
        if (hasOptions()) {
          if (!getOptions()
              .equals(other.getOptions())) return false;
        }
        if (hasAdapterParams() != other.hasAdapterParams()) return false;
        if (hasAdapterParams()) {
          if (!getAdapterParams()
              .equals(other.getAdapterParams())) 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 (hasPose()) {
          hash = (37 * hash) + POSE_FIELD_NUMBER;
          hash = (53 * hash) + getPose().hashCode();
        }
        if (hasOptions()) {
          hash = (37 * hash) + OPTIONS_FIELD_NUMBER;
          hash = (53 * hash) + getOptions().hashCode();
        }
        if (hasAdapterParams()) {
          hash = (37 * hash) + ADAPTER_PARAMS_FIELD_NUMBER;
          hash = (53 * hash) + getAdapterParams().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.AgvCommand.AgvNavigateToPoseCommand.Request parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvNavigateToPoseCommand.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.AgvNavigateToPoseCommand.Request parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvNavigateToPoseCommand.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.AgvNavigateToPoseCommand.Request parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvNavigateToPoseCommand.Request parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.AgvNavigateToPoseCommand.Request parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvNavigateToPoseCommand.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.AgvNavigateToPoseCommand.Request parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvNavigateToPoseCommand.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.AgvNavigateToPoseCommand.Request parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvNavigateToPoseCommand.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.AgvNavigateToPoseCommand.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;
      }
      /**
       * <pre>
       * 请求体。
       * </pre>
       *
       * Protobuf type {@code cmvr.api.AgvNavigateToPoseCommand.Request}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.AgvNavigateToPoseCommand.Request)
          cmvr.api.AgvCommand.AgvNavigateToPoseCommand.RequestOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvNavigateToPoseCommand_Request_descriptor;
        }

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

        // Construct using cmvr.api.AgvCommand.AgvNavigateToPoseCommand.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 (poseBuilder_ == null) {
            pose_ = null;
          } else {
            pose_ = null;
            poseBuilder_ = null;
          }
          if (optionsBuilder_ == null) {
            options_ = null;
          } else {
            options_ = null;
            optionsBuilder_ = null;
          }
          if (adapterParamsBuilder_ == null) {
            adapterParams_ = null;
          } else {
            adapterParams_ = null;
            adapterParamsBuilder_ = null;
          }
          return this;
        }

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

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

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

        @java.lang.Override
        public cmvr.api.AgvCommand.AgvNavigateToPoseCommand.Request buildPartial() {
          cmvr.api.AgvCommand.AgvNavigateToPoseCommand.Request result = new cmvr.api.AgvCommand.AgvNavigateToPoseCommand.Request(this);
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          if (poseBuilder_ == null) {
            result.pose_ = pose_;
          } else {
            result.pose_ = poseBuilder_.build();
          }
          if (optionsBuilder_ == null) {
            result.options_ = options_;
          } else {
            result.options_ = optionsBuilder_.build();
          }
          if (adapterParamsBuilder_ == null) {
            result.adapterParams_ = adapterParams_;
          } else {
            result.adapterParams_ = adapterParamsBuilder_.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.AgvNavigateToPoseCommand.Request) {
            return mergeFrom((cmvr.api.AgvCommand.AgvNavigateToPoseCommand.Request)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.AgvCommand.AgvNavigateToPoseCommand.Request other) {
          if (other == cmvr.api.AgvCommand.AgvNavigateToPoseCommand.Request.getDefaultInstance()) return this;
          if (other.hasHeader()) {
            mergeHeader(other.getHeader());
          }
          if (other.hasPose()) {
            mergePose(other.getPose());
          }
          if (other.hasOptions()) {
            mergeOptions(other.getOptions());
          }
          if (other.hasAdapterParams()) {
            mergeAdapterParams(other.getAdapterParams());
          }
          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(
                      getPoseFieldBuilder().getBuilder(),
                      extensionRegistry);

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

                  break;
                } // case 26
                case 34: {
                  input.readMessage(
                      getAdapterParamsFieldBuilder().getBuilder(),
                      extensionRegistry);

                  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 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_;
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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();
          }
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Request.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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_;
          }
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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.msgs.Agv.AgvPose2d pose_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.msgs.Agv.AgvPose2d, cmvr.msgs.Agv.AgvPose2d.Builder, cmvr.msgs.Agv.AgvPose2dOrBuilder> poseBuilder_;
        /**
         * <pre>
         * 目标位姿。x/y 单位：米，theta 单位：弧度。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvPose2d pose = 2;</code>
         * @return Whether the pose field is set.
         */
        public boolean hasPose() {
          return poseBuilder_ != null || pose_ != null;
        }
        /**
         * <pre>
         * 目标位姿。x/y 单位：米，theta 单位：弧度。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvPose2d pose = 2;</code>
         * @return The pose.
         */
        public cmvr.msgs.Agv.AgvPose2d getPose() {
          if (poseBuilder_ == null) {
            return pose_ == null ? cmvr.msgs.Agv.AgvPose2d.getDefaultInstance() : pose_;
          } else {
            return poseBuilder_.getMessage();
          }
        }
        /**
         * <pre>
         * 目标位姿。x/y 单位：米，theta 单位：弧度。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvPose2d pose = 2;</code>
         */
        public Builder setPose(cmvr.msgs.Agv.AgvPose2d value) {
          if (poseBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            pose_ = value;
            onChanged();
          } else {
            poseBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <pre>
         * 目标位姿。x/y 单位：米，theta 单位：弧度。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvPose2d pose = 2;</code>
         */
        public Builder setPose(
            cmvr.msgs.Agv.AgvPose2d.Builder builderForValue) {
          if (poseBuilder_ == null) {
            pose_ = builderForValue.build();
            onChanged();
          } else {
            poseBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <pre>
         * 目标位姿。x/y 单位：米，theta 单位：弧度。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvPose2d pose = 2;</code>
         */
        public Builder mergePose(cmvr.msgs.Agv.AgvPose2d value) {
          if (poseBuilder_ == null) {
            if (pose_ != null) {
              pose_ =
                cmvr.msgs.Agv.AgvPose2d.newBuilder(pose_).mergeFrom(value).buildPartial();
            } else {
              pose_ = value;
            }
            onChanged();
          } else {
            poseBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <pre>
         * 目标位姿。x/y 单位：米，theta 单位：弧度。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvPose2d pose = 2;</code>
         */
        public Builder clearPose() {
          if (poseBuilder_ == null) {
            pose_ = null;
            onChanged();
          } else {
            pose_ = null;
            poseBuilder_ = null;
          }

          return this;
        }
        /**
         * <pre>
         * 目标位姿。x/y 单位：米，theta 单位：弧度。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvPose2d pose = 2;</code>
         */
        public cmvr.msgs.Agv.AgvPose2d.Builder getPoseBuilder() {
          
          onChanged();
          return getPoseFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * 目标位姿。x/y 单位：米，theta 单位：弧度。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvPose2d pose = 2;</code>
         */
        public cmvr.msgs.Agv.AgvPose2dOrBuilder getPoseOrBuilder() {
          if (poseBuilder_ != null) {
            return poseBuilder_.getMessageOrBuilder();
          } else {
            return pose_ == null ?
                cmvr.msgs.Agv.AgvPose2d.getDefaultInstance() : pose_;
          }
        }
        /**
         * <pre>
         * 目标位姿。x/y 单位：米，theta 单位：弧度。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvPose2d pose = 2;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.msgs.Agv.AgvPose2d, cmvr.msgs.Agv.AgvPose2d.Builder, cmvr.msgs.Agv.AgvPose2dOrBuilder> 
            getPoseFieldBuilder() {
          if (poseBuilder_ == null) {
            poseBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.msgs.Agv.AgvPose2d, cmvr.msgs.Agv.AgvPose2d.Builder, cmvr.msgs.Agv.AgvPose2dOrBuilder>(
                    getPose(),
                    getParentForChildren(),
                    isClean());
            pose_ = null;
          }
          return poseBuilder_;
        }

        private cmvr.msgs.Agv.AgvMotionOptions options_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.msgs.Agv.AgvMotionOptions, cmvr.msgs.Agv.AgvMotionOptions.Builder, cmvr.msgs.Agv.AgvMotionOptionsOrBuilder> optionsBuilder_;
        /**
         * <pre>
         * 通用运动约束和执行选项。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvMotionOptions options = 3;</code>
         * @return Whether the options field is set.
         */
        public boolean hasOptions() {
          return optionsBuilder_ != null || options_ != null;
        }
        /**
         * <pre>
         * 通用运动约束和执行选项。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvMotionOptions options = 3;</code>
         * @return The options.
         */
        public cmvr.msgs.Agv.AgvMotionOptions getOptions() {
          if (optionsBuilder_ == null) {
            return options_ == null ? cmvr.msgs.Agv.AgvMotionOptions.getDefaultInstance() : options_;
          } else {
            return optionsBuilder_.getMessage();
          }
        }
        /**
         * <pre>
         * 通用运动约束和执行选项。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvMotionOptions options = 3;</code>
         */
        public Builder setOptions(cmvr.msgs.Agv.AgvMotionOptions value) {
          if (optionsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            options_ = value;
            onChanged();
          } else {
            optionsBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <pre>
         * 通用运动约束和执行选项。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvMotionOptions options = 3;</code>
         */
        public Builder setOptions(
            cmvr.msgs.Agv.AgvMotionOptions.Builder builderForValue) {
          if (optionsBuilder_ == null) {
            options_ = builderForValue.build();
            onChanged();
          } else {
            optionsBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <pre>
         * 通用运动约束和执行选项。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvMotionOptions options = 3;</code>
         */
        public Builder mergeOptions(cmvr.msgs.Agv.AgvMotionOptions value) {
          if (optionsBuilder_ == null) {
            if (options_ != null) {
              options_ =
                cmvr.msgs.Agv.AgvMotionOptions.newBuilder(options_).mergeFrom(value).buildPartial();
            } else {
              options_ = value;
            }
            onChanged();
          } else {
            optionsBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <pre>
         * 通用运动约束和执行选项。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvMotionOptions options = 3;</code>
         */
        public Builder clearOptions() {
          if (optionsBuilder_ == null) {
            options_ = null;
            onChanged();
          } else {
            options_ = null;
            optionsBuilder_ = null;
          }

          return this;
        }
        /**
         * <pre>
         * 通用运动约束和执行选项。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvMotionOptions options = 3;</code>
         */
        public cmvr.msgs.Agv.AgvMotionOptions.Builder getOptionsBuilder() {
          
          onChanged();
          return getOptionsFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * 通用运动约束和执行选项。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvMotionOptions options = 3;</code>
         */
        public cmvr.msgs.Agv.AgvMotionOptionsOrBuilder getOptionsOrBuilder() {
          if (optionsBuilder_ != null) {
            return optionsBuilder_.getMessageOrBuilder();
          } else {
            return options_ == null ?
                cmvr.msgs.Agv.AgvMotionOptions.getDefaultInstance() : options_;
          }
        }
        /**
         * <pre>
         * 通用运动约束和执行选项。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvMotionOptions options = 3;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.msgs.Agv.AgvMotionOptions, cmvr.msgs.Agv.AgvMotionOptions.Builder, cmvr.msgs.Agv.AgvMotionOptionsOrBuilder> 
            getOptionsFieldBuilder() {
          if (optionsBuilder_ == null) {
            optionsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.msgs.Agv.AgvMotionOptions, cmvr.msgs.Agv.AgvMotionOptions.Builder, cmvr.msgs.Agv.AgvMotionOptionsOrBuilder>(
                    getOptions(),
                    getParentForChildren(),
                    isClean());
            options_ = null;
          }
          return optionsBuilder_;
        }

        private cmvr.msgs.Agv.AgvAdapterParams adapterParams_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.msgs.Agv.AgvAdapterParams, cmvr.msgs.Agv.AgvAdapterParams.Builder, cmvr.msgs.Agv.AgvAdapterParamsOrBuilder> adapterParamsBuilder_;
        /**
         * <pre>
         * AGV 适配器扩展参数，用于传递厂商特有选项。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvAdapterParams adapter_params = 4;</code>
         * @return Whether the adapterParams field is set.
         */
        public boolean hasAdapterParams() {
          return adapterParamsBuilder_ != null || adapterParams_ != null;
        }
        /**
         * <pre>
         * AGV 适配器扩展参数，用于传递厂商特有选项。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvAdapterParams adapter_params = 4;</code>
         * @return The adapterParams.
         */
        public cmvr.msgs.Agv.AgvAdapterParams getAdapterParams() {
          if (adapterParamsBuilder_ == null) {
            return adapterParams_ == null ? cmvr.msgs.Agv.AgvAdapterParams.getDefaultInstance() : adapterParams_;
          } else {
            return adapterParamsBuilder_.getMessage();
          }
        }
        /**
         * <pre>
         * AGV 适配器扩展参数，用于传递厂商特有选项。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvAdapterParams adapter_params = 4;</code>
         */
        public Builder setAdapterParams(cmvr.msgs.Agv.AgvAdapterParams value) {
          if (adapterParamsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            adapterParams_ = value;
            onChanged();
          } else {
            adapterParamsBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <pre>
         * AGV 适配器扩展参数，用于传递厂商特有选项。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvAdapterParams adapter_params = 4;</code>
         */
        public Builder setAdapterParams(
            cmvr.msgs.Agv.AgvAdapterParams.Builder builderForValue) {
          if (adapterParamsBuilder_ == null) {
            adapterParams_ = builderForValue.build();
            onChanged();
          } else {
            adapterParamsBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <pre>
         * AGV 适配器扩展参数，用于传递厂商特有选项。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvAdapterParams adapter_params = 4;</code>
         */
        public Builder mergeAdapterParams(cmvr.msgs.Agv.AgvAdapterParams value) {
          if (adapterParamsBuilder_ == null) {
            if (adapterParams_ != null) {
              adapterParams_ =
                cmvr.msgs.Agv.AgvAdapterParams.newBuilder(adapterParams_).mergeFrom(value).buildPartial();
            } else {
              adapterParams_ = value;
            }
            onChanged();
          } else {
            adapterParamsBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <pre>
         * AGV 适配器扩展参数，用于传递厂商特有选项。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvAdapterParams adapter_params = 4;</code>
         */
        public Builder clearAdapterParams() {
          if (adapterParamsBuilder_ == null) {
            adapterParams_ = null;
            onChanged();
          } else {
            adapterParams_ = null;
            adapterParamsBuilder_ = null;
          }

          return this;
        }
        /**
         * <pre>
         * AGV 适配器扩展参数，用于传递厂商特有选项。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvAdapterParams adapter_params = 4;</code>
         */
        public cmvr.msgs.Agv.AgvAdapterParams.Builder getAdapterParamsBuilder() {
          
          onChanged();
          return getAdapterParamsFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * AGV 适配器扩展参数，用于传递厂商特有选项。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvAdapterParams adapter_params = 4;</code>
         */
        public cmvr.msgs.Agv.AgvAdapterParamsOrBuilder getAdapterParamsOrBuilder() {
          if (adapterParamsBuilder_ != null) {
            return adapterParamsBuilder_.getMessageOrBuilder();
          } else {
            return adapterParams_ == null ?
                cmvr.msgs.Agv.AgvAdapterParams.getDefaultInstance() : adapterParams_;
          }
        }
        /**
         * <pre>
         * AGV 适配器扩展参数，用于传递厂商特有选项。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvAdapterParams adapter_params = 4;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.msgs.Agv.AgvAdapterParams, cmvr.msgs.Agv.AgvAdapterParams.Builder, cmvr.msgs.Agv.AgvAdapterParamsOrBuilder> 
            getAdapterParamsFieldBuilder() {
          if (adapterParamsBuilder_ == null) {
            adapterParamsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.msgs.Agv.AgvAdapterParams, cmvr.msgs.Agv.AgvAdapterParams.Builder, cmvr.msgs.Agv.AgvAdapterParamsOrBuilder>(
                    getAdapterParams(),
                    getParentForChildren(),
                    isClean());
            adapterParams_ = null;
          }
          return adapterParamsBuilder_;
        }
        @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.AgvNavigateToPoseCommand.Request)
      }

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

      public static cmvr.api.AgvCommand.AgvNavigateToPoseCommand.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.AgvNavigateToPoseCommand.Request getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

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

      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Feedback getHeader();
      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder();
    }
    /**
     * <pre>
     * 反馈体。
     * </pre>
     *
     * Protobuf type {@code cmvr.api.AgvNavigateToPoseCommand.Feedback}
     */
    public static final class Feedback extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.AgvNavigateToPoseCommand.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_AgvNavigateToPoseCommand_Feedback_descriptor;
      }

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

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Feedback header_;
      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <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_;
      }
      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.FeedbackOrBuilder 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.AgvNavigateToPoseCommand.Feedback)) {
          return super.equals(obj);
        }
        cmvr.api.AgvCommand.AgvNavigateToPoseCommand.Feedback other = (cmvr.api.AgvCommand.AgvNavigateToPoseCommand.Feedback) 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.AgvNavigateToPoseCommand.Feedback parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvNavigateToPoseCommand.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.AgvNavigateToPoseCommand.Feedback parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvNavigateToPoseCommand.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.AgvNavigateToPoseCommand.Feedback parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvNavigateToPoseCommand.Feedback parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.AgvNavigateToPoseCommand.Feedback parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvNavigateToPoseCommand.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.AgvNavigateToPoseCommand.Feedback parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvNavigateToPoseCommand.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.AgvNavigateToPoseCommand.Feedback parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvNavigateToPoseCommand.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.AgvNavigateToPoseCommand.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;
      }
      /**
       * <pre>
       * 反馈体。
       * </pre>
       *
       * Protobuf type {@code cmvr.api.AgvNavigateToPoseCommand.Feedback}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.AgvNavigateToPoseCommand.Feedback)
          cmvr.api.AgvCommand.AgvNavigateToPoseCommand.FeedbackOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvNavigateToPoseCommand_Feedback_descriptor;
        }

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

        // Construct using cmvr.api.AgvCommand.AgvNavigateToPoseCommand.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;
          }
          return this;
        }

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

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

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

        @java.lang.Override
        public cmvr.api.AgvCommand.AgvNavigateToPoseCommand.Feedback buildPartial() {
          cmvr.api.AgvCommand.AgvNavigateToPoseCommand.Feedback result = new cmvr.api.AgvCommand.AgvNavigateToPoseCommand.Feedback(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.AgvNavigateToPoseCommand.Feedback) {
            return mergeFrom((cmvr.api.AgvCommand.AgvNavigateToPoseCommand.Feedback)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.AgvCommand.AgvNavigateToPoseCommand.Feedback other) {
          if (other == cmvr.api.AgvCommand.AgvNavigateToPoseCommand.Feedback.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.Feedback header_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> headerBuilder_;
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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();
          }
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Feedback.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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_;
          }
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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_;
        }
        @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.AgvNavigateToPoseCommand.Feedback)
      }

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

      public static cmvr.api.AgvCommand.AgvNavigateToPoseCommand.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.AgvNavigateToPoseCommand.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.AgvNavigateToPoseCommand)) {
        return super.equals(obj);
      }
      cmvr.api.AgvCommand.AgvNavigateToPoseCommand other = (cmvr.api.AgvCommand.AgvNavigateToPoseCommand) 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.AgvNavigateToPoseCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.AgvNavigateToPoseCommand 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.AgvNavigateToPoseCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.AgvNavigateToPoseCommand 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.AgvNavigateToPoseCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.AgvNavigateToPoseCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.AgvNavigateToPoseCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.AgvNavigateToPoseCommand 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.AgvNavigateToPoseCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.AgvNavigateToPoseCommand 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.AgvNavigateToPoseCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.AgvNavigateToPoseCommand 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.AgvNavigateToPoseCommand 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.AgvNavigateToPoseCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:cmvr.api.AgvNavigateToPoseCommand)
        cmvr.api.AgvCommand.AgvNavigateToPoseCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvNavigateToPoseCommand_descriptor;
      }

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

      // Construct using cmvr.api.AgvCommand.AgvNavigateToPoseCommand.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_AgvNavigateToPoseCommand_descriptor;
      }

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

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

      @java.lang.Override
      public cmvr.api.AgvCommand.AgvNavigateToPoseCommand buildPartial() {
        cmvr.api.AgvCommand.AgvNavigateToPoseCommand result = new cmvr.api.AgvCommand.AgvNavigateToPoseCommand(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.AgvNavigateToPoseCommand) {
          return mergeFrom((cmvr.api.AgvCommand.AgvNavigateToPoseCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cmvr.api.AgvCommand.AgvNavigateToPoseCommand other) {
        if (other == cmvr.api.AgvCommand.AgvNavigateToPoseCommand.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.AgvNavigateToPoseCommand)
    }

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

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

    private static final com.google.protobuf.Parser<AgvNavigateToPoseCommand>
        PARSER = new com.google.protobuf.AbstractParser<AgvNavigateToPoseCommand>() {
      @java.lang.Override
      public AgvNavigateToPoseCommand 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<AgvNavigateToPoseCommand> parser() {
      return PARSER;
    }

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

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

  }

  public interface AgvNavigateToStationCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:cmvr.api.AgvNavigateToStationCommand)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * <pre>
   * 导航到指定站点命令。
   * </pre>
   *
   * Protobuf type {@code cmvr.api.AgvNavigateToStationCommand}
   */
  public static final class AgvNavigateToStationCommand extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:cmvr.api.AgvNavigateToStationCommand)
      AgvNavigateToStationCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AgvNavigateToStationCommand.newBuilder() to construct.
    private AgvNavigateToStationCommand(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private AgvNavigateToStationCommand() {
    }

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

    @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_AgvNavigateToStationCommand_descriptor;
    }

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

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

      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Request getHeader();
      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder();

      /**
       * <pre>
       * 目标站点 id。
       * </pre>
       *
       * <code>string station_id = 2;</code>
       * @return The stationId.
       */
      java.lang.String getStationId();
      /**
       * <pre>
       * 目标站点 id。
       * </pre>
       *
       * <code>string station_id = 2;</code>
       * @return The bytes for stationId.
       */
      com.google.protobuf.ByteString
          getStationIdBytes();

      /**
       * <pre>
       * 通用运动约束和执行选项。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvMotionOptions options = 3;</code>
       * @return Whether the options field is set.
       */
      boolean hasOptions();
      /**
       * <pre>
       * 通用运动约束和执行选项。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvMotionOptions options = 3;</code>
       * @return The options.
       */
      cmvr.msgs.Agv.AgvMotionOptions getOptions();
      /**
       * <pre>
       * 通用运动约束和执行选项。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvMotionOptions options = 3;</code>
       */
      cmvr.msgs.Agv.AgvMotionOptionsOrBuilder getOptionsOrBuilder();

      /**
       * <pre>
       * AGV 适配器扩展参数，用于传递厂商特有选项。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvAdapterParams adapter_params = 4;</code>
       * @return Whether the adapterParams field is set.
       */
      boolean hasAdapterParams();
      /**
       * <pre>
       * AGV 适配器扩展参数，用于传递厂商特有选项。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvAdapterParams adapter_params = 4;</code>
       * @return The adapterParams.
       */
      cmvr.msgs.Agv.AgvAdapterParams getAdapterParams();
      /**
       * <pre>
       * AGV 适配器扩展参数，用于传递厂商特有选项。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvAdapterParams adapter_params = 4;</code>
       */
      cmvr.msgs.Agv.AgvAdapterParamsOrBuilder getAdapterParamsOrBuilder();
    }
    /**
     * <pre>
     * 请求体。
     * </pre>
     *
     * Protobuf type {@code cmvr.api.AgvNavigateToStationCommand.Request}
     */
    public static final class Request extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.AgvNavigateToStationCommand.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() {
        stationId_ = "";
      }

      @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_AgvNavigateToStationCommand_Request_descriptor;
      }

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

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Request header_;
      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <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_;
      }
      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() {
        return getHeader();
      }

      public static final int STATION_ID_FIELD_NUMBER = 2;
      private volatile java.lang.Object stationId_;
      /**
       * <pre>
       * 目标站点 id。
       * </pre>
       *
       * <code>string station_id = 2;</code>
       * @return The stationId.
       */
      @java.lang.Override
      public java.lang.String getStationId() {
        java.lang.Object ref = stationId_;
        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();
          stationId_ = s;
          return s;
        }
      }
      /**
       * <pre>
       * 目标站点 id。
       * </pre>
       *
       * <code>string station_id = 2;</code>
       * @return The bytes for stationId.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getStationIdBytes() {
        java.lang.Object ref = stationId_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          stationId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int OPTIONS_FIELD_NUMBER = 3;
      private cmvr.msgs.Agv.AgvMotionOptions options_;
      /**
       * <pre>
       * 通用运动约束和执行选项。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvMotionOptions options = 3;</code>
       * @return Whether the options field is set.
       */
      @java.lang.Override
      public boolean hasOptions() {
        return options_ != null;
      }
      /**
       * <pre>
       * 通用运动约束和执行选项。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvMotionOptions options = 3;</code>
       * @return The options.
       */
      @java.lang.Override
      public cmvr.msgs.Agv.AgvMotionOptions getOptions() {
        return options_ == null ? cmvr.msgs.Agv.AgvMotionOptions.getDefaultInstance() : options_;
      }
      /**
       * <pre>
       * 通用运动约束和执行选项。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvMotionOptions options = 3;</code>
       */
      @java.lang.Override
      public cmvr.msgs.Agv.AgvMotionOptionsOrBuilder getOptionsOrBuilder() {
        return getOptions();
      }

      public static final int ADAPTER_PARAMS_FIELD_NUMBER = 4;
      private cmvr.msgs.Agv.AgvAdapterParams adapterParams_;
      /**
       * <pre>
       * AGV 适配器扩展参数，用于传递厂商特有选项。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvAdapterParams adapter_params = 4;</code>
       * @return Whether the adapterParams field is set.
       */
      @java.lang.Override
      public boolean hasAdapterParams() {
        return adapterParams_ != null;
      }
      /**
       * <pre>
       * AGV 适配器扩展参数，用于传递厂商特有选项。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvAdapterParams adapter_params = 4;</code>
       * @return The adapterParams.
       */
      @java.lang.Override
      public cmvr.msgs.Agv.AgvAdapterParams getAdapterParams() {
        return adapterParams_ == null ? cmvr.msgs.Agv.AgvAdapterParams.getDefaultInstance() : adapterParams_;
      }
      /**
       * <pre>
       * AGV 适配器扩展参数，用于传递厂商特有选项。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvAdapterParams adapter_params = 4;</code>
       */
      @java.lang.Override
      public cmvr.msgs.Agv.AgvAdapterParamsOrBuilder getAdapterParamsOrBuilder() {
        return getAdapterParams();
      }

      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 (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(stationId_)) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 2, stationId_);
        }
        if (options_ != null) {
          output.writeMessage(3, getOptions());
        }
        if (adapterParams_ != null) {
          output.writeMessage(4, getAdapterParams());
        }
        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 (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(stationId_)) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, stationId_);
        }
        if (options_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(3, getOptions());
        }
        if (adapterParams_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(4, getAdapterParams());
        }
        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.AgvNavigateToStationCommand.Request)) {
          return super.equals(obj);
        }
        cmvr.api.AgvCommand.AgvNavigateToStationCommand.Request other = (cmvr.api.AgvCommand.AgvNavigateToStationCommand.Request) obj;

        if (hasHeader() != other.hasHeader()) return false;
        if (hasHeader()) {
          if (!getHeader()
              .equals(other.getHeader())) return false;
        }
        if (!getStationId()
            .equals(other.getStationId())) return false;
        if (hasOptions() != other.hasOptions()) return false;
        if (hasOptions()) {
          if (!getOptions()
              .equals(other.getOptions())) return false;
        }
        if (hasAdapterParams() != other.hasAdapterParams()) return false;
        if (hasAdapterParams()) {
          if (!getAdapterParams()
              .equals(other.getAdapterParams())) 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 = (37 * hash) + STATION_ID_FIELD_NUMBER;
        hash = (53 * hash) + getStationId().hashCode();
        if (hasOptions()) {
          hash = (37 * hash) + OPTIONS_FIELD_NUMBER;
          hash = (53 * hash) + getOptions().hashCode();
        }
        if (hasAdapterParams()) {
          hash = (37 * hash) + ADAPTER_PARAMS_FIELD_NUMBER;
          hash = (53 * hash) + getAdapterParams().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.AgvCommand.AgvNavigateToStationCommand.Request parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvNavigateToStationCommand.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.AgvNavigateToStationCommand.Request parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvNavigateToStationCommand.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.AgvNavigateToStationCommand.Request parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvNavigateToStationCommand.Request parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.AgvNavigateToStationCommand.Request parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvNavigateToStationCommand.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.AgvNavigateToStationCommand.Request parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvNavigateToStationCommand.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.AgvNavigateToStationCommand.Request parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvNavigateToStationCommand.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.AgvNavigateToStationCommand.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;
      }
      /**
       * <pre>
       * 请求体。
       * </pre>
       *
       * Protobuf type {@code cmvr.api.AgvNavigateToStationCommand.Request}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.AgvNavigateToStationCommand.Request)
          cmvr.api.AgvCommand.AgvNavigateToStationCommand.RequestOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvNavigateToStationCommand_Request_descriptor;
        }

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

        // Construct using cmvr.api.AgvCommand.AgvNavigateToStationCommand.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;
          }
          stationId_ = "";

          if (optionsBuilder_ == null) {
            options_ = null;
          } else {
            options_ = null;
            optionsBuilder_ = null;
          }
          if (adapterParamsBuilder_ == null) {
            adapterParams_ = null;
          } else {
            adapterParams_ = null;
            adapterParamsBuilder_ = null;
          }
          return this;
        }

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

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

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

        @java.lang.Override
        public cmvr.api.AgvCommand.AgvNavigateToStationCommand.Request buildPartial() {
          cmvr.api.AgvCommand.AgvNavigateToStationCommand.Request result = new cmvr.api.AgvCommand.AgvNavigateToStationCommand.Request(this);
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          result.stationId_ = stationId_;
          if (optionsBuilder_ == null) {
            result.options_ = options_;
          } else {
            result.options_ = optionsBuilder_.build();
          }
          if (adapterParamsBuilder_ == null) {
            result.adapterParams_ = adapterParams_;
          } else {
            result.adapterParams_ = adapterParamsBuilder_.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.AgvNavigateToStationCommand.Request) {
            return mergeFrom((cmvr.api.AgvCommand.AgvNavigateToStationCommand.Request)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.AgvCommand.AgvNavigateToStationCommand.Request other) {
          if (other == cmvr.api.AgvCommand.AgvNavigateToStationCommand.Request.getDefaultInstance()) return this;
          if (other.hasHeader()) {
            mergeHeader(other.getHeader());
          }
          if (!other.getStationId().isEmpty()) {
            stationId_ = other.stationId_;
            onChanged();
          }
          if (other.hasOptions()) {
            mergeOptions(other.getOptions());
          }
          if (other.hasAdapterParams()) {
            mergeAdapterParams(other.getAdapterParams());
          }
          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: {
                  stationId_ = input.readStringRequireUtf8();

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

                  break;
                } // case 26
                case 34: {
                  input.readMessage(
                      getAdapterParamsFieldBuilder().getBuilder(),
                      extensionRegistry);

                  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 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_;
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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();
          }
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Request.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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_;
          }
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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 java.lang.Object stationId_ = "";
        /**
         * <pre>
         * 目标站点 id。
         * </pre>
         *
         * <code>string station_id = 2;</code>
         * @return The stationId.
         */
        public java.lang.String getStationId() {
          java.lang.Object ref = stationId_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            stationId_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <pre>
         * 目标站点 id。
         * </pre>
         *
         * <code>string station_id = 2;</code>
         * @return The bytes for stationId.
         */
        public com.google.protobuf.ByteString
            getStationIdBytes() {
          java.lang.Object ref = stationId_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            stationId_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <pre>
         * 目标站点 id。
         * </pre>
         *
         * <code>string station_id = 2;</code>
         * @param value The stationId to set.
         * @return This builder for chaining.
         */
        public Builder setStationId(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          stationId_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * 目标站点 id。
         * </pre>
         *
         * <code>string station_id = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearStationId() {
          
          stationId_ = getDefaultInstance().getStationId();
          onChanged();
          return this;
        }
        /**
         * <pre>
         * 目标站点 id。
         * </pre>
         *
         * <code>string station_id = 2;</code>
         * @param value The bytes for stationId to set.
         * @return This builder for chaining.
         */
        public Builder setStationIdBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
          
          stationId_ = value;
          onChanged();
          return this;
        }

        private cmvr.msgs.Agv.AgvMotionOptions options_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.msgs.Agv.AgvMotionOptions, cmvr.msgs.Agv.AgvMotionOptions.Builder, cmvr.msgs.Agv.AgvMotionOptionsOrBuilder> optionsBuilder_;
        /**
         * <pre>
         * 通用运动约束和执行选项。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvMotionOptions options = 3;</code>
         * @return Whether the options field is set.
         */
        public boolean hasOptions() {
          return optionsBuilder_ != null || options_ != null;
        }
        /**
         * <pre>
         * 通用运动约束和执行选项。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvMotionOptions options = 3;</code>
         * @return The options.
         */
        public cmvr.msgs.Agv.AgvMotionOptions getOptions() {
          if (optionsBuilder_ == null) {
            return options_ == null ? cmvr.msgs.Agv.AgvMotionOptions.getDefaultInstance() : options_;
          } else {
            return optionsBuilder_.getMessage();
          }
        }
        /**
         * <pre>
         * 通用运动约束和执行选项。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvMotionOptions options = 3;</code>
         */
        public Builder setOptions(cmvr.msgs.Agv.AgvMotionOptions value) {
          if (optionsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            options_ = value;
            onChanged();
          } else {
            optionsBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <pre>
         * 通用运动约束和执行选项。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvMotionOptions options = 3;</code>
         */
        public Builder setOptions(
            cmvr.msgs.Agv.AgvMotionOptions.Builder builderForValue) {
          if (optionsBuilder_ == null) {
            options_ = builderForValue.build();
            onChanged();
          } else {
            optionsBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <pre>
         * 通用运动约束和执行选项。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvMotionOptions options = 3;</code>
         */
        public Builder mergeOptions(cmvr.msgs.Agv.AgvMotionOptions value) {
          if (optionsBuilder_ == null) {
            if (options_ != null) {
              options_ =
                cmvr.msgs.Agv.AgvMotionOptions.newBuilder(options_).mergeFrom(value).buildPartial();
            } else {
              options_ = value;
            }
            onChanged();
          } else {
            optionsBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <pre>
         * 通用运动约束和执行选项。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvMotionOptions options = 3;</code>
         */
        public Builder clearOptions() {
          if (optionsBuilder_ == null) {
            options_ = null;
            onChanged();
          } else {
            options_ = null;
            optionsBuilder_ = null;
          }

          return this;
        }
        /**
         * <pre>
         * 通用运动约束和执行选项。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvMotionOptions options = 3;</code>
         */
        public cmvr.msgs.Agv.AgvMotionOptions.Builder getOptionsBuilder() {
          
          onChanged();
          return getOptionsFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * 通用运动约束和执行选项。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvMotionOptions options = 3;</code>
         */
        public cmvr.msgs.Agv.AgvMotionOptionsOrBuilder getOptionsOrBuilder() {
          if (optionsBuilder_ != null) {
            return optionsBuilder_.getMessageOrBuilder();
          } else {
            return options_ == null ?
                cmvr.msgs.Agv.AgvMotionOptions.getDefaultInstance() : options_;
          }
        }
        /**
         * <pre>
         * 通用运动约束和执行选项。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvMotionOptions options = 3;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.msgs.Agv.AgvMotionOptions, cmvr.msgs.Agv.AgvMotionOptions.Builder, cmvr.msgs.Agv.AgvMotionOptionsOrBuilder> 
            getOptionsFieldBuilder() {
          if (optionsBuilder_ == null) {
            optionsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.msgs.Agv.AgvMotionOptions, cmvr.msgs.Agv.AgvMotionOptions.Builder, cmvr.msgs.Agv.AgvMotionOptionsOrBuilder>(
                    getOptions(),
                    getParentForChildren(),
                    isClean());
            options_ = null;
          }
          return optionsBuilder_;
        }

        private cmvr.msgs.Agv.AgvAdapterParams adapterParams_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.msgs.Agv.AgvAdapterParams, cmvr.msgs.Agv.AgvAdapterParams.Builder, cmvr.msgs.Agv.AgvAdapterParamsOrBuilder> adapterParamsBuilder_;
        /**
         * <pre>
         * AGV 适配器扩展参数，用于传递厂商特有选项。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvAdapterParams adapter_params = 4;</code>
         * @return Whether the adapterParams field is set.
         */
        public boolean hasAdapterParams() {
          return adapterParamsBuilder_ != null || adapterParams_ != null;
        }
        /**
         * <pre>
         * AGV 适配器扩展参数，用于传递厂商特有选项。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvAdapterParams adapter_params = 4;</code>
         * @return The adapterParams.
         */
        public cmvr.msgs.Agv.AgvAdapterParams getAdapterParams() {
          if (adapterParamsBuilder_ == null) {
            return adapterParams_ == null ? cmvr.msgs.Agv.AgvAdapterParams.getDefaultInstance() : adapterParams_;
          } else {
            return adapterParamsBuilder_.getMessage();
          }
        }
        /**
         * <pre>
         * AGV 适配器扩展参数，用于传递厂商特有选项。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvAdapterParams adapter_params = 4;</code>
         */
        public Builder setAdapterParams(cmvr.msgs.Agv.AgvAdapterParams value) {
          if (adapterParamsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            adapterParams_ = value;
            onChanged();
          } else {
            adapterParamsBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <pre>
         * AGV 适配器扩展参数，用于传递厂商特有选项。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvAdapterParams adapter_params = 4;</code>
         */
        public Builder setAdapterParams(
            cmvr.msgs.Agv.AgvAdapterParams.Builder builderForValue) {
          if (adapterParamsBuilder_ == null) {
            adapterParams_ = builderForValue.build();
            onChanged();
          } else {
            adapterParamsBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <pre>
         * AGV 适配器扩展参数，用于传递厂商特有选项。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvAdapterParams adapter_params = 4;</code>
         */
        public Builder mergeAdapterParams(cmvr.msgs.Agv.AgvAdapterParams value) {
          if (adapterParamsBuilder_ == null) {
            if (adapterParams_ != null) {
              adapterParams_ =
                cmvr.msgs.Agv.AgvAdapterParams.newBuilder(adapterParams_).mergeFrom(value).buildPartial();
            } else {
              adapterParams_ = value;
            }
            onChanged();
          } else {
            adapterParamsBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <pre>
         * AGV 适配器扩展参数，用于传递厂商特有选项。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvAdapterParams adapter_params = 4;</code>
         */
        public Builder clearAdapterParams() {
          if (adapterParamsBuilder_ == null) {
            adapterParams_ = null;
            onChanged();
          } else {
            adapterParams_ = null;
            adapterParamsBuilder_ = null;
          }

          return this;
        }
        /**
         * <pre>
         * AGV 适配器扩展参数，用于传递厂商特有选项。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvAdapterParams adapter_params = 4;</code>
         */
        public cmvr.msgs.Agv.AgvAdapterParams.Builder getAdapterParamsBuilder() {
          
          onChanged();
          return getAdapterParamsFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * AGV 适配器扩展参数，用于传递厂商特有选项。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvAdapterParams adapter_params = 4;</code>
         */
        public cmvr.msgs.Agv.AgvAdapterParamsOrBuilder getAdapterParamsOrBuilder() {
          if (adapterParamsBuilder_ != null) {
            return adapterParamsBuilder_.getMessageOrBuilder();
          } else {
            return adapterParams_ == null ?
                cmvr.msgs.Agv.AgvAdapterParams.getDefaultInstance() : adapterParams_;
          }
        }
        /**
         * <pre>
         * AGV 适配器扩展参数，用于传递厂商特有选项。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvAdapterParams adapter_params = 4;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.msgs.Agv.AgvAdapterParams, cmvr.msgs.Agv.AgvAdapterParams.Builder, cmvr.msgs.Agv.AgvAdapterParamsOrBuilder> 
            getAdapterParamsFieldBuilder() {
          if (adapterParamsBuilder_ == null) {
            adapterParamsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.msgs.Agv.AgvAdapterParams, cmvr.msgs.Agv.AgvAdapterParams.Builder, cmvr.msgs.Agv.AgvAdapterParamsOrBuilder>(
                    getAdapterParams(),
                    getParentForChildren(),
                    isClean());
            adapterParams_ = null;
          }
          return adapterParamsBuilder_;
        }
        @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.AgvNavigateToStationCommand.Request)
      }

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

      public static cmvr.api.AgvCommand.AgvNavigateToStationCommand.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.AgvNavigateToStationCommand.Request getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

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

      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Feedback getHeader();
      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder();
    }
    /**
     * <pre>
     * 反馈体。
     * </pre>
     *
     * Protobuf type {@code cmvr.api.AgvNavigateToStationCommand.Feedback}
     */
    public static final class Feedback extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.AgvNavigateToStationCommand.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_AgvNavigateToStationCommand_Feedback_descriptor;
      }

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

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Feedback header_;
      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <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_;
      }
      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.FeedbackOrBuilder 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.AgvNavigateToStationCommand.Feedback)) {
          return super.equals(obj);
        }
        cmvr.api.AgvCommand.AgvNavigateToStationCommand.Feedback other = (cmvr.api.AgvCommand.AgvNavigateToStationCommand.Feedback) 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.AgvNavigateToStationCommand.Feedback parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvNavigateToStationCommand.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.AgvNavigateToStationCommand.Feedback parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvNavigateToStationCommand.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.AgvNavigateToStationCommand.Feedback parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvNavigateToStationCommand.Feedback parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.AgvNavigateToStationCommand.Feedback parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvNavigateToStationCommand.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.AgvNavigateToStationCommand.Feedback parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvNavigateToStationCommand.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.AgvNavigateToStationCommand.Feedback parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvNavigateToStationCommand.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.AgvNavigateToStationCommand.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;
      }
      /**
       * <pre>
       * 反馈体。
       * </pre>
       *
       * Protobuf type {@code cmvr.api.AgvNavigateToStationCommand.Feedback}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.AgvNavigateToStationCommand.Feedback)
          cmvr.api.AgvCommand.AgvNavigateToStationCommand.FeedbackOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvNavigateToStationCommand_Feedback_descriptor;
        }

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

        // Construct using cmvr.api.AgvCommand.AgvNavigateToStationCommand.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;
          }
          return this;
        }

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

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

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

        @java.lang.Override
        public cmvr.api.AgvCommand.AgvNavigateToStationCommand.Feedback buildPartial() {
          cmvr.api.AgvCommand.AgvNavigateToStationCommand.Feedback result = new cmvr.api.AgvCommand.AgvNavigateToStationCommand.Feedback(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.AgvNavigateToStationCommand.Feedback) {
            return mergeFrom((cmvr.api.AgvCommand.AgvNavigateToStationCommand.Feedback)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.AgvCommand.AgvNavigateToStationCommand.Feedback other) {
          if (other == cmvr.api.AgvCommand.AgvNavigateToStationCommand.Feedback.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.Feedback header_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> headerBuilder_;
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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();
          }
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Feedback.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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_;
          }
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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_;
        }
        @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.AgvNavigateToStationCommand.Feedback)
      }

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

      public static cmvr.api.AgvCommand.AgvNavigateToStationCommand.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.AgvNavigateToStationCommand.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.AgvNavigateToStationCommand)) {
        return super.equals(obj);
      }
      cmvr.api.AgvCommand.AgvNavigateToStationCommand other = (cmvr.api.AgvCommand.AgvNavigateToStationCommand) 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.AgvNavigateToStationCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.AgvNavigateToStationCommand 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.AgvNavigateToStationCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.AgvNavigateToStationCommand 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.AgvNavigateToStationCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.AgvNavigateToStationCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.AgvNavigateToStationCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.AgvNavigateToStationCommand 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.AgvNavigateToStationCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.AgvNavigateToStationCommand 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.AgvNavigateToStationCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.AgvNavigateToStationCommand 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.AgvNavigateToStationCommand 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.AgvNavigateToStationCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:cmvr.api.AgvNavigateToStationCommand)
        cmvr.api.AgvCommand.AgvNavigateToStationCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvNavigateToStationCommand_descriptor;
      }

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

      // Construct using cmvr.api.AgvCommand.AgvNavigateToStationCommand.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_AgvNavigateToStationCommand_descriptor;
      }

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

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

      @java.lang.Override
      public cmvr.api.AgvCommand.AgvNavigateToStationCommand buildPartial() {
        cmvr.api.AgvCommand.AgvNavigateToStationCommand result = new cmvr.api.AgvCommand.AgvNavigateToStationCommand(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.AgvNavigateToStationCommand) {
          return mergeFrom((cmvr.api.AgvCommand.AgvNavigateToStationCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cmvr.api.AgvCommand.AgvNavigateToStationCommand other) {
        if (other == cmvr.api.AgvCommand.AgvNavigateToStationCommand.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.AgvNavigateToStationCommand)
    }

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

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

    private static final com.google.protobuf.Parser<AgvNavigateToStationCommand>
        PARSER = new com.google.protobuf.AbstractParser<AgvNavigateToStationCommand>() {
      @java.lang.Override
      public AgvNavigateToStationCommand 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<AgvNavigateToStationCommand> parser() {
      return PARSER;
    }

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

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

  }

  public interface AgvFollowPathCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:cmvr.api.AgvFollowPathCommand)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * <pre>
   * 按显式站点路径导航命令。
   * </pre>
   *
   * Protobuf type {@code cmvr.api.AgvFollowPathCommand}
   */
  public static final class AgvFollowPathCommand extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:cmvr.api.AgvFollowPathCommand)
      AgvFollowPathCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AgvFollowPathCommand.newBuilder() to construct.
    private AgvFollowPathCommand(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private AgvFollowPathCommand() {
    }

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

    @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_AgvFollowPathCommand_descriptor;
    }

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

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

      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Request getHeader();
      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder();

      /**
       * <pre>
       * 路径段列表。每段包含起点站点 id 和终点站点 id。
       * </pre>
       *
       * <code>repeated .cmvr.msgs.AgvPathSegment path = 2;</code>
       */
      java.util.List<cmvr.msgs.Agv.AgvPathSegment> 
          getPathList();
      /**
       * <pre>
       * 路径段列表。每段包含起点站点 id 和终点站点 id。
       * </pre>
       *
       * <code>repeated .cmvr.msgs.AgvPathSegment path = 2;</code>
       */
      cmvr.msgs.Agv.AgvPathSegment getPath(int index);
      /**
       * <pre>
       * 路径段列表。每段包含起点站点 id 和终点站点 id。
       * </pre>
       *
       * <code>repeated .cmvr.msgs.AgvPathSegment path = 2;</code>
       */
      int getPathCount();
      /**
       * <pre>
       * 路径段列表。每段包含起点站点 id 和终点站点 id。
       * </pre>
       *
       * <code>repeated .cmvr.msgs.AgvPathSegment path = 2;</code>
       */
      java.util.List<? extends cmvr.msgs.Agv.AgvPathSegmentOrBuilder> 
          getPathOrBuilderList();
      /**
       * <pre>
       * 路径段列表。每段包含起点站点 id 和终点站点 id。
       * </pre>
       *
       * <code>repeated .cmvr.msgs.AgvPathSegment path = 2;</code>
       */
      cmvr.msgs.Agv.AgvPathSegmentOrBuilder getPathOrBuilder(
          int index);
    }
    /**
     * <pre>
     * 请求体。
     * </pre>
     *
     * Protobuf type {@code cmvr.api.AgvFollowPathCommand.Request}
     */
    public static final class Request extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.AgvFollowPathCommand.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() {
        path_ = java.util.Collections.emptyList();
      }

      @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_AgvFollowPathCommand_Request_descriptor;
      }

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

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Request header_;
      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <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_;
      }
      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() {
        return getHeader();
      }

      public static final int PATH_FIELD_NUMBER = 2;
      private java.util.List<cmvr.msgs.Agv.AgvPathSegment> path_;
      /**
       * <pre>
       * 路径段列表。每段包含起点站点 id 和终点站点 id。
       * </pre>
       *
       * <code>repeated .cmvr.msgs.AgvPathSegment path = 2;</code>
       */
      @java.lang.Override
      public java.util.List<cmvr.msgs.Agv.AgvPathSegment> getPathList() {
        return path_;
      }
      /**
       * <pre>
       * 路径段列表。每段包含起点站点 id 和终点站点 id。
       * </pre>
       *
       * <code>repeated .cmvr.msgs.AgvPathSegment path = 2;</code>
       */
      @java.lang.Override
      public java.util.List<? extends cmvr.msgs.Agv.AgvPathSegmentOrBuilder> 
          getPathOrBuilderList() {
        return path_;
      }
      /**
       * <pre>
       * 路径段列表。每段包含起点站点 id 和终点站点 id。
       * </pre>
       *
       * <code>repeated .cmvr.msgs.AgvPathSegment path = 2;</code>
       */
      @java.lang.Override
      public int getPathCount() {
        return path_.size();
      }
      /**
       * <pre>
       * 路径段列表。每段包含起点站点 id 和终点站点 id。
       * </pre>
       *
       * <code>repeated .cmvr.msgs.AgvPathSegment path = 2;</code>
       */
      @java.lang.Override
      public cmvr.msgs.Agv.AgvPathSegment getPath(int index) {
        return path_.get(index);
      }
      /**
       * <pre>
       * 路径段列表。每段包含起点站点 id 和终点站点 id。
       * </pre>
       *
       * <code>repeated .cmvr.msgs.AgvPathSegment path = 2;</code>
       */
      @java.lang.Override
      public cmvr.msgs.Agv.AgvPathSegmentOrBuilder getPathOrBuilder(
          int index) {
        return path_.get(index);
      }

      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());
        }
        for (int i = 0; i < path_.size(); i++) {
          output.writeMessage(2, path_.get(i));
        }
        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());
        }
        for (int i = 0; i < path_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, path_.get(i));
        }
        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.AgvFollowPathCommand.Request)) {
          return super.equals(obj);
        }
        cmvr.api.AgvCommand.AgvFollowPathCommand.Request other = (cmvr.api.AgvCommand.AgvFollowPathCommand.Request) obj;

        if (hasHeader() != other.hasHeader()) return false;
        if (hasHeader()) {
          if (!getHeader()
              .equals(other.getHeader())) return false;
        }
        if (!getPathList()
            .equals(other.getPathList())) 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 (getPathCount() > 0) {
          hash = (37 * hash) + PATH_FIELD_NUMBER;
          hash = (53 * hash) + getPathList().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.AgvCommand.AgvFollowPathCommand.Request parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvFollowPathCommand.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.AgvFollowPathCommand.Request parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvFollowPathCommand.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.AgvFollowPathCommand.Request parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvFollowPathCommand.Request parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.AgvFollowPathCommand.Request parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvFollowPathCommand.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.AgvFollowPathCommand.Request parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvFollowPathCommand.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.AgvFollowPathCommand.Request parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvFollowPathCommand.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.AgvFollowPathCommand.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;
      }
      /**
       * <pre>
       * 请求体。
       * </pre>
       *
       * Protobuf type {@code cmvr.api.AgvFollowPathCommand.Request}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.AgvFollowPathCommand.Request)
          cmvr.api.AgvCommand.AgvFollowPathCommand.RequestOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvFollowPathCommand_Request_descriptor;
        }

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

        // Construct using cmvr.api.AgvCommand.AgvFollowPathCommand.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 (pathBuilder_ == null) {
            path_ = java.util.Collections.emptyList();
          } else {
            path_ = null;
            pathBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000001);
          return this;
        }

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

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

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

        @java.lang.Override
        public cmvr.api.AgvCommand.AgvFollowPathCommand.Request buildPartial() {
          cmvr.api.AgvCommand.AgvFollowPathCommand.Request result = new cmvr.api.AgvCommand.AgvFollowPathCommand.Request(this);
          int from_bitField0_ = bitField0_;
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          if (pathBuilder_ == null) {
            if (((bitField0_ & 0x00000001) != 0)) {
              path_ = java.util.Collections.unmodifiableList(path_);
              bitField0_ = (bitField0_ & ~0x00000001);
            }
            result.path_ = path_;
          } else {
            result.path_ = pathBuilder_.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.AgvFollowPathCommand.Request) {
            return mergeFrom((cmvr.api.AgvCommand.AgvFollowPathCommand.Request)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.AgvCommand.AgvFollowPathCommand.Request other) {
          if (other == cmvr.api.AgvCommand.AgvFollowPathCommand.Request.getDefaultInstance()) return this;
          if (other.hasHeader()) {
            mergeHeader(other.getHeader());
          }
          if (pathBuilder_ == null) {
            if (!other.path_.isEmpty()) {
              if (path_.isEmpty()) {
                path_ = other.path_;
                bitField0_ = (bitField0_ & ~0x00000001);
              } else {
                ensurePathIsMutable();
                path_.addAll(other.path_);
              }
              onChanged();
            }
          } else {
            if (!other.path_.isEmpty()) {
              if (pathBuilder_.isEmpty()) {
                pathBuilder_.dispose();
                pathBuilder_ = null;
                path_ = other.path_;
                bitField0_ = (bitField0_ & ~0x00000001);
                pathBuilder_ = 
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                     getPathFieldBuilder() : null;
              } else {
                pathBuilder_.addAllMessages(other.path_);
              }
            }
          }
          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: {
                  cmvr.msgs.Agv.AgvPathSegment m =
                      input.readMessage(
                          cmvr.msgs.Agv.AgvPathSegment.parser(),
                          extensionRegistry);
                  if (pathBuilder_ == null) {
                    ensurePathIsMutable();
                    path_.add(m);
                  } else {
                    pathBuilder_.addMessage(m);
                  }
                  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 int bitField0_;

        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_;
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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();
          }
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Request.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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_;
          }
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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 java.util.List<cmvr.msgs.Agv.AgvPathSegment> path_ =
          java.util.Collections.emptyList();
        private void ensurePathIsMutable() {
          if (!((bitField0_ & 0x00000001) != 0)) {
            path_ = new java.util.ArrayList<cmvr.msgs.Agv.AgvPathSegment>(path_);
            bitField0_ |= 0x00000001;
           }
        }

        private com.google.protobuf.RepeatedFieldBuilderV3<
            cmvr.msgs.Agv.AgvPathSegment, cmvr.msgs.Agv.AgvPathSegment.Builder, cmvr.msgs.Agv.AgvPathSegmentOrBuilder> pathBuilder_;

        /**
         * <pre>
         * 路径段列表。每段包含起点站点 id 和终点站点 id。
         * </pre>
         *
         * <code>repeated .cmvr.msgs.AgvPathSegment path = 2;</code>
         */
        public java.util.List<cmvr.msgs.Agv.AgvPathSegment> getPathList() {
          if (pathBuilder_ == null) {
            return java.util.Collections.unmodifiableList(path_);
          } else {
            return pathBuilder_.getMessageList();
          }
        }
        /**
         * <pre>
         * 路径段列表。每段包含起点站点 id 和终点站点 id。
         * </pre>
         *
         * <code>repeated .cmvr.msgs.AgvPathSegment path = 2;</code>
         */
        public int getPathCount() {
          if (pathBuilder_ == null) {
            return path_.size();
          } else {
            return pathBuilder_.getCount();
          }
        }
        /**
         * <pre>
         * 路径段列表。每段包含起点站点 id 和终点站点 id。
         * </pre>
         *
         * <code>repeated .cmvr.msgs.AgvPathSegment path = 2;</code>
         */
        public cmvr.msgs.Agv.AgvPathSegment getPath(int index) {
          if (pathBuilder_ == null) {
            return path_.get(index);
          } else {
            return pathBuilder_.getMessage(index);
          }
        }
        /**
         * <pre>
         * 路径段列表。每段包含起点站点 id 和终点站点 id。
         * </pre>
         *
         * <code>repeated .cmvr.msgs.AgvPathSegment path = 2;</code>
         */
        public Builder setPath(
            int index, cmvr.msgs.Agv.AgvPathSegment value) {
          if (pathBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensurePathIsMutable();
            path_.set(index, value);
            onChanged();
          } else {
            pathBuilder_.setMessage(index, value);
          }
          return this;
        }
        /**
         * <pre>
         * 路径段列表。每段包含起点站点 id 和终点站点 id。
         * </pre>
         *
         * <code>repeated .cmvr.msgs.AgvPathSegment path = 2;</code>
         */
        public Builder setPath(
            int index, cmvr.msgs.Agv.AgvPathSegment.Builder builderForValue) {
          if (pathBuilder_ == null) {
            ensurePathIsMutable();
            path_.set(index, builderForValue.build());
            onChanged();
          } else {
            pathBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         * 路径段列表。每段包含起点站点 id 和终点站点 id。
         * </pre>
         *
         * <code>repeated .cmvr.msgs.AgvPathSegment path = 2;</code>
         */
        public Builder addPath(cmvr.msgs.Agv.AgvPathSegment value) {
          if (pathBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensurePathIsMutable();
            path_.add(value);
            onChanged();
          } else {
            pathBuilder_.addMessage(value);
          }
          return this;
        }
        /**
         * <pre>
         * 路径段列表。每段包含起点站点 id 和终点站点 id。
         * </pre>
         *
         * <code>repeated .cmvr.msgs.AgvPathSegment path = 2;</code>
         */
        public Builder addPath(
            int index, cmvr.msgs.Agv.AgvPathSegment value) {
          if (pathBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensurePathIsMutable();
            path_.add(index, value);
            onChanged();
          } else {
            pathBuilder_.addMessage(index, value);
          }
          return this;
        }
        /**
         * <pre>
         * 路径段列表。每段包含起点站点 id 和终点站点 id。
         * </pre>
         *
         * <code>repeated .cmvr.msgs.AgvPathSegment path = 2;</code>
         */
        public Builder addPath(
            cmvr.msgs.Agv.AgvPathSegment.Builder builderForValue) {
          if (pathBuilder_ == null) {
            ensurePathIsMutable();
            path_.add(builderForValue.build());
            onChanged();
          } else {
            pathBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         * 路径段列表。每段包含起点站点 id 和终点站点 id。
         * </pre>
         *
         * <code>repeated .cmvr.msgs.AgvPathSegment path = 2;</code>
         */
        public Builder addPath(
            int index, cmvr.msgs.Agv.AgvPathSegment.Builder builderForValue) {
          if (pathBuilder_ == null) {
            ensurePathIsMutable();
            path_.add(index, builderForValue.build());
            onChanged();
          } else {
            pathBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         * 路径段列表。每段包含起点站点 id 和终点站点 id。
         * </pre>
         *
         * <code>repeated .cmvr.msgs.AgvPathSegment path = 2;</code>
         */
        public Builder addAllPath(
            java.lang.Iterable<? extends cmvr.msgs.Agv.AgvPathSegment> values) {
          if (pathBuilder_ == null) {
            ensurePathIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, path_);
            onChanged();
          } else {
            pathBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * <pre>
         * 路径段列表。每段包含起点站点 id 和终点站点 id。
         * </pre>
         *
         * <code>repeated .cmvr.msgs.AgvPathSegment path = 2;</code>
         */
        public Builder clearPath() {
          if (pathBuilder_ == null) {
            path_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000001);
            onChanged();
          } else {
            pathBuilder_.clear();
          }
          return this;
        }
        /**
         * <pre>
         * 路径段列表。每段包含起点站点 id 和终点站点 id。
         * </pre>
         *
         * <code>repeated .cmvr.msgs.AgvPathSegment path = 2;</code>
         */
        public Builder removePath(int index) {
          if (pathBuilder_ == null) {
            ensurePathIsMutable();
            path_.remove(index);
            onChanged();
          } else {
            pathBuilder_.remove(index);
          }
          return this;
        }
        /**
         * <pre>
         * 路径段列表。每段包含起点站点 id 和终点站点 id。
         * </pre>
         *
         * <code>repeated .cmvr.msgs.AgvPathSegment path = 2;</code>
         */
        public cmvr.msgs.Agv.AgvPathSegment.Builder getPathBuilder(
            int index) {
          return getPathFieldBuilder().getBuilder(index);
        }
        /**
         * <pre>
         * 路径段列表。每段包含起点站点 id 和终点站点 id。
         * </pre>
         *
         * <code>repeated .cmvr.msgs.AgvPathSegment path = 2;</code>
         */
        public cmvr.msgs.Agv.AgvPathSegmentOrBuilder getPathOrBuilder(
            int index) {
          if (pathBuilder_ == null) {
            return path_.get(index);  } else {
            return pathBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * <pre>
         * 路径段列表。每段包含起点站点 id 和终点站点 id。
         * </pre>
         *
         * <code>repeated .cmvr.msgs.AgvPathSegment path = 2;</code>
         */
        public java.util.List<? extends cmvr.msgs.Agv.AgvPathSegmentOrBuilder> 
             getPathOrBuilderList() {
          if (pathBuilder_ != null) {
            return pathBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(path_);
          }
        }
        /**
         * <pre>
         * 路径段列表。每段包含起点站点 id 和终点站点 id。
         * </pre>
         *
         * <code>repeated .cmvr.msgs.AgvPathSegment path = 2;</code>
         */
        public cmvr.msgs.Agv.AgvPathSegment.Builder addPathBuilder() {
          return getPathFieldBuilder().addBuilder(
              cmvr.msgs.Agv.AgvPathSegment.getDefaultInstance());
        }
        /**
         * <pre>
         * 路径段列表。每段包含起点站点 id 和终点站点 id。
         * </pre>
         *
         * <code>repeated .cmvr.msgs.AgvPathSegment path = 2;</code>
         */
        public cmvr.msgs.Agv.AgvPathSegment.Builder addPathBuilder(
            int index) {
          return getPathFieldBuilder().addBuilder(
              index, cmvr.msgs.Agv.AgvPathSegment.getDefaultInstance());
        }
        /**
         * <pre>
         * 路径段列表。每段包含起点站点 id 和终点站点 id。
         * </pre>
         *
         * <code>repeated .cmvr.msgs.AgvPathSegment path = 2;</code>
         */
        public java.util.List<cmvr.msgs.Agv.AgvPathSegment.Builder> 
             getPathBuilderList() {
          return getPathFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilderV3<
            cmvr.msgs.Agv.AgvPathSegment, cmvr.msgs.Agv.AgvPathSegment.Builder, cmvr.msgs.Agv.AgvPathSegmentOrBuilder> 
            getPathFieldBuilder() {
          if (pathBuilder_ == null) {
            pathBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                cmvr.msgs.Agv.AgvPathSegment, cmvr.msgs.Agv.AgvPathSegment.Builder, cmvr.msgs.Agv.AgvPathSegmentOrBuilder>(
                    path_,
                    ((bitField0_ & 0x00000001) != 0),
                    getParentForChildren(),
                    isClean());
            path_ = null;
          }
          return pathBuilder_;
        }
        @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.AgvFollowPathCommand.Request)
      }

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

      public static cmvr.api.AgvCommand.AgvFollowPathCommand.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.AgvFollowPathCommand.Request getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

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

      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Feedback getHeader();
      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder();
    }
    /**
     * <pre>
     * 反馈体。
     * </pre>
     *
     * Protobuf type {@code cmvr.api.AgvFollowPathCommand.Feedback}
     */
    public static final class Feedback extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.AgvFollowPathCommand.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_AgvFollowPathCommand_Feedback_descriptor;
      }

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

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Feedback header_;
      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <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_;
      }
      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.FeedbackOrBuilder 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.AgvFollowPathCommand.Feedback)) {
          return super.equals(obj);
        }
        cmvr.api.AgvCommand.AgvFollowPathCommand.Feedback other = (cmvr.api.AgvCommand.AgvFollowPathCommand.Feedback) 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.AgvFollowPathCommand.Feedback parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvFollowPathCommand.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.AgvFollowPathCommand.Feedback parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvFollowPathCommand.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.AgvFollowPathCommand.Feedback parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvFollowPathCommand.Feedback parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.AgvFollowPathCommand.Feedback parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvFollowPathCommand.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.AgvFollowPathCommand.Feedback parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvFollowPathCommand.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.AgvFollowPathCommand.Feedback parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvFollowPathCommand.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.AgvFollowPathCommand.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;
      }
      /**
       * <pre>
       * 反馈体。
       * </pre>
       *
       * Protobuf type {@code cmvr.api.AgvFollowPathCommand.Feedback}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.AgvFollowPathCommand.Feedback)
          cmvr.api.AgvCommand.AgvFollowPathCommand.FeedbackOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvFollowPathCommand_Feedback_descriptor;
        }

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

        // Construct using cmvr.api.AgvCommand.AgvFollowPathCommand.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;
          }
          return this;
        }

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

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

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

        @java.lang.Override
        public cmvr.api.AgvCommand.AgvFollowPathCommand.Feedback buildPartial() {
          cmvr.api.AgvCommand.AgvFollowPathCommand.Feedback result = new cmvr.api.AgvCommand.AgvFollowPathCommand.Feedback(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.AgvFollowPathCommand.Feedback) {
            return mergeFrom((cmvr.api.AgvCommand.AgvFollowPathCommand.Feedback)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.AgvCommand.AgvFollowPathCommand.Feedback other) {
          if (other == cmvr.api.AgvCommand.AgvFollowPathCommand.Feedback.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.Feedback header_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> headerBuilder_;
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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();
          }
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Feedback.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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_;
          }
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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_;
        }
        @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.AgvFollowPathCommand.Feedback)
      }

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

      public static cmvr.api.AgvCommand.AgvFollowPathCommand.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.AgvFollowPathCommand.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.AgvFollowPathCommand)) {
        return super.equals(obj);
      }
      cmvr.api.AgvCommand.AgvFollowPathCommand other = (cmvr.api.AgvCommand.AgvFollowPathCommand) 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.AgvFollowPathCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.AgvFollowPathCommand 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.AgvFollowPathCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.AgvFollowPathCommand 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.AgvFollowPathCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.AgvFollowPathCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.AgvFollowPathCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.AgvFollowPathCommand 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.AgvFollowPathCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.AgvFollowPathCommand 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.AgvFollowPathCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.AgvFollowPathCommand 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.AgvFollowPathCommand 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.AgvFollowPathCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:cmvr.api.AgvFollowPathCommand)
        cmvr.api.AgvCommand.AgvFollowPathCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvFollowPathCommand_descriptor;
      }

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

      // Construct using cmvr.api.AgvCommand.AgvFollowPathCommand.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_AgvFollowPathCommand_descriptor;
      }

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

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

      @java.lang.Override
      public cmvr.api.AgvCommand.AgvFollowPathCommand buildPartial() {
        cmvr.api.AgvCommand.AgvFollowPathCommand result = new cmvr.api.AgvCommand.AgvFollowPathCommand(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.AgvFollowPathCommand) {
          return mergeFrom((cmvr.api.AgvCommand.AgvFollowPathCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cmvr.api.AgvCommand.AgvFollowPathCommand other) {
        if (other == cmvr.api.AgvCommand.AgvFollowPathCommand.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.AgvFollowPathCommand)
    }

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

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

    private static final com.google.protobuf.Parser<AgvFollowPathCommand>
        PARSER = new com.google.protobuf.AbstractParser<AgvFollowPathCommand>() {
      @java.lang.Override
      public AgvFollowPathCommand 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<AgvFollowPathCommand> parser() {
      return PARSER;
    }

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

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

  }

  public interface AgvSetVelocityCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:cmvr.api.AgvSetVelocityCommand)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * <pre>
   * 下发底盘速度命令。
   * </pre>
   *
   * Protobuf type {@code cmvr.api.AgvSetVelocityCommand}
   */
  public static final class AgvSetVelocityCommand extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:cmvr.api.AgvSetVelocityCommand)
      AgvSetVelocityCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AgvSetVelocityCommand.newBuilder() to construct.
    private AgvSetVelocityCommand(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private AgvSetVelocityCommand() {
    }

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

    @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_AgvSetVelocityCommand_descriptor;
    }

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

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

      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Request getHeader();
      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder();

      /**
       * <pre>
       * 目标车体速度。vx/vy 单位：米/秒，wz 单位：弧度/秒。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvVelocity velocity = 2;</code>
       * @return Whether the velocity field is set.
       */
      boolean hasVelocity();
      /**
       * <pre>
       * 目标车体速度。vx/vy 单位：米/秒，wz 单位：弧度/秒。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvVelocity velocity = 2;</code>
       * @return The velocity.
       */
      cmvr.msgs.Agv.AgvVelocity getVelocity();
      /**
       * <pre>
       * 目标车体速度。vx/vy 单位：米/秒，wz 单位：弧度/秒。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvVelocity velocity = 2;</code>
       */
      cmvr.msgs.Agv.AgvVelocityOrBuilder getVelocityOrBuilder();
    }
    /**
     * <pre>
     * 请求体。
     * </pre>
     *
     * Protobuf type {@code cmvr.api.AgvSetVelocityCommand.Request}
     */
    public static final class Request extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.AgvSetVelocityCommand.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_AgvSetVelocityCommand_Request_descriptor;
      }

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

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Request header_;
      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <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_;
      }
      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() {
        return getHeader();
      }

      public static final int VELOCITY_FIELD_NUMBER = 2;
      private cmvr.msgs.Agv.AgvVelocity velocity_;
      /**
       * <pre>
       * 目标车体速度。vx/vy 单位：米/秒，wz 单位：弧度/秒。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvVelocity velocity = 2;</code>
       * @return Whether the velocity field is set.
       */
      @java.lang.Override
      public boolean hasVelocity() {
        return velocity_ != null;
      }
      /**
       * <pre>
       * 目标车体速度。vx/vy 单位：米/秒，wz 单位：弧度/秒。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvVelocity velocity = 2;</code>
       * @return The velocity.
       */
      @java.lang.Override
      public cmvr.msgs.Agv.AgvVelocity getVelocity() {
        return velocity_ == null ? cmvr.msgs.Agv.AgvVelocity.getDefaultInstance() : velocity_;
      }
      /**
       * <pre>
       * 目标车体速度。vx/vy 单位：米/秒，wz 单位：弧度/秒。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvVelocity velocity = 2;</code>
       */
      @java.lang.Override
      public cmvr.msgs.Agv.AgvVelocityOrBuilder getVelocityOrBuilder() {
        return getVelocity();
      }

      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 (velocity_ != null) {
          output.writeMessage(2, getVelocity());
        }
        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 (velocity_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, getVelocity());
        }
        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.AgvSetVelocityCommand.Request)) {
          return super.equals(obj);
        }
        cmvr.api.AgvCommand.AgvSetVelocityCommand.Request other = (cmvr.api.AgvCommand.AgvSetVelocityCommand.Request) obj;

        if (hasHeader() != other.hasHeader()) return false;
        if (hasHeader()) {
          if (!getHeader()
              .equals(other.getHeader())) return false;
        }
        if (hasVelocity() != other.hasVelocity()) return false;
        if (hasVelocity()) {
          if (!getVelocity()
              .equals(other.getVelocity())) 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 (hasVelocity()) {
          hash = (37 * hash) + VELOCITY_FIELD_NUMBER;
          hash = (53 * hash) + getVelocity().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.AgvCommand.AgvSetVelocityCommand.Request parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvSetVelocityCommand.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.AgvSetVelocityCommand.Request parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvSetVelocityCommand.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.AgvSetVelocityCommand.Request parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvSetVelocityCommand.Request parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.AgvSetVelocityCommand.Request parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvSetVelocityCommand.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.AgvSetVelocityCommand.Request parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvSetVelocityCommand.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.AgvSetVelocityCommand.Request parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvSetVelocityCommand.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.AgvSetVelocityCommand.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;
      }
      /**
       * <pre>
       * 请求体。
       * </pre>
       *
       * Protobuf type {@code cmvr.api.AgvSetVelocityCommand.Request}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.AgvSetVelocityCommand.Request)
          cmvr.api.AgvCommand.AgvSetVelocityCommand.RequestOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvSetVelocityCommand_Request_descriptor;
        }

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

        // Construct using cmvr.api.AgvCommand.AgvSetVelocityCommand.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 (velocityBuilder_ == null) {
            velocity_ = null;
          } else {
            velocity_ = null;
            velocityBuilder_ = null;
          }
          return this;
        }

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

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

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

        @java.lang.Override
        public cmvr.api.AgvCommand.AgvSetVelocityCommand.Request buildPartial() {
          cmvr.api.AgvCommand.AgvSetVelocityCommand.Request result = new cmvr.api.AgvCommand.AgvSetVelocityCommand.Request(this);
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          if (velocityBuilder_ == null) {
            result.velocity_ = velocity_;
          } else {
            result.velocity_ = velocityBuilder_.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.AgvSetVelocityCommand.Request) {
            return mergeFrom((cmvr.api.AgvCommand.AgvSetVelocityCommand.Request)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.AgvCommand.AgvSetVelocityCommand.Request other) {
          if (other == cmvr.api.AgvCommand.AgvSetVelocityCommand.Request.getDefaultInstance()) return this;
          if (other.hasHeader()) {
            mergeHeader(other.getHeader());
          }
          if (other.hasVelocity()) {
            mergeVelocity(other.getVelocity());
          }
          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(
                      getVelocityFieldBuilder().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_;
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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();
          }
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Request.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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_;
          }
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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.msgs.Agv.AgvVelocity velocity_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.msgs.Agv.AgvVelocity, cmvr.msgs.Agv.AgvVelocity.Builder, cmvr.msgs.Agv.AgvVelocityOrBuilder> velocityBuilder_;
        /**
         * <pre>
         * 目标车体速度。vx/vy 单位：米/秒，wz 单位：弧度/秒。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvVelocity velocity = 2;</code>
         * @return Whether the velocity field is set.
         */
        public boolean hasVelocity() {
          return velocityBuilder_ != null || velocity_ != null;
        }
        /**
         * <pre>
         * 目标车体速度。vx/vy 单位：米/秒，wz 单位：弧度/秒。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvVelocity velocity = 2;</code>
         * @return The velocity.
         */
        public cmvr.msgs.Agv.AgvVelocity getVelocity() {
          if (velocityBuilder_ == null) {
            return velocity_ == null ? cmvr.msgs.Agv.AgvVelocity.getDefaultInstance() : velocity_;
          } else {
            return velocityBuilder_.getMessage();
          }
        }
        /**
         * <pre>
         * 目标车体速度。vx/vy 单位：米/秒，wz 单位：弧度/秒。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvVelocity velocity = 2;</code>
         */
        public Builder setVelocity(cmvr.msgs.Agv.AgvVelocity value) {
          if (velocityBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            velocity_ = value;
            onChanged();
          } else {
            velocityBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <pre>
         * 目标车体速度。vx/vy 单位：米/秒，wz 单位：弧度/秒。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvVelocity velocity = 2;</code>
         */
        public Builder setVelocity(
            cmvr.msgs.Agv.AgvVelocity.Builder builderForValue) {
          if (velocityBuilder_ == null) {
            velocity_ = builderForValue.build();
            onChanged();
          } else {
            velocityBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <pre>
         * 目标车体速度。vx/vy 单位：米/秒，wz 单位：弧度/秒。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvVelocity velocity = 2;</code>
         */
        public Builder mergeVelocity(cmvr.msgs.Agv.AgvVelocity value) {
          if (velocityBuilder_ == null) {
            if (velocity_ != null) {
              velocity_ =
                cmvr.msgs.Agv.AgvVelocity.newBuilder(velocity_).mergeFrom(value).buildPartial();
            } else {
              velocity_ = value;
            }
            onChanged();
          } else {
            velocityBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <pre>
         * 目标车体速度。vx/vy 单位：米/秒，wz 单位：弧度/秒。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvVelocity velocity = 2;</code>
         */
        public Builder clearVelocity() {
          if (velocityBuilder_ == null) {
            velocity_ = null;
            onChanged();
          } else {
            velocity_ = null;
            velocityBuilder_ = null;
          }

          return this;
        }
        /**
         * <pre>
         * 目标车体速度。vx/vy 单位：米/秒，wz 单位：弧度/秒。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvVelocity velocity = 2;</code>
         */
        public cmvr.msgs.Agv.AgvVelocity.Builder getVelocityBuilder() {
          
          onChanged();
          return getVelocityFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * 目标车体速度。vx/vy 单位：米/秒，wz 单位：弧度/秒。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvVelocity velocity = 2;</code>
         */
        public cmvr.msgs.Agv.AgvVelocityOrBuilder getVelocityOrBuilder() {
          if (velocityBuilder_ != null) {
            return velocityBuilder_.getMessageOrBuilder();
          } else {
            return velocity_ == null ?
                cmvr.msgs.Agv.AgvVelocity.getDefaultInstance() : velocity_;
          }
        }
        /**
         * <pre>
         * 目标车体速度。vx/vy 单位：米/秒，wz 单位：弧度/秒。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvVelocity velocity = 2;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.msgs.Agv.AgvVelocity, cmvr.msgs.Agv.AgvVelocity.Builder, cmvr.msgs.Agv.AgvVelocityOrBuilder> 
            getVelocityFieldBuilder() {
          if (velocityBuilder_ == null) {
            velocityBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.msgs.Agv.AgvVelocity, cmvr.msgs.Agv.AgvVelocity.Builder, cmvr.msgs.Agv.AgvVelocityOrBuilder>(
                    getVelocity(),
                    getParentForChildren(),
                    isClean());
            velocity_ = null;
          }
          return velocityBuilder_;
        }
        @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.AgvSetVelocityCommand.Request)
      }

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

      public static cmvr.api.AgvCommand.AgvSetVelocityCommand.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.AgvSetVelocityCommand.Request getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

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

      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Feedback getHeader();
      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder();
    }
    /**
     * <pre>
     * 反馈体。
     * </pre>
     *
     * Protobuf type {@code cmvr.api.AgvSetVelocityCommand.Feedback}
     */
    public static final class Feedback extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.AgvSetVelocityCommand.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_AgvSetVelocityCommand_Feedback_descriptor;
      }

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

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Feedback header_;
      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <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_;
      }
      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.FeedbackOrBuilder 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.AgvSetVelocityCommand.Feedback)) {
          return super.equals(obj);
        }
        cmvr.api.AgvCommand.AgvSetVelocityCommand.Feedback other = (cmvr.api.AgvCommand.AgvSetVelocityCommand.Feedback) 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.AgvSetVelocityCommand.Feedback parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvSetVelocityCommand.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.AgvSetVelocityCommand.Feedback parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvSetVelocityCommand.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.AgvSetVelocityCommand.Feedback parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvSetVelocityCommand.Feedback parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.AgvSetVelocityCommand.Feedback parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvSetVelocityCommand.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.AgvSetVelocityCommand.Feedback parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvSetVelocityCommand.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.AgvSetVelocityCommand.Feedback parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvSetVelocityCommand.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.AgvSetVelocityCommand.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;
      }
      /**
       * <pre>
       * 反馈体。
       * </pre>
       *
       * Protobuf type {@code cmvr.api.AgvSetVelocityCommand.Feedback}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.AgvSetVelocityCommand.Feedback)
          cmvr.api.AgvCommand.AgvSetVelocityCommand.FeedbackOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvSetVelocityCommand_Feedback_descriptor;
        }

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

        // Construct using cmvr.api.AgvCommand.AgvSetVelocityCommand.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;
          }
          return this;
        }

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

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

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

        @java.lang.Override
        public cmvr.api.AgvCommand.AgvSetVelocityCommand.Feedback buildPartial() {
          cmvr.api.AgvCommand.AgvSetVelocityCommand.Feedback result = new cmvr.api.AgvCommand.AgvSetVelocityCommand.Feedback(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.AgvSetVelocityCommand.Feedback) {
            return mergeFrom((cmvr.api.AgvCommand.AgvSetVelocityCommand.Feedback)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.AgvCommand.AgvSetVelocityCommand.Feedback other) {
          if (other == cmvr.api.AgvCommand.AgvSetVelocityCommand.Feedback.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.Feedback header_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> headerBuilder_;
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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();
          }
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Feedback.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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_;
          }
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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_;
        }
        @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.AgvSetVelocityCommand.Feedback)
      }

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

      public static cmvr.api.AgvCommand.AgvSetVelocityCommand.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.AgvSetVelocityCommand.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.AgvSetVelocityCommand)) {
        return super.equals(obj);
      }
      cmvr.api.AgvCommand.AgvSetVelocityCommand other = (cmvr.api.AgvCommand.AgvSetVelocityCommand) 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.AgvSetVelocityCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.AgvSetVelocityCommand 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.AgvSetVelocityCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.AgvSetVelocityCommand 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.AgvSetVelocityCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.AgvSetVelocityCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.AgvSetVelocityCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.AgvSetVelocityCommand 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.AgvSetVelocityCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.AgvSetVelocityCommand 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.AgvSetVelocityCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.AgvSetVelocityCommand 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.AgvSetVelocityCommand 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.AgvSetVelocityCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:cmvr.api.AgvSetVelocityCommand)
        cmvr.api.AgvCommand.AgvSetVelocityCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvSetVelocityCommand_descriptor;
      }

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

      // Construct using cmvr.api.AgvCommand.AgvSetVelocityCommand.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_AgvSetVelocityCommand_descriptor;
      }

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

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

      @java.lang.Override
      public cmvr.api.AgvCommand.AgvSetVelocityCommand buildPartial() {
        cmvr.api.AgvCommand.AgvSetVelocityCommand result = new cmvr.api.AgvCommand.AgvSetVelocityCommand(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.AgvSetVelocityCommand) {
          return mergeFrom((cmvr.api.AgvCommand.AgvSetVelocityCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cmvr.api.AgvCommand.AgvSetVelocityCommand other) {
        if (other == cmvr.api.AgvCommand.AgvSetVelocityCommand.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.AgvSetVelocityCommand)
    }

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

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

    private static final com.google.protobuf.Parser<AgvSetVelocityCommand>
        PARSER = new com.google.protobuf.AbstractParser<AgvSetVelocityCommand>() {
      @java.lang.Override
      public AgvSetVelocityCommand 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<AgvSetVelocityCommand> parser() {
      return PARSER;
    }

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

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

  }

  public interface AgvListMapsCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:cmvr.api.AgvListMapsCommand)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * <pre>
   * 查询可用地图列表命令。
   * </pre>
   *
   * Protobuf type {@code cmvr.api.AgvListMapsCommand}
   */
  public static final class AgvListMapsCommand extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:cmvr.api.AgvListMapsCommand)
      AgvListMapsCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AgvListMapsCommand.newBuilder() to construct.
    private AgvListMapsCommand(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private AgvListMapsCommand() {
    }

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

    @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_AgvListMapsCommand_descriptor;
    }

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

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

      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Request getHeader();
      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder();
    }
    /**
     * <pre>
     * 请求体。
     * </pre>
     *
     * Protobuf type {@code cmvr.api.AgvListMapsCommand.Request}
     */
    public static final class Request extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.AgvListMapsCommand.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_AgvListMapsCommand_Request_descriptor;
      }

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

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Request header_;
      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <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_;
      }
      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <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.AgvListMapsCommand.Request)) {
          return super.equals(obj);
        }
        cmvr.api.AgvCommand.AgvListMapsCommand.Request other = (cmvr.api.AgvCommand.AgvListMapsCommand.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.AgvListMapsCommand.Request parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvListMapsCommand.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.AgvListMapsCommand.Request parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvListMapsCommand.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.AgvListMapsCommand.Request parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvListMapsCommand.Request parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.AgvListMapsCommand.Request parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvListMapsCommand.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.AgvListMapsCommand.Request parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvListMapsCommand.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.AgvListMapsCommand.Request parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvListMapsCommand.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.AgvListMapsCommand.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;
      }
      /**
       * <pre>
       * 请求体。
       * </pre>
       *
       * Protobuf type {@code cmvr.api.AgvListMapsCommand.Request}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.AgvListMapsCommand.Request)
          cmvr.api.AgvCommand.AgvListMapsCommand.RequestOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvListMapsCommand_Request_descriptor;
        }

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

        // Construct using cmvr.api.AgvCommand.AgvListMapsCommand.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_AgvListMapsCommand_Request_descriptor;
        }

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

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

        @java.lang.Override
        public cmvr.api.AgvCommand.AgvListMapsCommand.Request buildPartial() {
          cmvr.api.AgvCommand.AgvListMapsCommand.Request result = new cmvr.api.AgvCommand.AgvListMapsCommand.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.AgvListMapsCommand.Request) {
            return mergeFrom((cmvr.api.AgvCommand.AgvListMapsCommand.Request)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.AgvCommand.AgvListMapsCommand.Request other) {
          if (other == cmvr.api.AgvCommand.AgvListMapsCommand.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_;
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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();
          }
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Request.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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_;
          }
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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.AgvListMapsCommand.Request)
      }

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

      public static cmvr.api.AgvCommand.AgvListMapsCommand.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.AgvListMapsCommand.Request getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

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

      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Feedback getHeader();
      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder();

      /**
       * <pre>
       * 地图名称列表。
       * </pre>
       *
       * <code>repeated string maps = 2;</code>
       * @return A list containing the maps.
       */
      java.util.List<java.lang.String>
          getMapsList();
      /**
       * <pre>
       * 地图名称列表。
       * </pre>
       *
       * <code>repeated string maps = 2;</code>
       * @return The count of maps.
       */
      int getMapsCount();
      /**
       * <pre>
       * 地图名称列表。
       * </pre>
       *
       * <code>repeated string maps = 2;</code>
       * @param index The index of the element to return.
       * @return The maps at the given index.
       */
      java.lang.String getMaps(int index);
      /**
       * <pre>
       * 地图名称列表。
       * </pre>
       *
       * <code>repeated string maps = 2;</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);
    }
    /**
     * <pre>
     * 反馈体。
     * </pre>
     *
     * Protobuf type {@code cmvr.api.AgvListMapsCommand.Feedback}
     */
    public static final class Feedback extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.AgvListMapsCommand.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() {
        maps_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      }

      @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_AgvListMapsCommand_Feedback_descriptor;
      }

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

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Feedback header_;
      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <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_;
      }
      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() {
        return getHeader();
      }

      public static final int MAPS_FIELD_NUMBER = 2;
      private com.google.protobuf.LazyStringList maps_;
      /**
       * <pre>
       * 地图名称列表。
       * </pre>
       *
       * <code>repeated string maps = 2;</code>
       * @return A list containing the maps.
       */
      public com.google.protobuf.ProtocolStringList
          getMapsList() {
        return maps_;
      }
      /**
       * <pre>
       * 地图名称列表。
       * </pre>
       *
       * <code>repeated string maps = 2;</code>
       * @return The count of maps.
       */
      public int getMapsCount() {
        return maps_.size();
      }
      /**
       * <pre>
       * 地图名称列表。
       * </pre>
       *
       * <code>repeated string maps = 2;</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);
      }
      /**
       * <pre>
       * 地图名称列表。
       * </pre>
       *
       * <code>repeated string maps = 2;</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);
      }

      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());
        }
        for (int i = 0; i < maps_.size(); i++) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 2, maps_.getRaw(i));
        }
        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());
        }
        {
          int dataSize = 0;
          for (int i = 0; i < maps_.size(); i++) {
            dataSize += computeStringSizeNoTag(maps_.getRaw(i));
          }
          size += dataSize;
          size += 1 * getMapsList().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.AgvListMapsCommand.Feedback)) {
          return super.equals(obj);
        }
        cmvr.api.AgvCommand.AgvListMapsCommand.Feedback other = (cmvr.api.AgvCommand.AgvListMapsCommand.Feedback) obj;

        if (hasHeader() != other.hasHeader()) return false;
        if (hasHeader()) {
          if (!getHeader()
              .equals(other.getHeader())) return false;
        }
        if (!getMapsList()
            .equals(other.getMapsList())) 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 (getMapsCount() > 0) {
          hash = (37 * hash) + MAPS_FIELD_NUMBER;
          hash = (53 * hash) + getMapsList().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.AgvCommand.AgvListMapsCommand.Feedback parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvListMapsCommand.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.AgvListMapsCommand.Feedback parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvListMapsCommand.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.AgvListMapsCommand.Feedback parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvListMapsCommand.Feedback parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.AgvListMapsCommand.Feedback parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvListMapsCommand.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.AgvListMapsCommand.Feedback parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvListMapsCommand.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.AgvListMapsCommand.Feedback parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvListMapsCommand.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.AgvListMapsCommand.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;
      }
      /**
       * <pre>
       * 反馈体。
       * </pre>
       *
       * Protobuf type {@code cmvr.api.AgvListMapsCommand.Feedback}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.AgvListMapsCommand.Feedback)
          cmvr.api.AgvCommand.AgvListMapsCommand.FeedbackOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvListMapsCommand_Feedback_descriptor;
        }

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

        // Construct using cmvr.api.AgvCommand.AgvListMapsCommand.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;
          }
          maps_ = com.google.protobuf.LazyStringArrayList.EMPTY;
          bitField0_ = (bitField0_ & ~0x00000001);
          return this;
        }

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

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

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

        @java.lang.Override
        public cmvr.api.AgvCommand.AgvListMapsCommand.Feedback buildPartial() {
          cmvr.api.AgvCommand.AgvListMapsCommand.Feedback result = new cmvr.api.AgvCommand.AgvListMapsCommand.Feedback(this);
          int from_bitField0_ = bitField0_;
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          if (((bitField0_ & 0x00000001) != 0)) {
            maps_ = maps_.getUnmodifiableView();
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.maps_ = maps_;
          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.AgvListMapsCommand.Feedback) {
            return mergeFrom((cmvr.api.AgvCommand.AgvListMapsCommand.Feedback)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.AgvCommand.AgvListMapsCommand.Feedback other) {
          if (other == cmvr.api.AgvCommand.AgvListMapsCommand.Feedback.getDefaultInstance()) return this;
          if (other.hasHeader()) {
            mergeHeader(other.getHeader());
          }
          if (!other.maps_.isEmpty()) {
            if (maps_.isEmpty()) {
              maps_ = other.maps_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureMapsIsMutable();
              maps_.addAll(other.maps_);
            }
            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: {
                  input.readMessage(
                      getHeaderFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 10
                case 18: {
                  java.lang.String s = input.readStringRequireUtf8();
                  ensureMapsIsMutable();
                  maps_.add(s);
                  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 int bitField0_;

        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_;
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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();
          }
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Feedback.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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_;
          }
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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 com.google.protobuf.LazyStringList maps_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        private void ensureMapsIsMutable() {
          if (!((bitField0_ & 0x00000001) != 0)) {
            maps_ = new com.google.protobuf.LazyStringArrayList(maps_);
            bitField0_ |= 0x00000001;
           }
        }
        /**
         * <pre>
         * 地图名称列表。
         * </pre>
         *
         * <code>repeated string maps = 2;</code>
         * @return A list containing the maps.
         */
        public com.google.protobuf.ProtocolStringList
            getMapsList() {
          return maps_.getUnmodifiableView();
        }
        /**
         * <pre>
         * 地图名称列表。
         * </pre>
         *
         * <code>repeated string maps = 2;</code>
         * @return The count of maps.
         */
        public int getMapsCount() {
          return maps_.size();
        }
        /**
         * <pre>
         * 地图名称列表。
         * </pre>
         *
         * <code>repeated string maps = 2;</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);
        }
        /**
         * <pre>
         * 地图名称列表。
         * </pre>
         *
         * <code>repeated string maps = 2;</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);
        }
        /**
         * <pre>
         * 地图名称列表。
         * </pre>
         *
         * <code>repeated string maps = 2;</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;
        }
        /**
         * <pre>
         * 地图名称列表。
         * </pre>
         *
         * <code>repeated string maps = 2;</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;
        }
        /**
         * <pre>
         * 地图名称列表。
         * </pre>
         *
         * <code>repeated string maps = 2;</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;
        }
        /**
         * <pre>
         * 地图名称列表。
         * </pre>
         *
         * <code>repeated string maps = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearMaps() {
          maps_ = com.google.protobuf.LazyStringArrayList.EMPTY;
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
          return this;
        }
        /**
         * <pre>
         * 地图名称列表。
         * </pre>
         *
         * <code>repeated string maps = 2;</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;
        }
        @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.AgvListMapsCommand.Feedback)
      }

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

      public static cmvr.api.AgvCommand.AgvListMapsCommand.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.AgvListMapsCommand.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.AgvListMapsCommand)) {
        return super.equals(obj);
      }
      cmvr.api.AgvCommand.AgvListMapsCommand other = (cmvr.api.AgvCommand.AgvListMapsCommand) 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.AgvListMapsCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.AgvListMapsCommand 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.AgvListMapsCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.AgvListMapsCommand 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.AgvListMapsCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.AgvListMapsCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.AgvListMapsCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.AgvListMapsCommand 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.AgvListMapsCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.AgvListMapsCommand 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.AgvListMapsCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.AgvListMapsCommand 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.AgvListMapsCommand 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.AgvListMapsCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:cmvr.api.AgvListMapsCommand)
        cmvr.api.AgvCommand.AgvListMapsCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvListMapsCommand_descriptor;
      }

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

      // Construct using cmvr.api.AgvCommand.AgvListMapsCommand.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_AgvListMapsCommand_descriptor;
      }

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

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

      @java.lang.Override
      public cmvr.api.AgvCommand.AgvListMapsCommand buildPartial() {
        cmvr.api.AgvCommand.AgvListMapsCommand result = new cmvr.api.AgvCommand.AgvListMapsCommand(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.AgvListMapsCommand) {
          return mergeFrom((cmvr.api.AgvCommand.AgvListMapsCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cmvr.api.AgvCommand.AgvListMapsCommand other) {
        if (other == cmvr.api.AgvCommand.AgvListMapsCommand.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.AgvListMapsCommand)
    }

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

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

    private static final com.google.protobuf.Parser<AgvListMapsCommand>
        PARSER = new com.google.protobuf.AbstractParser<AgvListMapsCommand>() {
      @java.lang.Override
      public AgvListMapsCommand 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<AgvListMapsCommand> parser() {
      return PARSER;
    }

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

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

  }

  public interface AgvListStationsCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:cmvr.api.AgvListStationsCommand)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * <pre>
   * 查询当前地图站点列表命令。
   * </pre>
   *
   * Protobuf type {@code cmvr.api.AgvListStationsCommand}
   */
  public static final class AgvListStationsCommand extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:cmvr.api.AgvListStationsCommand)
      AgvListStationsCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AgvListStationsCommand.newBuilder() to construct.
    private AgvListStationsCommand(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private AgvListStationsCommand() {
    }

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

    @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_AgvListStationsCommand_descriptor;
    }

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

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

      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Request getHeader();
      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder();
    }
    /**
     * <pre>
     * 请求体。
     * </pre>
     *
     * Protobuf type {@code cmvr.api.AgvListStationsCommand.Request}
     */
    public static final class Request extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.AgvListStationsCommand.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_AgvListStationsCommand_Request_descriptor;
      }

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

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Request header_;
      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <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_;
      }
      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <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.AgvListStationsCommand.Request)) {
          return super.equals(obj);
        }
        cmvr.api.AgvCommand.AgvListStationsCommand.Request other = (cmvr.api.AgvCommand.AgvListStationsCommand.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.AgvListStationsCommand.Request parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvListStationsCommand.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.AgvListStationsCommand.Request parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvListStationsCommand.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.AgvListStationsCommand.Request parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvListStationsCommand.Request parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.AgvListStationsCommand.Request parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvListStationsCommand.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.AgvListStationsCommand.Request parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvListStationsCommand.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.AgvListStationsCommand.Request parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvListStationsCommand.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.AgvListStationsCommand.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;
      }
      /**
       * <pre>
       * 请求体。
       * </pre>
       *
       * Protobuf type {@code cmvr.api.AgvListStationsCommand.Request}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.AgvListStationsCommand.Request)
          cmvr.api.AgvCommand.AgvListStationsCommand.RequestOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvListStationsCommand_Request_descriptor;
        }

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

        // Construct using cmvr.api.AgvCommand.AgvListStationsCommand.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_AgvListStationsCommand_Request_descriptor;
        }

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

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

        @java.lang.Override
        public cmvr.api.AgvCommand.AgvListStationsCommand.Request buildPartial() {
          cmvr.api.AgvCommand.AgvListStationsCommand.Request result = new cmvr.api.AgvCommand.AgvListStationsCommand.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.AgvListStationsCommand.Request) {
            return mergeFrom((cmvr.api.AgvCommand.AgvListStationsCommand.Request)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.AgvCommand.AgvListStationsCommand.Request other) {
          if (other == cmvr.api.AgvCommand.AgvListStationsCommand.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_;
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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();
          }
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Request.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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_;
          }
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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.AgvListStationsCommand.Request)
      }

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

      public static cmvr.api.AgvCommand.AgvListStationsCommand.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.AgvListStationsCommand.Request getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

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

      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Feedback getHeader();
      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder();

      /**
       * <pre>
       * 当前地图中的站点列表。
       * </pre>
       *
       * <code>repeated .cmvr.msgs.AgvStation stations = 2;</code>
       */
      java.util.List<cmvr.msgs.Agv.AgvStation> 
          getStationsList();
      /**
       * <pre>
       * 当前地图中的站点列表。
       * </pre>
       *
       * <code>repeated .cmvr.msgs.AgvStation stations = 2;</code>
       */
      cmvr.msgs.Agv.AgvStation getStations(int index);
      /**
       * <pre>
       * 当前地图中的站点列表。
       * </pre>
       *
       * <code>repeated .cmvr.msgs.AgvStation stations = 2;</code>
       */
      int getStationsCount();
      /**
       * <pre>
       * 当前地图中的站点列表。
       * </pre>
       *
       * <code>repeated .cmvr.msgs.AgvStation stations = 2;</code>
       */
      java.util.List<? extends cmvr.msgs.Agv.AgvStationOrBuilder> 
          getStationsOrBuilderList();
      /**
       * <pre>
       * 当前地图中的站点列表。
       * </pre>
       *
       * <code>repeated .cmvr.msgs.AgvStation stations = 2;</code>
       */
      cmvr.msgs.Agv.AgvStationOrBuilder getStationsOrBuilder(
          int index);
    }
    /**
     * <pre>
     * 反馈体。
     * </pre>
     *
     * Protobuf type {@code cmvr.api.AgvListStationsCommand.Feedback}
     */
    public static final class Feedback extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.AgvListStationsCommand.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() {
        stations_ = java.util.Collections.emptyList();
      }

      @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_AgvListStationsCommand_Feedback_descriptor;
      }

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

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Feedback header_;
      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <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_;
      }
      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() {
        return getHeader();
      }

      public static final int STATIONS_FIELD_NUMBER = 2;
      private java.util.List<cmvr.msgs.Agv.AgvStation> stations_;
      /**
       * <pre>
       * 当前地图中的站点列表。
       * </pre>
       *
       * <code>repeated .cmvr.msgs.AgvStation stations = 2;</code>
       */
      @java.lang.Override
      public java.util.List<cmvr.msgs.Agv.AgvStation> getStationsList() {
        return stations_;
      }
      /**
       * <pre>
       * 当前地图中的站点列表。
       * </pre>
       *
       * <code>repeated .cmvr.msgs.AgvStation stations = 2;</code>
       */
      @java.lang.Override
      public java.util.List<? extends cmvr.msgs.Agv.AgvStationOrBuilder> 
          getStationsOrBuilderList() {
        return stations_;
      }
      /**
       * <pre>
       * 当前地图中的站点列表。
       * </pre>
       *
       * <code>repeated .cmvr.msgs.AgvStation stations = 2;</code>
       */
      @java.lang.Override
      public int getStationsCount() {
        return stations_.size();
      }
      /**
       * <pre>
       * 当前地图中的站点列表。
       * </pre>
       *
       * <code>repeated .cmvr.msgs.AgvStation stations = 2;</code>
       */
      @java.lang.Override
      public cmvr.msgs.Agv.AgvStation getStations(int index) {
        return stations_.get(index);
      }
      /**
       * <pre>
       * 当前地图中的站点列表。
       * </pre>
       *
       * <code>repeated .cmvr.msgs.AgvStation stations = 2;</code>
       */
      @java.lang.Override
      public cmvr.msgs.Agv.AgvStationOrBuilder getStationsOrBuilder(
          int index) {
        return stations_.get(index);
      }

      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());
        }
        for (int i = 0; i < stations_.size(); i++) {
          output.writeMessage(2, stations_.get(i));
        }
        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());
        }
        for (int i = 0; i < stations_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, stations_.get(i));
        }
        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.AgvListStationsCommand.Feedback)) {
          return super.equals(obj);
        }
        cmvr.api.AgvCommand.AgvListStationsCommand.Feedback other = (cmvr.api.AgvCommand.AgvListStationsCommand.Feedback) obj;

        if (hasHeader() != other.hasHeader()) return false;
        if (hasHeader()) {
          if (!getHeader()
              .equals(other.getHeader())) return false;
        }
        if (!getStationsList()
            .equals(other.getStationsList())) 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 (getStationsCount() > 0) {
          hash = (37 * hash) + STATIONS_FIELD_NUMBER;
          hash = (53 * hash) + getStationsList().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.AgvCommand.AgvListStationsCommand.Feedback parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvListStationsCommand.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.AgvListStationsCommand.Feedback parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvListStationsCommand.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.AgvListStationsCommand.Feedback parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvListStationsCommand.Feedback parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.AgvListStationsCommand.Feedback parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvListStationsCommand.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.AgvListStationsCommand.Feedback parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvListStationsCommand.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.AgvListStationsCommand.Feedback parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvListStationsCommand.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.AgvListStationsCommand.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;
      }
      /**
       * <pre>
       * 反馈体。
       * </pre>
       *
       * Protobuf type {@code cmvr.api.AgvListStationsCommand.Feedback}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.AgvListStationsCommand.Feedback)
          cmvr.api.AgvCommand.AgvListStationsCommand.FeedbackOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvListStationsCommand_Feedback_descriptor;
        }

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

        // Construct using cmvr.api.AgvCommand.AgvListStationsCommand.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 (stationsBuilder_ == null) {
            stations_ = java.util.Collections.emptyList();
          } else {
            stations_ = null;
            stationsBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000001);
          return this;
        }

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

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

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

        @java.lang.Override
        public cmvr.api.AgvCommand.AgvListStationsCommand.Feedback buildPartial() {
          cmvr.api.AgvCommand.AgvListStationsCommand.Feedback result = new cmvr.api.AgvCommand.AgvListStationsCommand.Feedback(this);
          int from_bitField0_ = bitField0_;
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          if (stationsBuilder_ == null) {
            if (((bitField0_ & 0x00000001) != 0)) {
              stations_ = java.util.Collections.unmodifiableList(stations_);
              bitField0_ = (bitField0_ & ~0x00000001);
            }
            result.stations_ = stations_;
          } else {
            result.stations_ = stationsBuilder_.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.AgvListStationsCommand.Feedback) {
            return mergeFrom((cmvr.api.AgvCommand.AgvListStationsCommand.Feedback)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.AgvCommand.AgvListStationsCommand.Feedback other) {
          if (other == cmvr.api.AgvCommand.AgvListStationsCommand.Feedback.getDefaultInstance()) return this;
          if (other.hasHeader()) {
            mergeHeader(other.getHeader());
          }
          if (stationsBuilder_ == null) {
            if (!other.stations_.isEmpty()) {
              if (stations_.isEmpty()) {
                stations_ = other.stations_;
                bitField0_ = (bitField0_ & ~0x00000001);
              } else {
                ensureStationsIsMutable();
                stations_.addAll(other.stations_);
              }
              onChanged();
            }
          } else {
            if (!other.stations_.isEmpty()) {
              if (stationsBuilder_.isEmpty()) {
                stationsBuilder_.dispose();
                stationsBuilder_ = null;
                stations_ = other.stations_;
                bitField0_ = (bitField0_ & ~0x00000001);
                stationsBuilder_ = 
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                     getStationsFieldBuilder() : null;
              } else {
                stationsBuilder_.addAllMessages(other.stations_);
              }
            }
          }
          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: {
                  cmvr.msgs.Agv.AgvStation m =
                      input.readMessage(
                          cmvr.msgs.Agv.AgvStation.parser(),
                          extensionRegistry);
                  if (stationsBuilder_ == null) {
                    ensureStationsIsMutable();
                    stations_.add(m);
                  } else {
                    stationsBuilder_.addMessage(m);
                  }
                  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 int bitField0_;

        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_;
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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();
          }
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Feedback.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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_;
          }
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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 java.util.List<cmvr.msgs.Agv.AgvStation> stations_ =
          java.util.Collections.emptyList();
        private void ensureStationsIsMutable() {
          if (!((bitField0_ & 0x00000001) != 0)) {
            stations_ = new java.util.ArrayList<cmvr.msgs.Agv.AgvStation>(stations_);
            bitField0_ |= 0x00000001;
           }
        }

        private com.google.protobuf.RepeatedFieldBuilderV3<
            cmvr.msgs.Agv.AgvStation, cmvr.msgs.Agv.AgvStation.Builder, cmvr.msgs.Agv.AgvStationOrBuilder> stationsBuilder_;

        /**
         * <pre>
         * 当前地图中的站点列表。
         * </pre>
         *
         * <code>repeated .cmvr.msgs.AgvStation stations = 2;</code>
         */
        public java.util.List<cmvr.msgs.Agv.AgvStation> getStationsList() {
          if (stationsBuilder_ == null) {
            return java.util.Collections.unmodifiableList(stations_);
          } else {
            return stationsBuilder_.getMessageList();
          }
        }
        /**
         * <pre>
         * 当前地图中的站点列表。
         * </pre>
         *
         * <code>repeated .cmvr.msgs.AgvStation stations = 2;</code>
         */
        public int getStationsCount() {
          if (stationsBuilder_ == null) {
            return stations_.size();
          } else {
            return stationsBuilder_.getCount();
          }
        }
        /**
         * <pre>
         * 当前地图中的站点列表。
         * </pre>
         *
         * <code>repeated .cmvr.msgs.AgvStation stations = 2;</code>
         */
        public cmvr.msgs.Agv.AgvStation getStations(int index) {
          if (stationsBuilder_ == null) {
            return stations_.get(index);
          } else {
            return stationsBuilder_.getMessage(index);
          }
        }
        /**
         * <pre>
         * 当前地图中的站点列表。
         * </pre>
         *
         * <code>repeated .cmvr.msgs.AgvStation stations = 2;</code>
         */
        public Builder setStations(
            int index, cmvr.msgs.Agv.AgvStation value) {
          if (stationsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureStationsIsMutable();
            stations_.set(index, value);
            onChanged();
          } else {
            stationsBuilder_.setMessage(index, value);
          }
          return this;
        }
        /**
         * <pre>
         * 当前地图中的站点列表。
         * </pre>
         *
         * <code>repeated .cmvr.msgs.AgvStation stations = 2;</code>
         */
        public Builder setStations(
            int index, cmvr.msgs.Agv.AgvStation.Builder builderForValue) {
          if (stationsBuilder_ == null) {
            ensureStationsIsMutable();
            stations_.set(index, builderForValue.build());
            onChanged();
          } else {
            stationsBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         * 当前地图中的站点列表。
         * </pre>
         *
         * <code>repeated .cmvr.msgs.AgvStation stations = 2;</code>
         */
        public Builder addStations(cmvr.msgs.Agv.AgvStation value) {
          if (stationsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureStationsIsMutable();
            stations_.add(value);
            onChanged();
          } else {
            stationsBuilder_.addMessage(value);
          }
          return this;
        }
        /**
         * <pre>
         * 当前地图中的站点列表。
         * </pre>
         *
         * <code>repeated .cmvr.msgs.AgvStation stations = 2;</code>
         */
        public Builder addStations(
            int index, cmvr.msgs.Agv.AgvStation value) {
          if (stationsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureStationsIsMutable();
            stations_.add(index, value);
            onChanged();
          } else {
            stationsBuilder_.addMessage(index, value);
          }
          return this;
        }
        /**
         * <pre>
         * 当前地图中的站点列表。
         * </pre>
         *
         * <code>repeated .cmvr.msgs.AgvStation stations = 2;</code>
         */
        public Builder addStations(
            cmvr.msgs.Agv.AgvStation.Builder builderForValue) {
          if (stationsBuilder_ == null) {
            ensureStationsIsMutable();
            stations_.add(builderForValue.build());
            onChanged();
          } else {
            stationsBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         * 当前地图中的站点列表。
         * </pre>
         *
         * <code>repeated .cmvr.msgs.AgvStation stations = 2;</code>
         */
        public Builder addStations(
            int index, cmvr.msgs.Agv.AgvStation.Builder builderForValue) {
          if (stationsBuilder_ == null) {
            ensureStationsIsMutable();
            stations_.add(index, builderForValue.build());
            onChanged();
          } else {
            stationsBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         * 当前地图中的站点列表。
         * </pre>
         *
         * <code>repeated .cmvr.msgs.AgvStation stations = 2;</code>
         */
        public Builder addAllStations(
            java.lang.Iterable<? extends cmvr.msgs.Agv.AgvStation> values) {
          if (stationsBuilder_ == null) {
            ensureStationsIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, stations_);
            onChanged();
          } else {
            stationsBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * <pre>
         * 当前地图中的站点列表。
         * </pre>
         *
         * <code>repeated .cmvr.msgs.AgvStation stations = 2;</code>
         */
        public Builder clearStations() {
          if (stationsBuilder_ == null) {
            stations_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000001);
            onChanged();
          } else {
            stationsBuilder_.clear();
          }
          return this;
        }
        /**
         * <pre>
         * 当前地图中的站点列表。
         * </pre>
         *
         * <code>repeated .cmvr.msgs.AgvStation stations = 2;</code>
         */
        public Builder removeStations(int index) {
          if (stationsBuilder_ == null) {
            ensureStationsIsMutable();
            stations_.remove(index);
            onChanged();
          } else {
            stationsBuilder_.remove(index);
          }
          return this;
        }
        /**
         * <pre>
         * 当前地图中的站点列表。
         * </pre>
         *
         * <code>repeated .cmvr.msgs.AgvStation stations = 2;</code>
         */
        public cmvr.msgs.Agv.AgvStation.Builder getStationsBuilder(
            int index) {
          return getStationsFieldBuilder().getBuilder(index);
        }
        /**
         * <pre>
         * 当前地图中的站点列表。
         * </pre>
         *
         * <code>repeated .cmvr.msgs.AgvStation stations = 2;</code>
         */
        public cmvr.msgs.Agv.AgvStationOrBuilder getStationsOrBuilder(
            int index) {
          if (stationsBuilder_ == null) {
            return stations_.get(index);  } else {
            return stationsBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * <pre>
         * 当前地图中的站点列表。
         * </pre>
         *
         * <code>repeated .cmvr.msgs.AgvStation stations = 2;</code>
         */
        public java.util.List<? extends cmvr.msgs.Agv.AgvStationOrBuilder> 
             getStationsOrBuilderList() {
          if (stationsBuilder_ != null) {
            return stationsBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(stations_);
          }
        }
        /**
         * <pre>
         * 当前地图中的站点列表。
         * </pre>
         *
         * <code>repeated .cmvr.msgs.AgvStation stations = 2;</code>
         */
        public cmvr.msgs.Agv.AgvStation.Builder addStationsBuilder() {
          return getStationsFieldBuilder().addBuilder(
              cmvr.msgs.Agv.AgvStation.getDefaultInstance());
        }
        /**
         * <pre>
         * 当前地图中的站点列表。
         * </pre>
         *
         * <code>repeated .cmvr.msgs.AgvStation stations = 2;</code>
         */
        public cmvr.msgs.Agv.AgvStation.Builder addStationsBuilder(
            int index) {
          return getStationsFieldBuilder().addBuilder(
              index, cmvr.msgs.Agv.AgvStation.getDefaultInstance());
        }
        /**
         * <pre>
         * 当前地图中的站点列表。
         * </pre>
         *
         * <code>repeated .cmvr.msgs.AgvStation stations = 2;</code>
         */
        public java.util.List<cmvr.msgs.Agv.AgvStation.Builder> 
             getStationsBuilderList() {
          return getStationsFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilderV3<
            cmvr.msgs.Agv.AgvStation, cmvr.msgs.Agv.AgvStation.Builder, cmvr.msgs.Agv.AgvStationOrBuilder> 
            getStationsFieldBuilder() {
          if (stationsBuilder_ == null) {
            stationsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                cmvr.msgs.Agv.AgvStation, cmvr.msgs.Agv.AgvStation.Builder, cmvr.msgs.Agv.AgvStationOrBuilder>(
                    stations_,
                    ((bitField0_ & 0x00000001) != 0),
                    getParentForChildren(),
                    isClean());
            stations_ = null;
          }
          return stationsBuilder_;
        }
        @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.AgvListStationsCommand.Feedback)
      }

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

      public static cmvr.api.AgvCommand.AgvListStationsCommand.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.AgvListStationsCommand.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.AgvListStationsCommand)) {
        return super.equals(obj);
      }
      cmvr.api.AgvCommand.AgvListStationsCommand other = (cmvr.api.AgvCommand.AgvListStationsCommand) 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.AgvListStationsCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.AgvListStationsCommand 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.AgvListStationsCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.AgvListStationsCommand 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.AgvListStationsCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.AgvListStationsCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.AgvListStationsCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.AgvListStationsCommand 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.AgvListStationsCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.AgvListStationsCommand 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.AgvListStationsCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.AgvListStationsCommand 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.AgvListStationsCommand 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.AgvListStationsCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:cmvr.api.AgvListStationsCommand)
        cmvr.api.AgvCommand.AgvListStationsCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvListStationsCommand_descriptor;
      }

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

      // Construct using cmvr.api.AgvCommand.AgvListStationsCommand.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_AgvListStationsCommand_descriptor;
      }

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

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

      @java.lang.Override
      public cmvr.api.AgvCommand.AgvListStationsCommand buildPartial() {
        cmvr.api.AgvCommand.AgvListStationsCommand result = new cmvr.api.AgvCommand.AgvListStationsCommand(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.AgvListStationsCommand) {
          return mergeFrom((cmvr.api.AgvCommand.AgvListStationsCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cmvr.api.AgvCommand.AgvListStationsCommand other) {
        if (other == cmvr.api.AgvCommand.AgvListStationsCommand.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.AgvListStationsCommand)
    }

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

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

    private static final com.google.protobuf.Parser<AgvListStationsCommand>
        PARSER = new com.google.protobuf.AbstractParser<AgvListStationsCommand>() {
      @java.lang.Override
      public AgvListStationsCommand 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<AgvListStationsCommand> parser() {
      return PARSER;
    }

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

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

  }

  public interface AgvMapCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:cmvr.api.AgvMapCommand)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * <pre>
   * 地图上传、下载、切换等通用地图命令。
   * </pre>
   *
   * Protobuf type {@code cmvr.api.AgvMapCommand}
   */
  public static final class AgvMapCommand extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:cmvr.api.AgvMapCommand)
      AgvMapCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AgvMapCommand.newBuilder() to construct.
    private AgvMapCommand(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private AgvMapCommand() {
    }

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

    @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_AgvMapCommand_descriptor;
    }

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

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

      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Request getHeader();
      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder();

      /**
       * <pre>
       * 地图名称。切换/下载时表示目标地图，上传时表示写入的地图名称。
       * </pre>
       *
       * <code>string map_name = 2;</code>
       * @return The mapName.
       */
      java.lang.String getMapName();
      /**
       * <pre>
       * 地图名称。切换/下载时表示目标地图，上传时表示写入的地图名称。
       * </pre>
       *
       * <code>string map_name = 2;</code>
       * @return The bytes for mapName.
       */
      com.google.protobuf.ByteString
          getMapNameBytes();

      /**
       * <pre>
       * 地图内容。上传地图时使用；下载或切换地图时可为空。
       * </pre>
       *
       * <code>string content = 3;</code>
       * @return The content.
       */
      java.lang.String getContent();
      /**
       * <pre>
       * 地图内容。上传地图时使用；下载或切换地图时可为空。
       * </pre>
       *
       * <code>string content = 3;</code>
       * @return The bytes for content.
       */
      com.google.protobuf.ByteString
          getContentBytes();
    }
    /**
     * <pre>
     * 请求体。
     * </pre>
     *
     * Protobuf type {@code cmvr.api.AgvMapCommand.Request}
     */
    public static final class Request extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.AgvMapCommand.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() {
        mapName_ = "";
        content_ = "";
      }

      @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_AgvMapCommand_Request_descriptor;
      }

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

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Request header_;
      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <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_;
      }
      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() {
        return getHeader();
      }

      public static final int MAP_NAME_FIELD_NUMBER = 2;
      private volatile java.lang.Object mapName_;
      /**
       * <pre>
       * 地图名称。切换/下载时表示目标地图，上传时表示写入的地图名称。
       * </pre>
       *
       * <code>string map_name = 2;</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>string map_name = 2;</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;
        }
      }

      public static final int CONTENT_FIELD_NUMBER = 3;
      private volatile java.lang.Object content_;
      /**
       * <pre>
       * 地图内容。上传地图时使用；下载或切换地图时可为空。
       * </pre>
       *
       * <code>string content = 3;</code>
       * @return The content.
       */
      @java.lang.Override
      public java.lang.String getContent() {
        java.lang.Object ref = content_;
        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();
          content_ = s;
          return s;
        }
      }
      /**
       * <pre>
       * 地图内容。上传地图时使用；下载或切换地图时可为空。
       * </pre>
       *
       * <code>string content = 3;</code>
       * @return The bytes for content.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getContentBytes() {
        java.lang.Object ref = content_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          content_ = 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 (header_ != null) {
          output.writeMessage(1, getHeader());
        }
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(mapName_)) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 2, mapName_);
        }
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(content_)) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 3, content_);
        }
        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 (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(mapName_)) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, mapName_);
        }
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(content_)) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, content_);
        }
        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.AgvMapCommand.Request)) {
          return super.equals(obj);
        }
        cmvr.api.AgvCommand.AgvMapCommand.Request other = (cmvr.api.AgvCommand.AgvMapCommand.Request) obj;

        if (hasHeader() != other.hasHeader()) return false;
        if (hasHeader()) {
          if (!getHeader()
              .equals(other.getHeader())) return false;
        }
        if (!getMapName()
            .equals(other.getMapName())) return false;
        if (!getContent()
            .equals(other.getContent())) 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 = (37 * hash) + MAP_NAME_FIELD_NUMBER;
        hash = (53 * hash) + getMapName().hashCode();
        hash = (37 * hash) + CONTENT_FIELD_NUMBER;
        hash = (53 * hash) + getContent().hashCode();
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.AgvCommand.AgvMapCommand.Request parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvMapCommand.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.AgvMapCommand.Request parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvMapCommand.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.AgvMapCommand.Request parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvMapCommand.Request parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.AgvMapCommand.Request parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvMapCommand.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.AgvMapCommand.Request parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvMapCommand.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.AgvMapCommand.Request parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvMapCommand.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.AgvMapCommand.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;
      }
      /**
       * <pre>
       * 请求体。
       * </pre>
       *
       * Protobuf type {@code cmvr.api.AgvMapCommand.Request}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.AgvMapCommand.Request)
          cmvr.api.AgvCommand.AgvMapCommand.RequestOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvMapCommand_Request_descriptor;
        }

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

        // Construct using cmvr.api.AgvCommand.AgvMapCommand.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;
          }
          mapName_ = "";

          content_ = "";

          return this;
        }

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

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

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

        @java.lang.Override
        public cmvr.api.AgvCommand.AgvMapCommand.Request buildPartial() {
          cmvr.api.AgvCommand.AgvMapCommand.Request result = new cmvr.api.AgvCommand.AgvMapCommand.Request(this);
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          result.mapName_ = mapName_;
          result.content_ = content_;
          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.AgvMapCommand.Request) {
            return mergeFrom((cmvr.api.AgvCommand.AgvMapCommand.Request)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.AgvCommand.AgvMapCommand.Request other) {
          if (other == cmvr.api.AgvCommand.AgvMapCommand.Request.getDefaultInstance()) return this;
          if (other.hasHeader()) {
            mergeHeader(other.getHeader());
          }
          if (!other.getMapName().isEmpty()) {
            mapName_ = other.mapName_;
            onChanged();
          }
          if (!other.getContent().isEmpty()) {
            content_ = other.content_;
            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: {
                  input.readMessage(
                      getHeaderFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 10
                case 18: {
                  mapName_ = input.readStringRequireUtf8();

                  break;
                } // case 18
                case 26: {
                  content_ = input.readStringRequireUtf8();

                  break;
                } // case 26
                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_;
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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();
          }
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Request.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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_;
          }
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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 java.lang.Object mapName_ = "";
        /**
         * <pre>
         * 地图名称。切换/下载时表示目标地图，上传时表示写入的地图名称。
         * </pre>
         *
         * <code>string map_name = 2;</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>string map_name = 2;</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>string map_name = 2;</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();
  }
  
          mapName_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * 地图名称。切换/下载时表示目标地图，上传时表示写入的地图名称。
         * </pre>
         *
         * <code>string map_name = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearMapName() {
          
          mapName_ = getDefaultInstance().getMapName();
          onChanged();
          return this;
        }
        /**
         * <pre>
         * 地图名称。切换/下载时表示目标地图，上传时表示写入的地图名称。
         * </pre>
         *
         * <code>string map_name = 2;</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);
          
          mapName_ = value;
          onChanged();
          return this;
        }

        private java.lang.Object content_ = "";
        /**
         * <pre>
         * 地图内容。上传地图时使用；下载或切换地图时可为空。
         * </pre>
         *
         * <code>string content = 3;</code>
         * @return The content.
         */
        public java.lang.String getContent() {
          java.lang.Object ref = content_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            content_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <pre>
         * 地图内容。上传地图时使用；下载或切换地图时可为空。
         * </pre>
         *
         * <code>string content = 3;</code>
         * @return The bytes for content.
         */
        public com.google.protobuf.ByteString
            getContentBytes() {
          java.lang.Object ref = content_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            content_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <pre>
         * 地图内容。上传地图时使用；下载或切换地图时可为空。
         * </pre>
         *
         * <code>string content = 3;</code>
         * @param value The content to set.
         * @return This builder for chaining.
         */
        public Builder setContent(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          content_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * 地图内容。上传地图时使用；下载或切换地图时可为空。
         * </pre>
         *
         * <code>string content = 3;</code>
         * @return This builder for chaining.
         */
        public Builder clearContent() {
          
          content_ = getDefaultInstance().getContent();
          onChanged();
          return this;
        }
        /**
         * <pre>
         * 地图内容。上传地图时使用；下载或切换地图时可为空。
         * </pre>
         *
         * <code>string content = 3;</code>
         * @param value The bytes for content to set.
         * @return This builder for chaining.
         */
        public Builder setContentBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
          
          content_ = 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.AgvMapCommand.Request)
      }

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

      public static cmvr.api.AgvCommand.AgvMapCommand.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.AgvMapCommand.Request getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

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

      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Feedback getHeader();
      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder();

      /**
       * <pre>
       * 地图内容。下载地图时返回；其他命令通常为空。
       * </pre>
       *
       * <code>string content = 2;</code>
       * @return The content.
       */
      java.lang.String getContent();
      /**
       * <pre>
       * 地图内容。下载地图时返回；其他命令通常为空。
       * </pre>
       *
       * <code>string content = 2;</code>
       * @return The bytes for content.
       */
      com.google.protobuf.ByteString
          getContentBytes();
    }
    /**
     * <pre>
     * 反馈体。
     * </pre>
     *
     * Protobuf type {@code cmvr.api.AgvMapCommand.Feedback}
     */
    public static final class Feedback extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.AgvMapCommand.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() {
        content_ = "";
      }

      @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_AgvMapCommand_Feedback_descriptor;
      }

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

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Feedback header_;
      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <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_;
      }
      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() {
        return getHeader();
      }

      public static final int CONTENT_FIELD_NUMBER = 2;
      private volatile java.lang.Object content_;
      /**
       * <pre>
       * 地图内容。下载地图时返回；其他命令通常为空。
       * </pre>
       *
       * <code>string content = 2;</code>
       * @return The content.
       */
      @java.lang.Override
      public java.lang.String getContent() {
        java.lang.Object ref = content_;
        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();
          content_ = s;
          return s;
        }
      }
      /**
       * <pre>
       * 地图内容。下载地图时返回；其他命令通常为空。
       * </pre>
       *
       * <code>string content = 2;</code>
       * @return The bytes for content.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getContentBytes() {
        java.lang.Object ref = content_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          content_ = 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 (header_ != null) {
          output.writeMessage(1, getHeader());
        }
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(content_)) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 2, content_);
        }
        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 (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(content_)) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, content_);
        }
        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.AgvMapCommand.Feedback)) {
          return super.equals(obj);
        }
        cmvr.api.AgvCommand.AgvMapCommand.Feedback other = (cmvr.api.AgvCommand.AgvMapCommand.Feedback) obj;

        if (hasHeader() != other.hasHeader()) return false;
        if (hasHeader()) {
          if (!getHeader()
              .equals(other.getHeader())) return false;
        }
        if (!getContent()
            .equals(other.getContent())) 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 = (37 * hash) + CONTENT_FIELD_NUMBER;
        hash = (53 * hash) + getContent().hashCode();
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.AgvCommand.AgvMapCommand.Feedback parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvMapCommand.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.AgvMapCommand.Feedback parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvMapCommand.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.AgvMapCommand.Feedback parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvMapCommand.Feedback parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.AgvMapCommand.Feedback parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvMapCommand.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.AgvMapCommand.Feedback parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvMapCommand.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.AgvMapCommand.Feedback parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvMapCommand.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.AgvMapCommand.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;
      }
      /**
       * <pre>
       * 反馈体。
       * </pre>
       *
       * Protobuf type {@code cmvr.api.AgvMapCommand.Feedback}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.AgvMapCommand.Feedback)
          cmvr.api.AgvCommand.AgvMapCommand.FeedbackOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvMapCommand_Feedback_descriptor;
        }

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

        // Construct using cmvr.api.AgvCommand.AgvMapCommand.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;
          }
          content_ = "";

          return this;
        }

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

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

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

        @java.lang.Override
        public cmvr.api.AgvCommand.AgvMapCommand.Feedback buildPartial() {
          cmvr.api.AgvCommand.AgvMapCommand.Feedback result = new cmvr.api.AgvCommand.AgvMapCommand.Feedback(this);
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          result.content_ = content_;
          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.AgvMapCommand.Feedback) {
            return mergeFrom((cmvr.api.AgvCommand.AgvMapCommand.Feedback)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.AgvCommand.AgvMapCommand.Feedback other) {
          if (other == cmvr.api.AgvCommand.AgvMapCommand.Feedback.getDefaultInstance()) return this;
          if (other.hasHeader()) {
            mergeHeader(other.getHeader());
          }
          if (!other.getContent().isEmpty()) {
            content_ = other.content_;
            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: {
                  input.readMessage(
                      getHeaderFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 10
                case 18: {
                  content_ = input.readStringRequireUtf8();

                  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_;
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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();
          }
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Feedback.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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_;
          }
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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 java.lang.Object content_ = "";
        /**
         * <pre>
         * 地图内容。下载地图时返回；其他命令通常为空。
         * </pre>
         *
         * <code>string content = 2;</code>
         * @return The content.
         */
        public java.lang.String getContent() {
          java.lang.Object ref = content_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            content_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <pre>
         * 地图内容。下载地图时返回；其他命令通常为空。
         * </pre>
         *
         * <code>string content = 2;</code>
         * @return The bytes for content.
         */
        public com.google.protobuf.ByteString
            getContentBytes() {
          java.lang.Object ref = content_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            content_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <pre>
         * 地图内容。下载地图时返回；其他命令通常为空。
         * </pre>
         *
         * <code>string content = 2;</code>
         * @param value The content to set.
         * @return This builder for chaining.
         */
        public Builder setContent(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          content_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * 地图内容。下载地图时返回；其他命令通常为空。
         * </pre>
         *
         * <code>string content = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearContent() {
          
          content_ = getDefaultInstance().getContent();
          onChanged();
          return this;
        }
        /**
         * <pre>
         * 地图内容。下载地图时返回；其他命令通常为空。
         * </pre>
         *
         * <code>string content = 2;</code>
         * @param value The bytes for content to set.
         * @return This builder for chaining.
         */
        public Builder setContentBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
          
          content_ = 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.AgvMapCommand.Feedback)
      }

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

      public static cmvr.api.AgvCommand.AgvMapCommand.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.AgvMapCommand.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.AgvMapCommand)) {
        return super.equals(obj);
      }
      cmvr.api.AgvCommand.AgvMapCommand other = (cmvr.api.AgvCommand.AgvMapCommand) 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.AgvMapCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.AgvMapCommand 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.AgvMapCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.AgvMapCommand 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.AgvMapCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.AgvMapCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.AgvMapCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.AgvMapCommand 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.AgvMapCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.AgvMapCommand 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.AgvMapCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.AgvMapCommand 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.AgvMapCommand 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.AgvMapCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:cmvr.api.AgvMapCommand)
        cmvr.api.AgvCommand.AgvMapCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvMapCommand_descriptor;
      }

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

      // Construct using cmvr.api.AgvCommand.AgvMapCommand.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_AgvMapCommand_descriptor;
      }

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

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

      @java.lang.Override
      public cmvr.api.AgvCommand.AgvMapCommand buildPartial() {
        cmvr.api.AgvCommand.AgvMapCommand result = new cmvr.api.AgvCommand.AgvMapCommand(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.AgvMapCommand) {
          return mergeFrom((cmvr.api.AgvCommand.AgvMapCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cmvr.api.AgvCommand.AgvMapCommand other) {
        if (other == cmvr.api.AgvCommand.AgvMapCommand.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.AgvMapCommand)
    }

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

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

    private static final com.google.protobuf.Parser<AgvMapCommand>
        PARSER = new com.google.protobuf.AbstractParser<AgvMapCommand>() {
      @java.lang.Override
      public AgvMapCommand 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<AgvMapCommand> parser() {
      return PARSER;
    }

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

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

  }

  public interface AgvStartMappingCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:cmvr.api.AgvStartMappingCommand)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * <pre>
   * 开始建图/扫图命令。
   * </pre>
   *
   * Protobuf type {@code cmvr.api.AgvStartMappingCommand}
   */
  public static final class AgvStartMappingCommand extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:cmvr.api.AgvStartMappingCommand)
      AgvStartMappingCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AgvStartMappingCommand.newBuilder() to construct.
    private AgvStartMappingCommand(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private AgvStartMappingCommand() {
    }

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

    @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_AgvStartMappingCommand_descriptor;
    }

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

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

      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Request getHeader();
      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder();

      /**
       * <pre>
       * 请求建图维度：2D、3D 或二者都要。未指定时由适配器选择最合适模式。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvMapDimension dimension = 2;</code>
       * @return The enum numeric value on the wire for dimension.
       */
      int getDimensionValue();
      /**
       * <pre>
       * 请求建图维度：2D、3D 或二者都要。未指定时由适配器选择最合适模式。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvMapDimension dimension = 2;</code>
       * @return The dimension.
       */
      cmvr.msgs.Agv.AgvMapDimension getDimension();

      /**
       * <pre>
       * 目标地图名称。为空表示由 AGV 或适配器创建/选择默认地图名。
       * </pre>
       *
       * <code>string map_name = 3;</code>
       * @return The mapName.
       */
      java.lang.String getMapName();
      /**
       * <pre>
       * 目标地图名称。为空表示由 AGV 或适配器创建/选择默认地图名。
       * </pre>
       *
       * <code>string map_name = 3;</code>
       * @return The bytes for mapName.
       */
      com.google.protobuf.ByteString
          getMapNameBytes();

      /**
       * <pre>
       * 是否请求实时建图更新。true 表示希望实时推送；false 表示允许离线/批处理。
       * </pre>
       *
       * <code>bool real_time = 4;</code>
       * @return The realTime.
       */
      boolean getRealTime();
    }
    /**
     * <pre>
     * 请求体。
     * </pre>
     *
     * Protobuf type {@code cmvr.api.AgvStartMappingCommand.Request}
     */
    public static final class Request extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.AgvStartMappingCommand.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() {
        dimension_ = 0;
        mapName_ = "";
      }

      @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_AgvStartMappingCommand_Request_descriptor;
      }

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

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Request header_;
      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <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_;
      }
      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() {
        return getHeader();
      }

      public static final int DIMENSION_FIELD_NUMBER = 2;
      private int dimension_;
      /**
       * <pre>
       * 请求建图维度：2D、3D 或二者都要。未指定时由适配器选择最合适模式。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvMapDimension dimension = 2;</code>
       * @return The enum numeric value on the wire for dimension.
       */
      @java.lang.Override public int getDimensionValue() {
        return dimension_;
      }
      /**
       * <pre>
       * 请求建图维度：2D、3D 或二者都要。未指定时由适配器选择最合适模式。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvMapDimension dimension = 2;</code>
       * @return The dimension.
       */
      @java.lang.Override public cmvr.msgs.Agv.AgvMapDimension getDimension() {
        @SuppressWarnings("deprecation")
        cmvr.msgs.Agv.AgvMapDimension result = cmvr.msgs.Agv.AgvMapDimension.valueOf(dimension_);
        return result == null ? cmvr.msgs.Agv.AgvMapDimension.UNRECOGNIZED : result;
      }

      public static final int MAP_NAME_FIELD_NUMBER = 3;
      private volatile java.lang.Object mapName_;
      /**
       * <pre>
       * 目标地图名称。为空表示由 AGV 或适配器创建/选择默认地图名。
       * </pre>
       *
       * <code>string map_name = 3;</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>
       * 目标地图名称。为空表示由 AGV 或适配器创建/选择默认地图名。
       * </pre>
       *
       * <code>string map_name = 3;</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;
        }
      }

      public static final int REAL_TIME_FIELD_NUMBER = 4;
      private boolean realTime_;
      /**
       * <pre>
       * 是否请求实时建图更新。true 表示希望实时推送；false 表示允许离线/批处理。
       * </pre>
       *
       * <code>bool real_time = 4;</code>
       * @return The realTime.
       */
      @java.lang.Override
      public boolean getRealTime() {
        return realTime_;
      }

      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 (dimension_ != cmvr.msgs.Agv.AgvMapDimension.AGV_MAP_DIMENSION_UNSPECIFIED.getNumber()) {
          output.writeEnum(2, dimension_);
        }
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(mapName_)) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 3, mapName_);
        }
        if (realTime_ != false) {
          output.writeBool(4, realTime_);
        }
        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 (dimension_ != cmvr.msgs.Agv.AgvMapDimension.AGV_MAP_DIMENSION_UNSPECIFIED.getNumber()) {
          size += com.google.protobuf.CodedOutputStream
            .computeEnumSize(2, dimension_);
        }
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(mapName_)) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, mapName_);
        }
        if (realTime_ != false) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(4, realTime_);
        }
        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.AgvStartMappingCommand.Request)) {
          return super.equals(obj);
        }
        cmvr.api.AgvCommand.AgvStartMappingCommand.Request other = (cmvr.api.AgvCommand.AgvStartMappingCommand.Request) obj;

        if (hasHeader() != other.hasHeader()) return false;
        if (hasHeader()) {
          if (!getHeader()
              .equals(other.getHeader())) return false;
        }
        if (dimension_ != other.dimension_) return false;
        if (!getMapName()
            .equals(other.getMapName())) return false;
        if (getRealTime()
            != other.getRealTime()) 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 = (37 * hash) + DIMENSION_FIELD_NUMBER;
        hash = (53 * hash) + dimension_;
        hash = (37 * hash) + MAP_NAME_FIELD_NUMBER;
        hash = (53 * hash) + getMapName().hashCode();
        hash = (37 * hash) + REAL_TIME_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getRealTime());
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.AgvCommand.AgvStartMappingCommand.Request parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvStartMappingCommand.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.AgvStartMappingCommand.Request parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvStartMappingCommand.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.AgvStartMappingCommand.Request parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvStartMappingCommand.Request parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.AgvStartMappingCommand.Request parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvStartMappingCommand.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.AgvStartMappingCommand.Request parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvStartMappingCommand.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.AgvStartMappingCommand.Request parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvStartMappingCommand.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.AgvStartMappingCommand.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;
      }
      /**
       * <pre>
       * 请求体。
       * </pre>
       *
       * Protobuf type {@code cmvr.api.AgvStartMappingCommand.Request}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.AgvStartMappingCommand.Request)
          cmvr.api.AgvCommand.AgvStartMappingCommand.RequestOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvStartMappingCommand_Request_descriptor;
        }

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

        // Construct using cmvr.api.AgvCommand.AgvStartMappingCommand.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;
          }
          dimension_ = 0;

          mapName_ = "";

          realTime_ = false;

          return this;
        }

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

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

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

        @java.lang.Override
        public cmvr.api.AgvCommand.AgvStartMappingCommand.Request buildPartial() {
          cmvr.api.AgvCommand.AgvStartMappingCommand.Request result = new cmvr.api.AgvCommand.AgvStartMappingCommand.Request(this);
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          result.dimension_ = dimension_;
          result.mapName_ = mapName_;
          result.realTime_ = realTime_;
          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.AgvStartMappingCommand.Request) {
            return mergeFrom((cmvr.api.AgvCommand.AgvStartMappingCommand.Request)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.AgvCommand.AgvStartMappingCommand.Request other) {
          if (other == cmvr.api.AgvCommand.AgvStartMappingCommand.Request.getDefaultInstance()) return this;
          if (other.hasHeader()) {
            mergeHeader(other.getHeader());
          }
          if (other.dimension_ != 0) {
            setDimensionValue(other.getDimensionValue());
          }
          if (!other.getMapName().isEmpty()) {
            mapName_ = other.mapName_;
            onChanged();
          }
          if (other.getRealTime() != false) {
            setRealTime(other.getRealTime());
          }
          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 16: {
                  dimension_ = input.readEnum();

                  break;
                } // case 16
                case 26: {
                  mapName_ = input.readStringRequireUtf8();

                  break;
                } // case 26
                case 32: {
                  realTime_ = input.readBool();

                  break;
                } // case 32
                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_;
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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();
          }
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Request.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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_;
          }
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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 int dimension_ = 0;
        /**
         * <pre>
         * 请求建图维度：2D、3D 或二者都要。未指定时由适配器选择最合适模式。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvMapDimension dimension = 2;</code>
         * @return The enum numeric value on the wire for dimension.
         */
        @java.lang.Override public int getDimensionValue() {
          return dimension_;
        }
        /**
         * <pre>
         * 请求建图维度：2D、3D 或二者都要。未指定时由适配器选择最合适模式。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvMapDimension dimension = 2;</code>
         * @param value The enum numeric value on the wire for dimension to set.
         * @return This builder for chaining.
         */
        public Builder setDimensionValue(int value) {
          
          dimension_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * 请求建图维度：2D、3D 或二者都要。未指定时由适配器选择最合适模式。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvMapDimension dimension = 2;</code>
         * @return The dimension.
         */
        @java.lang.Override
        public cmvr.msgs.Agv.AgvMapDimension getDimension() {
          @SuppressWarnings("deprecation")
          cmvr.msgs.Agv.AgvMapDimension result = cmvr.msgs.Agv.AgvMapDimension.valueOf(dimension_);
          return result == null ? cmvr.msgs.Agv.AgvMapDimension.UNRECOGNIZED : result;
        }
        /**
         * <pre>
         * 请求建图维度：2D、3D 或二者都要。未指定时由适配器选择最合适模式。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvMapDimension dimension = 2;</code>
         * @param value The dimension to set.
         * @return This builder for chaining.
         */
        public Builder setDimension(cmvr.msgs.Agv.AgvMapDimension value) {
          if (value == null) {
            throw new NullPointerException();
          }
          
          dimension_ = value.getNumber();
          onChanged();
          return this;
        }
        /**
         * <pre>
         * 请求建图维度：2D、3D 或二者都要。未指定时由适配器选择最合适模式。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvMapDimension dimension = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearDimension() {
          
          dimension_ = 0;
          onChanged();
          return this;
        }

        private java.lang.Object mapName_ = "";
        /**
         * <pre>
         * 目标地图名称。为空表示由 AGV 或适配器创建/选择默认地图名。
         * </pre>
         *
         * <code>string map_name = 3;</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>
         * 目标地图名称。为空表示由 AGV 或适配器创建/选择默认地图名。
         * </pre>
         *
         * <code>string map_name = 3;</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>
         * 目标地图名称。为空表示由 AGV 或适配器创建/选择默认地图名。
         * </pre>
         *
         * <code>string map_name = 3;</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();
  }
  
          mapName_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * 目标地图名称。为空表示由 AGV 或适配器创建/选择默认地图名。
         * </pre>
         *
         * <code>string map_name = 3;</code>
         * @return This builder for chaining.
         */
        public Builder clearMapName() {
          
          mapName_ = getDefaultInstance().getMapName();
          onChanged();
          return this;
        }
        /**
         * <pre>
         * 目标地图名称。为空表示由 AGV 或适配器创建/选择默认地图名。
         * </pre>
         *
         * <code>string map_name = 3;</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);
          
          mapName_ = value;
          onChanged();
          return this;
        }

        private boolean realTime_ ;
        /**
         * <pre>
         * 是否请求实时建图更新。true 表示希望实时推送；false 表示允许离线/批处理。
         * </pre>
         *
         * <code>bool real_time = 4;</code>
         * @return The realTime.
         */
        @java.lang.Override
        public boolean getRealTime() {
          return realTime_;
        }
        /**
         * <pre>
         * 是否请求实时建图更新。true 表示希望实时推送；false 表示允许离线/批处理。
         * </pre>
         *
         * <code>bool real_time = 4;</code>
         * @param value The realTime to set.
         * @return This builder for chaining.
         */
        public Builder setRealTime(boolean value) {
          
          realTime_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * 是否请求实时建图更新。true 表示希望实时推送；false 表示允许离线/批处理。
         * </pre>
         *
         * <code>bool real_time = 4;</code>
         * @return This builder for chaining.
         */
        public Builder clearRealTime() {
          
          realTime_ = 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.AgvStartMappingCommand.Request)
      }

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

      public static cmvr.api.AgvCommand.AgvStartMappingCommand.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.AgvStartMappingCommand.Request getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

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

      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Feedback getHeader();
      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder();

      /**
       * <pre>
       * 建图会话 id。该值由服务端生成，作为调试和日志关联标识。
       * </pre>
       *
       * <code>string session_id = 2;</code>
       * @return The sessionId.
       */
      java.lang.String getSessionId();
      /**
       * <pre>
       * 建图会话 id。该值由服务端生成，作为调试和日志关联标识。
       * </pre>
       *
       * <code>string session_id = 2;</code>
       * @return The bytes for sessionId.
       */
      com.google.protobuf.ByteString
          getSessionIdBytes();
    }
    /**
     * <pre>
     * 反馈体。
     * </pre>
     *
     * Protobuf type {@code cmvr.api.AgvStartMappingCommand.Feedback}
     */
    public static final class Feedback extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.AgvStartMappingCommand.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() {
        sessionId_ = "";
      }

      @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_AgvStartMappingCommand_Feedback_descriptor;
      }

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

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Feedback header_;
      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <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_;
      }
      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() {
        return getHeader();
      }

      public static final int SESSION_ID_FIELD_NUMBER = 2;
      private volatile java.lang.Object sessionId_;
      /**
       * <pre>
       * 建图会话 id。该值由服务端生成，作为调试和日志关联标识。
       * </pre>
       *
       * <code>string session_id = 2;</code>
       * @return The sessionId.
       */
      @java.lang.Override
      public java.lang.String getSessionId() {
        java.lang.Object ref = sessionId_;
        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();
          sessionId_ = s;
          return s;
        }
      }
      /**
       * <pre>
       * 建图会话 id。该值由服务端生成，作为调试和日志关联标识。
       * </pre>
       *
       * <code>string session_id = 2;</code>
       * @return The bytes for sessionId.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getSessionIdBytes() {
        java.lang.Object ref = sessionId_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          sessionId_ = 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 (header_ != null) {
          output.writeMessage(1, getHeader());
        }
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(sessionId_)) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 2, sessionId_);
        }
        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 (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(sessionId_)) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, sessionId_);
        }
        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.AgvStartMappingCommand.Feedback)) {
          return super.equals(obj);
        }
        cmvr.api.AgvCommand.AgvStartMappingCommand.Feedback other = (cmvr.api.AgvCommand.AgvStartMappingCommand.Feedback) obj;

        if (hasHeader() != other.hasHeader()) return false;
        if (hasHeader()) {
          if (!getHeader()
              .equals(other.getHeader())) return false;
        }
        if (!getSessionId()
            .equals(other.getSessionId())) 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 = (37 * hash) + SESSION_ID_FIELD_NUMBER;
        hash = (53 * hash) + getSessionId().hashCode();
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.AgvCommand.AgvStartMappingCommand.Feedback parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvStartMappingCommand.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.AgvStartMappingCommand.Feedback parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvStartMappingCommand.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.AgvStartMappingCommand.Feedback parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvStartMappingCommand.Feedback parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.AgvStartMappingCommand.Feedback parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvStartMappingCommand.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.AgvStartMappingCommand.Feedback parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvStartMappingCommand.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.AgvStartMappingCommand.Feedback parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvStartMappingCommand.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.AgvStartMappingCommand.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;
      }
      /**
       * <pre>
       * 反馈体。
       * </pre>
       *
       * Protobuf type {@code cmvr.api.AgvStartMappingCommand.Feedback}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.AgvStartMappingCommand.Feedback)
          cmvr.api.AgvCommand.AgvStartMappingCommand.FeedbackOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvStartMappingCommand_Feedback_descriptor;
        }

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

        // Construct using cmvr.api.AgvCommand.AgvStartMappingCommand.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;
          }
          sessionId_ = "";

          return this;
        }

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

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

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

        @java.lang.Override
        public cmvr.api.AgvCommand.AgvStartMappingCommand.Feedback buildPartial() {
          cmvr.api.AgvCommand.AgvStartMappingCommand.Feedback result = new cmvr.api.AgvCommand.AgvStartMappingCommand.Feedback(this);
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          result.sessionId_ = sessionId_;
          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.AgvStartMappingCommand.Feedback) {
            return mergeFrom((cmvr.api.AgvCommand.AgvStartMappingCommand.Feedback)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.AgvCommand.AgvStartMappingCommand.Feedback other) {
          if (other == cmvr.api.AgvCommand.AgvStartMappingCommand.Feedback.getDefaultInstance()) return this;
          if (other.hasHeader()) {
            mergeHeader(other.getHeader());
          }
          if (!other.getSessionId().isEmpty()) {
            sessionId_ = other.sessionId_;
            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: {
                  input.readMessage(
                      getHeaderFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 10
                case 18: {
                  sessionId_ = input.readStringRequireUtf8();

                  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_;
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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();
          }
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Feedback.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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_;
          }
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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 java.lang.Object sessionId_ = "";
        /**
         * <pre>
         * 建图会话 id。该值由服务端生成，作为调试和日志关联标识。
         * </pre>
         *
         * <code>string session_id = 2;</code>
         * @return The sessionId.
         */
        public java.lang.String getSessionId() {
          java.lang.Object ref = sessionId_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            sessionId_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <pre>
         * 建图会话 id。该值由服务端生成，作为调试和日志关联标识。
         * </pre>
         *
         * <code>string session_id = 2;</code>
         * @return The bytes for sessionId.
         */
        public com.google.protobuf.ByteString
            getSessionIdBytes() {
          java.lang.Object ref = sessionId_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            sessionId_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <pre>
         * 建图会话 id。该值由服务端生成，作为调试和日志关联标识。
         * </pre>
         *
         * <code>string session_id = 2;</code>
         * @param value The sessionId to set.
         * @return This builder for chaining.
         */
        public Builder setSessionId(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          sessionId_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * 建图会话 id。该值由服务端生成，作为调试和日志关联标识。
         * </pre>
         *
         * <code>string session_id = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearSessionId() {
          
          sessionId_ = getDefaultInstance().getSessionId();
          onChanged();
          return this;
        }
        /**
         * <pre>
         * 建图会话 id。该值由服务端生成，作为调试和日志关联标识。
         * </pre>
         *
         * <code>string session_id = 2;</code>
         * @param value The bytes for sessionId to set.
         * @return This builder for chaining.
         */
        public Builder setSessionIdBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
          
          sessionId_ = 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.AgvStartMappingCommand.Feedback)
      }

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

      public static cmvr.api.AgvCommand.AgvStartMappingCommand.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.AgvStartMappingCommand.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.AgvStartMappingCommand)) {
        return super.equals(obj);
      }
      cmvr.api.AgvCommand.AgvStartMappingCommand other = (cmvr.api.AgvCommand.AgvStartMappingCommand) 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.AgvStartMappingCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.AgvStartMappingCommand 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.AgvStartMappingCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.AgvStartMappingCommand 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.AgvStartMappingCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.AgvStartMappingCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.AgvStartMappingCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.AgvStartMappingCommand 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.AgvStartMappingCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.AgvStartMappingCommand 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.AgvStartMappingCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.AgvStartMappingCommand 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.AgvStartMappingCommand 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.AgvStartMappingCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:cmvr.api.AgvStartMappingCommand)
        cmvr.api.AgvCommand.AgvStartMappingCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvStartMappingCommand_descriptor;
      }

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

      // Construct using cmvr.api.AgvCommand.AgvStartMappingCommand.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_AgvStartMappingCommand_descriptor;
      }

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

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

      @java.lang.Override
      public cmvr.api.AgvCommand.AgvStartMappingCommand buildPartial() {
        cmvr.api.AgvCommand.AgvStartMappingCommand result = new cmvr.api.AgvCommand.AgvStartMappingCommand(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.AgvStartMappingCommand) {
          return mergeFrom((cmvr.api.AgvCommand.AgvStartMappingCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cmvr.api.AgvCommand.AgvStartMappingCommand other) {
        if (other == cmvr.api.AgvCommand.AgvStartMappingCommand.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.AgvStartMappingCommand)
    }

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

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

    private static final com.google.protobuf.Parser<AgvStartMappingCommand>
        PARSER = new com.google.protobuf.AbstractParser<AgvStartMappingCommand>() {
      @java.lang.Override
      public AgvStartMappingCommand 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<AgvStartMappingCommand> parser() {
      return PARSER;
    }

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

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

  }

  public interface AgvMapStreamCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:cmvr.api.AgvMapStreamCommand)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * <pre>
   * 地图流命令。用于获取当前地图、最近地图、全量快照和后续增量更新。
   * </pre>
   *
   * Protobuf type {@code cmvr.api.AgvMapStreamCommand}
   */
  public static final class AgvMapStreamCommand extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:cmvr.api.AgvMapStreamCommand)
      AgvMapStreamCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AgvMapStreamCommand.newBuilder() to construct.
    private AgvMapStreamCommand(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private AgvMapStreamCommand() {
    }

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

    @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_AgvMapStreamCommand_descriptor;
    }

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

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

      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Request getHeader();
      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder();

      /**
       * <pre>
       * 请求地图维度：2D、3D 或二者都要。该字段不是厂商格式选择器。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvMapDimension dimension = 2;</code>
       * @return The enum numeric value on the wire for dimension.
       */
      int getDimensionValue();
      /**
       * <pre>
       * 请求地图维度：2D、3D 或二者都要。该字段不是厂商格式选择器。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvMapDimension dimension = 2;</code>
       * @return The dimension.
       */
      cmvr.msgs.Agv.AgvMapDimension getDimension();

      /**
       * <pre>
       * 地图名称。为空表示当前加载地图；若无当前地图，适配器应尝试使用最近保存/创建的地图。
       * </pre>
       *
       * <code>string map_name = 3;</code>
       * @return The mapName.
       */
      java.lang.String getMapName();
      /**
       * <pre>
       * 地图名称。为空表示当前加载地图；若无当前地图，适配器应尝试使用最近保存/创建的地图。
       * </pre>
       *
       * <code>string map_name = 3;</code>
       * @return The bytes for mapName.
       */
      com.google.protobuf.ByteString
          getMapNameBytes();

      /**
       * <pre>
       * 断点续传令牌。为空表示上位机没有缓存，服务端应先发送全量快照。
       * </pre>
       *
       * <code>string resume_token = 4;</code>
       * @return The resumeToken.
       */
      java.lang.String getResumeToken();
      /**
       * <pre>
       * 断点续传令牌。为空表示上位机没有缓存，服务端应先发送全量快照。
       * </pre>
       *
       * <code>string resume_token = 4;</code>
       * @return The bytes for resumeToken.
       */
      com.google.protobuf.ByteString
          getResumeTokenBytes();

      /**
       * <pre>
       * 是否请求全量快照。首次请求通常应为 true。
       * </pre>
       *
       * <code>bool snapshot = 5;</code>
       * @return The snapshot.
       */
      boolean getSnapshot();

      /**
       * <pre>
       * 是否在快照之后保持流并发送增量更新。若适配器不支持增量，可继续发送全量并标记 update_type。
       * </pre>
       *
       * <code>bool incremental = 6;</code>
       * @return The incremental.
       */
      boolean getIncremental();

      /**
       * <pre>
       * 单条流消息建议最大载荷大小，单位：字节。小于等于 0 表示使用服务端默认值。
       * </pre>
       *
       * <code>int32 max_chunk_bytes = 7;</code>
       * @return The maxChunkBytes.
       */
      int getMaxChunkBytes();
    }
    /**
     * <pre>
     * 请求体。
     * </pre>
     *
     * Protobuf type {@code cmvr.api.AgvMapStreamCommand.Request}
     */
    public static final class Request extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.AgvMapStreamCommand.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() {
        dimension_ = 0;
        mapName_ = "";
        resumeToken_ = "";
      }

      @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_AgvMapStreamCommand_Request_descriptor;
      }

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

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Request header_;
      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <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_;
      }
      /**
       * <pre>
       * 通用请求头。header.device_id 指定目标 AGV 设备。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() {
        return getHeader();
      }

      public static final int DIMENSION_FIELD_NUMBER = 2;
      private int dimension_;
      /**
       * <pre>
       * 请求地图维度：2D、3D 或二者都要。该字段不是厂商格式选择器。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvMapDimension dimension = 2;</code>
       * @return The enum numeric value on the wire for dimension.
       */
      @java.lang.Override public int getDimensionValue() {
        return dimension_;
      }
      /**
       * <pre>
       * 请求地图维度：2D、3D 或二者都要。该字段不是厂商格式选择器。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvMapDimension dimension = 2;</code>
       * @return The dimension.
       */
      @java.lang.Override public cmvr.msgs.Agv.AgvMapDimension getDimension() {
        @SuppressWarnings("deprecation")
        cmvr.msgs.Agv.AgvMapDimension result = cmvr.msgs.Agv.AgvMapDimension.valueOf(dimension_);
        return result == null ? cmvr.msgs.Agv.AgvMapDimension.UNRECOGNIZED : result;
      }

      public static final int MAP_NAME_FIELD_NUMBER = 3;
      private volatile java.lang.Object mapName_;
      /**
       * <pre>
       * 地图名称。为空表示当前加载地图；若无当前地图，适配器应尝试使用最近保存/创建的地图。
       * </pre>
       *
       * <code>string map_name = 3;</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>string map_name = 3;</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;
        }
      }

      public static final int RESUME_TOKEN_FIELD_NUMBER = 4;
      private volatile java.lang.Object resumeToken_;
      /**
       * <pre>
       * 断点续传令牌。为空表示上位机没有缓存，服务端应先发送全量快照。
       * </pre>
       *
       * <code>string resume_token = 4;</code>
       * @return The resumeToken.
       */
      @java.lang.Override
      public java.lang.String getResumeToken() {
        java.lang.Object ref = resumeToken_;
        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();
          resumeToken_ = s;
          return s;
        }
      }
      /**
       * <pre>
       * 断点续传令牌。为空表示上位机没有缓存，服务端应先发送全量快照。
       * </pre>
       *
       * <code>string resume_token = 4;</code>
       * @return The bytes for resumeToken.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getResumeTokenBytes() {
        java.lang.Object ref = resumeToken_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          resumeToken_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int SNAPSHOT_FIELD_NUMBER = 5;
      private boolean snapshot_;
      /**
       * <pre>
       * 是否请求全量快照。首次请求通常应为 true。
       * </pre>
       *
       * <code>bool snapshot = 5;</code>
       * @return The snapshot.
       */
      @java.lang.Override
      public boolean getSnapshot() {
        return snapshot_;
      }

      public static final int INCREMENTAL_FIELD_NUMBER = 6;
      private boolean incremental_;
      /**
       * <pre>
       * 是否在快照之后保持流并发送增量更新。若适配器不支持增量，可继续发送全量并标记 update_type。
       * </pre>
       *
       * <code>bool incremental = 6;</code>
       * @return The incremental.
       */
      @java.lang.Override
      public boolean getIncremental() {
        return incremental_;
      }

      public static final int MAX_CHUNK_BYTES_FIELD_NUMBER = 7;
      private int maxChunkBytes_;
      /**
       * <pre>
       * 单条流消息建议最大载荷大小，单位：字节。小于等于 0 表示使用服务端默认值。
       * </pre>
       *
       * <code>int32 max_chunk_bytes = 7;</code>
       * @return The maxChunkBytes.
       */
      @java.lang.Override
      public int getMaxChunkBytes() {
        return maxChunkBytes_;
      }

      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 (dimension_ != cmvr.msgs.Agv.AgvMapDimension.AGV_MAP_DIMENSION_UNSPECIFIED.getNumber()) {
          output.writeEnum(2, dimension_);
        }
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(mapName_)) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 3, mapName_);
        }
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(resumeToken_)) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 4, resumeToken_);
        }
        if (snapshot_ != false) {
          output.writeBool(5, snapshot_);
        }
        if (incremental_ != false) {
          output.writeBool(6, incremental_);
        }
        if (maxChunkBytes_ != 0) {
          output.writeInt32(7, maxChunkBytes_);
        }
        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 (dimension_ != cmvr.msgs.Agv.AgvMapDimension.AGV_MAP_DIMENSION_UNSPECIFIED.getNumber()) {
          size += com.google.protobuf.CodedOutputStream
            .computeEnumSize(2, dimension_);
        }
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(mapName_)) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, mapName_);
        }
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(resumeToken_)) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, resumeToken_);
        }
        if (snapshot_ != false) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(5, snapshot_);
        }
        if (incremental_ != false) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(6, incremental_);
        }
        if (maxChunkBytes_ != 0) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(7, maxChunkBytes_);
        }
        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.AgvMapStreamCommand.Request)) {
          return super.equals(obj);
        }
        cmvr.api.AgvCommand.AgvMapStreamCommand.Request other = (cmvr.api.AgvCommand.AgvMapStreamCommand.Request) obj;

        if (hasHeader() != other.hasHeader()) return false;
        if (hasHeader()) {
          if (!getHeader()
              .equals(other.getHeader())) return false;
        }
        if (dimension_ != other.dimension_) return false;
        if (!getMapName()
            .equals(other.getMapName())) return false;
        if (!getResumeToken()
            .equals(other.getResumeToken())) return false;
        if (getSnapshot()
            != other.getSnapshot()) return false;
        if (getIncremental()
            != other.getIncremental()) return false;
        if (getMaxChunkBytes()
            != other.getMaxChunkBytes()) 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 = (37 * hash) + DIMENSION_FIELD_NUMBER;
        hash = (53 * hash) + dimension_;
        hash = (37 * hash) + MAP_NAME_FIELD_NUMBER;
        hash = (53 * hash) + getMapName().hashCode();
        hash = (37 * hash) + RESUME_TOKEN_FIELD_NUMBER;
        hash = (53 * hash) + getResumeToken().hashCode();
        hash = (37 * hash) + SNAPSHOT_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getSnapshot());
        hash = (37 * hash) + INCREMENTAL_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getIncremental());
        hash = (37 * hash) + MAX_CHUNK_BYTES_FIELD_NUMBER;
        hash = (53 * hash) + getMaxChunkBytes();
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.AgvCommand.AgvMapStreamCommand.Request parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvMapStreamCommand.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.AgvMapStreamCommand.Request parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvMapStreamCommand.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.AgvMapStreamCommand.Request parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvMapStreamCommand.Request parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.AgvMapStreamCommand.Request parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvMapStreamCommand.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.AgvMapStreamCommand.Request parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvMapStreamCommand.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.AgvMapStreamCommand.Request parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvMapStreamCommand.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.AgvMapStreamCommand.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;
      }
      /**
       * <pre>
       * 请求体。
       * </pre>
       *
       * Protobuf type {@code cmvr.api.AgvMapStreamCommand.Request}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.AgvMapStreamCommand.Request)
          cmvr.api.AgvCommand.AgvMapStreamCommand.RequestOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvMapStreamCommand_Request_descriptor;
        }

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

        // Construct using cmvr.api.AgvCommand.AgvMapStreamCommand.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;
          }
          dimension_ = 0;

          mapName_ = "";

          resumeToken_ = "";

          snapshot_ = false;

          incremental_ = false;

          maxChunkBytes_ = 0;

          return this;
        }

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

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

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

        @java.lang.Override
        public cmvr.api.AgvCommand.AgvMapStreamCommand.Request buildPartial() {
          cmvr.api.AgvCommand.AgvMapStreamCommand.Request result = new cmvr.api.AgvCommand.AgvMapStreamCommand.Request(this);
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          result.dimension_ = dimension_;
          result.mapName_ = mapName_;
          result.resumeToken_ = resumeToken_;
          result.snapshot_ = snapshot_;
          result.incremental_ = incremental_;
          result.maxChunkBytes_ = maxChunkBytes_;
          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.AgvMapStreamCommand.Request) {
            return mergeFrom((cmvr.api.AgvCommand.AgvMapStreamCommand.Request)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.AgvCommand.AgvMapStreamCommand.Request other) {
          if (other == cmvr.api.AgvCommand.AgvMapStreamCommand.Request.getDefaultInstance()) return this;
          if (other.hasHeader()) {
            mergeHeader(other.getHeader());
          }
          if (other.dimension_ != 0) {
            setDimensionValue(other.getDimensionValue());
          }
          if (!other.getMapName().isEmpty()) {
            mapName_ = other.mapName_;
            onChanged();
          }
          if (!other.getResumeToken().isEmpty()) {
            resumeToken_ = other.resumeToken_;
            onChanged();
          }
          if (other.getSnapshot() != false) {
            setSnapshot(other.getSnapshot());
          }
          if (other.getIncremental() != false) {
            setIncremental(other.getIncremental());
          }
          if (other.getMaxChunkBytes() != 0) {
            setMaxChunkBytes(other.getMaxChunkBytes());
          }
          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 16: {
                  dimension_ = input.readEnum();

                  break;
                } // case 16
                case 26: {
                  mapName_ = input.readStringRequireUtf8();

                  break;
                } // case 26
                case 34: {
                  resumeToken_ = input.readStringRequireUtf8();

                  break;
                } // case 34
                case 40: {
                  snapshot_ = input.readBool();

                  break;
                } // case 40
                case 48: {
                  incremental_ = input.readBool();

                  break;
                } // case 48
                case 56: {
                  maxChunkBytes_ = input.readInt32();

                  break;
                } // case 56
                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_;
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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();
          }
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Request.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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_;
          }
        }
        /**
         * <pre>
         * 通用请求头。header.device_id 指定目标 AGV 设备。
         * </pre>
         *
         * <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 int dimension_ = 0;
        /**
         * <pre>
         * 请求地图维度：2D、3D 或二者都要。该字段不是厂商格式选择器。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvMapDimension dimension = 2;</code>
         * @return The enum numeric value on the wire for dimension.
         */
        @java.lang.Override public int getDimensionValue() {
          return dimension_;
        }
        /**
         * <pre>
         * 请求地图维度：2D、3D 或二者都要。该字段不是厂商格式选择器。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvMapDimension dimension = 2;</code>
         * @param value The enum numeric value on the wire for dimension to set.
         * @return This builder for chaining.
         */
        public Builder setDimensionValue(int value) {
          
          dimension_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * 请求地图维度：2D、3D 或二者都要。该字段不是厂商格式选择器。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvMapDimension dimension = 2;</code>
         * @return The dimension.
         */
        @java.lang.Override
        public cmvr.msgs.Agv.AgvMapDimension getDimension() {
          @SuppressWarnings("deprecation")
          cmvr.msgs.Agv.AgvMapDimension result = cmvr.msgs.Agv.AgvMapDimension.valueOf(dimension_);
          return result == null ? cmvr.msgs.Agv.AgvMapDimension.UNRECOGNIZED : result;
        }
        /**
         * <pre>
         * 请求地图维度：2D、3D 或二者都要。该字段不是厂商格式选择器。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvMapDimension dimension = 2;</code>
         * @param value The dimension to set.
         * @return This builder for chaining.
         */
        public Builder setDimension(cmvr.msgs.Agv.AgvMapDimension value) {
          if (value == null) {
            throw new NullPointerException();
          }
          
          dimension_ = value.getNumber();
          onChanged();
          return this;
        }
        /**
         * <pre>
         * 请求地图维度：2D、3D 或二者都要。该字段不是厂商格式选择器。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvMapDimension dimension = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearDimension() {
          
          dimension_ = 0;
          onChanged();
          return this;
        }

        private java.lang.Object mapName_ = "";
        /**
         * <pre>
         * 地图名称。为空表示当前加载地图；若无当前地图，适配器应尝试使用最近保存/创建的地图。
         * </pre>
         *
         * <code>string map_name = 3;</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>string map_name = 3;</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>string map_name = 3;</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();
  }
  
          mapName_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * 地图名称。为空表示当前加载地图；若无当前地图，适配器应尝试使用最近保存/创建的地图。
         * </pre>
         *
         * <code>string map_name = 3;</code>
         * @return This builder for chaining.
         */
        public Builder clearMapName() {
          
          mapName_ = getDefaultInstance().getMapName();
          onChanged();
          return this;
        }
        /**
         * <pre>
         * 地图名称。为空表示当前加载地图；若无当前地图，适配器应尝试使用最近保存/创建的地图。
         * </pre>
         *
         * <code>string map_name = 3;</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);
          
          mapName_ = value;
          onChanged();
          return this;
        }

        private java.lang.Object resumeToken_ = "";
        /**
         * <pre>
         * 断点续传令牌。为空表示上位机没有缓存，服务端应先发送全量快照。
         * </pre>
         *
         * <code>string resume_token = 4;</code>
         * @return The resumeToken.
         */
        public java.lang.String getResumeToken() {
          java.lang.Object ref = resumeToken_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            resumeToken_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <pre>
         * 断点续传令牌。为空表示上位机没有缓存，服务端应先发送全量快照。
         * </pre>
         *
         * <code>string resume_token = 4;</code>
         * @return The bytes for resumeToken.
         */
        public com.google.protobuf.ByteString
            getResumeTokenBytes() {
          java.lang.Object ref = resumeToken_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            resumeToken_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <pre>
         * 断点续传令牌。为空表示上位机没有缓存，服务端应先发送全量快照。
         * </pre>
         *
         * <code>string resume_token = 4;</code>
         * @param value The resumeToken to set.
         * @return This builder for chaining.
         */
        public Builder setResumeToken(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          resumeToken_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * 断点续传令牌。为空表示上位机没有缓存，服务端应先发送全量快照。
         * </pre>
         *
         * <code>string resume_token = 4;</code>
         * @return This builder for chaining.
         */
        public Builder clearResumeToken() {
          
          resumeToken_ = getDefaultInstance().getResumeToken();
          onChanged();
          return this;
        }
        /**
         * <pre>
         * 断点续传令牌。为空表示上位机没有缓存，服务端应先发送全量快照。
         * </pre>
         *
         * <code>string resume_token = 4;</code>
         * @param value The bytes for resumeToken to set.
         * @return This builder for chaining.
         */
        public Builder setResumeTokenBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
          
          resumeToken_ = value;
          onChanged();
          return this;
        }

        private boolean snapshot_ ;
        /**
         * <pre>
         * 是否请求全量快照。首次请求通常应为 true。
         * </pre>
         *
         * <code>bool snapshot = 5;</code>
         * @return The snapshot.
         */
        @java.lang.Override
        public boolean getSnapshot() {
          return snapshot_;
        }
        /**
         * <pre>
         * 是否请求全量快照。首次请求通常应为 true。
         * </pre>
         *
         * <code>bool snapshot = 5;</code>
         * @param value The snapshot to set.
         * @return This builder for chaining.
         */
        public Builder setSnapshot(boolean value) {
          
          snapshot_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * 是否请求全量快照。首次请求通常应为 true。
         * </pre>
         *
         * <code>bool snapshot = 5;</code>
         * @return This builder for chaining.
         */
        public Builder clearSnapshot() {
          
          snapshot_ = false;
          onChanged();
          return this;
        }

        private boolean incremental_ ;
        /**
         * <pre>
         * 是否在快照之后保持流并发送增量更新。若适配器不支持增量，可继续发送全量并标记 update_type。
         * </pre>
         *
         * <code>bool incremental = 6;</code>
         * @return The incremental.
         */
        @java.lang.Override
        public boolean getIncremental() {
          return incremental_;
        }
        /**
         * <pre>
         * 是否在快照之后保持流并发送增量更新。若适配器不支持增量，可继续发送全量并标记 update_type。
         * </pre>
         *
         * <code>bool incremental = 6;</code>
         * @param value The incremental to set.
         * @return This builder for chaining.
         */
        public Builder setIncremental(boolean value) {
          
          incremental_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * 是否在快照之后保持流并发送增量更新。若适配器不支持增量，可继续发送全量并标记 update_type。
         * </pre>
         *
         * <code>bool incremental = 6;</code>
         * @return This builder for chaining.
         */
        public Builder clearIncremental() {
          
          incremental_ = false;
          onChanged();
          return this;
        }

        private int maxChunkBytes_ ;
        /**
         * <pre>
         * 单条流消息建议最大载荷大小，单位：字节。小于等于 0 表示使用服务端默认值。
         * </pre>
         *
         * <code>int32 max_chunk_bytes = 7;</code>
         * @return The maxChunkBytes.
         */
        @java.lang.Override
        public int getMaxChunkBytes() {
          return maxChunkBytes_;
        }
        /**
         * <pre>
         * 单条流消息建议最大载荷大小，单位：字节。小于等于 0 表示使用服务端默认值。
         * </pre>
         *
         * <code>int32 max_chunk_bytes = 7;</code>
         * @param value The maxChunkBytes to set.
         * @return This builder for chaining.
         */
        public Builder setMaxChunkBytes(int value) {
          
          maxChunkBytes_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * 单条流消息建议最大载荷大小，单位：字节。小于等于 0 表示使用服务端默认值。
         * </pre>
         *
         * <code>int32 max_chunk_bytes = 7;</code>
         * @return This builder for chaining.
         */
        public Builder clearMaxChunkBytes() {
          
          maxChunkBytes_ = 0;
          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.AgvMapStreamCommand.Request)
      }

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

      public static cmvr.api.AgvCommand.AgvMapStreamCommand.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.AgvMapStreamCommand.Request getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

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

      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Feedback getHeader();
      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder();

      /**
       * <pre>
       * 统一地图更新。payload 只会是 map_2d 或 map_3d，不暴露厂商原始格式。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvUnifiedMapUpdate update = 2;</code>
       * @return Whether the update field is set.
       */
      boolean hasUpdate();
      /**
       * <pre>
       * 统一地图更新。payload 只会是 map_2d 或 map_3d，不暴露厂商原始格式。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvUnifiedMapUpdate update = 2;</code>
       * @return The update.
       */
      cmvr.msgs.Agv.AgvUnifiedMapUpdate getUpdate();
      /**
       * <pre>
       * 统一地图更新。payload 只会是 map_2d 或 map_3d，不暴露厂商原始格式。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvUnifiedMapUpdate update = 2;</code>
       */
      cmvr.msgs.Agv.AgvUnifiedMapUpdateOrBuilder getUpdateOrBuilder();
    }
    /**
     * <pre>
     * 反馈体。
     * </pre>
     *
     * Protobuf type {@code cmvr.api.AgvMapStreamCommand.Feedback}
     */
    public static final class Feedback extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.AgvMapStreamCommand.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_AgvMapStreamCommand_Feedback_descriptor;
      }

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

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Feedback header_;
      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <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_;
      }
      /**
       * <pre>
       * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
       * </pre>
       *
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() {
        return getHeader();
      }

      public static final int UPDATE_FIELD_NUMBER = 2;
      private cmvr.msgs.Agv.AgvUnifiedMapUpdate update_;
      /**
       * <pre>
       * 统一地图更新。payload 只会是 map_2d 或 map_3d，不暴露厂商原始格式。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvUnifiedMapUpdate update = 2;</code>
       * @return Whether the update field is set.
       */
      @java.lang.Override
      public boolean hasUpdate() {
        return update_ != null;
      }
      /**
       * <pre>
       * 统一地图更新。payload 只会是 map_2d 或 map_3d，不暴露厂商原始格式。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvUnifiedMapUpdate update = 2;</code>
       * @return The update.
       */
      @java.lang.Override
      public cmvr.msgs.Agv.AgvUnifiedMapUpdate getUpdate() {
        return update_ == null ? cmvr.msgs.Agv.AgvUnifiedMapUpdate.getDefaultInstance() : update_;
      }
      /**
       * <pre>
       * 统一地图更新。payload 只会是 map_2d 或 map_3d，不暴露厂商原始格式。
       * </pre>
       *
       * <code>.cmvr.msgs.AgvUnifiedMapUpdate update = 2;</code>
       */
      @java.lang.Override
      public cmvr.msgs.Agv.AgvUnifiedMapUpdateOrBuilder getUpdateOrBuilder() {
        return getUpdate();
      }

      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 (update_ != null) {
          output.writeMessage(2, getUpdate());
        }
        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 (update_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, getUpdate());
        }
        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.AgvMapStreamCommand.Feedback)) {
          return super.equals(obj);
        }
        cmvr.api.AgvCommand.AgvMapStreamCommand.Feedback other = (cmvr.api.AgvCommand.AgvMapStreamCommand.Feedback) obj;

        if (hasHeader() != other.hasHeader()) return false;
        if (hasHeader()) {
          if (!getHeader()
              .equals(other.getHeader())) return false;
        }
        if (hasUpdate() != other.hasUpdate()) return false;
        if (hasUpdate()) {
          if (!getUpdate()
              .equals(other.getUpdate())) 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 (hasUpdate()) {
          hash = (37 * hash) + UPDATE_FIELD_NUMBER;
          hash = (53 * hash) + getUpdate().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.AgvCommand.AgvMapStreamCommand.Feedback parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvMapStreamCommand.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.AgvMapStreamCommand.Feedback parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvMapStreamCommand.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.AgvMapStreamCommand.Feedback parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.AgvCommand.AgvMapStreamCommand.Feedback parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.AgvCommand.AgvMapStreamCommand.Feedback parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvMapStreamCommand.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.AgvMapStreamCommand.Feedback parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvMapStreamCommand.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.AgvMapStreamCommand.Feedback parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.AgvCommand.AgvMapStreamCommand.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.AgvMapStreamCommand.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;
      }
      /**
       * <pre>
       * 反馈体。
       * </pre>
       *
       * Protobuf type {@code cmvr.api.AgvMapStreamCommand.Feedback}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.AgvMapStreamCommand.Feedback)
          cmvr.api.AgvCommand.AgvMapStreamCommand.FeedbackOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvMapStreamCommand_Feedback_descriptor;
        }

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

        // Construct using cmvr.api.AgvCommand.AgvMapStreamCommand.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 (updateBuilder_ == null) {
            update_ = null;
          } else {
            update_ = null;
            updateBuilder_ = null;
          }
          return this;
        }

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

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

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

        @java.lang.Override
        public cmvr.api.AgvCommand.AgvMapStreamCommand.Feedback buildPartial() {
          cmvr.api.AgvCommand.AgvMapStreamCommand.Feedback result = new cmvr.api.AgvCommand.AgvMapStreamCommand.Feedback(this);
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          if (updateBuilder_ == null) {
            result.update_ = update_;
          } else {
            result.update_ = updateBuilder_.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.AgvMapStreamCommand.Feedback) {
            return mergeFrom((cmvr.api.AgvCommand.AgvMapStreamCommand.Feedback)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.AgvCommand.AgvMapStreamCommand.Feedback other) {
          if (other == cmvr.api.AgvCommand.AgvMapStreamCommand.Feedback.getDefaultInstance()) return this;
          if (other.hasHeader()) {
            mergeHeader(other.getHeader());
          }
          if (other.hasUpdate()) {
            mergeUpdate(other.getUpdate());
          }
          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(
                      getUpdateFieldBuilder().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_;
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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();
          }
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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;
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Feedback.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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_;
          }
        }
        /**
         * <pre>
         * 通用反馈头。包含成功标志、错误信息和反馈时间戳。
         * </pre>
         *
         * <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.msgs.Agv.AgvUnifiedMapUpdate update_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.msgs.Agv.AgvUnifiedMapUpdate, cmvr.msgs.Agv.AgvUnifiedMapUpdate.Builder, cmvr.msgs.Agv.AgvUnifiedMapUpdateOrBuilder> updateBuilder_;
        /**
         * <pre>
         * 统一地图更新。payload 只会是 map_2d 或 map_3d，不暴露厂商原始格式。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvUnifiedMapUpdate update = 2;</code>
         * @return Whether the update field is set.
         */
        public boolean hasUpdate() {
          return updateBuilder_ != null || update_ != null;
        }
        /**
         * <pre>
         * 统一地图更新。payload 只会是 map_2d 或 map_3d，不暴露厂商原始格式。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvUnifiedMapUpdate update = 2;</code>
         * @return The update.
         */
        public cmvr.msgs.Agv.AgvUnifiedMapUpdate getUpdate() {
          if (updateBuilder_ == null) {
            return update_ == null ? cmvr.msgs.Agv.AgvUnifiedMapUpdate.getDefaultInstance() : update_;
          } else {
            return updateBuilder_.getMessage();
          }
        }
        /**
         * <pre>
         * 统一地图更新。payload 只会是 map_2d 或 map_3d，不暴露厂商原始格式。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvUnifiedMapUpdate update = 2;</code>
         */
        public Builder setUpdate(cmvr.msgs.Agv.AgvUnifiedMapUpdate value) {
          if (updateBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            update_ = value;
            onChanged();
          } else {
            updateBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <pre>
         * 统一地图更新。payload 只会是 map_2d 或 map_3d，不暴露厂商原始格式。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvUnifiedMapUpdate update = 2;</code>
         */
        public Builder setUpdate(
            cmvr.msgs.Agv.AgvUnifiedMapUpdate.Builder builderForValue) {
          if (updateBuilder_ == null) {
            update_ = builderForValue.build();
            onChanged();
          } else {
            updateBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <pre>
         * 统一地图更新。payload 只会是 map_2d 或 map_3d，不暴露厂商原始格式。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvUnifiedMapUpdate update = 2;</code>
         */
        public Builder mergeUpdate(cmvr.msgs.Agv.AgvUnifiedMapUpdate value) {
          if (updateBuilder_ == null) {
            if (update_ != null) {
              update_ =
                cmvr.msgs.Agv.AgvUnifiedMapUpdate.newBuilder(update_).mergeFrom(value).buildPartial();
            } else {
              update_ = value;
            }
            onChanged();
          } else {
            updateBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <pre>
         * 统一地图更新。payload 只会是 map_2d 或 map_3d，不暴露厂商原始格式。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvUnifiedMapUpdate update = 2;</code>
         */
        public Builder clearUpdate() {
          if (updateBuilder_ == null) {
            update_ = null;
            onChanged();
          } else {
            update_ = null;
            updateBuilder_ = null;
          }

          return this;
        }
        /**
         * <pre>
         * 统一地图更新。payload 只会是 map_2d 或 map_3d，不暴露厂商原始格式。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvUnifiedMapUpdate update = 2;</code>
         */
        public cmvr.msgs.Agv.AgvUnifiedMapUpdate.Builder getUpdateBuilder() {
          
          onChanged();
          return getUpdateFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * 统一地图更新。payload 只会是 map_2d 或 map_3d，不暴露厂商原始格式。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvUnifiedMapUpdate update = 2;</code>
         */
        public cmvr.msgs.Agv.AgvUnifiedMapUpdateOrBuilder getUpdateOrBuilder() {
          if (updateBuilder_ != null) {
            return updateBuilder_.getMessageOrBuilder();
          } else {
            return update_ == null ?
                cmvr.msgs.Agv.AgvUnifiedMapUpdate.getDefaultInstance() : update_;
          }
        }
        /**
         * <pre>
         * 统一地图更新。payload 只会是 map_2d 或 map_3d，不暴露厂商原始格式。
         * </pre>
         *
         * <code>.cmvr.msgs.AgvUnifiedMapUpdate update = 2;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.msgs.Agv.AgvUnifiedMapUpdate, cmvr.msgs.Agv.AgvUnifiedMapUpdate.Builder, cmvr.msgs.Agv.AgvUnifiedMapUpdateOrBuilder> 
            getUpdateFieldBuilder() {
          if (updateBuilder_ == null) {
            updateBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.msgs.Agv.AgvUnifiedMapUpdate, cmvr.msgs.Agv.AgvUnifiedMapUpdate.Builder, cmvr.msgs.Agv.AgvUnifiedMapUpdateOrBuilder>(
                    getUpdate(),
                    getParentForChildren(),
                    isClean());
            update_ = null;
          }
          return updateBuilder_;
        }
        @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.AgvMapStreamCommand.Feedback)
      }

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

      public static cmvr.api.AgvCommand.AgvMapStreamCommand.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.AgvMapStreamCommand.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.AgvMapStreamCommand)) {
        return super.equals(obj);
      }
      cmvr.api.AgvCommand.AgvMapStreamCommand other = (cmvr.api.AgvCommand.AgvMapStreamCommand) 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.AgvMapStreamCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.AgvMapStreamCommand 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.AgvMapStreamCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.AgvMapStreamCommand 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.AgvMapStreamCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.AgvCommand.AgvMapStreamCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.AgvCommand.AgvMapStreamCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.AgvMapStreamCommand 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.AgvMapStreamCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.AgvMapStreamCommand 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.AgvMapStreamCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.AgvCommand.AgvMapStreamCommand 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.AgvMapStreamCommand 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.AgvMapStreamCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:cmvr.api.AgvMapStreamCommand)
        cmvr.api.AgvCommand.AgvMapStreamCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.AgvCommand.internal_static_cmvr_api_AgvMapStreamCommand_descriptor;
      }

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

      // Construct using cmvr.api.AgvCommand.AgvMapStreamCommand.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_AgvMapStreamCommand_descriptor;
      }

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

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

      @java.lang.Override
      public cmvr.api.AgvCommand.AgvMapStreamCommand buildPartial() {
        cmvr.api.AgvCommand.AgvMapStreamCommand result = new cmvr.api.AgvCommand.AgvMapStreamCommand(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.AgvMapStreamCommand) {
          return mergeFrom((cmvr.api.AgvCommand.AgvMapStreamCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cmvr.api.AgvCommand.AgvMapStreamCommand other) {
        if (other == cmvr.api.AgvCommand.AgvMapStreamCommand.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.AgvMapStreamCommand)
    }

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

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

    private static final com.google.protobuf.Parser<AgvMapStreamCommand>
        PARSER = new com.google.protobuf.AbstractParser<AgvMapStreamCommand>() {
      @java.lang.Override
      public AgvMapStreamCommand 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<AgvMapStreamCommand> parser() {
      return PARSER;
    }

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

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

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_AgvRuntimeStateCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_AgvRuntimeStateCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_AgvRuntimeStateCommand_Request_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_AgvRuntimeStateCommand_Request_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_AgvRuntimeStateCommand_Feedback_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_AgvRuntimeStateCommand_Feedback_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_AgvNavigationStatusCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_AgvNavigationStatusCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_AgvNavigationStatusCommand_Request_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_AgvNavigationStatusCommand_Request_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_AgvNavigationStatusCommand_Feedback_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_AgvNavigationStatusCommand_Feedback_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_AgvNavigateToPoseCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_AgvNavigateToPoseCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_AgvNavigateToPoseCommand_Request_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_AgvNavigateToPoseCommand_Request_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_AgvNavigateToPoseCommand_Feedback_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_AgvNavigateToPoseCommand_Feedback_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_AgvNavigateToStationCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_AgvNavigateToStationCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_AgvNavigateToStationCommand_Request_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_AgvNavigateToStationCommand_Request_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_AgvNavigateToStationCommand_Feedback_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_AgvNavigateToStationCommand_Feedback_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_AgvFollowPathCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_AgvFollowPathCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_AgvFollowPathCommand_Request_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_AgvFollowPathCommand_Request_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_AgvFollowPathCommand_Feedback_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_AgvFollowPathCommand_Feedback_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_AgvSetVelocityCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_AgvSetVelocityCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_AgvSetVelocityCommand_Request_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_AgvSetVelocityCommand_Request_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_AgvSetVelocityCommand_Feedback_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_AgvSetVelocityCommand_Feedback_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_AgvListMapsCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_AgvListMapsCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_AgvListMapsCommand_Request_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_AgvListMapsCommand_Request_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_AgvListMapsCommand_Feedback_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_AgvListMapsCommand_Feedback_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_AgvListStationsCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_AgvListStationsCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_AgvListStationsCommand_Request_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_AgvListStationsCommand_Request_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_AgvListStationsCommand_Feedback_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_AgvListStationsCommand_Feedback_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_AgvMapCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_AgvMapCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_AgvMapCommand_Request_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_AgvMapCommand_Request_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_AgvMapCommand_Feedback_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_AgvMapCommand_Feedback_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_AgvStartMappingCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_AgvStartMappingCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_AgvStartMappingCommand_Request_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_AgvStartMappingCommand_Request_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_AgvStartMappingCommand_Feedback_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_AgvStartMappingCommand_Feedback_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_AgvMapStreamCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_AgvMapStreamCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_AgvMapStreamCommand_Request_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_AgvMapStreamCommand_Request_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_AgvMapStreamCommand_Feedback_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_AgvMapStreamCommand_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\032\023cmvr/msgs/agv.pro" +
      "to\"\275\001\n\026AgvRuntimeStateCommand\032:\n\007Request" +
      "\022/\n\006header\030\001 \001(\0132\037.cmvr.api.CommandHeade" +
      "r.Request\032g\n\010Feedback\0220\n\006header\030\001 \001(\0132 ." +
      "cmvr.api.CommandHeader.Feedback\022)\n\005state" +
      "\030\002 \001(\0132\032.cmvr.msgs.AgvRuntimeState\"\306\001\n\032A" +
      "gvNavigationStatusCommand\032:\n\007Request\022/\n\006" +
      "header\030\001 \001(\0132\037.cmvr.api.CommandHeader.Re" +
      "quest\032l\n\010Feedback\0220\n\006header\030\001 \001(\0132 .cmvr" +
      ".api.CommandHeader.Feedback\022.\n\006status\030\002 " +
      "\001(\0132\036.cmvr.msgs.AgvNavigationStatus\"\234\002\n\030" +
      "AgvNavigateToPoseCommand\032\301\001\n\007Request\022/\n\006" +
      "header\030\001 \001(\0132\037.cmvr.api.CommandHeader.Re" +
      "quest\022\"\n\004pose\030\002 \001(\0132\024.cmvr.msgs.AgvPose2" +
      "d\022,\n\007options\030\003 \001(\0132\033.cmvr.msgs.AgvMotion" +
      "Options\0223\n\016adapter_params\030\004 \001(\0132\033.cmvr.m" +
      "sgs.AgvAdapterParams\032<\n\010Feedback\0220\n\006head" +
      "er\030\001 \001(\0132 .cmvr.api.CommandHeader.Feedba" +
      "ck\"\217\002\n\033AgvNavigateToStationCommand\032\261\001\n\007R" +
      "equest\022/\n\006header\030\001 \001(\0132\037.cmvr.api.Comman" +
      "dHeader.Request\022\022\n\nstation_id\030\002 \001(\t\022,\n\007o" +
      "ptions\030\003 \001(\0132\033.cmvr.msgs.AgvMotionOption" +
      "s\0223\n\016adapter_params\030\004 \001(\0132\033.cmvr.msgs.Ag" +
      "vAdapterParams\032<\n\010Feedback\0220\n\006header\030\001 \001" +
      "(\0132 .cmvr.api.CommandHeader.Feedback\"\271\001\n" +
      "\024AgvFollowPathCommand\032c\n\007Request\022/\n\006head" +
      "er\030\001 \001(\0132\037.cmvr.api.CommandHeader.Reques" +
      "t\022\'\n\004path\030\002 \003(\0132\031.cmvr.msgs.AgvPathSegme" +
      "nt\032<\n\010Feedback\0220\n\006header\030\001 \001(\0132 .cmvr.ap" +
      "i.CommandHeader.Feedback\"\273\001\n\025AgvSetVeloc" +
      "ityCommand\032d\n\007Request\022/\n\006header\030\001 \001(\0132\037." +
      "cmvr.api.CommandHeader.Request\022(\n\010veloci" +
      "ty\030\002 \001(\0132\026.cmvr.msgs.AgvVelocity\032<\n\010Feed" +
      "back\0220\n\006header\030\001 \001(\0132 .cmvr.api.CommandH" +
      "eader.Feedback\"\234\001\n\022AgvListMapsCommand\032:\n" +
      "\007Request\022/\n\006header\030\001 \001(\0132\037.cmvr.api.Comm" +
      "andHeader.Request\032J\n\010Feedback\0220\n\006header\030" +
      "\001 \001(\0132 .cmvr.api.CommandHeader.Feedback\022" +
      "\014\n\004maps\030\002 \003(\t\"\273\001\n\026AgvListStationsCommand" +
      "\032:\n\007Request\022/\n\006header\030\001 \001(\0132\037.cmvr.api.C" +
      "ommandHeader.Request\032e\n\010Feedback\0220\n\006head" +
      "er\030\001 \001(\0132 .cmvr.api.CommandHeader.Feedba" +
      "ck\022\'\n\010stations\030\002 \003(\0132\025.cmvr.msgs.AgvStat" +
      "ion\"\275\001\n\rAgvMapCommand\032]\n\007Request\022/\n\006head" +
      "er\030\001 \001(\0132\037.cmvr.api.CommandHeader.Reques" +
      "t\022\020\n\010map_name\030\002 \001(\t\022\017\n\007content\030\003 \001(\t\032M\n\010" +
      "Feedback\0220\n\006header\030\001 \001(\0132 .cmvr.api.Comm" +
      "andHeader.Feedback\022\017\n\007content\030\002 \001(\t\"\373\001\n\026" +
      "AgvStartMappingCommand\032\216\001\n\007Request\022/\n\006he" +
      "ader\030\001 \001(\0132\037.cmvr.api.CommandHeader.Requ" +
      "est\022-\n\tdimension\030\002 \001(\0162\032.cmvr.msgs.AgvMa" +
      "pDimension\022\020\n\010map_name\030\003 \001(\t\022\021\n\treal_tim" +
      "e\030\004 \001(\010\032P\n\010Feedback\0220\n\006header\030\001 \001(\0132 .cm" +
      "vr.api.CommandHeader.Feedback\022\022\n\nsession" +
      "_id\030\002 \001(\t\"\327\002\n\023AgvMapStreamCommand\032\321\001\n\007Re" +
      "quest\022/\n\006header\030\001 \001(\0132\037.cmvr.api.Command" +
      "Header.Request\022-\n\tdimension\030\002 \001(\0162\032.cmvr" +
      ".msgs.AgvMapDimension\022\020\n\010map_name\030\003 \001(\t\022" +
      "\024\n\014resume_token\030\004 \001(\t\022\020\n\010snapshot\030\005 \001(\010\022" +
      "\023\n\013incremental\030\006 \001(\010\022\027\n\017max_chunk_bytes\030" +
      "\007 \001(\005\032l\n\010Feedback\0220\n\006header\030\001 \001(\0132 .cmvr" +
      ".api.CommandHeader.Feedback\022.\n\006update\030\002 " +
      "\001(\0132\036.cmvr.msgs.AgvUnifiedMapUpdateb\006pro" +
      "to3"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          cmvr.api.Common.getDescriptor(),
          cmvr.msgs.Agv.getDescriptor(),
        });
    internal_static_cmvr_api_AgvRuntimeStateCommand_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_cmvr_api_AgvRuntimeStateCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_AgvRuntimeStateCommand_descriptor,
        new java.lang.String[] { });
    internal_static_cmvr_api_AgvRuntimeStateCommand_Request_descriptor =
      internal_static_cmvr_api_AgvRuntimeStateCommand_descriptor.getNestedTypes().get(0);
    internal_static_cmvr_api_AgvRuntimeStateCommand_Request_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_AgvRuntimeStateCommand_Request_descriptor,
        new java.lang.String[] { "Header", });
    internal_static_cmvr_api_AgvRuntimeStateCommand_Feedback_descriptor =
      internal_static_cmvr_api_AgvRuntimeStateCommand_descriptor.getNestedTypes().get(1);
    internal_static_cmvr_api_AgvRuntimeStateCommand_Feedback_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_AgvRuntimeStateCommand_Feedback_descriptor,
        new java.lang.String[] { "Header", "State", });
    internal_static_cmvr_api_AgvNavigationStatusCommand_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_cmvr_api_AgvNavigationStatusCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_AgvNavigationStatusCommand_descriptor,
        new java.lang.String[] { });
    internal_static_cmvr_api_AgvNavigationStatusCommand_Request_descriptor =
      internal_static_cmvr_api_AgvNavigationStatusCommand_descriptor.getNestedTypes().get(0);
    internal_static_cmvr_api_AgvNavigationStatusCommand_Request_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_AgvNavigationStatusCommand_Request_descriptor,
        new java.lang.String[] { "Header", });
    internal_static_cmvr_api_AgvNavigationStatusCommand_Feedback_descriptor =
      internal_static_cmvr_api_AgvNavigationStatusCommand_descriptor.getNestedTypes().get(1);
    internal_static_cmvr_api_AgvNavigationStatusCommand_Feedback_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_AgvNavigationStatusCommand_Feedback_descriptor,
        new java.lang.String[] { "Header", "Status", });
    internal_static_cmvr_api_AgvNavigateToPoseCommand_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_cmvr_api_AgvNavigateToPoseCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_AgvNavigateToPoseCommand_descriptor,
        new java.lang.String[] { });
    internal_static_cmvr_api_AgvNavigateToPoseCommand_Request_descriptor =
      internal_static_cmvr_api_AgvNavigateToPoseCommand_descriptor.getNestedTypes().get(0);
    internal_static_cmvr_api_AgvNavigateToPoseCommand_Request_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_AgvNavigateToPoseCommand_Request_descriptor,
        new java.lang.String[] { "Header", "Pose", "Options", "AdapterParams", });
    internal_static_cmvr_api_AgvNavigateToPoseCommand_Feedback_descriptor =
      internal_static_cmvr_api_AgvNavigateToPoseCommand_descriptor.getNestedTypes().get(1);
    internal_static_cmvr_api_AgvNavigateToPoseCommand_Feedback_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_AgvNavigateToPoseCommand_Feedback_descriptor,
        new java.lang.String[] { "Header", });
    internal_static_cmvr_api_AgvNavigateToStationCommand_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_cmvr_api_AgvNavigateToStationCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_AgvNavigateToStationCommand_descriptor,
        new java.lang.String[] { });
    internal_static_cmvr_api_AgvNavigateToStationCommand_Request_descriptor =
      internal_static_cmvr_api_AgvNavigateToStationCommand_descriptor.getNestedTypes().get(0);
    internal_static_cmvr_api_AgvNavigateToStationCommand_Request_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_AgvNavigateToStationCommand_Request_descriptor,
        new java.lang.String[] { "Header", "StationId", "Options", "AdapterParams", });
    internal_static_cmvr_api_AgvNavigateToStationCommand_Feedback_descriptor =
      internal_static_cmvr_api_AgvNavigateToStationCommand_descriptor.getNestedTypes().get(1);
    internal_static_cmvr_api_AgvNavigateToStationCommand_Feedback_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_AgvNavigateToStationCommand_Feedback_descriptor,
        new java.lang.String[] { "Header", });
    internal_static_cmvr_api_AgvFollowPathCommand_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_cmvr_api_AgvFollowPathCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_AgvFollowPathCommand_descriptor,
        new java.lang.String[] { });
    internal_static_cmvr_api_AgvFollowPathCommand_Request_descriptor =
      internal_static_cmvr_api_AgvFollowPathCommand_descriptor.getNestedTypes().get(0);
    internal_static_cmvr_api_AgvFollowPathCommand_Request_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_AgvFollowPathCommand_Request_descriptor,
        new java.lang.String[] { "Header", "Path", });
    internal_static_cmvr_api_AgvFollowPathCommand_Feedback_descriptor =
      internal_static_cmvr_api_AgvFollowPathCommand_descriptor.getNestedTypes().get(1);
    internal_static_cmvr_api_AgvFollowPathCommand_Feedback_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_AgvFollowPathCommand_Feedback_descriptor,
        new java.lang.String[] { "Header", });
    internal_static_cmvr_api_AgvSetVelocityCommand_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_cmvr_api_AgvSetVelocityCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_AgvSetVelocityCommand_descriptor,
        new java.lang.String[] { });
    internal_static_cmvr_api_AgvSetVelocityCommand_Request_descriptor =
      internal_static_cmvr_api_AgvSetVelocityCommand_descriptor.getNestedTypes().get(0);
    internal_static_cmvr_api_AgvSetVelocityCommand_Request_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_AgvSetVelocityCommand_Request_descriptor,
        new java.lang.String[] { "Header", "Velocity", });
    internal_static_cmvr_api_AgvSetVelocityCommand_Feedback_descriptor =
      internal_static_cmvr_api_AgvSetVelocityCommand_descriptor.getNestedTypes().get(1);
    internal_static_cmvr_api_AgvSetVelocityCommand_Feedback_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_AgvSetVelocityCommand_Feedback_descriptor,
        new java.lang.String[] { "Header", });
    internal_static_cmvr_api_AgvListMapsCommand_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_cmvr_api_AgvListMapsCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_AgvListMapsCommand_descriptor,
        new java.lang.String[] { });
    internal_static_cmvr_api_AgvListMapsCommand_Request_descriptor =
      internal_static_cmvr_api_AgvListMapsCommand_descriptor.getNestedTypes().get(0);
    internal_static_cmvr_api_AgvListMapsCommand_Request_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_AgvListMapsCommand_Request_descriptor,
        new java.lang.String[] { "Header", });
    internal_static_cmvr_api_AgvListMapsCommand_Feedback_descriptor =
      internal_static_cmvr_api_AgvListMapsCommand_descriptor.getNestedTypes().get(1);
    internal_static_cmvr_api_AgvListMapsCommand_Feedback_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_AgvListMapsCommand_Feedback_descriptor,
        new java.lang.String[] { "Header", "Maps", });
    internal_static_cmvr_api_AgvListStationsCommand_descriptor =
      getDescriptor().getMessageTypes().get(7);
    internal_static_cmvr_api_AgvListStationsCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_AgvListStationsCommand_descriptor,
        new java.lang.String[] { });
    internal_static_cmvr_api_AgvListStationsCommand_Request_descriptor =
      internal_static_cmvr_api_AgvListStationsCommand_descriptor.getNestedTypes().get(0);
    internal_static_cmvr_api_AgvListStationsCommand_Request_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_AgvListStationsCommand_Request_descriptor,
        new java.lang.String[] { "Header", });
    internal_static_cmvr_api_AgvListStationsCommand_Feedback_descriptor =
      internal_static_cmvr_api_AgvListStationsCommand_descriptor.getNestedTypes().get(1);
    internal_static_cmvr_api_AgvListStationsCommand_Feedback_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_AgvListStationsCommand_Feedback_descriptor,
        new java.lang.String[] { "Header", "Stations", });
    internal_static_cmvr_api_AgvMapCommand_descriptor =
      getDescriptor().getMessageTypes().get(8);
    internal_static_cmvr_api_AgvMapCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_AgvMapCommand_descriptor,
        new java.lang.String[] { });
    internal_static_cmvr_api_AgvMapCommand_Request_descriptor =
      internal_static_cmvr_api_AgvMapCommand_descriptor.getNestedTypes().get(0);
    internal_static_cmvr_api_AgvMapCommand_Request_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_AgvMapCommand_Request_descriptor,
        new java.lang.String[] { "Header", "MapName", "Content", });
    internal_static_cmvr_api_AgvMapCommand_Feedback_descriptor =
      internal_static_cmvr_api_AgvMapCommand_descriptor.getNestedTypes().get(1);
    internal_static_cmvr_api_AgvMapCommand_Feedback_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_AgvMapCommand_Feedback_descriptor,
        new java.lang.String[] { "Header", "Content", });
    internal_static_cmvr_api_AgvStartMappingCommand_descriptor =
      getDescriptor().getMessageTypes().get(9);
    internal_static_cmvr_api_AgvStartMappingCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_AgvStartMappingCommand_descriptor,
        new java.lang.String[] { });
    internal_static_cmvr_api_AgvStartMappingCommand_Request_descriptor =
      internal_static_cmvr_api_AgvStartMappingCommand_descriptor.getNestedTypes().get(0);
    internal_static_cmvr_api_AgvStartMappingCommand_Request_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_AgvStartMappingCommand_Request_descriptor,
        new java.lang.String[] { "Header", "Dimension", "MapName", "RealTime", });
    internal_static_cmvr_api_AgvStartMappingCommand_Feedback_descriptor =
      internal_static_cmvr_api_AgvStartMappingCommand_descriptor.getNestedTypes().get(1);
    internal_static_cmvr_api_AgvStartMappingCommand_Feedback_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_AgvStartMappingCommand_Feedback_descriptor,
        new java.lang.String[] { "Header", "SessionId", });
    internal_static_cmvr_api_AgvMapStreamCommand_descriptor =
      getDescriptor().getMessageTypes().get(10);
    internal_static_cmvr_api_AgvMapStreamCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_AgvMapStreamCommand_descriptor,
        new java.lang.String[] { });
    internal_static_cmvr_api_AgvMapStreamCommand_Request_descriptor =
      internal_static_cmvr_api_AgvMapStreamCommand_descriptor.getNestedTypes().get(0);
    internal_static_cmvr_api_AgvMapStreamCommand_Request_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_AgvMapStreamCommand_Request_descriptor,
        new java.lang.String[] { "Header", "Dimension", "MapName", "ResumeToken", "Snapshot", "Incremental", "MaxChunkBytes", });
    internal_static_cmvr_api_AgvMapStreamCommand_Feedback_descriptor =
      internal_static_cmvr_api_AgvMapStreamCommand_descriptor.getNestedTypes().get(1);
    internal_static_cmvr_api_AgvMapStreamCommand_Feedback_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_AgvMapStreamCommand_Feedback_descriptor,
        new java.lang.String[] { "Header", "Update", });
    cmvr.api.Common.getDescriptor();
    cmvr.msgs.Agv.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
