// <auto-generated>
//     Generated by the protocol buffer compiler.  DO NOT EDIT!
//     source: measure_message.proto
// </auto-generated>
#pragma warning disable 1591, 0612, 3021
#region Designer generated code

using pb = global::Google.Protobuf;
using pbc = global::Google.Protobuf.Collections;
using pbr = global::Google.Protobuf.Reflection;
using scg = global::System.Collections.Generic;
namespace Message {

  /// <summary>Holder for reflection information generated from measure_message.proto</summary>
  public static partial class MeasureMessageReflection {

    #region Descriptor
    /// <summary>File descriptor for measure_message.proto</summary>
    public static pbr::FileDescriptor Descriptor {
      get { return descriptor; }
    }
    private static pbr::FileDescriptor descriptor;

    static MeasureMessageReflection() {
      byte[] descriptorData = global::System.Convert.FromBase64String(
          string.Concat(
            "ChVtZWFzdXJlX21lc3NhZ2UucHJvdG8SB21lc3NhZ2UaEm1lc3NhZ2VfYmFz",
            "ZS5wcm90byK/AgoSTWVhc3VyZV9zdGF0dXNfbXNnEiUKCWJhc2VfaW5mbxgB",
            "IAIoCzISLm1lc3NhZ2UuQmFzZV9pbmZvEiUKCWlkX3N0cnVjdBgCIAIoCzIS",
            "Lm1lc3NhZ2UuSWRfc3RydWN0EjsKFGxhc2VyX21hbmFnZXJfc3RhdHVzGAMg",
            "AigOMh0ubWVzc2FnZS5MYXNlcl9tYW5hZ2VyX3N0YXR1cxIwChJsYXNlcl9z",
            "dGF0dV92ZWN0b3IYBCADKA4yFC5tZXNzYWdlLkxhc2VyX3N0YXR1Ej0KFWxv",
            "Y2F0ZV9tYW5hZ2VyX3N0YXR1cxgFIAIoDjIeLm1lc3NhZ2UuTG9jYXRlX21h",
            "bmFnZXJfc3RhdHVzEi0KDWVycm9yX21hbmFnZXIYBiACKAsyFi5tZXNzYWdl",
            "LkVycm9yX21hbmFnZXIieAoTTWVhc3VyZV9yZXF1ZXN0X21zZxIlCgliYXNl",
            "X2luZm8YASACKAsyEi5tZXNzYWdlLkJhc2VfaW5mbxITCgtjb21tYW5kX2tl",
            "eRgCIAIoCRIlCglpZF9zdHJ1Y3QYAyACKAsyEi5tZXNzYWdlLklkX3N0cnVj",
            "dCLhAQoUTWVhc3VyZV9yZXNwb25zZV9tc2cSJQoJYmFzZV9pbmZvGAEgAigL",
            "MhIubWVzc2FnZS5CYXNlX2luZm8SEwoLY29tbWFuZF9rZXkYAiACKAkSJQoJ",
            "aWRfc3RydWN0GAMgAigLMhIubWVzc2FnZS5JZF9zdHJ1Y3QSNwoSbG9jYXRl",
            "X2luZm9ybWF0aW9uGAQgASgLMhsubWVzc2FnZS5Mb2NhdGVfaW5mb3JtYXRp",
            "b24SLQoNZXJyb3JfbWFuYWdlchgFIAIoCzIWLm1lc3NhZ2UuRXJyb3JfbWFu",
            "YWdlciJ+ChlHcm91bmRfZGV0ZWN0X3JlcXVlc3RfbXNnEiUKCWJhc2VfaW5m",
            "bxgBIAIoCzISLm1lc3NhZ2UuQmFzZV9pbmZvEhMKC2NvbW1hbmRfa2V5GAIg",
            "AigJEiUKCWlkX3N0cnVjdBgDIAIoCzISLm1lc3NhZ2UuSWRfc3RydWN0IucB",
            "ChpHcm91bmRfZGV0ZWN0X3Jlc3BvbnNlX21zZxIlCgliYXNlX2luZm8YASAC",
            "KAsyEi5tZXNzYWdlLkJhc2VfaW5mbxITCgtjb21tYW5kX2tleRgCIAIoCRIl",
            "CglpZF9zdHJ1Y3QYAyACKAsyEi5tZXNzYWdlLklkX3N0cnVjdBI3ChJsb2Nh",
            "dGVfaW5mb3JtYXRpb24YBCABKAsyGy5tZXNzYWdlLkxvY2F0ZV9pbmZvcm1h",
            "dGlvbhItCg1lcnJvcl9tYW5hZ2VyGAUgAigLMhYubWVzc2FnZS5FcnJvcl9t",
            "YW5hZ2VyIoIEChFHcm91bmRfc3RhdHVzX21zZxIlCgliYXNlX2luZm8YASAC",
            "KAsyEi5tZXNzYWdlLkJhc2VfaW5mbxIlCglpZF9zdHJ1Y3QYAiACKAsyEi5t",
            "ZXNzYWdlLklkX3N0cnVjdBI7ChR3YW5qaV9tYW5hZ2VyX3N0YXR1cxgDIAIo",
            "DjIdLm1lc3NhZ2UuV2FuamlfbWFuYWdlcl9zdGF0dXMSRQoZd2FuamlfbGlk",
            "YXJfZGV2aWNlX3N0YXR1cxgEIAMoDjIiLm1lc3NhZ2UuV2FuamlfbGlkYXJf",
            "ZGV2aWNlX3N0YXR1cxI7ChRyZWdpb25fd29ya2VyX3N0YXR1cxgFIAIoDjId",
            "Lm1lc3NhZ2UuUmVnaW9uX3dvcmtlcl9zdGF0dXMSQAobbG9jYXRlX2luZm9y",
            "bWF0aW9uX3JlYWx0aW1lGAYgAigLMhsubWVzc2FnZS5Mb2NhdGVfaW5mb3Jt",
            "YXRpb24SLAoNZ3JvdW5kX3N0YXR1cxgHIAIoDjIVLm1lc3NhZ2UuR3JvdW5k",
            "X3N0YXR1EhUKDWJvcmRlcl9zdGF0dXMYCCACKAUSLQoNZXJyb3JfbWFuYWdl",
            "chgJIAIoCzIWLm1lc3NhZ2UuRXJyb3JfbWFuYWdlchIoCgVjbG91ZBgKIAMo",
            "CzIZLm1lc3NhZ2UuQ2xvdWRfY29vcmRpbmF0ZSIzChBDbG91ZF9jb29yZGlu",
            "YXRlEgkKAXgYASACKAISCQoBeRgCIAIoAhIJCgF6GAMgAigCIhoKCkNsb3Vk",
            "X3R5cGUSDAoEdHlwZRgBIAIoBSLEAQoXTG9jYXRlX3NpZnRfcmVxdWVzdF9t",
            "c2cSJQoJYmFzZV9pbmZvGAEgAigLMhIubWVzc2FnZS5CYXNlX2luZm8SEwoL",
            "Y29tbWFuZF9rZXkYAiACKAkSJQoJaWRfc3RydWN0GAMgAigLMhIubWVzc2Fn",
            "ZS5JZF9zdHJ1Y3QSEAoIbGlkYXJfaWQYBCACKAUSNAoRY2xvdWRfY29vcmRp",
            "bmF0ZXMYBSADKAsyGS5tZXNzYWdlLkNsb3VkX2Nvb3JkaW5hdGUi5wEKGExv",
            "Y2F0ZV9zaWZ0X3Jlc3BvbnNlX21zZxIlCgliYXNlX2luZm8YASACKAsyEi5t",
            "ZXNzYWdlLkJhc2VfaW5mbxITCgtjb21tYW5kX2tleRgCIAIoCRIlCglpZF9z",
            "dHJ1Y3QYAyACKAsyEi5tZXNzYWdlLklkX3N0cnVjdBIQCghsaWRhcl9pZBgE",
            "IAIoBRInCgpjbG91ZF90eXBlGAUgAygLMhMubWVzc2FnZS5DbG91ZF90eXBl",
            "Ei0KDWVycm9yX21hbmFnZXIYBiACKAsyFi5tZXNzYWdlLkVycm9yX21hbmFn",
            "ZXIqnwEKFExhc2VyX21hbmFnZXJfc3RhdHVzEhgKFExBU0VSX01BTkFHRVJf",
            "VU5LTk9XEAASFwoTTEFTRVJfTUFOQUdFUl9SRUFEWRABEh0KGUxBU0VSX01B",
            "TkFHRVJfSVNTVUVEX1RBU0sQAhIcChhMQVNFUl9NQU5BR0VSX1dBSVRfUkVQ",
            "TFkQAxIXChNMQVNFUl9NQU5BR0VSX0ZBVUxUEAQqVQoLTGFzZXJfc3RhdHUS",
            "FAoQTEFTRVJfRElTQ09OTkVDVBAAEg8KC0xBU0VSX1JFQURZEAESDgoKTEFT",
            "RVJfQlVTWRACEg8KC0xBU0VSX0ZBVUxUEAMqsQEKFUxvY2F0ZV9tYW5hZ2Vy",
            "X3N0YXR1cxIZChVMT0NBVEVfTUFOQUdFUl9VTktOT1cQABIYChRMT0NBVEVf",
            "TUFOQUdFUl9SRUFEWRABEhcKE0xPQ0FURV9NQU5BR0VSX1NJRlQQAhIWChJM",
            "T0NBVEVfTUFOQUdFUl9DQVIQAxIYChRMT0NBVEVfTUFOQUdFUl9XSEVFTBAE",
            "EhgKFExPQ0FURV9NQU5BR0VSX0ZBVUxUEAUq9wEKFFdhbmppX21hbmFnZXJf",
            "c3RhdHVzEhkKFVdBTkpJX01BTkFHRVJfVU5LTk9XThAAEhcKE1dBTkpJX01B",
            "TkFHRVJfUkVBRFkQARIWChJXQU5KSV9NQU5BR0VSX0JVU1kQAhIdChlXQU5K",
            "SV9NQU5BR0VSX0lTU1VFRF9TQ0FOEAMSGwoXV0FOSklfTUFOQUdFUl9XQUlU",
            "X1NDQU4QBBIfChtXQU5KSV9NQU5BR0VSX0lTU1VFRF9ERVRFQ1QQBRIdChlX",
            "QU5KSV9NQU5BR0VSX1dBSVRfREVURUNUEAYSFwoTV0FOSklfTUFOQUdFUl9G",
            "QVVMVBAKKrcBChlXYW5qaV9saWRhcl9kZXZpY2Vfc3RhdHVzEh4KGldBTkpJ",
            "X0xJREFSX0RFVklDRV9VTktOT1dOEAASHAoYV0FOSklfTElEQVJfREVWSUNF",
            "X1JFQURZEAESIQodV0FOSklfTElEQVJfREVWSUNFX0RJU0NPTk5FQ1QQAhIb",
            "ChdXQU5KSV9MSURBUl9ERVZJQ0VfQlVTWRADEhwKGFdBTkpJX0xJREFSX0RF",
            "VklDRV9GQVVMVBAKKnsKFFJlZ2lvbl93b3JrZXJfc3RhdHVzEhkKFVJFR0lP",
            "Tl9XT1JLRVJfVU5LTk9XThAAEhcKE1JFR0lPTl9XT1JLRVJfUkVBRFkQARIW",
            "ChJSRUdJT05fV09SS0VSX0JVU1kQAhIXChNSRUdJT05fV09SS0VSX0ZBVUxU",
            "EAoqTwoMR3JvdW5kX3N0YXR1EgsKB05vdGhpbmcQABIJCgVOb2lzZRABEg8K",
            "C0Nhcl9jb3JyZWN0EAISFgoSQ2FyX2JvcmRlcl9yZWFjaGVkEAM="));
      descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
          new pbr::FileDescriptor[] { global::Message.MessageBaseReflection.Descriptor, },
          new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Message.Laser_manager_status), typeof(global::Message.Laser_statu), typeof(global::Message.Locate_manager_status), typeof(global::Message.Wanji_manager_status), typeof(global::Message.Wanji_lidar_device_status), typeof(global::Message.Region_worker_status), typeof(global::Message.Ground_statu), }, null, new pbr::GeneratedClrTypeInfo[] {
            new pbr::GeneratedClrTypeInfo(typeof(global::Message.Measure_status_msg), global::Message.Measure_status_msg.Parser, new[]{ "BaseInfo", "IdStruct", "LaserManagerStatus", "LaserStatuVector", "LocateManagerStatus", "ErrorManager" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Message.Measure_request_msg), global::Message.Measure_request_msg.Parser, new[]{ "BaseInfo", "CommandKey", "IdStruct" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Message.Measure_response_msg), global::Message.Measure_response_msg.Parser, new[]{ "BaseInfo", "CommandKey", "IdStruct", "LocateInformation", "ErrorManager" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Message.Ground_detect_request_msg), global::Message.Ground_detect_request_msg.Parser, new[]{ "BaseInfo", "CommandKey", "IdStruct" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Message.Ground_detect_response_msg), global::Message.Ground_detect_response_msg.Parser, new[]{ "BaseInfo", "CommandKey", "IdStruct", "LocateInformation", "ErrorManager" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Message.Ground_status_msg), global::Message.Ground_status_msg.Parser, new[]{ "BaseInfo", "IdStruct", "WanjiManagerStatus", "WanjiLidarDeviceStatus", "RegionWorkerStatus", "LocateInformationRealtime", "GroundStatus", "BorderStatus", "ErrorManager", "Cloud" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Message.Cloud_coordinate), global::Message.Cloud_coordinate.Parser, new[]{ "X", "Y", "Z" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Message.Cloud_type), global::Message.Cloud_type.Parser, new[]{ "Type" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Message.Locate_sift_request_msg), global::Message.Locate_sift_request_msg.Parser, new[]{ "BaseInfo", "CommandKey", "IdStruct", "LidarId", "CloudCoordinates" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Message.Locate_sift_response_msg), global::Message.Locate_sift_response_msg.Parser, new[]{ "BaseInfo", "CommandKey", "IdStruct", "LidarId", "CloudType", "ErrorManager" }, null, null, null, null)
          }));
    }
    #endregion

  }
  #region Enums
  /// <summary>
  ///雷达管理模块的工作状态
  /// </summary>
  public enum Laser_manager_status {
    /// <summary>
    ///未知
    /// </summary>
    [pbr::OriginalName("LASER_MANAGER_UNKNOW")] LaserManagerUnknow = 0,
    /// <summary>
    ///准备，待机
    /// </summary>
    [pbr::OriginalName("LASER_MANAGER_READY")] LaserManagerReady = 1,
    /// <summary>
    ///工作下发任务
    /// </summary>
    [pbr::OriginalName("LASER_MANAGER_ISSUED_TASK")] LaserManagerIssuedTask = 2,
    /// <summary>
    ///工作等待答复
    /// </summary>
    [pbr::OriginalName("LASER_MANAGER_WAIT_REPLY")] LaserManagerWaitReply = 3,
    /// <summary>
    ///故障
    /// </summary>
    [pbr::OriginalName("LASER_MANAGER_FAULT")] LaserManagerFault = 4,
  }

  /// <summary>
  ///子雷达状态
  /// </summary>
  public enum Laser_statu {
    /// <summary>
    ///雷达断连
    /// </summary>
    [pbr::OriginalName("LASER_DISCONNECT")] LaserDisconnect = 0,
    /// <summary>
    ///雷达正常待机，空闲
    /// </summary>
    [pbr::OriginalName("LASER_READY")] LaserReady = 1,
    /// <summary>
    ///雷达正在工作，正忙
    /// </summary>
    [pbr::OriginalName("LASER_BUSY")] LaserBusy = 2,
    /// <summary>
    ///雷达错误
    /// </summary>
    [pbr::OriginalName("LASER_FAULT")] LaserFault = 3,
  }

  /// <summary>
  ///定位管理模块的工作状态
  /// </summary>
  public enum Locate_manager_status {
    /// <summary>
    ///未知
    /// </summary>
    [pbr::OriginalName("LOCATE_MANAGER_UNKNOW")] LocateManagerUnknow = 0,
    /// <summary>
    ///准备，待机
    /// </summary>
    [pbr::OriginalName("LOCATE_MANAGER_READY")] LocateManagerReady = 1,
    /// <summary>
    ///sift点云筛选; 将车身和轮胎的点剥离出来
    /// </summary>
    [pbr::OriginalName("LOCATE_MANAGER_SIFT")] LocateManagerSift = 2,
    /// <summary>
    ///通过车身 计算汽车的定位信息.
    /// </summary>
    [pbr::OriginalName("LOCATE_MANAGER_CAR")] LocateManagerCar = 3,
    /// <summary>
    ///通过车轮 计算汽车的定位信息.
    /// </summary>
    [pbr::OriginalName("LOCATE_MANAGER_WHEEL")] LocateManagerWheel = 4,
    /// <summary>
    ///故障
    /// </summary>
    [pbr::OriginalName("LOCATE_MANAGER_FAULT")] LocateManagerFault = 5,
  }

  /// <summary>
  ///雷达管理的状态
  /// </summary>
  public enum Wanji_manager_status {
    /// <summary>
    ///未知
    /// </summary>
    [pbr::OriginalName("WANJI_MANAGER_UNKNOWN")] WanjiManagerUnknown = 0,
    /// <summary>
    ///准备，待机
    /// </summary>
    [pbr::OriginalName("WANJI_MANAGER_READY")] WanjiManagerReady = 1,
    /// <summary>
    ///工作正忙
    /// </summary>
    [pbr::OriginalName("WANJI_MANAGER_BUSY")] WanjiManagerBusy = 2,
    /// <summary>
    ///下发任务; 获取点云
    /// </summary>
    [pbr::OriginalName("WANJI_MANAGER_ISSUED_SCAN")] WanjiManagerIssuedScan = 3,
    /// <summary>
    ///等待任务; 扫描点云
    /// </summary>
    [pbr::OriginalName("WANJI_MANAGER_WAIT_SCAN")] WanjiManagerWaitScan = 4,
    /// <summary>
    ///下发任务; 算法预测
    /// </summary>
    [pbr::OriginalName("WANJI_MANAGER_ISSUED_DETECT")] WanjiManagerIssuedDetect = 5,
    /// <summary>
    ///等待任务; 算法预测
    /// </summary>
    [pbr::OriginalName("WANJI_MANAGER_WAIT_DETECT")] WanjiManagerWaitDetect = 6,
    /// <summary>
    ///故障
    /// </summary>
    [pbr::OriginalName("WANJI_MANAGER_FAULT")] WanjiManagerFault = 10,
  }

  /// <summary>
  ///万集设备身状态
  /// </summary>
  public enum Wanji_lidar_device_status {
    /// <summary>
    ///未知
    /// </summary>
    [pbr::OriginalName("WANJI_LIDAR_DEVICE_UNKNOWN")] WanjiLidarDeviceUnknown = 0,
    /// <summary>
    ///正常待机
    /// </summary>
    [pbr::OriginalName("WANJI_LIDAR_DEVICE_READY")] WanjiLidarDeviceReady = 1,
    /// <summary>
    ///断连
    /// </summary>
    [pbr::OriginalName("WANJI_LIDAR_DEVICE_DISCONNECT")] WanjiLidarDeviceDisconnect = 2,
    /// <summary>
    ///工作正忙
    /// </summary>
    [pbr::OriginalName("WANJI_LIDAR_DEVICE_BUSY")] WanjiLidarDeviceBusy = 3,
    /// <summary>
    ///故障
    /// </summary>
    [pbr::OriginalName("WANJI_LIDAR_DEVICE_FAULT")] WanjiLidarDeviceFault = 10,
  }

  /// <summary>
  ///万集区域功能的状态
  /// </summary>
  public enum Region_worker_status {
    /// <summary>
    ///未知
    /// </summary>
    [pbr::OriginalName("REGION_WORKER_UNKNOWN")] RegionWorkerUnknown = 0,
    /// <summary>
    ///准备，待机
    /// </summary>
    [pbr::OriginalName("REGION_WORKER_READY")] RegionWorkerReady = 1,
    /// <summary>
    ///工作正忙
    /// </summary>
    [pbr::OriginalName("REGION_WORKER_BUSY")] RegionWorkerBusy = 2,
    /// <summary>
    ///故障
    /// </summary>
    [pbr::OriginalName("REGION_WORKER_FAULT")] RegionWorkerFault = 10,
  }

  /// <summary>
  /// 电子围栏状态
  /// </summary>
  public enum Ground_statu {
    [pbr::OriginalName("Nothing")] Nothing = 0,
    [pbr::OriginalName("Noise")] Noise = 1,
    [pbr::OriginalName("Car_correct")] CarCorrect = 2,
    [pbr::OriginalName("Car_border_reached")] CarBorderReached = 3,
  }

  #endregion

  #region Messages
  /// <summary>
  ///定位模块状态
  /// </summary>
  public sealed partial class Measure_status_msg : pb::IMessage<Measure_status_msg>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Measure_status_msg> _parser = new pb::MessageParser<Measure_status_msg>(() => new Measure_status_msg());
    private pb::UnknownFieldSet _unknownFields;
    private int _hasBits0;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<Measure_status_msg> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Message.MeasureMessageReflection.Descriptor.MessageTypes[0]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Measure_status_msg() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Measure_status_msg(Measure_status_msg other) : this() {
      _hasBits0 = other._hasBits0;
      baseInfo_ = other.baseInfo_ != null ? other.baseInfo_.Clone() : null;
      idStruct_ = other.idStruct_ != null ? other.idStruct_.Clone() : null;
      laserManagerStatus_ = other.laserManagerStatus_;
      laserStatuVector_ = other.laserStatuVector_.Clone();
      locateManagerStatus_ = other.locateManagerStatus_;
      errorManager_ = other.errorManager_ != null ? other.errorManager_.Clone() : null;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Measure_status_msg Clone() {
      return new Measure_status_msg(this);
    }

    /// <summary>Field number for the "base_info" field.</summary>
    public const int BaseInfoFieldNumber = 1;
    private global::Message.Base_info baseInfo_;
    /// <summary>
    ///消息类型
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Base_info BaseInfo {
      get { return baseInfo_; }
      set {
        baseInfo_ = value;
      }
    }

    /// <summary>Field number for the "id_struct" field.</summary>
    public const int IdStructFieldNumber = 2;
    private global::Message.Id_struct idStruct_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Id_struct IdStruct {
      get { return idStruct_; }
      set {
        idStruct_ = value;
      }
    }

    /// <summary>Field number for the "laser_manager_status" field.</summary>
    public const int LaserManagerStatusFieldNumber = 3;
    private readonly static global::Message.Laser_manager_status LaserManagerStatusDefaultValue = global::Message.Laser_manager_status.LaserManagerUnknow;

    private global::Message.Laser_manager_status laserManagerStatus_;
    /// <summary>
    ///大疆管理状态
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Laser_manager_status LaserManagerStatus {
      get { if ((_hasBits0 & 1) != 0) { return laserManagerStatus_; } else { return LaserManagerStatusDefaultValue; } }
      set {
        _hasBits0 |= 1;
        laserManagerStatus_ = value;
      }
    }
    /// <summary>Gets whether the "laser_manager_status" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasLaserManagerStatus {
      get { return (_hasBits0 & 1) != 0; }
    }
    /// <summary>Clears the value of the "laser_manager_status" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearLaserManagerStatus() {
      _hasBits0 &= ~1;
    }

    /// <summary>Field number for the "laser_statu_vector" field.</summary>
    public const int LaserStatuVectorFieldNumber = 4;
    private static readonly pb::FieldCodec<global::Message.Laser_statu> _repeated_laserStatuVector_codec
        = pb::FieldCodec.ForEnum(32, x => (int) x, x => (global::Message.Laser_statu) x);
    private readonly pbc::RepeatedField<global::Message.Laser_statu> laserStatuVector_ = new pbc::RepeatedField<global::Message.Laser_statu>();
    /// <summary>
    ///大疆雷达设备状态
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::Message.Laser_statu> LaserStatuVector {
      get { return laserStatuVector_; }
    }

    /// <summary>Field number for the "locate_manager_status" field.</summary>
    public const int LocateManagerStatusFieldNumber = 5;
    private readonly static global::Message.Locate_manager_status LocateManagerStatusDefaultValue = global::Message.Locate_manager_status.LocateManagerUnknow;

    private global::Message.Locate_manager_status locateManagerStatus_;
    /// <summary>
    ///大疆定位算法状态
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Locate_manager_status LocateManagerStatus {
      get { if ((_hasBits0 & 2) != 0) { return locateManagerStatus_; } else { return LocateManagerStatusDefaultValue; } }
      set {
        _hasBits0 |= 2;
        locateManagerStatus_ = value;
      }
    }
    /// <summary>Gets whether the "locate_manager_status" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasLocateManagerStatus {
      get { return (_hasBits0 & 2) != 0; }
    }
    /// <summary>Clears the value of the "locate_manager_status" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearLocateManagerStatus() {
      _hasBits0 &= ~2;
    }

    /// <summary>Field number for the "error_manager" field.</summary>
    public const int ErrorManagerFieldNumber = 6;
    private global::Message.Error_manager errorManager_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Error_manager ErrorManager {
      get { return errorManager_; }
      set {
        errorManager_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as Measure_status_msg);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(Measure_status_msg other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!object.Equals(BaseInfo, other.BaseInfo)) return false;
      if (!object.Equals(IdStruct, other.IdStruct)) return false;
      if (LaserManagerStatus != other.LaserManagerStatus) return false;
      if(!laserStatuVector_.Equals(other.laserStatuVector_)) return false;
      if (LocateManagerStatus != other.LocateManagerStatus) return false;
      if (!object.Equals(ErrorManager, other.ErrorManager)) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (baseInfo_ != null) hash ^= BaseInfo.GetHashCode();
      if (idStruct_ != null) hash ^= IdStruct.GetHashCode();
      if (HasLaserManagerStatus) hash ^= LaserManagerStatus.GetHashCode();
      hash ^= laserStatuVector_.GetHashCode();
      if (HasLocateManagerStatus) hash ^= LocateManagerStatus.GetHashCode();
      if (errorManager_ != null) hash ^= ErrorManager.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (baseInfo_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(BaseInfo);
      }
      if (idStruct_ != null) {
        output.WriteRawTag(18);
        output.WriteMessage(IdStruct);
      }
      if (HasLaserManagerStatus) {
        output.WriteRawTag(24);
        output.WriteEnum((int) LaserManagerStatus);
      }
      laserStatuVector_.WriteTo(output, _repeated_laserStatuVector_codec);
      if (HasLocateManagerStatus) {
        output.WriteRawTag(40);
        output.WriteEnum((int) LocateManagerStatus);
      }
      if (errorManager_ != null) {
        output.WriteRawTag(50);
        output.WriteMessage(ErrorManager);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (baseInfo_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(BaseInfo);
      }
      if (idStruct_ != null) {
        output.WriteRawTag(18);
        output.WriteMessage(IdStruct);
      }
      if (HasLaserManagerStatus) {
        output.WriteRawTag(24);
        output.WriteEnum((int) LaserManagerStatus);
      }
      laserStatuVector_.WriteTo(ref output, _repeated_laserStatuVector_codec);
      if (HasLocateManagerStatus) {
        output.WriteRawTag(40);
        output.WriteEnum((int) LocateManagerStatus);
      }
      if (errorManager_ != null) {
        output.WriteRawTag(50);
        output.WriteMessage(ErrorManager);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (baseInfo_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(BaseInfo);
      }
      if (idStruct_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(IdStruct);
      }
      if (HasLaserManagerStatus) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) LaserManagerStatus);
      }
      size += laserStatuVector_.CalculateSize(_repeated_laserStatuVector_codec);
      if (HasLocateManagerStatus) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) LocateManagerStatus);
      }
      if (errorManager_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(ErrorManager);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(Measure_status_msg other) {
      if (other == null) {
        return;
      }
      if (other.baseInfo_ != null) {
        if (baseInfo_ == null) {
          BaseInfo = new global::Message.Base_info();
        }
        BaseInfo.MergeFrom(other.BaseInfo);
      }
      if (other.idStruct_ != null) {
        if (idStruct_ == null) {
          IdStruct = new global::Message.Id_struct();
        }
        IdStruct.MergeFrom(other.IdStruct);
      }
      if (other.HasLaserManagerStatus) {
        LaserManagerStatus = other.LaserManagerStatus;
      }
      laserStatuVector_.Add(other.laserStatuVector_);
      if (other.HasLocateManagerStatus) {
        LocateManagerStatus = other.LocateManagerStatus;
      }
      if (other.errorManager_ != null) {
        if (errorManager_ == null) {
          ErrorManager = new global::Message.Error_manager();
        }
        ErrorManager.MergeFrom(other.ErrorManager);
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            if (baseInfo_ == null) {
              BaseInfo = new global::Message.Base_info();
            }
            input.ReadMessage(BaseInfo);
            break;
          }
          case 18: {
            if (idStruct_ == null) {
              IdStruct = new global::Message.Id_struct();
            }
            input.ReadMessage(IdStruct);
            break;
          }
          case 24: {
            LaserManagerStatus = (global::Message.Laser_manager_status) input.ReadEnum();
            break;
          }
          case 34:
          case 32: {
            laserStatuVector_.AddEntriesFrom(input, _repeated_laserStatuVector_codec);
            break;
          }
          case 40: {
            LocateManagerStatus = (global::Message.Locate_manager_status) input.ReadEnum();
            break;
          }
          case 50: {
            if (errorManager_ == null) {
              ErrorManager = new global::Message.Error_manager();
            }
            input.ReadMessage(ErrorManager);
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            if (baseInfo_ == null) {
              BaseInfo = new global::Message.Base_info();
            }
            input.ReadMessage(BaseInfo);
            break;
          }
          case 18: {
            if (idStruct_ == null) {
              IdStruct = new global::Message.Id_struct();
            }
            input.ReadMessage(IdStruct);
            break;
          }
          case 24: {
            LaserManagerStatus = (global::Message.Laser_manager_status) input.ReadEnum();
            break;
          }
          case 34:
          case 32: {
            laserStatuVector_.AddEntriesFrom(ref input, _repeated_laserStatuVector_codec);
            break;
          }
          case 40: {
            LocateManagerStatus = (global::Message.Locate_manager_status) input.ReadEnum();
            break;
          }
          case 50: {
            if (errorManager_ == null) {
              ErrorManager = new global::Message.Error_manager();
            }
            input.ReadMessage(ErrorManager);
            break;
          }
        }
      }
    }
    #endif

  }

  /// <summary>
  ///定位请求消息
  /// </summary>
  public sealed partial class Measure_request_msg : pb::IMessage<Measure_request_msg>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Measure_request_msg> _parser = new pb::MessageParser<Measure_request_msg>(() => new Measure_request_msg());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<Measure_request_msg> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Message.MeasureMessageReflection.Descriptor.MessageTypes[1]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Measure_request_msg() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Measure_request_msg(Measure_request_msg other) : this() {
      baseInfo_ = other.baseInfo_ != null ? other.baseInfo_.Clone() : null;
      commandKey_ = other.commandKey_;
      idStruct_ = other.idStruct_ != null ? other.idStruct_.Clone() : null;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Measure_request_msg Clone() {
      return new Measure_request_msg(this);
    }

    /// <summary>Field number for the "base_info" field.</summary>
    public const int BaseInfoFieldNumber = 1;
    private global::Message.Base_info baseInfo_;
    /// <summary>
    ///消息类型
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Base_info BaseInfo {
      get { return baseInfo_; }
      set {
        baseInfo_ = value;
      }
    }

    /// <summary>Field number for the "command_key" field.</summary>
    public const int CommandKeyFieldNumber = 2;
    private readonly static string CommandKeyDefaultValue = "";

    private string commandKey_;
    /// <summary>
    ///指令唯一标识符id
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string CommandKey {
      get { return commandKey_ ?? CommandKeyDefaultValue; }
      set {
        commandKey_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }
    /// <summary>Gets whether the "command_key" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasCommandKey {
      get { return commandKey_ != null; }
    }
    /// <summary>Clears the value of the "command_key" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearCommandKey() {
      commandKey_ = null;
    }

    /// <summary>Field number for the "id_struct" field.</summary>
    public const int IdStructFieldNumber = 3;
    private global::Message.Id_struct idStruct_;
    /// <summary>
    ///终端id
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Id_struct IdStruct {
      get { return idStruct_; }
      set {
        idStruct_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as Measure_request_msg);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(Measure_request_msg other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!object.Equals(BaseInfo, other.BaseInfo)) return false;
      if (CommandKey != other.CommandKey) return false;
      if (!object.Equals(IdStruct, other.IdStruct)) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (baseInfo_ != null) hash ^= BaseInfo.GetHashCode();
      if (HasCommandKey) hash ^= CommandKey.GetHashCode();
      if (idStruct_ != null) hash ^= IdStruct.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (baseInfo_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(BaseInfo);
      }
      if (HasCommandKey) {
        output.WriteRawTag(18);
        output.WriteString(CommandKey);
      }
      if (idStruct_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(IdStruct);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (baseInfo_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(BaseInfo);
      }
      if (HasCommandKey) {
        output.WriteRawTag(18);
        output.WriteString(CommandKey);
      }
      if (idStruct_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(IdStruct);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (baseInfo_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(BaseInfo);
      }
      if (HasCommandKey) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(CommandKey);
      }
      if (idStruct_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(IdStruct);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(Measure_request_msg other) {
      if (other == null) {
        return;
      }
      if (other.baseInfo_ != null) {
        if (baseInfo_ == null) {
          BaseInfo = new global::Message.Base_info();
        }
        BaseInfo.MergeFrom(other.BaseInfo);
      }
      if (other.HasCommandKey) {
        CommandKey = other.CommandKey;
      }
      if (other.idStruct_ != null) {
        if (idStruct_ == null) {
          IdStruct = new global::Message.Id_struct();
        }
        IdStruct.MergeFrom(other.IdStruct);
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            if (baseInfo_ == null) {
              BaseInfo = new global::Message.Base_info();
            }
            input.ReadMessage(BaseInfo);
            break;
          }
          case 18: {
            CommandKey = input.ReadString();
            break;
          }
          case 26: {
            if (idStruct_ == null) {
              IdStruct = new global::Message.Id_struct();
            }
            input.ReadMessage(IdStruct);
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            if (baseInfo_ == null) {
              BaseInfo = new global::Message.Base_info();
            }
            input.ReadMessage(BaseInfo);
            break;
          }
          case 18: {
            CommandKey = input.ReadString();
            break;
          }
          case 26: {
            if (idStruct_ == null) {
              IdStruct = new global::Message.Id_struct();
            }
            input.ReadMessage(IdStruct);
            break;
          }
        }
      }
    }
    #endif

  }

  /// <summary>
  ///定位测量返回消息
  /// </summary>
  public sealed partial class Measure_response_msg : pb::IMessage<Measure_response_msg>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Measure_response_msg> _parser = new pb::MessageParser<Measure_response_msg>(() => new Measure_response_msg());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<Measure_response_msg> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Message.MeasureMessageReflection.Descriptor.MessageTypes[2]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Measure_response_msg() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Measure_response_msg(Measure_response_msg other) : this() {
      baseInfo_ = other.baseInfo_ != null ? other.baseInfo_.Clone() : null;
      commandKey_ = other.commandKey_;
      idStruct_ = other.idStruct_ != null ? other.idStruct_.Clone() : null;
      locateInformation_ = other.locateInformation_ != null ? other.locateInformation_.Clone() : null;
      errorManager_ = other.errorManager_ != null ? other.errorManager_.Clone() : null;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Measure_response_msg Clone() {
      return new Measure_response_msg(this);
    }

    /// <summary>Field number for the "base_info" field.</summary>
    public const int BaseInfoFieldNumber = 1;
    private global::Message.Base_info baseInfo_;
    /// <summary>
    ///消息类型
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Base_info BaseInfo {
      get { return baseInfo_; }
      set {
        baseInfo_ = value;
      }
    }

    /// <summary>Field number for the "command_key" field.</summary>
    public const int CommandKeyFieldNumber = 2;
    private readonly static string CommandKeyDefaultValue = "";

    private string commandKey_;
    /// <summary>
    ///指令唯一标识符id
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string CommandKey {
      get { return commandKey_ ?? CommandKeyDefaultValue; }
      set {
        commandKey_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }
    /// <summary>Gets whether the "command_key" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasCommandKey {
      get { return commandKey_ != null; }
    }
    /// <summary>Clears the value of the "command_key" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearCommandKey() {
      commandKey_ = null;
    }

    /// <summary>Field number for the "id_struct" field.</summary>
    public const int IdStructFieldNumber = 3;
    private global::Message.Id_struct idStruct_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Id_struct IdStruct {
      get { return idStruct_; }
      set {
        idStruct_ = value;
      }
    }

    /// <summary>Field number for the "locate_information" field.</summary>
    public const int LocateInformationFieldNumber = 4;
    private global::Message.Locate_information locateInformation_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Locate_information LocateInformation {
      get { return locateInformation_; }
      set {
        locateInformation_ = value;
      }
    }

    /// <summary>Field number for the "error_manager" field.</summary>
    public const int ErrorManagerFieldNumber = 5;
    private global::Message.Error_manager errorManager_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Error_manager ErrorManager {
      get { return errorManager_; }
      set {
        errorManager_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as Measure_response_msg);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(Measure_response_msg other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!object.Equals(BaseInfo, other.BaseInfo)) return false;
      if (CommandKey != other.CommandKey) return false;
      if (!object.Equals(IdStruct, other.IdStruct)) return false;
      if (!object.Equals(LocateInformation, other.LocateInformation)) return false;
      if (!object.Equals(ErrorManager, other.ErrorManager)) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (baseInfo_ != null) hash ^= BaseInfo.GetHashCode();
      if (HasCommandKey) hash ^= CommandKey.GetHashCode();
      if (idStruct_ != null) hash ^= IdStruct.GetHashCode();
      if (locateInformation_ != null) hash ^= LocateInformation.GetHashCode();
      if (errorManager_ != null) hash ^= ErrorManager.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (baseInfo_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(BaseInfo);
      }
      if (HasCommandKey) {
        output.WriteRawTag(18);
        output.WriteString(CommandKey);
      }
      if (idStruct_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(IdStruct);
      }
      if (locateInformation_ != null) {
        output.WriteRawTag(34);
        output.WriteMessage(LocateInformation);
      }
      if (errorManager_ != null) {
        output.WriteRawTag(42);
        output.WriteMessage(ErrorManager);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (baseInfo_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(BaseInfo);
      }
      if (HasCommandKey) {
        output.WriteRawTag(18);
        output.WriteString(CommandKey);
      }
      if (idStruct_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(IdStruct);
      }
      if (locateInformation_ != null) {
        output.WriteRawTag(34);
        output.WriteMessage(LocateInformation);
      }
      if (errorManager_ != null) {
        output.WriteRawTag(42);
        output.WriteMessage(ErrorManager);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (baseInfo_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(BaseInfo);
      }
      if (HasCommandKey) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(CommandKey);
      }
      if (idStruct_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(IdStruct);
      }
      if (locateInformation_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(LocateInformation);
      }
      if (errorManager_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(ErrorManager);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(Measure_response_msg other) {
      if (other == null) {
        return;
      }
      if (other.baseInfo_ != null) {
        if (baseInfo_ == null) {
          BaseInfo = new global::Message.Base_info();
        }
        BaseInfo.MergeFrom(other.BaseInfo);
      }
      if (other.HasCommandKey) {
        CommandKey = other.CommandKey;
      }
      if (other.idStruct_ != null) {
        if (idStruct_ == null) {
          IdStruct = new global::Message.Id_struct();
        }
        IdStruct.MergeFrom(other.IdStruct);
      }
      if (other.locateInformation_ != null) {
        if (locateInformation_ == null) {
          LocateInformation = new global::Message.Locate_information();
        }
        LocateInformation.MergeFrom(other.LocateInformation);
      }
      if (other.errorManager_ != null) {
        if (errorManager_ == null) {
          ErrorManager = new global::Message.Error_manager();
        }
        ErrorManager.MergeFrom(other.ErrorManager);
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            if (baseInfo_ == null) {
              BaseInfo = new global::Message.Base_info();
            }
            input.ReadMessage(BaseInfo);
            break;
          }
          case 18: {
            CommandKey = input.ReadString();
            break;
          }
          case 26: {
            if (idStruct_ == null) {
              IdStruct = new global::Message.Id_struct();
            }
            input.ReadMessage(IdStruct);
            break;
          }
          case 34: {
            if (locateInformation_ == null) {
              LocateInformation = new global::Message.Locate_information();
            }
            input.ReadMessage(LocateInformation);
            break;
          }
          case 42: {
            if (errorManager_ == null) {
              ErrorManager = new global::Message.Error_manager();
            }
            input.ReadMessage(ErrorManager);
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            if (baseInfo_ == null) {
              BaseInfo = new global::Message.Base_info();
            }
            input.ReadMessage(BaseInfo);
            break;
          }
          case 18: {
            CommandKey = input.ReadString();
            break;
          }
          case 26: {
            if (idStruct_ == null) {
              IdStruct = new global::Message.Id_struct();
            }
            input.ReadMessage(IdStruct);
            break;
          }
          case 34: {
            if (locateInformation_ == null) {
              LocateInformation = new global::Message.Locate_information();
            }
            input.ReadMessage(LocateInformation);
            break;
          }
          case 42: {
            if (errorManager_ == null) {
              ErrorManager = new global::Message.Error_manager();
            }
            input.ReadMessage(ErrorManager);
            break;
          }
        }
      }
    }
    #endif

  }

  /// <summary>
  ///地面测量请求消息
  /// </summary>
  public sealed partial class Ground_detect_request_msg : pb::IMessage<Ground_detect_request_msg>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Ground_detect_request_msg> _parser = new pb::MessageParser<Ground_detect_request_msg>(() => new Ground_detect_request_msg());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<Ground_detect_request_msg> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Message.MeasureMessageReflection.Descriptor.MessageTypes[3]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Ground_detect_request_msg() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Ground_detect_request_msg(Ground_detect_request_msg other) : this() {
      baseInfo_ = other.baseInfo_ != null ? other.baseInfo_.Clone() : null;
      commandKey_ = other.commandKey_;
      idStruct_ = other.idStruct_ != null ? other.idStruct_.Clone() : null;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Ground_detect_request_msg Clone() {
      return new Ground_detect_request_msg(this);
    }

    /// <summary>Field number for the "base_info" field.</summary>
    public const int BaseInfoFieldNumber = 1;
    private global::Message.Base_info baseInfo_;
    /// <summary>
    ///消息类型
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Base_info BaseInfo {
      get { return baseInfo_; }
      set {
        baseInfo_ = value;
      }
    }

    /// <summary>Field number for the "command_key" field.</summary>
    public const int CommandKeyFieldNumber = 2;
    private readonly static string CommandKeyDefaultValue = "";

    private string commandKey_;
    /// <summary>
    ///指令唯一标识符id
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string CommandKey {
      get { return commandKey_ ?? CommandKeyDefaultValue; }
      set {
        commandKey_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }
    /// <summary>Gets whether the "command_key" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasCommandKey {
      get { return commandKey_ != null; }
    }
    /// <summary>Clears the value of the "command_key" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearCommandKey() {
      commandKey_ = null;
    }

    /// <summary>Field number for the "id_struct" field.</summary>
    public const int IdStructFieldNumber = 3;
    private global::Message.Id_struct idStruct_;
    /// <summary>
    ///终端id
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Id_struct IdStruct {
      get { return idStruct_; }
      set {
        idStruct_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as Ground_detect_request_msg);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(Ground_detect_request_msg other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!object.Equals(BaseInfo, other.BaseInfo)) return false;
      if (CommandKey != other.CommandKey) return false;
      if (!object.Equals(IdStruct, other.IdStruct)) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (baseInfo_ != null) hash ^= BaseInfo.GetHashCode();
      if (HasCommandKey) hash ^= CommandKey.GetHashCode();
      if (idStruct_ != null) hash ^= IdStruct.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (baseInfo_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(BaseInfo);
      }
      if (HasCommandKey) {
        output.WriteRawTag(18);
        output.WriteString(CommandKey);
      }
      if (idStruct_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(IdStruct);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (baseInfo_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(BaseInfo);
      }
      if (HasCommandKey) {
        output.WriteRawTag(18);
        output.WriteString(CommandKey);
      }
      if (idStruct_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(IdStruct);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (baseInfo_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(BaseInfo);
      }
      if (HasCommandKey) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(CommandKey);
      }
      if (idStruct_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(IdStruct);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(Ground_detect_request_msg other) {
      if (other == null) {
        return;
      }
      if (other.baseInfo_ != null) {
        if (baseInfo_ == null) {
          BaseInfo = new global::Message.Base_info();
        }
        BaseInfo.MergeFrom(other.BaseInfo);
      }
      if (other.HasCommandKey) {
        CommandKey = other.CommandKey;
      }
      if (other.idStruct_ != null) {
        if (idStruct_ == null) {
          IdStruct = new global::Message.Id_struct();
        }
        IdStruct.MergeFrom(other.IdStruct);
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            if (baseInfo_ == null) {
              BaseInfo = new global::Message.Base_info();
            }
            input.ReadMessage(BaseInfo);
            break;
          }
          case 18: {
            CommandKey = input.ReadString();
            break;
          }
          case 26: {
            if (idStruct_ == null) {
              IdStruct = new global::Message.Id_struct();
            }
            input.ReadMessage(IdStruct);
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            if (baseInfo_ == null) {
              BaseInfo = new global::Message.Base_info();
            }
            input.ReadMessage(BaseInfo);
            break;
          }
          case 18: {
            CommandKey = input.ReadString();
            break;
          }
          case 26: {
            if (idStruct_ == null) {
              IdStruct = new global::Message.Id_struct();
            }
            input.ReadMessage(IdStruct);
            break;
          }
        }
      }
    }
    #endif

  }

  /// <summary>
  ///地面测量反馈消息
  /// </summary>
  public sealed partial class Ground_detect_response_msg : pb::IMessage<Ground_detect_response_msg>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Ground_detect_response_msg> _parser = new pb::MessageParser<Ground_detect_response_msg>(() => new Ground_detect_response_msg());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<Ground_detect_response_msg> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Message.MeasureMessageReflection.Descriptor.MessageTypes[4]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Ground_detect_response_msg() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Ground_detect_response_msg(Ground_detect_response_msg other) : this() {
      baseInfo_ = other.baseInfo_ != null ? other.baseInfo_.Clone() : null;
      commandKey_ = other.commandKey_;
      idStruct_ = other.idStruct_ != null ? other.idStruct_.Clone() : null;
      locateInformation_ = other.locateInformation_ != null ? other.locateInformation_.Clone() : null;
      errorManager_ = other.errorManager_ != null ? other.errorManager_.Clone() : null;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Ground_detect_response_msg Clone() {
      return new Ground_detect_response_msg(this);
    }

    /// <summary>Field number for the "base_info" field.</summary>
    public const int BaseInfoFieldNumber = 1;
    private global::Message.Base_info baseInfo_;
    /// <summary>
    ///消息类型
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Base_info BaseInfo {
      get { return baseInfo_; }
      set {
        baseInfo_ = value;
      }
    }

    /// <summary>Field number for the "command_key" field.</summary>
    public const int CommandKeyFieldNumber = 2;
    private readonly static string CommandKeyDefaultValue = "";

    private string commandKey_;
    /// <summary>
    ///指令唯一标识符id
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string CommandKey {
      get { return commandKey_ ?? CommandKeyDefaultValue; }
      set {
        commandKey_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }
    /// <summary>Gets whether the "command_key" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasCommandKey {
      get { return commandKey_ != null; }
    }
    /// <summary>Clears the value of the "command_key" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearCommandKey() {
      commandKey_ = null;
    }

    /// <summary>Field number for the "id_struct" field.</summary>
    public const int IdStructFieldNumber = 3;
    private global::Message.Id_struct idStruct_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Id_struct IdStruct {
      get { return idStruct_; }
      set {
        idStruct_ = value;
      }
    }

    /// <summary>Field number for the "locate_information" field.</summary>
    public const int LocateInformationFieldNumber = 4;
    private global::Message.Locate_information locateInformation_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Locate_information LocateInformation {
      get { return locateInformation_; }
      set {
        locateInformation_ = value;
      }
    }

    /// <summary>Field number for the "error_manager" field.</summary>
    public const int ErrorManagerFieldNumber = 5;
    private global::Message.Error_manager errorManager_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Error_manager ErrorManager {
      get { return errorManager_; }
      set {
        errorManager_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as Ground_detect_response_msg);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(Ground_detect_response_msg other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!object.Equals(BaseInfo, other.BaseInfo)) return false;
      if (CommandKey != other.CommandKey) return false;
      if (!object.Equals(IdStruct, other.IdStruct)) return false;
      if (!object.Equals(LocateInformation, other.LocateInformation)) return false;
      if (!object.Equals(ErrorManager, other.ErrorManager)) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (baseInfo_ != null) hash ^= BaseInfo.GetHashCode();
      if (HasCommandKey) hash ^= CommandKey.GetHashCode();
      if (idStruct_ != null) hash ^= IdStruct.GetHashCode();
      if (locateInformation_ != null) hash ^= LocateInformation.GetHashCode();
      if (errorManager_ != null) hash ^= ErrorManager.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (baseInfo_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(BaseInfo);
      }
      if (HasCommandKey) {
        output.WriteRawTag(18);
        output.WriteString(CommandKey);
      }
      if (idStruct_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(IdStruct);
      }
      if (locateInformation_ != null) {
        output.WriteRawTag(34);
        output.WriteMessage(LocateInformation);
      }
      if (errorManager_ != null) {
        output.WriteRawTag(42);
        output.WriteMessage(ErrorManager);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (baseInfo_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(BaseInfo);
      }
      if (HasCommandKey) {
        output.WriteRawTag(18);
        output.WriteString(CommandKey);
      }
      if (idStruct_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(IdStruct);
      }
      if (locateInformation_ != null) {
        output.WriteRawTag(34);
        output.WriteMessage(LocateInformation);
      }
      if (errorManager_ != null) {
        output.WriteRawTag(42);
        output.WriteMessage(ErrorManager);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (baseInfo_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(BaseInfo);
      }
      if (HasCommandKey) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(CommandKey);
      }
      if (idStruct_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(IdStruct);
      }
      if (locateInformation_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(LocateInformation);
      }
      if (errorManager_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(ErrorManager);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(Ground_detect_response_msg other) {
      if (other == null) {
        return;
      }
      if (other.baseInfo_ != null) {
        if (baseInfo_ == null) {
          BaseInfo = new global::Message.Base_info();
        }
        BaseInfo.MergeFrom(other.BaseInfo);
      }
      if (other.HasCommandKey) {
        CommandKey = other.CommandKey;
      }
      if (other.idStruct_ != null) {
        if (idStruct_ == null) {
          IdStruct = new global::Message.Id_struct();
        }
        IdStruct.MergeFrom(other.IdStruct);
      }
      if (other.locateInformation_ != null) {
        if (locateInformation_ == null) {
          LocateInformation = new global::Message.Locate_information();
        }
        LocateInformation.MergeFrom(other.LocateInformation);
      }
      if (other.errorManager_ != null) {
        if (errorManager_ == null) {
          ErrorManager = new global::Message.Error_manager();
        }
        ErrorManager.MergeFrom(other.ErrorManager);
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            if (baseInfo_ == null) {
              BaseInfo = new global::Message.Base_info();
            }
            input.ReadMessage(BaseInfo);
            break;
          }
          case 18: {
            CommandKey = input.ReadString();
            break;
          }
          case 26: {
            if (idStruct_ == null) {
              IdStruct = new global::Message.Id_struct();
            }
            input.ReadMessage(IdStruct);
            break;
          }
          case 34: {
            if (locateInformation_ == null) {
              LocateInformation = new global::Message.Locate_information();
            }
            input.ReadMessage(LocateInformation);
            break;
          }
          case 42: {
            if (errorManager_ == null) {
              ErrorManager = new global::Message.Error_manager();
            }
            input.ReadMessage(ErrorManager);
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            if (baseInfo_ == null) {
              BaseInfo = new global::Message.Base_info();
            }
            input.ReadMessage(BaseInfo);
            break;
          }
          case 18: {
            CommandKey = input.ReadString();
            break;
          }
          case 26: {
            if (idStruct_ == null) {
              IdStruct = new global::Message.Id_struct();
            }
            input.ReadMessage(IdStruct);
            break;
          }
          case 34: {
            if (locateInformation_ == null) {
              LocateInformation = new global::Message.Locate_information();
            }
            input.ReadMessage(LocateInformation);
            break;
          }
          case 42: {
            if (errorManager_ == null) {
              ErrorManager = new global::Message.Error_manager();
            }
            input.ReadMessage(ErrorManager);
            break;
          }
        }
      }
    }
    #endif

  }

  public sealed partial class Ground_status_msg : pb::IMessage<Ground_status_msg>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Ground_status_msg> _parser = new pb::MessageParser<Ground_status_msg>(() => new Ground_status_msg());
    private pb::UnknownFieldSet _unknownFields;
    private int _hasBits0;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<Ground_status_msg> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Message.MeasureMessageReflection.Descriptor.MessageTypes[5]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Ground_status_msg() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Ground_status_msg(Ground_status_msg other) : this() {
      _hasBits0 = other._hasBits0;
      baseInfo_ = other.baseInfo_ != null ? other.baseInfo_.Clone() : null;
      idStruct_ = other.idStruct_ != null ? other.idStruct_.Clone() : null;
      wanjiManagerStatus_ = other.wanjiManagerStatus_;
      wanjiLidarDeviceStatus_ = other.wanjiLidarDeviceStatus_.Clone();
      regionWorkerStatus_ = other.regionWorkerStatus_;
      locateInformationRealtime_ = other.locateInformationRealtime_ != null ? other.locateInformationRealtime_.Clone() : null;
      groundStatus_ = other.groundStatus_;
      borderStatus_ = other.borderStatus_;
      errorManager_ = other.errorManager_ != null ? other.errorManager_.Clone() : null;
      cloud_ = other.cloud_.Clone();
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Ground_status_msg Clone() {
      return new Ground_status_msg(this);
    }

    /// <summary>Field number for the "base_info" field.</summary>
    public const int BaseInfoFieldNumber = 1;
    private global::Message.Base_info baseInfo_;
    /// <summary>
    ///消息类型
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Base_info BaseInfo {
      get { return baseInfo_; }
      set {
        baseInfo_ = value;
      }
    }

    /// <summary>Field number for the "id_struct" field.</summary>
    public const int IdStructFieldNumber = 2;
    private global::Message.Id_struct idStruct_;
    /// <summary>
    ///终端编号结构体
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Id_struct IdStruct {
      get { return idStruct_; }
      set {
        idStruct_ = value;
      }
    }

    /// <summary>Field number for the "wanji_manager_status" field.</summary>
    public const int WanjiManagerStatusFieldNumber = 3;
    private readonly static global::Message.Wanji_manager_status WanjiManagerStatusDefaultValue = global::Message.Wanji_manager_status.WanjiManagerUnknown;

    private global::Message.Wanji_manager_status wanjiManagerStatus_;
    /// <summary>
    ///万集管理状态
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Wanji_manager_status WanjiManagerStatus {
      get { if ((_hasBits0 & 1) != 0) { return wanjiManagerStatus_; } else { return WanjiManagerStatusDefaultValue; } }
      set {
        _hasBits0 |= 1;
        wanjiManagerStatus_ = value;
      }
    }
    /// <summary>Gets whether the "wanji_manager_status" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasWanjiManagerStatus {
      get { return (_hasBits0 & 1) != 0; }
    }
    /// <summary>Clears the value of the "wanji_manager_status" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearWanjiManagerStatus() {
      _hasBits0 &= ~1;
    }

    /// <summary>Field number for the "wanji_lidar_device_status" field.</summary>
    public const int WanjiLidarDeviceStatusFieldNumber = 4;
    private static readonly pb::FieldCodec<global::Message.Wanji_lidar_device_status> _repeated_wanjiLidarDeviceStatus_codec
        = pb::FieldCodec.ForEnum(32, x => (int) x, x => (global::Message.Wanji_lidar_device_status) x);
    private readonly pbc::RepeatedField<global::Message.Wanji_lidar_device_status> wanjiLidarDeviceStatus_ = new pbc::RepeatedField<global::Message.Wanji_lidar_device_status>();
    /// <summary>
    ///万集设备身状态
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::Message.Wanji_lidar_device_status> WanjiLidarDeviceStatus {
      get { return wanjiLidarDeviceStatus_; }
    }

    /// <summary>Field number for the "region_worker_status" field.</summary>
    public const int RegionWorkerStatusFieldNumber = 5;
    private readonly static global::Message.Region_worker_status RegionWorkerStatusDefaultValue = global::Message.Region_worker_status.RegionWorkerUnknown;

    private global::Message.Region_worker_status regionWorkerStatus_;
    /// <summary>
    ///万集区域功能的状态
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Region_worker_status RegionWorkerStatus {
      get { if ((_hasBits0 & 2) != 0) { return regionWorkerStatus_; } else { return RegionWorkerStatusDefaultValue; } }
      set {
        _hasBits0 |= 2;
        regionWorkerStatus_ = value;
      }
    }
    /// <summary>Gets whether the "region_worker_status" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasRegionWorkerStatus {
      get { return (_hasBits0 & 2) != 0; }
    }
    /// <summary>Clears the value of the "region_worker_status" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearRegionWorkerStatus() {
      _hasBits0 &= ~2;
    }

    /// <summary>Field number for the "locate_information_realtime" field.</summary>
    public const int LocateInformationRealtimeFieldNumber = 6;
    private global::Message.Locate_information locateInformationRealtime_;
    /// <summary>
    ///地面雷达的 实时定位信息
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Locate_information LocateInformationRealtime {
      get { return locateInformationRealtime_; }
      set {
        locateInformationRealtime_ = value;
      }
    }

    /// <summary>Field number for the "ground_status" field.</summary>
    public const int GroundStatusFieldNumber = 7;
    private readonly static global::Message.Ground_statu GroundStatusDefaultValue = global::Message.Ground_statu.Nothing;

    private global::Message.Ground_statu groundStatus_;
    /// <summary>
    /// 电子围栏状态
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Ground_statu GroundStatus {
      get { if ((_hasBits0 & 4) != 0) { return groundStatus_; } else { return GroundStatusDefaultValue; } }
      set {
        _hasBits0 |= 4;
        groundStatus_ = value;
      }
    }
    /// <summary>Gets whether the "ground_status" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasGroundStatus {
      get { return (_hasBits0 & 4) != 0; }
    }
    /// <summary>Clears the value of the "ground_status" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearGroundStatus() {
      _hasBits0 &= ~4;
    }

    /// <summary>Field number for the "border_status" field.</summary>
    public const int BorderStatusFieldNumber = 8;
    private readonly static int BorderStatusDefaultValue = 0;

    private int borderStatus_;
    /// <summary>
    /// 超界状态,为0表示正常，从末尾开始123456位分别代表前、后、左、右、底盘、车高超界
    /// 增加超宽、超轴距、左(逆时针)旋转超界，右(顺时针)旋转超界判断，分别处于7 8 9 10四个位
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int BorderStatus {
      get { if ((_hasBits0 & 8) != 0) { return borderStatus_; } else { return BorderStatusDefaultValue; } }
      set {
        _hasBits0 |= 8;
        borderStatus_ = value;
      }
    }
    /// <summary>Gets whether the "border_status" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasBorderStatus {
      get { return (_hasBits0 & 8) != 0; }
    }
    /// <summary>Clears the value of the "border_status" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearBorderStatus() {
      _hasBits0 &= ~8;
    }

    /// <summary>Field number for the "error_manager" field.</summary>
    public const int ErrorManagerFieldNumber = 9;
    private global::Message.Error_manager errorManager_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Error_manager ErrorManager {
      get { return errorManager_; }
      set {
        errorManager_ = value;
      }
    }

    /// <summary>Field number for the "cloud" field.</summary>
    public const int CloudFieldNumber = 10;
    private static readonly pb::FieldCodec<global::Message.Cloud_coordinate> _repeated_cloud_codec
        = pb::FieldCodec.ForMessage(82, global::Message.Cloud_coordinate.Parser);
    private readonly pbc::RepeatedField<global::Message.Cloud_coordinate> cloud_ = new pbc::RepeatedField<global::Message.Cloud_coordinate>();
    /// <summary>
    ///点云坐标
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::Message.Cloud_coordinate> Cloud {
      get { return cloud_; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as Ground_status_msg);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(Ground_status_msg other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!object.Equals(BaseInfo, other.BaseInfo)) return false;
      if (!object.Equals(IdStruct, other.IdStruct)) return false;
      if (WanjiManagerStatus != other.WanjiManagerStatus) return false;
      if(!wanjiLidarDeviceStatus_.Equals(other.wanjiLidarDeviceStatus_)) return false;
      if (RegionWorkerStatus != other.RegionWorkerStatus) return false;
      if (!object.Equals(LocateInformationRealtime, other.LocateInformationRealtime)) return false;
      if (GroundStatus != other.GroundStatus) return false;
      if (BorderStatus != other.BorderStatus) return false;
      if (!object.Equals(ErrorManager, other.ErrorManager)) return false;
      if(!cloud_.Equals(other.cloud_)) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (baseInfo_ != null) hash ^= BaseInfo.GetHashCode();
      if (idStruct_ != null) hash ^= IdStruct.GetHashCode();
      if (HasWanjiManagerStatus) hash ^= WanjiManagerStatus.GetHashCode();
      hash ^= wanjiLidarDeviceStatus_.GetHashCode();
      if (HasRegionWorkerStatus) hash ^= RegionWorkerStatus.GetHashCode();
      if (locateInformationRealtime_ != null) hash ^= LocateInformationRealtime.GetHashCode();
      if (HasGroundStatus) hash ^= GroundStatus.GetHashCode();
      if (HasBorderStatus) hash ^= BorderStatus.GetHashCode();
      if (errorManager_ != null) hash ^= ErrorManager.GetHashCode();
      hash ^= cloud_.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (baseInfo_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(BaseInfo);
      }
      if (idStruct_ != null) {
        output.WriteRawTag(18);
        output.WriteMessage(IdStruct);
      }
      if (HasWanjiManagerStatus) {
        output.WriteRawTag(24);
        output.WriteEnum((int) WanjiManagerStatus);
      }
      wanjiLidarDeviceStatus_.WriteTo(output, _repeated_wanjiLidarDeviceStatus_codec);
      if (HasRegionWorkerStatus) {
        output.WriteRawTag(40);
        output.WriteEnum((int) RegionWorkerStatus);
      }
      if (locateInformationRealtime_ != null) {
        output.WriteRawTag(50);
        output.WriteMessage(LocateInformationRealtime);
      }
      if (HasGroundStatus) {
        output.WriteRawTag(56);
        output.WriteEnum((int) GroundStatus);
      }
      if (HasBorderStatus) {
        output.WriteRawTag(64);
        output.WriteInt32(BorderStatus);
      }
      if (errorManager_ != null) {
        output.WriteRawTag(74);
        output.WriteMessage(ErrorManager);
      }
      cloud_.WriteTo(output, _repeated_cloud_codec);
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (baseInfo_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(BaseInfo);
      }
      if (idStruct_ != null) {
        output.WriteRawTag(18);
        output.WriteMessage(IdStruct);
      }
      if (HasWanjiManagerStatus) {
        output.WriteRawTag(24);
        output.WriteEnum((int) WanjiManagerStatus);
      }
      wanjiLidarDeviceStatus_.WriteTo(ref output, _repeated_wanjiLidarDeviceStatus_codec);
      if (HasRegionWorkerStatus) {
        output.WriteRawTag(40);
        output.WriteEnum((int) RegionWorkerStatus);
      }
      if (locateInformationRealtime_ != null) {
        output.WriteRawTag(50);
        output.WriteMessage(LocateInformationRealtime);
      }
      if (HasGroundStatus) {
        output.WriteRawTag(56);
        output.WriteEnum((int) GroundStatus);
      }
      if (HasBorderStatus) {
        output.WriteRawTag(64);
        output.WriteInt32(BorderStatus);
      }
      if (errorManager_ != null) {
        output.WriteRawTag(74);
        output.WriteMessage(ErrorManager);
      }
      cloud_.WriteTo(ref output, _repeated_cloud_codec);
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (baseInfo_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(BaseInfo);
      }
      if (idStruct_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(IdStruct);
      }
      if (HasWanjiManagerStatus) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) WanjiManagerStatus);
      }
      size += wanjiLidarDeviceStatus_.CalculateSize(_repeated_wanjiLidarDeviceStatus_codec);
      if (HasRegionWorkerStatus) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) RegionWorkerStatus);
      }
      if (locateInformationRealtime_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(LocateInformationRealtime);
      }
      if (HasGroundStatus) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) GroundStatus);
      }
      if (HasBorderStatus) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(BorderStatus);
      }
      if (errorManager_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(ErrorManager);
      }
      size += cloud_.CalculateSize(_repeated_cloud_codec);
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(Ground_status_msg other) {
      if (other == null) {
        return;
      }
      if (other.baseInfo_ != null) {
        if (baseInfo_ == null) {
          BaseInfo = new global::Message.Base_info();
        }
        BaseInfo.MergeFrom(other.BaseInfo);
      }
      if (other.idStruct_ != null) {
        if (idStruct_ == null) {
          IdStruct = new global::Message.Id_struct();
        }
        IdStruct.MergeFrom(other.IdStruct);
      }
      if (other.HasWanjiManagerStatus) {
        WanjiManagerStatus = other.WanjiManagerStatus;
      }
      wanjiLidarDeviceStatus_.Add(other.wanjiLidarDeviceStatus_);
      if (other.HasRegionWorkerStatus) {
        RegionWorkerStatus = other.RegionWorkerStatus;
      }
      if (other.locateInformationRealtime_ != null) {
        if (locateInformationRealtime_ == null) {
          LocateInformationRealtime = new global::Message.Locate_information();
        }
        LocateInformationRealtime.MergeFrom(other.LocateInformationRealtime);
      }
      if (other.HasGroundStatus) {
        GroundStatus = other.GroundStatus;
      }
      if (other.HasBorderStatus) {
        BorderStatus = other.BorderStatus;
      }
      if (other.errorManager_ != null) {
        if (errorManager_ == null) {
          ErrorManager = new global::Message.Error_manager();
        }
        ErrorManager.MergeFrom(other.ErrorManager);
      }
      cloud_.Add(other.cloud_);
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            if (baseInfo_ == null) {
              BaseInfo = new global::Message.Base_info();
            }
            input.ReadMessage(BaseInfo);
            break;
          }
          case 18: {
            if (idStruct_ == null) {
              IdStruct = new global::Message.Id_struct();
            }
            input.ReadMessage(IdStruct);
            break;
          }
          case 24: {
            WanjiManagerStatus = (global::Message.Wanji_manager_status) input.ReadEnum();
            break;
          }
          case 34:
          case 32: {
            wanjiLidarDeviceStatus_.AddEntriesFrom(input, _repeated_wanjiLidarDeviceStatus_codec);
            break;
          }
          case 40: {
            RegionWorkerStatus = (global::Message.Region_worker_status) input.ReadEnum();
            break;
          }
          case 50: {
            if (locateInformationRealtime_ == null) {
              LocateInformationRealtime = new global::Message.Locate_information();
            }
            input.ReadMessage(LocateInformationRealtime);
            break;
          }
          case 56: {
            GroundStatus = (global::Message.Ground_statu) input.ReadEnum();
            break;
          }
          case 64: {
            BorderStatus = input.ReadInt32();
            break;
          }
          case 74: {
            if (errorManager_ == null) {
              ErrorManager = new global::Message.Error_manager();
            }
            input.ReadMessage(ErrorManager);
            break;
          }
          case 82: {
            cloud_.AddEntriesFrom(input, _repeated_cloud_codec);
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            if (baseInfo_ == null) {
              BaseInfo = new global::Message.Base_info();
            }
            input.ReadMessage(BaseInfo);
            break;
          }
          case 18: {
            if (idStruct_ == null) {
              IdStruct = new global::Message.Id_struct();
            }
            input.ReadMessage(IdStruct);
            break;
          }
          case 24: {
            WanjiManagerStatus = (global::Message.Wanji_manager_status) input.ReadEnum();
            break;
          }
          case 34:
          case 32: {
            wanjiLidarDeviceStatus_.AddEntriesFrom(ref input, _repeated_wanjiLidarDeviceStatus_codec);
            break;
          }
          case 40: {
            RegionWorkerStatus = (global::Message.Region_worker_status) input.ReadEnum();
            break;
          }
          case 50: {
            if (locateInformationRealtime_ == null) {
              LocateInformationRealtime = new global::Message.Locate_information();
            }
            input.ReadMessage(LocateInformationRealtime);
            break;
          }
          case 56: {
            GroundStatus = (global::Message.Ground_statu) input.ReadEnum();
            break;
          }
          case 64: {
            BorderStatus = input.ReadInt32();
            break;
          }
          case 74: {
            if (errorManager_ == null) {
              ErrorManager = new global::Message.Error_manager();
            }
            input.ReadMessage(ErrorManager);
            break;
          }
          case 82: {
            cloud_.AddEntriesFrom(ref input, _repeated_cloud_codec);
            break;
          }
        }
      }
    }
    #endif

  }

  /// <summary>
  ///点云坐标
  /// </summary>
  public sealed partial class Cloud_coordinate : pb::IMessage<Cloud_coordinate>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Cloud_coordinate> _parser = new pb::MessageParser<Cloud_coordinate>(() => new Cloud_coordinate());
    private pb::UnknownFieldSet _unknownFields;
    private int _hasBits0;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<Cloud_coordinate> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Message.MeasureMessageReflection.Descriptor.MessageTypes[6]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Cloud_coordinate() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Cloud_coordinate(Cloud_coordinate other) : this() {
      _hasBits0 = other._hasBits0;
      x_ = other.x_;
      y_ = other.y_;
      z_ = other.z_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Cloud_coordinate Clone() {
      return new Cloud_coordinate(this);
    }

    /// <summary>Field number for the "x" field.</summary>
    public const int XFieldNumber = 1;
    private readonly static float XDefaultValue = 0F;

    private float x_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public float X {
      get { if ((_hasBits0 & 1) != 0) { return x_; } else { return XDefaultValue; } }
      set {
        _hasBits0 |= 1;
        x_ = value;
      }
    }
    /// <summary>Gets whether the "x" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasX {
      get { return (_hasBits0 & 1) != 0; }
    }
    /// <summary>Clears the value of the "x" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearX() {
      _hasBits0 &= ~1;
    }

    /// <summary>Field number for the "y" field.</summary>
    public const int YFieldNumber = 2;
    private readonly static float YDefaultValue = 0F;

    private float y_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public float Y {
      get { if ((_hasBits0 & 2) != 0) { return y_; } else { return YDefaultValue; } }
      set {
        _hasBits0 |= 2;
        y_ = value;
      }
    }
    /// <summary>Gets whether the "y" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasY {
      get { return (_hasBits0 & 2) != 0; }
    }
    /// <summary>Clears the value of the "y" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearY() {
      _hasBits0 &= ~2;
    }

    /// <summary>Field number for the "z" field.</summary>
    public const int ZFieldNumber = 3;
    private readonly static float ZDefaultValue = 0F;

    private float z_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public float Z {
      get { if ((_hasBits0 & 4) != 0) { return z_; } else { return ZDefaultValue; } }
      set {
        _hasBits0 |= 4;
        z_ = value;
      }
    }
    /// <summary>Gets whether the "z" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasZ {
      get { return (_hasBits0 & 4) != 0; }
    }
    /// <summary>Clears the value of the "z" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearZ() {
      _hasBits0 &= ~4;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as Cloud_coordinate);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(Cloud_coordinate other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(X, other.X)) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(Y, other.Y)) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(Z, other.Z)) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (HasX) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(X);
      if (HasY) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(Y);
      if (HasZ) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(Z);
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (HasX) {
        output.WriteRawTag(13);
        output.WriteFloat(X);
      }
      if (HasY) {
        output.WriteRawTag(21);
        output.WriteFloat(Y);
      }
      if (HasZ) {
        output.WriteRawTag(29);
        output.WriteFloat(Z);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (HasX) {
        output.WriteRawTag(13);
        output.WriteFloat(X);
      }
      if (HasY) {
        output.WriteRawTag(21);
        output.WriteFloat(Y);
      }
      if (HasZ) {
        output.WriteRawTag(29);
        output.WriteFloat(Z);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (HasX) {
        size += 1 + 4;
      }
      if (HasY) {
        size += 1 + 4;
      }
      if (HasZ) {
        size += 1 + 4;
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(Cloud_coordinate other) {
      if (other == null) {
        return;
      }
      if (other.HasX) {
        X = other.X;
      }
      if (other.HasY) {
        Y = other.Y;
      }
      if (other.HasZ) {
        Z = other.Z;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 13: {
            X = input.ReadFloat();
            break;
          }
          case 21: {
            Y = input.ReadFloat();
            break;
          }
          case 29: {
            Z = input.ReadFloat();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 13: {
            X = input.ReadFloat();
            break;
          }
          case 21: {
            Y = input.ReadFloat();
            break;
          }
          case 29: {
            Z = input.ReadFloat();
            break;
          }
        }
      }
    }
    #endif

  }

  /// <summary>
  ///点云类型
  /// </summary>
  public sealed partial class Cloud_type : pb::IMessage<Cloud_type>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Cloud_type> _parser = new pb::MessageParser<Cloud_type>(() => new Cloud_type());
    private pb::UnknownFieldSet _unknownFields;
    private int _hasBits0;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<Cloud_type> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Message.MeasureMessageReflection.Descriptor.MessageTypes[7]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Cloud_type() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Cloud_type(Cloud_type other) : this() {
      _hasBits0 = other._hasBits0;
      type_ = other.type_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Cloud_type Clone() {
      return new Cloud_type(this);
    }

    /// <summary>Field number for the "type" field.</summary>
    public const int TypeFieldNumber = 1;
    private readonly static int TypeDefaultValue = 0;

    private int type_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int Type {
      get { if ((_hasBits0 & 1) != 0) { return type_; } else { return TypeDefaultValue; } }
      set {
        _hasBits0 |= 1;
        type_ = value;
      }
    }
    /// <summary>Gets whether the "type" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasType {
      get { return (_hasBits0 & 1) != 0; }
    }
    /// <summary>Clears the value of the "type" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearType() {
      _hasBits0 &= ~1;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as Cloud_type);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(Cloud_type other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Type != other.Type) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (HasType) hash ^= Type.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (HasType) {
        output.WriteRawTag(8);
        output.WriteInt32(Type);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (HasType) {
        output.WriteRawTag(8);
        output.WriteInt32(Type);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (HasType) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Type);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(Cloud_type other) {
      if (other == null) {
        return;
      }
      if (other.HasType) {
        Type = other.Type;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            Type = input.ReadInt32();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            Type = input.ReadInt32();
            break;
          }
        }
      }
    }
    #endif

  }

  /// <summary>
  ///筛选点云; 请求消息
  /// </summary>
  public sealed partial class Locate_sift_request_msg : pb::IMessage<Locate_sift_request_msg>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Locate_sift_request_msg> _parser = new pb::MessageParser<Locate_sift_request_msg>(() => new Locate_sift_request_msg());
    private pb::UnknownFieldSet _unknownFields;
    private int _hasBits0;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<Locate_sift_request_msg> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Message.MeasureMessageReflection.Descriptor.MessageTypes[8]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Locate_sift_request_msg() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Locate_sift_request_msg(Locate_sift_request_msg other) : this() {
      _hasBits0 = other._hasBits0;
      baseInfo_ = other.baseInfo_ != null ? other.baseInfo_.Clone() : null;
      commandKey_ = other.commandKey_;
      idStruct_ = other.idStruct_ != null ? other.idStruct_.Clone() : null;
      lidarId_ = other.lidarId_;
      cloudCoordinates_ = other.cloudCoordinates_.Clone();
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Locate_sift_request_msg Clone() {
      return new Locate_sift_request_msg(this);
    }

    /// <summary>Field number for the "base_info" field.</summary>
    public const int BaseInfoFieldNumber = 1;
    private global::Message.Base_info baseInfo_;
    /// <summary>
    ///消息类型
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Base_info BaseInfo {
      get { return baseInfo_; }
      set {
        baseInfo_ = value;
      }
    }

    /// <summary>Field number for the "command_key" field.</summary>
    public const int CommandKeyFieldNumber = 2;
    private readonly static string CommandKeyDefaultValue = "";

    private string commandKey_;
    /// <summary>
    ///指令唯一标识符id
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string CommandKey {
      get { return commandKey_ ?? CommandKeyDefaultValue; }
      set {
        commandKey_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }
    /// <summary>Gets whether the "command_key" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasCommandKey {
      get { return commandKey_ != null; }
    }
    /// <summary>Clears the value of the "command_key" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearCommandKey() {
      commandKey_ = null;
    }

    /// <summary>Field number for the "id_struct" field.</summary>
    public const int IdStructFieldNumber = 3;
    private global::Message.Id_struct idStruct_;
    /// <summary>
    ///终端id
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Id_struct IdStruct {
      get { return idStruct_; }
      set {
        idStruct_ = value;
      }
    }

    /// <summary>Field number for the "lidar_id" field.</summary>
    public const int LidarIdFieldNumber = 4;
    private readonly static int LidarIdDefaultValue = 0;

    private int lidarId_;
    /// <summary>
    ///雷达id
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int LidarId {
      get { if ((_hasBits0 & 1) != 0) { return lidarId_; } else { return LidarIdDefaultValue; } }
      set {
        _hasBits0 |= 1;
        lidarId_ = value;
      }
    }
    /// <summary>Gets whether the "lidar_id" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasLidarId {
      get { return (_hasBits0 & 1) != 0; }
    }
    /// <summary>Clears the value of the "lidar_id" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearLidarId() {
      _hasBits0 &= ~1;
    }

    /// <summary>Field number for the "cloud_coordinates" field.</summary>
    public const int CloudCoordinatesFieldNumber = 5;
    private static readonly pb::FieldCodec<global::Message.Cloud_coordinate> _repeated_cloudCoordinates_codec
        = pb::FieldCodec.ForMessage(42, global::Message.Cloud_coordinate.Parser);
    private readonly pbc::RepeatedField<global::Message.Cloud_coordinate> cloudCoordinates_ = new pbc::RepeatedField<global::Message.Cloud_coordinate>();
    /// <summary>
    ///点云坐标
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::Message.Cloud_coordinate> CloudCoordinates {
      get { return cloudCoordinates_; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as Locate_sift_request_msg);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(Locate_sift_request_msg other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!object.Equals(BaseInfo, other.BaseInfo)) return false;
      if (CommandKey != other.CommandKey) return false;
      if (!object.Equals(IdStruct, other.IdStruct)) return false;
      if (LidarId != other.LidarId) return false;
      if(!cloudCoordinates_.Equals(other.cloudCoordinates_)) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (baseInfo_ != null) hash ^= BaseInfo.GetHashCode();
      if (HasCommandKey) hash ^= CommandKey.GetHashCode();
      if (idStruct_ != null) hash ^= IdStruct.GetHashCode();
      if (HasLidarId) hash ^= LidarId.GetHashCode();
      hash ^= cloudCoordinates_.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (baseInfo_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(BaseInfo);
      }
      if (HasCommandKey) {
        output.WriteRawTag(18);
        output.WriteString(CommandKey);
      }
      if (idStruct_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(IdStruct);
      }
      if (HasLidarId) {
        output.WriteRawTag(32);
        output.WriteInt32(LidarId);
      }
      cloudCoordinates_.WriteTo(output, _repeated_cloudCoordinates_codec);
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (baseInfo_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(BaseInfo);
      }
      if (HasCommandKey) {
        output.WriteRawTag(18);
        output.WriteString(CommandKey);
      }
      if (idStruct_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(IdStruct);
      }
      if (HasLidarId) {
        output.WriteRawTag(32);
        output.WriteInt32(LidarId);
      }
      cloudCoordinates_.WriteTo(ref output, _repeated_cloudCoordinates_codec);
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (baseInfo_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(BaseInfo);
      }
      if (HasCommandKey) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(CommandKey);
      }
      if (idStruct_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(IdStruct);
      }
      if (HasLidarId) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(LidarId);
      }
      size += cloudCoordinates_.CalculateSize(_repeated_cloudCoordinates_codec);
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(Locate_sift_request_msg other) {
      if (other == null) {
        return;
      }
      if (other.baseInfo_ != null) {
        if (baseInfo_ == null) {
          BaseInfo = new global::Message.Base_info();
        }
        BaseInfo.MergeFrom(other.BaseInfo);
      }
      if (other.HasCommandKey) {
        CommandKey = other.CommandKey;
      }
      if (other.idStruct_ != null) {
        if (idStruct_ == null) {
          IdStruct = new global::Message.Id_struct();
        }
        IdStruct.MergeFrom(other.IdStruct);
      }
      if (other.HasLidarId) {
        LidarId = other.LidarId;
      }
      cloudCoordinates_.Add(other.cloudCoordinates_);
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            if (baseInfo_ == null) {
              BaseInfo = new global::Message.Base_info();
            }
            input.ReadMessage(BaseInfo);
            break;
          }
          case 18: {
            CommandKey = input.ReadString();
            break;
          }
          case 26: {
            if (idStruct_ == null) {
              IdStruct = new global::Message.Id_struct();
            }
            input.ReadMessage(IdStruct);
            break;
          }
          case 32: {
            LidarId = input.ReadInt32();
            break;
          }
          case 42: {
            cloudCoordinates_.AddEntriesFrom(input, _repeated_cloudCoordinates_codec);
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            if (baseInfo_ == null) {
              BaseInfo = new global::Message.Base_info();
            }
            input.ReadMessage(BaseInfo);
            break;
          }
          case 18: {
            CommandKey = input.ReadString();
            break;
          }
          case 26: {
            if (idStruct_ == null) {
              IdStruct = new global::Message.Id_struct();
            }
            input.ReadMessage(IdStruct);
            break;
          }
          case 32: {
            LidarId = input.ReadInt32();
            break;
          }
          case 42: {
            cloudCoordinates_.AddEntriesFrom(ref input, _repeated_cloudCoordinates_codec);
            break;
          }
        }
      }
    }
    #endif

  }

  /// <summary>
  ///筛选点云; 答复消息
  /// </summary>
  public sealed partial class Locate_sift_response_msg : pb::IMessage<Locate_sift_response_msg>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Locate_sift_response_msg> _parser = new pb::MessageParser<Locate_sift_response_msg>(() => new Locate_sift_response_msg());
    private pb::UnknownFieldSet _unknownFields;
    private int _hasBits0;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<Locate_sift_response_msg> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Message.MeasureMessageReflection.Descriptor.MessageTypes[9]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Locate_sift_response_msg() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Locate_sift_response_msg(Locate_sift_response_msg other) : this() {
      _hasBits0 = other._hasBits0;
      baseInfo_ = other.baseInfo_ != null ? other.baseInfo_.Clone() : null;
      commandKey_ = other.commandKey_;
      idStruct_ = other.idStruct_ != null ? other.idStruct_.Clone() : null;
      lidarId_ = other.lidarId_;
      cloudType_ = other.cloudType_.Clone();
      errorManager_ = other.errorManager_ != null ? other.errorManager_.Clone() : null;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Locate_sift_response_msg Clone() {
      return new Locate_sift_response_msg(this);
    }

    /// <summary>Field number for the "base_info" field.</summary>
    public const int BaseInfoFieldNumber = 1;
    private global::Message.Base_info baseInfo_;
    /// <summary>
    ///消息类型
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Base_info BaseInfo {
      get { return baseInfo_; }
      set {
        baseInfo_ = value;
      }
    }

    /// <summary>Field number for the "command_key" field.</summary>
    public const int CommandKeyFieldNumber = 2;
    private readonly static string CommandKeyDefaultValue = "";

    private string commandKey_;
    /// <summary>
    ///指令唯一标识符id
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string CommandKey {
      get { return commandKey_ ?? CommandKeyDefaultValue; }
      set {
        commandKey_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }
    /// <summary>Gets whether the "command_key" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasCommandKey {
      get { return commandKey_ != null; }
    }
    /// <summary>Clears the value of the "command_key" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearCommandKey() {
      commandKey_ = null;
    }

    /// <summary>Field number for the "id_struct" field.</summary>
    public const int IdStructFieldNumber = 3;
    private global::Message.Id_struct idStruct_;
    /// <summary>
    ///终端id
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Id_struct IdStruct {
      get { return idStruct_; }
      set {
        idStruct_ = value;
      }
    }

    /// <summary>Field number for the "lidar_id" field.</summary>
    public const int LidarIdFieldNumber = 4;
    private readonly static int LidarIdDefaultValue = 0;

    private int lidarId_;
    /// <summary>
    ///雷达id
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int LidarId {
      get { if ((_hasBits0 & 1) != 0) { return lidarId_; } else { return LidarIdDefaultValue; } }
      set {
        _hasBits0 |= 1;
        lidarId_ = value;
      }
    }
    /// <summary>Gets whether the "lidar_id" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasLidarId {
      get { return (_hasBits0 & 1) != 0; }
    }
    /// <summary>Clears the value of the "lidar_id" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearLidarId() {
      _hasBits0 &= ~1;
    }

    /// <summary>Field number for the "cloud_type" field.</summary>
    public const int CloudTypeFieldNumber = 5;
    private static readonly pb::FieldCodec<global::Message.Cloud_type> _repeated_cloudType_codec
        = pb::FieldCodec.ForMessage(42, global::Message.Cloud_type.Parser);
    private readonly pbc::RepeatedField<global::Message.Cloud_type> cloudType_ = new pbc::RepeatedField<global::Message.Cloud_type>();
    /// <summary>
    ///点云类型
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::Message.Cloud_type> CloudType {
      get { return cloudType_; }
    }

    /// <summary>Field number for the "error_manager" field.</summary>
    public const int ErrorManagerFieldNumber = 6;
    private global::Message.Error_manager errorManager_;
    /// <summary>
    ///错误码
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Error_manager ErrorManager {
      get { return errorManager_; }
      set {
        errorManager_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as Locate_sift_response_msg);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(Locate_sift_response_msg other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!object.Equals(BaseInfo, other.BaseInfo)) return false;
      if (CommandKey != other.CommandKey) return false;
      if (!object.Equals(IdStruct, other.IdStruct)) return false;
      if (LidarId != other.LidarId) return false;
      if(!cloudType_.Equals(other.cloudType_)) return false;
      if (!object.Equals(ErrorManager, other.ErrorManager)) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (baseInfo_ != null) hash ^= BaseInfo.GetHashCode();
      if (HasCommandKey) hash ^= CommandKey.GetHashCode();
      if (idStruct_ != null) hash ^= IdStruct.GetHashCode();
      if (HasLidarId) hash ^= LidarId.GetHashCode();
      hash ^= cloudType_.GetHashCode();
      if (errorManager_ != null) hash ^= ErrorManager.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (baseInfo_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(BaseInfo);
      }
      if (HasCommandKey) {
        output.WriteRawTag(18);
        output.WriteString(CommandKey);
      }
      if (idStruct_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(IdStruct);
      }
      if (HasLidarId) {
        output.WriteRawTag(32);
        output.WriteInt32(LidarId);
      }
      cloudType_.WriteTo(output, _repeated_cloudType_codec);
      if (errorManager_ != null) {
        output.WriteRawTag(50);
        output.WriteMessage(ErrorManager);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (baseInfo_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(BaseInfo);
      }
      if (HasCommandKey) {
        output.WriteRawTag(18);
        output.WriteString(CommandKey);
      }
      if (idStruct_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(IdStruct);
      }
      if (HasLidarId) {
        output.WriteRawTag(32);
        output.WriteInt32(LidarId);
      }
      cloudType_.WriteTo(ref output, _repeated_cloudType_codec);
      if (errorManager_ != null) {
        output.WriteRawTag(50);
        output.WriteMessage(ErrorManager);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (baseInfo_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(BaseInfo);
      }
      if (HasCommandKey) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(CommandKey);
      }
      if (idStruct_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(IdStruct);
      }
      if (HasLidarId) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(LidarId);
      }
      size += cloudType_.CalculateSize(_repeated_cloudType_codec);
      if (errorManager_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(ErrorManager);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(Locate_sift_response_msg other) {
      if (other == null) {
        return;
      }
      if (other.baseInfo_ != null) {
        if (baseInfo_ == null) {
          BaseInfo = new global::Message.Base_info();
        }
        BaseInfo.MergeFrom(other.BaseInfo);
      }
      if (other.HasCommandKey) {
        CommandKey = other.CommandKey;
      }
      if (other.idStruct_ != null) {
        if (idStruct_ == null) {
          IdStruct = new global::Message.Id_struct();
        }
        IdStruct.MergeFrom(other.IdStruct);
      }
      if (other.HasLidarId) {
        LidarId = other.LidarId;
      }
      cloudType_.Add(other.cloudType_);
      if (other.errorManager_ != null) {
        if (errorManager_ == null) {
          ErrorManager = new global::Message.Error_manager();
        }
        ErrorManager.MergeFrom(other.ErrorManager);
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            if (baseInfo_ == null) {
              BaseInfo = new global::Message.Base_info();
            }
            input.ReadMessage(BaseInfo);
            break;
          }
          case 18: {
            CommandKey = input.ReadString();
            break;
          }
          case 26: {
            if (idStruct_ == null) {
              IdStruct = new global::Message.Id_struct();
            }
            input.ReadMessage(IdStruct);
            break;
          }
          case 32: {
            LidarId = input.ReadInt32();
            break;
          }
          case 42: {
            cloudType_.AddEntriesFrom(input, _repeated_cloudType_codec);
            break;
          }
          case 50: {
            if (errorManager_ == null) {
              ErrorManager = new global::Message.Error_manager();
            }
            input.ReadMessage(ErrorManager);
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            if (baseInfo_ == null) {
              BaseInfo = new global::Message.Base_info();
            }
            input.ReadMessage(BaseInfo);
            break;
          }
          case 18: {
            CommandKey = input.ReadString();
            break;
          }
          case 26: {
            if (idStruct_ == null) {
              IdStruct = new global::Message.Id_struct();
            }
            input.ReadMessage(IdStruct);
            break;
          }
          case 32: {
            LidarId = input.ReadInt32();
            break;
          }
          case 42: {
            cloudType_.AddEntriesFrom(ref input, _repeated_cloudType_codec);
            break;
          }
          case 50: {
            if (errorManager_ == null) {
              ErrorManager = new global::Message.Error_manager();
            }
            input.ReadMessage(ErrorManager);
            break;
          }
        }
      }
    }
    #endif

  }

  #endregion

}

#endregion Designer generated code
