// <auto-generated>
//     Generated by the protocol buffer compiler.  DO NOT EDIT!
//     source: dispatch_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 dispatch_message.proto</summary>
  public static partial class DispatchMessageReflection {

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

    static DispatchMessageReflection() {
      byte[] descriptorData = global::System.Convert.FromBase64String(
          string.Concat(
            "ChZkaXNwYXRjaF9tZXNzYWdlLnByb3RvEgdtZXNzYWdlGhJtZXNzYWdlX2Jh",
            "c2UucHJvdG8ipgMKHERpc3BhdGNoX3Byb2Nlc3NfaW5mb3JtYXRpb24SFwoP",
            "Y2FyX251bWJlclBsYXRlGAEgASgJEhMKC2NvbW1hbmRfa2V5GAIgASgJEkUK",
            "GWRpc3BhdGNoX21vdGlvbl9kaXJlY3Rpb24YAyABKA4yIi5tZXNzYWdlLkRp",
            "c3BhdGNoX21vdGlvbl9kaXJlY3Rpb24SJQoJaWRfc3RydWN0GAQgASgLMhIu",
            "bWVzc2FnZS5JZF9zdHJ1Y3QSNwoSbG9jYXRlX2luZm9ybWF0aW9uGAUgASgL",
            "MhsubWVzc2FnZS5Mb2NhdGVfaW5mb3JtYXRpb24SMgoRcGFya3NwYWNlX2lu",
            "Zm9fZXgYBiADKAsyFy5tZXNzYWdlLlBhcmtzcGFjZV9pbmZvEiMKCGNhcl90",
            "eXBlGAcgASgOMhEubWVzc2FnZS5DYXJfdHlwZRJBChdkaXNwYXRjaF9wcm9j",
            "ZXNzX3N0YXR1cxgIIAEoDjIgLm1lc3NhZ2UuRGlzcGF0Y2hfcHJvY2Vzc19z",
            "dGF0dXMSFQoNbV93YWl0X251bWJlchgJIAEoBSKCBAocRGlzcGF0Y2hfdGVy",
            "bWluYWxfc3RhdHVzX21zZxIlCgliYXNlX2luZm8YASACKAsyEi5tZXNzYWdl",
            "LkJhc2VfaW5mbxIlCglpZF9zdHJ1Y3QYAiABKAsyEi5tZXNzYWdlLklkX3N0",
            "cnVjdBIxCg90ZXJtaW5hbF9zdGF0dXMYAyACKA4yGC5tZXNzYWdlLlRlcm1p",
            "bmFsX3N0YXR1cxI7ChRwYXNzYWdld2F5X2RpcmVjdGlvbhgEIAIoDjIdLm1l",
            "c3NhZ2UuUGFzc2FnZXdheV9kaXJlY3Rpb24SWAopZGlzcGF0Y2hfc3RvcmVf",
            "cHJvY2Vzc19pbmZvcm1hdGlvbl92ZWN0b3IYBSADKAsyJS5tZXNzYWdlLkRp",
            "c3BhdGNoX3Byb2Nlc3NfaW5mb3JtYXRpb24SNgouZGlzcGF0Y2hfc3RvcmVf",
            "cHJvY2Vzc19pbmZvcm1hdGlvbl91cGRhdGFfdGltZRgGIAEoCRJZCipkaXNw",
            "YXRjaF9waWNrdXBfcHJvY2Vzc19pbmZvcm1hdGlvbl92ZWN0b3IYByADKAsy",
            "JS5tZXNzYWdlLkRpc3BhdGNoX3Byb2Nlc3NfaW5mb3JtYXRpb24SNwovZGlz",
            "cGF0Y2hfcGlja3VwX3Byb2Nlc3NfaW5mb3JtYXRpb25fdXBkYXRhX3RpbWUY",
            "CCABKAki0gIKFERpc3BhdGNoX3JlcXVlc3RfbXNnEiUKCWJhc2VfaW5mbxgB",
            "IAIoCzISLm1lc3NhZ2UuQmFzZV9pbmZvEhMKC2NvbW1hbmRfa2V5GAIgAigJ",
            "EkUKGWRpc3BhdGNoX21vdGlvbl9kaXJlY3Rpb24YAyABKA4yIi5tZXNzYWdl",
            "LkRpc3BhdGNoX21vdGlvbl9kaXJlY3Rpb24SJQoJaWRfc3RydWN0GAQgASgL",
            "MhIubWVzc2FnZS5JZF9zdHJ1Y3QSNwoSbG9jYXRlX2luZm9ybWF0aW9uGAUg",
            "ASgLMhsubWVzc2FnZS5Mb2NhdGVfaW5mb3JtYXRpb24SMgoRcGFya3NwYWNl",
            "X2luZm9fZXgYBiADKAsyFy5tZXNzYWdlLlBhcmtzcGFjZV9pbmZvEiMKCGNh",
            "cl90eXBlGAcgASgOMhEubWVzc2FnZS5DYXJfdHlwZSKCAwoVRGlzcGF0Y2hf",
            "cmVzcG9uc2VfbXNnEiUKCWJhc2VfaW5mbxgBIAIoCzISLm1lc3NhZ2UuQmFz",
            "ZV9pbmZvEhMKC2NvbW1hbmRfa2V5GAIgAigJEkUKGWRpc3BhdGNoX21vdGlv",
            "bl9kaXJlY3Rpb24YAyABKA4yIi5tZXNzYWdlLkRpc3BhdGNoX21vdGlvbl9k",
            "aXJlY3Rpb24SJQoJaWRfc3RydWN0GAQgASgLMhIubWVzc2FnZS5JZF9zdHJ1",
            "Y3QSNwoSbG9jYXRlX2luZm9ybWF0aW9uGAUgASgLMhsubWVzc2FnZS5Mb2Nh",
            "dGVfaW5mb3JtYXRpb24SMgoRcGFya3NwYWNlX2luZm9fZXgYBiADKAsyFy5t",
            "ZXNzYWdlLlBhcmtzcGFjZV9pbmZvEiMKCGNhcl90eXBlGAcgASgOMhEubWVz",
            "c2FnZS5DYXJfdHlwZRItCg1lcnJvcl9tYW5hZ2VyGAggASgLMhYubWVzc2Fn",
            "ZS5FcnJvcl9tYW5hZ2VyIssFCgxDYXRjaGVyX2RhdGESOwoUZGlzcGF0Y2hf",
            "ZGV2aWNlX3R5cGUYASACKA4yHS5tZXNzYWdlLkRpc3BhdGNoX2RldmljZV90",
            "eXBlEj8KFmRpc3BhdGNoX2RldmljZV9zdGF0dXMYAiACKA4yHy5tZXNzYWdl",
            "LkRpc3BhdGNoX2RldmljZV9zdGF0dXMSEQoJZGV2aWNlX2lkGAMgAigFEj0K",
            "FGFjdHVhbF9kZXZpY2Vfc3RhdHVzGAQgASgOMh8ubWVzc2FnZS5IYXJkd2Fy",
            "ZV9kZXZpY2Vfc3RhdHVzEjAKEmFjdHVhbF9sb2FkX3N0YXR1cxgFIAEoDjIU",
            "Lm1lc3NhZ2UuTG9hZF9zdGF0dXMSHQoVYWN0dWFsX2Nvb3JkaW5hdGVzX2lk",
            "GAYgASgFEhAKCGFjdHVhbF94GAcgASgCEhAKCGFjdHVhbF95GAggASgCEhAK",
            "CGFjdHVhbF9iGAkgASgCEhAKCGFjdHVhbF96GAogASgCEhEKCWFjdHVhbF9k",
            "MRgLIAEoAhIRCglhY3R1YWxfZDIYDCABKAISMwoUYWN0dWFsX2NsYW1wX21v",
            "dGlvbjEYDSABKA4yFS5tZXNzYWdlLkNsYW1wX21vdGlvbhIzChRhY3R1YWxf",
            "Y2xhbXBfbW90aW9uMhgOIAEoDjIVLm1lc3NhZ2UuQ2xhbXBfbW90aW9uEjMK",
            "FGFjdHVhbF9jbGFtcF9tb3Rpb24zGA8gASgOMhUubWVzc2FnZS5DbGFtcF9t",
            "b3Rpb24SMwoUYWN0dWFsX2NsYW1wX21vdGlvbjQYECABKA4yFS5tZXNzYWdl",
            "LkNsYW1wX21vdGlvbhIZChFhY3R1YWxfZXJyb3JfY29kZRgRIAEoCRIbChNh",
            "Y3R1YWxfd2FybmluZ19jb2RlGBIgASgJEiAKGGFjdHVhbF9lcnJvcl9kZXNj",
            "cmlwdGlvbhgTIAEoCSKHBgoMQ2Fycmllcl9kYXRhEjsKFGRpc3BhdGNoX2Rl",
            "dmljZV90eXBlGAEgAigOMh0ubWVzc2FnZS5EaXNwYXRjaF9kZXZpY2VfdHlw",
            "ZRI/ChZkaXNwYXRjaF9kZXZpY2Vfc3RhdHVzGAIgAigOMh8ubWVzc2FnZS5E",
            "aXNwYXRjaF9kZXZpY2Vfc3RhdHVzEhEKCWRldmljZV9pZBgDIAIoBRI9ChRh",
            "Y3R1YWxfZGV2aWNlX3N0YXR1cxgEIAEoDjIfLm1lc3NhZ2UuSGFyZHdhcmVf",
            "ZGV2aWNlX3N0YXR1cxIwChJhY3R1YWxfbG9hZF9zdGF0dXMYBSABKA4yFC5t",
            "ZXNzYWdlLkxvYWRfc3RhdHVzEh0KFWFjdHVhbF9jb29yZGluYXRlc19pZBgG",
            "IAEoBRIQCghhY3R1YWxfeBgHIAEoAhIQCghhY3R1YWxfeRgIIAEoAhIQCghh",
            "Y3R1YWxfehgJIAEoAhIRCglhY3R1YWxfeTEYCiABKAISEQoJYWN0dWFsX3ky",
            "GAsgASgCEjMKFGFjdHVhbF9jbGFtcF9tb3Rpb24xGAwgASgOMhUubWVzc2Fn",
            "ZS5DbGFtcF9tb3Rpb24SMwoUYWN0dWFsX2NsYW1wX21vdGlvbjIYDSABKA4y",
            "FS5tZXNzYWdlLkNsYW1wX21vdGlvbhJICh5hY3R1YWxfc21hbGxfc3BvcnRz",
            "X2Nhcl9tb3Rpb24YDiABKA4yIC5tZXNzYWdlLlNtYWxsX3Nwb3J0c19jYXJf",
            "bW90aW9uEjUKFmFjdHVhbF9qb2ludF9tb3Rpb25feDEYDyABKA4yFS5tZXNz",
            "YWdlLkpvaW50X21vdGlvbhI1ChZhY3R1YWxfam9pbnRfbW90aW9uX3gyGBAg",
            "ASgOMhUubWVzc2FnZS5Kb2ludF9tb3Rpb24SGQoRYWN0dWFsX2Vycm9yX2Nv",
            "ZGUYESABKAkSGwoTYWN0dWFsX3dhcm5pbmdfY29kZRgSIAEoCRIgChhhY3R1",
            "YWxfZXJyb3JfZGVzY3JpcHRpb24YEyABKAkivQcKD1Bhc3NhZ2V3YXlfZGF0",
            "YRI7ChRkaXNwYXRjaF9kZXZpY2VfdHlwZRgBIAIoDjIdLm1lc3NhZ2UuRGlz",
            "cGF0Y2hfZGV2aWNlX3R5cGUSPwoWZGlzcGF0Y2hfZGV2aWNlX3N0YXR1cxgC",
            "IAIoDjIfLm1lc3NhZ2UuRGlzcGF0Y2hfZGV2aWNlX3N0YXR1cxIRCglkZXZp",
            "Y2VfaWQYAyACKAUSPQoUYWN0dWFsX2RldmljZV9zdGF0dXMYBCABKA4yHy5t",
            "ZXNzYWdlLkhhcmR3YXJlX2RldmljZV9zdGF0dXMSNwoZYWN0dWFsX2luc2lk",
            "ZV9sb2FkX3N0YXR1cxgFIAEoDjIULm1lc3NhZ2UuTG9hZF9zdGF0dXMSOAoa",
            "YWN0dWFsX291dHNpZGVfbG9hZF9zdGF0dXMYBiABKA4yFC5tZXNzYWdlLkxv",
            "YWRfc3RhdHVzEkoKImFjdHVhbF9mcm9udF9vdmVyc3RlcF90aGVfYm91bmRh",
            "cnkYByABKA4yHi5tZXNzYWdlLk92ZXJzdGVwX3RoZV9ib3VuZGFyeRJJCiFh",
            "Y3R1YWxfYmFja19vdmVyc3RlcF90aGVfYm91bmRhcnkYCCABKA4yHi5tZXNz",
            "YWdlLk92ZXJzdGVwX3RoZV9ib3VuZGFyeRJLCiNhY3R1YWxfaGVpZ2h0X292",
            "ZXJzdGVwX3RoZV9ib3VuZGFyeRgJIAEoDjIeLm1lc3NhZ2UuT3ZlcnN0ZXBf",
            "dGhlX2JvdW5kYXJ5EjgKGmFjdHVhbF9vdXRzaWRlX2Rvb3Jfc2Vuc29yGAog",
            "ASgOMhQubWVzc2FnZS5Mb2FkX3N0YXR1cxI3ChlhY3R1YWxfaW5zaWRlX2Rv",
            "b3JfbW90aW9uGAsgASgOMhQubWVzc2FnZS5Eb29yX21vdGlvbhI4ChphY3R1",
            "YWxfb3V0c2lkZV9kb29yX21vdGlvbhgMIAEoDjIULm1lc3NhZ2UuRG9vcl9t",
            "b3Rpb24SOgocYWN0dWFsX3R1cm50YWJsZV9sb2FkX3N0YXR1cxgNIAEoDjIU",
            "Lm1lc3NhZ2UuTG9hZF9zdGF0dXMSQAoaYWN0dWFsX3R1cm50YWJsZV9kaXJl",
            "Y3Rpb24YDiABKA4yHC5tZXNzYWdlLlR1cm50YWJsZV9kaXJlY3Rpb24SGQoR",
            "YWN0dWFsX2Vycm9yX2NvZGUYDyABKAkSGwoTYWN0dWFsX3dhcm5pbmdfY29k",
            "ZRgQIAEoCRIgChhhY3R1YWxfZXJyb3JfZGVzY3JpcHRpb24YESABKAkitQIK",
            "G0Rpc3BhdGNoX21hbmFnZXJfc3RhdHVzX21zZxIlCgliYXNlX2luZm8YASAC",
            "KAsyEi5tZXNzYWdlLkJhc2VfaW5mbxITCgtkaXNwYXRjaF9pZBgCIAIoBRJB",
            "ChdkaXNwYXRjaF9tYW5hZ2VyX3N0YXR1cxgDIAIoDjIgLm1lc3NhZ2UuRGlz",
            "cGF0Y2hfbWFuYWdlcl9zdGF0dXMSLwoQY2F0Y2hlcl9kYXRhX21hcBgEIAMo",
            "CzIVLm1lc3NhZ2UuQ2F0Y2hlcl9kYXRhEi8KEGNhcnJpZXJfZGF0YV9tYXAY",
            "BSADKAsyFS5tZXNzYWdlLkNhcnJpZXJfZGF0YRI1ChNwYXNzYWdld2F5X2Rh",
            "dGFfbWFwGAYgAygLMhgubWVzc2FnZS5QYXNzYWdld2F5X2RhdGEiGwoZRGlz",
            "cGF0Y2hfbWFuYWdlcl9kYXRhX21zZyqBAQoPVGVybWluYWxfc3RhdHVzEhUK",
            "EUVfVEVSTUlOQUxfVU5LTk9XEAASFAoQRV9URVJNSU5BTF9SRUFEWRABEhQK",
            "EEVfVEVSTUlOQUxfU1RPUkUQAhIVChFFX1RFUk1JTkFMX1BJQ0tVUBADEhQK",
            "EEVfVEVSTUlOQUxfRkFVTFQQCipCChRQYXNzYWdld2F5X2RpcmVjdGlvbhIL",
            "CgdFX0lOTEVUEAASDAoIRV9PVVRMRVQQARIPCgtFX0JJTEFURVJBTBACKqsB",
            "ChdEaXNwYXRjaF9wcm9jZXNzX3N0YXR1cxIcChhFX0RJU1BBVENIX1BPQ0VT",
            "U19VTktOT1cQABIaChZFX0RJU1BBVENIX1BPQ0VTU19XQUlUEAESHQoZRV9E",
            "SVNQQVRDSF9QT0NFU1NfV09SS0lORxACEhoKFkVfRElTUEFUQ0hfUE9DRVNT",
            "X09WRVIQAxIbChdFX0RJU1BBVENIX1BPQ0VTU19GQVVMVBBkKj4KGURpc3Bh",
            "dGNoX21vdGlvbl9kaXJlY3Rpb24SDwoLRV9TVE9SRV9DQVIQABIQCgxFX1BJ",
            "Q0tVUF9DQVIQASqxAQoXRGlzcGF0Y2hfbWFuYWdlcl9zdGF0dXMSHQoZRV9E",
            "SVNQQVRDSF9NQU5BR0VSX1VOS05PVxAAEhwKGEVfRElTUEFUQ0hfTUFOQUdF",
            "Ul9SRUFEWRABEhwKGEVfRElTUEFUQ0hfTUFOQUdFUl9TVE9SRRACEh0KGUVf",
            "RElTUEFUQ0hfTUFOQUdFUl9QSUNLVVAQAxIcChhFX0RJU1BBVENIX01BTkFH",
            "RVJfRkFVTFQQZCqAAwoWRGlzcGF0Y2hfZGV2aWNlX3N0YXR1cxIaChZESVNQ",
            "QVRDSF9ERVZJQ0VfVU5LTk9XEAASGQoVRElTUEFUQ0hfREVWSUNFX1JFQURZ",
            "EAESGAoURElTUEFUQ0hfREVWSUNFX0JVU1kQAhIiCh5ESVNQQVRDSF9ERVZJ",
            "Q0VfT05FX0xFVkVMX09WRVIQAxIiCh5ESVNQQVRDSF9ERVZJQ0VfT05FX0xF",
            "VkVMX1dPUksQBBIiCh5ESVNQQVRDSF9ERVZJQ0VfVFdPX0xFVkVMX09WRVIQ",
            "BRIiCh5ESVNQQVRDSF9ERVZJQ0VfVFdPX0xFVkVMX1dPUksQBhIkCiBESVNQ",
            "QVRDSF9ERVZJQ0VfVEhSRUVfTEVWRUxfT1ZFUhAHEiQKIERJU1BBVENIX0RF",
            "VklDRV9USFJFRV9MRVZFTF9XT1JLEAgSGQoVRElTUEFUQ0hfREVWSUNFX0ZB",
            "VUxUEGQSHgoaRElTUEFUQ0hfREVWSUNFX0RJU0NPTk5FQ1QQZSpuChNEaXNw",
            "YXRjaF90YXNrX2xldmVsEhsKF0RJU1BBVENIX1RBU0tfT05FX0xFVkVMEAES",
            "GwoXRElTUEFUQ0hfVEFTS19UV09fTEVWRUwQAhIdChlESVNQQVRDSF9UQVNL",
            "X1RIUkVFX0xFVkVMEAMqSwoMQ2xhbXBfbW90aW9uEhUKEUVfQ0xBTVBfTk9f",
            "QUNUSU9OEAASEQoNRV9DTEFNUF9USUdIVBABEhEKDUVfQ0xBTVBfTE9PU0UQ",
            "AipSCgxKb2ludF9tb3Rpb24SFQoRRV9KT0lOVF9OT19BQ1RJT04QABIUChBF",
            "X0pPSU5UX0hPTERfT1VUEAESFQoRRV9KT0lOVF9UQUtFX0JBQ0sQAip5ChdT",
            "bWFsbF9zcG9ydHNfY2FyX21vdGlvbhIcChhFX1NNQUxMX1NQT1JUU19OT19B",
            "Q1RJT04QABIfChtFX1NNQUxMX1NQT1JUU19DQVJfR0VUX0FXQVkQARIfChtF",
            "X1NNQUxMX1NQT1JUU19DQVJfR0VUX0JBQ0sQAipsCg5SZXNwb25zX3N0YXR1",
            "cxITCg9SRVNQT05TX1dPUktJTkcQABIQCgxSRVNQT05TX09WRVIQARIXChNS",
            "RVNQT05TX01JTk9SX0VSUk9SEGQSGgoWUkVTUE9OU19DUklUSUNBTF9FUlJP",
            "UhBlKqoBChZIYXJkd2FyZV9kZXZpY2Vfc3RhdHVzEhIKDkRFVklDRV9VTktO",
            "T1dOEAASEAoMREVWSUNFX1JFQURZEAESEgoOREVWSUNFX1dPUktJTkcQAhIZ",
            "ChVERVZJQ0VfRU1FUkdFTkNZX1NUT1AQAxITCg9ERVZJQ0VfVU5TQUZFVFkQ",
            "BBIUChBERVZJQ0VfQ09MTElTSU9OEAUSEAoMREVWSUNFX0ZBVUxUEAYqOQoL",
            "TG9hZF9zdGF0dXMSEAoMTE9BRF9VTktOT1dOEAASDAoISEFWRV9DQVIQARIK",
            "CgZOT19DQVIQAip3ChNUdXJudGFibGVfZGlyZWN0aW9uEh8KG1RVUk5UQUJM",
            "RV9ESVJFQ1RJT05fVU5LTk9XThAAEh4KGlRVUk5UQUJMRV9ESVJFQ1RJT05f",
            "SU5TSURFEAESHwobVFVSTlRBQkxFX0RJUkVDVElPTl9PVVRTSURFEAIqTgoL",
            "RG9vcl9tb3Rpb24SEAoMRE9PUl9VTktOT1dOEAASDQoJRE9PUl9PUEVOEAES",
            "DgoKRE9PUl9DTE9TRRACEg4KCkRPT1JfRVJST1IQAypDChVPdmVyc3RlcF90",
            "aGVfYm91bmRhcnkSEwoPQk9VTkRBUllfTk9STUFMEAASFQoRQk9VTkRBUllf",
            "T1ZFUlNURVAQAQ=="));
      descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
          new pbr::FileDescriptor[] { global::Message.MessageBaseReflection.Descriptor, },
          new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Message.Terminal_status), typeof(global::Message.Passageway_direction), typeof(global::Message.Dispatch_process_status), typeof(global::Message.Dispatch_motion_direction), typeof(global::Message.Dispatch_manager_status), typeof(global::Message.Dispatch_device_status), typeof(global::Message.Dispatch_task_level), typeof(global::Message.Clamp_motion), typeof(global::Message.Joint_motion), typeof(global::Message.Small_sports_car_motion), typeof(global::Message.Respons_status), typeof(global::Message.Hardware_device_status), typeof(global::Message.Load_status), typeof(global::Message.Turntable_direction), typeof(global::Message.Door_motion), typeof(global::Message.Overstep_the_boundary), }, null, new pbr::GeneratedClrTypeInfo[] {
            new pbr::GeneratedClrTypeInfo(typeof(global::Message.Dispatch_process_information), global::Message.Dispatch_process_information.Parser, new[]{ "CarNumberPlate", "CommandKey", "DispatchMotionDirection", "IdStruct", "LocateInformation", "ParkspaceInfoEx", "CarType", "DispatchProcessStatus", "MWaitNumber" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Message.Dispatch_terminal_status_msg), global::Message.Dispatch_terminal_status_msg.Parser, new[]{ "BaseInfo", "IdStruct", "TerminalStatus", "PassagewayDirection", "DispatchStoreProcessInformationVector", "DispatchStoreProcessInformationUpdataTime", "DispatchPickupProcessInformationVector", "DispatchPickupProcessInformationUpdataTime" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Message.Dispatch_request_msg), global::Message.Dispatch_request_msg.Parser, new[]{ "BaseInfo", "CommandKey", "DispatchMotionDirection", "IdStruct", "LocateInformation", "ParkspaceInfoEx", "CarType" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Message.Dispatch_response_msg), global::Message.Dispatch_response_msg.Parser, new[]{ "BaseInfo", "CommandKey", "DispatchMotionDirection", "IdStruct", "LocateInformation", "ParkspaceInfoEx", "CarType", "ErrorManager" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Message.Catcher_data), global::Message.Catcher_data.Parser, new[]{ "DispatchDeviceType", "DispatchDeviceStatus", "DeviceId", "ActualDeviceStatus", "ActualLoadStatus", "ActualCoordinatesId", "ActualX", "ActualY", "ActualB", "ActualZ", "ActualD1", "ActualD2", "ActualClampMotion1", "ActualClampMotion2", "ActualClampMotion3", "ActualClampMotion4", "ActualErrorCode", "ActualWarningCode", "ActualErrorDescription" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Message.Carrier_data), global::Message.Carrier_data.Parser, new[]{ "DispatchDeviceType", "DispatchDeviceStatus", "DeviceId", "ActualDeviceStatus", "ActualLoadStatus", "ActualCoordinatesId", "ActualX", "ActualY", "ActualZ", "ActualY1", "ActualY2", "ActualClampMotion1", "ActualClampMotion2", "ActualSmallSportsCarMotion", "ActualJointMotionX1", "ActualJointMotionX2", "ActualErrorCode", "ActualWarningCode", "ActualErrorDescription" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Message.Passageway_data), global::Message.Passageway_data.Parser, new[]{ "DispatchDeviceType", "DispatchDeviceStatus", "DeviceId", "ActualDeviceStatus", "ActualInsideLoadStatus", "ActualOutsideLoadStatus", "ActualFrontOverstepTheBoundary", "ActualBackOverstepTheBoundary", "ActualHeightOverstepTheBoundary", "ActualOutsideDoorSensor", "ActualInsideDoorMotion", "ActualOutsideDoorMotion", "ActualTurntableLoadStatus", "ActualTurntableDirection", "ActualErrorCode", "ActualWarningCode", "ActualErrorDescription" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Message.Dispatch_manager_status_msg), global::Message.Dispatch_manager_status_msg.Parser, new[]{ "BaseInfo", "DispatchId", "DispatchManagerStatus", "CatcherDataMap", "CarrierDataMap", "PassagewayDataMap" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Message.Dispatch_manager_data_msg), global::Message.Dispatch_manager_data_msg.Parser, null, null, null, null, null)
          }));
    }
    #endregion

  }
  #region Enums
  /// <summary>
  ///终端流程状态, 表示这个出入口到楼上停车位之间的所有设备总状态
  /// </summary>
  public enum Terminal_status {
    /// <summary>
    ///未知
    /// </summary>
    [pbr::OriginalName("E_TERMINAL_UNKNOW")] ETerminalUnknow = 0,
    /// <summary>
    ///准备，待机
    /// </summary>
    [pbr::OriginalName("E_TERMINAL_READY")] ETerminalReady = 1,
    /// <summary>
    ///正在存车
    /// </summary>
    [pbr::OriginalName("E_TERMINAL_STORE")] ETerminalStore = 2,
    /// <summary>
    ///正在取车
    /// </summary>
    [pbr::OriginalName("E_TERMINAL_PICKUP")] ETerminalPickup = 3,
    /// <summary>
    ///故障
    /// </summary>
    [pbr::OriginalName("E_TERMINAL_FAULT")] ETerminalFault = 10,
  }

  /// <summary>
  ///通道口属性, 出入口的方向属性, 表示这个通道允许停车或者取车
  /// </summary>
  public enum Passageway_direction {
    /// <summary>
    ///入口
    /// </summary>
    [pbr::OriginalName("E_INLET")] EInlet = 0,
    /// <summary>
    ///出口
    /// </summary>
    [pbr::OriginalName("E_OUTLET")] EOutlet = 1,
    /// <summary>
    ///双向口
    /// </summary>
    [pbr::OriginalName("E_BILATERAL")] EBilateral = 2,
  }

  /// <summary>
  ///调度流程状态
  /// </summary>
  public enum Dispatch_process_status {
    /// <summary>
    ///未知
    /// </summary>
    [pbr::OriginalName("E_DISPATCH_POCESS_UNKNOW")] EDispatchPocessUnknow = 0,
    /// <summary>
    ///等待
    /// </summary>
    [pbr::OriginalName("E_DISPATCH_POCESS_WAIT")] EDispatchPocessWait = 1,
    /// <summary>
    ///工作
    /// </summary>
    [pbr::OriginalName("E_DISPATCH_POCESS_WORKING")] EDispatchPocessWorking = 2,
    /// <summary>
    ///完成
    /// </summary>
    [pbr::OriginalName("E_DISPATCH_POCESS_OVER")] EDispatchPocessOver = 3,
    /// <summary>
    ///故障
    /// </summary>
    [pbr::OriginalName("E_DISPATCH_POCESS_FAULT")] EDispatchPocessFault = 100,
  }

  /// <summary>
  ///调度方向, 停车取车, 表示正在执行的动作
  /// </summary>
  public enum Dispatch_motion_direction {
    /// <summary>
    ///停车, 出入口 -> 停车位
    /// </summary>
    [pbr::OriginalName("E_STORE_CAR")] EStoreCar = 0,
    /// <summary>
    ///取车, 停车位 -> 出入口
    /// </summary>
    [pbr::OriginalName("E_PICKUP_CAR")] EPickupCar = 1,
  }

  /// <summary>
  ///调度管理 的状态
  /// </summary>
  public enum Dispatch_manager_status {
    /// <summary>
    ///未知
    /// </summary>
    [pbr::OriginalName("E_DISPATCH_MANAGER_UNKNOW")] EDispatchManagerUnknow = 0,
    /// <summary>
    ///准备，待机
    /// </summary>
    [pbr::OriginalName("E_DISPATCH_MANAGER_READY")] EDispatchManagerReady = 1,
    /// <summary>
    ///正在存车
    /// </summary>
    [pbr::OriginalName("E_DISPATCH_MANAGER_STORE")] EDispatchManagerStore = 2,
    /// <summary>
    ///正在取车
    /// </summary>
    [pbr::OriginalName("E_DISPATCH_MANAGER_PICKUP")] EDispatchManagerPickup = 3,
    /// <summary>
    ///故障
    /// </summary>
    [pbr::OriginalName("E_DISPATCH_MANAGER_FAULT")] EDispatchManagerFault = 100,
  }

  /// <summary>
  ///设备状态,这个类的总状态,这里指工作任务流程
  /// </summary>
  public enum Dispatch_device_status {
    /// <summary>
    ///未知
    /// </summary>
    [pbr::OriginalName("DISPATCH_DEVICE_UNKNOW")] DispatchDeviceUnknow = 0,
    /// <summary>
    ///准备，待机
    /// </summary>
    [pbr::OriginalName("DISPATCH_DEVICE_READY")] DispatchDeviceReady = 1,
    /// <summary>
    ///工作正忙
    /// </summary>
    [pbr::OriginalName("DISPATCH_DEVICE_BUSY")] DispatchDeviceBusy = 2,
    /// <summary>
    ///一级工作完成;
    /// </summary>
    [pbr::OriginalName("DISPATCH_DEVICE_ONE_LEVEL_OVER")] DispatchDeviceOneLevelOver = 3,
    /// <summary>
    ///一级工作状态; 就是普通的移动任务
    /// </summary>
    [pbr::OriginalName("DISPATCH_DEVICE_ONE_LEVEL_WORK")] DispatchDeviceOneLevelWork = 4,
    /// <summary>
    ///一级工作完成;
    /// </summary>
    [pbr::OriginalName("DISPATCH_DEVICE_TWO_LEVEL_OVER")] DispatchDeviceTwoLevelOver = 5,
    /// <summary>
    ///二级工作状态; 就是紧急避让; 插队任务(会在执行一级任务的过程中; 插队并优先执行二级任务)
    /// </summary>
    [pbr::OriginalName("DISPATCH_DEVICE_TWO_LEVEL_WORK")] DispatchDeviceTwoLevelWork = 6,
    /// <summary>
    ///一级工作完成;
    /// </summary>
    [pbr::OriginalName("DISPATCH_DEVICE_THREE_LEVEL_OVER")] DispatchDeviceThreeLevelOver = 7,
    /// <summary>
    ///三级工作任务; 就是锁定硬件资源; 不让插队; (除非急停或者取消任务)
    /// </summary>
    [pbr::OriginalName("DISPATCH_DEVICE_THREE_LEVEL_WORK")] DispatchDeviceThreeLevelWork = 8,
    /// <summary>
    ///故障
    /// </summary>
    [pbr::OriginalName("DISPATCH_DEVICE_FAULT")] DispatchDeviceFault = 100,
    /// <summary>
    ///通信故障
    /// </summary>
    [pbr::OriginalName("DISPATCH_DEVICE_DISCONNECT")] DispatchDeviceDisconnect = 101,
  }

  /// <summary>
  ///调度任务的等级
  /// </summary>
  public enum Dispatch_task_level {
    /// <summary>
    ///	    DISPATCH_TASK_UNKNOW_LEVEL          = 0;    //无效任务
    /// </summary>
    [pbr::OriginalName("DISPATCH_TASK_ONE_LEVEL")] DispatchTaskOneLevel = 1,
    /// <summary>
    ///二级任务
    /// </summary>
    [pbr::OriginalName("DISPATCH_TASK_TWO_LEVEL")] DispatchTaskTwoLevel = 2,
    /// <summary>
    ///三级任务
    /// </summary>
    [pbr::OriginalName("DISPATCH_TASK_THREE_LEVEL")] DispatchTaskThreeLevel = 3,
  }

  /// <summary>
  ///抓车的夹杆
  /// </summary>
  public enum Clamp_motion {
    /// <summary>
    ///无动作.
    /// </summary>
    [pbr::OriginalName("E_CLAMP_NO_ACTION")] EClampNoAction = 0,
    /// <summary>
    ///夹紧夹杆
    /// </summary>
    [pbr::OriginalName("E_CLAMP_TIGHT")] EClampTight = 1,
    /// <summary>
    ///松开夹杆
    /// </summary>
    [pbr::OriginalName("E_CLAMP_LOOSE")] EClampLoose = 2,
  }

  /// <summary>
  ///中跑车和平层轨道的对接
  /// </summary>
  public enum Joint_motion {
    /// <summary>
    ///无动作.
    /// </summary>
    [pbr::OriginalName("E_JOINT_NO_ACTION")] EJointNoAction = 0,
    /// <summary>
    ///伸出对接，之后中跑车可以x轴移动，电梯不能Z轴移动
    /// </summary>
    [pbr::OriginalName("E_JOINT_HOLD_OUT")] EJointHoldOut = 1,
    /// <summary>
    ///收回对接，之后中跑车固定在电梯上不能X轴移动，电梯可以Z轴移动
    /// </summary>
    [pbr::OriginalName("E_JOINT_TAKE_BACK")] EJointTakeBack = 2,
  }

  /// <summary>
  ///小跑车的位置,是否在中跑车上面
  /// </summary>
  public enum Small_sports_car_motion {
    /// <summary>
    ///无动作.
    /// </summary>
    [pbr::OriginalName("E_SMALL_SPORTS_NO_ACTION")] ESmallSportsNoAction = 0,
    /// <summary>
    ///小跑车离开中跑车
    /// </summary>
    [pbr::OriginalName("E_SMALL_SPORTS_CAR_GET_AWAY")] ESmallSportsCarGetAway = 1,
    /// <summary>
    ///小跑车返回中跑车
    /// </summary>
    [pbr::OriginalName("E_SMALL_SPORTS_CAR_GET_BACK")] ESmallSportsCarGetBack = 2,
  }

  /// <summary>
  ///指令完成状态, 设备答复指令, 返回任务完成的情况
  /// </summary>
  public enum Respons_status {
    /// <summary>
    ///任务进行中
    /// </summary>
    [pbr::OriginalName("RESPONS_WORKING")] ResponsWorking = 0,
    /// <summary>
    ///任务完成
    /// </summary>
    [pbr::OriginalName("RESPONS_OVER")] ResponsOver = 1,
    /// <summary>
    ///一般故障, 可恢复
    /// </summary>
    [pbr::OriginalName("RESPONS_MINOR_ERROR")] ResponsMinorError = 100,
    /// <summary>
    ///致命故障,不可恢复
    /// </summary>
    [pbr::OriginalName("RESPONS_CRITICAL_ERROR")] ResponsCriticalError = 101,
  }

  /// <summary>
  ///设备的硬件设备状态
  /// </summary>
  public enum Hardware_device_status {
    /// <summary>
    ///设备未知
    /// </summary>
    [pbr::OriginalName("DEVICE_UNKNOWN")] DeviceUnknown = 0,
    /// <summary>
    ///设备空闲(可以接受新的指令任务)
    /// </summary>
    [pbr::OriginalName("DEVICE_READY")] DeviceReady = 1,
    /// <summary>
    ///设备工作中
    /// </summary>
    [pbr::OriginalName("DEVICE_WORKING")] DeviceWorking = 2,
    /// <summary>
    ///设备急停
    /// </summary>
    [pbr::OriginalName("DEVICE_EMERGENCY_STOP")] DeviceEmergencyStop = 3,
    /// <summary>
    ///设备不安全(暂时不考虑是否处于安全位置)
    /// </summary>
    [pbr::OriginalName("DEVICE_UNSAFETY")] DeviceUnsafety = 4,
    /// <summary>
    ///设备发生碰撞
    /// </summary>
    [pbr::OriginalName("DEVICE_COLLISION")] DeviceCollision = 5,
    /// <summary>
    ///设备故障
    /// </summary>
    [pbr::OriginalName("DEVICE_FAULT")] DeviceFault = 6,
  }

  /// <summary>
  ///设备的负载状态, 小跑车上面是否有车.
  /// </summary>
  public enum Load_status {
    /// <summary>
    ///负载未知
    /// </summary>
    [pbr::OriginalName("LOAD_UNKNOWN")] LoadUnknown = 0,
    /// <summary>
    ///有车
    /// </summary>
    [pbr::OriginalName("HAVE_CAR")] HaveCar = 1,
    /// <summary>
    ///没车
    /// </summary>
    [pbr::OriginalName("NO_CAR")] NoCar = 2,
  }

  /// <summary>
  ///7号出口 转台方向
  /// </summary>
  public enum Turntable_direction {
    /// <summary>
    ///方向未知,
    /// </summary>
    [pbr::OriginalName("TURNTABLE_DIRECTION_UNKNOWN")] Unknown = 0,
    /// <summary>
    ///方向朝里,对接内门的小跑车
    /// </summary>
    [pbr::OriginalName("TURNTABLE_DIRECTION_INSIDE")] Inside = 1,
    /// <summary>
    ///没车朝外,对接外门的出口
    /// </summary>
    [pbr::OriginalName("TURNTABLE_DIRECTION_OUTSIDE")] Outside = 2,
  }

  /// <summary>
  ///出入口 门的开关状态
  /// </summary>
  public enum Door_motion {
    /// <summary>
    ///门的开关状态 未知, 或者工作到一半,正在工作中.
    /// </summary>
    [pbr::OriginalName("DOOR_UNKNOWN")] DoorUnknown = 0,
    /// <summary>
    ///开门
    /// </summary>
    [pbr::OriginalName("DOOR_OPEN")] DoorOpen = 1,
    /// <summary>
    ///关门
    /// </summary>
    [pbr::OriginalName("DOOR_CLOSE")] DoorClose = 2,
    /// <summary>
    /// </summary>
    [pbr::OriginalName("DOOR_ERROR")] DoorError = 3,
  }

  /// <summary>
  ///边界判断,是否超界
  /// </summary>
  public enum Overstep_the_boundary {
    /// <summary>
    ///边界 正常
    /// </summary>
    [pbr::OriginalName("BOUNDARY_NORMAL")] BoundaryNormal = 0,
    /// <summary>
    ///超界
    /// </summary>
    [pbr::OriginalName("BOUNDARY_OVERSTEP")] BoundaryOverstep = 1,
  }

  #endregion

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Message.DispatchMessageReflection.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 Dispatch_process_information() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Dispatch_process_information(Dispatch_process_information other) : this() {
      _hasBits0 = other._hasBits0;
      carNumberPlate_ = other.carNumberPlate_;
      commandKey_ = other.commandKey_;
      dispatchMotionDirection_ = other.dispatchMotionDirection_;
      idStruct_ = other.idStruct_ != null ? other.idStruct_.Clone() : null;
      locateInformation_ = other.locateInformation_ != null ? other.locateInformation_.Clone() : null;
      parkspaceInfoEx_ = other.parkspaceInfoEx_.Clone();
      carType_ = other.carType_;
      dispatchProcessStatus_ = other.dispatchProcessStatus_;
      mWaitNumber_ = other.mWaitNumber_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

    /// <summary>Field number for the "car_numberPlate" field.</summary>
    public const int CarNumberPlateFieldNumber = 1;
    private readonly static string CarNumberPlateDefaultValue = "";

    private string carNumberPlate_;
    /// <summary>
    ///车牌号
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string CarNumberPlate {
      get { return carNumberPlate_ ?? CarNumberPlateDefaultValue; }
      set {
        carNumberPlate_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }
    /// <summary>Gets whether the "car_numberPlate" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasCarNumberPlate {
      get { return carNumberPlate_ != null; }
    }
    /// <summary>Clears the value of the "car_numberPlate" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearCarNumberPlate() {
      carNumberPlate_ = null;
    }

    /// <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 "dispatch_motion_direction" field.</summary>
    public const int DispatchMotionDirectionFieldNumber = 3;
    private readonly static global::Message.Dispatch_motion_direction DispatchMotionDirectionDefaultValue = global::Message.Dispatch_motion_direction.EStoreCar;

    private global::Message.Dispatch_motion_direction dispatchMotionDirection_;
    /// <summary>
    ///调度方向, 停车取车
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Dispatch_motion_direction DispatchMotionDirection {
      get { if ((_hasBits0 & 1) != 0) { return dispatchMotionDirection_; } else { return DispatchMotionDirectionDefaultValue; } }
      set {
        _hasBits0 |= 1;
        dispatchMotionDirection_ = value;
      }
    }
    /// <summary>Gets whether the "dispatch_motion_direction" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasDispatchMotionDirection {
      get { return (_hasBits0 & 1) != 0; }
    }
    /// <summary>Clears the value of the "dispatch_motion_direction" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearDispatchMotionDirection() {
      _hasBits0 &= ~1;
    }

    /// <summary>Field number for the "id_struct" field.</summary>
    public const int IdStructFieldNumber = 4;
    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 "locate_information" field.</summary>
    public const int LocateInformationFieldNumber = 5;
    private global::Message.Locate_information locateInformation_;
    /// <summary>
    ///汽车测量信息, 只有停车时有数据, 取车时没有数据.
    /// </summary>
    [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 "parkspace_info_ex" field.</summary>
    public const int ParkspaceInfoExFieldNumber = 6;
    private static readonly pb::FieldCodec<global::Message.Parkspace_info> _repeated_parkspaceInfoEx_codec
        = pb::FieldCodec.ForMessage(50, global::Message.Parkspace_info.Parser);
    private readonly pbc::RepeatedField<global::Message.Parkspace_info> parkspaceInfoEx_ = new pbc::RepeatedField<global::Message.Parkspace_info>();
    /// <summary>
    ///车位编号, 停车位(B方案, 分配3个停车位)
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::Message.Parkspace_info> ParkspaceInfoEx {
      get { return parkspaceInfoEx_; }
    }

    /// <summary>Field number for the "car_type" field.</summary>
    public const int CarTypeFieldNumber = 7;
    private readonly static global::Message.Car_type CarTypeDefaultValue = global::Message.Car_type.UnknowCarType;

    private global::Message.Car_type carType_;
    /// <summary>
    ///汽车大小
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Car_type CarType {
      get { if ((_hasBits0 & 2) != 0) { return carType_; } else { return CarTypeDefaultValue; } }
      set {
        _hasBits0 |= 2;
        carType_ = value;
      }
    }
    /// <summary>Gets whether the "car_type" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasCarType {
      get { return (_hasBits0 & 2) != 0; }
    }
    /// <summary>Clears the value of the "car_type" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearCarType() {
      _hasBits0 &= ~2;
    }

    /// <summary>Field number for the "dispatch_process_status" field.</summary>
    public const int DispatchProcessStatusFieldNumber = 8;
    private readonly static global::Message.Dispatch_process_status DispatchProcessStatusDefaultValue = global::Message.Dispatch_process_status.EDispatchPocessUnknow;

    private global::Message.Dispatch_process_status dispatchProcessStatus_;
    /// <summary>
    ///调度流程状态
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Dispatch_process_status DispatchProcessStatus {
      get { if ((_hasBits0 & 4) != 0) { return dispatchProcessStatus_; } else { return DispatchProcessStatusDefaultValue; } }
      set {
        _hasBits0 |= 4;
        dispatchProcessStatus_ = value;
      }
    }
    /// <summary>Gets whether the "dispatch_process_status" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasDispatchProcessStatus {
      get { return (_hasBits0 & 4) != 0; }
    }
    /// <summary>Clears the value of the "dispatch_process_status" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearDispatchProcessStatus() {
      _hasBits0 &= ~4;
    }

    /// <summary>Field number for the "m_wait_number" field.</summary>
    public const int MWaitNumberFieldNumber = 9;
    private readonly static int MWaitNumberDefaultValue = 0;

    private int mWaitNumber_;
    /// <summary>
    ///只有等待才有等待编号
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int MWaitNumber {
      get { if ((_hasBits0 & 8) != 0) { return mWaitNumber_; } else { return MWaitNumberDefaultValue; } }
      set {
        _hasBits0 |= 8;
        mWaitNumber_ = value;
      }
    }
    /// <summary>Gets whether the "m_wait_number" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasMWaitNumber {
      get { return (_hasBits0 & 8) != 0; }
    }
    /// <summary>Clears the value of the "m_wait_number" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearMWaitNumber() {
      _hasBits0 &= ~8;
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(Dispatch_process_information other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (CarNumberPlate != other.CarNumberPlate) return false;
      if (CommandKey != other.CommandKey) return false;
      if (DispatchMotionDirection != other.DispatchMotionDirection) return false;
      if (!object.Equals(IdStruct, other.IdStruct)) return false;
      if (!object.Equals(LocateInformation, other.LocateInformation)) return false;
      if(!parkspaceInfoEx_.Equals(other.parkspaceInfoEx_)) return false;
      if (CarType != other.CarType) return false;
      if (DispatchProcessStatus != other.DispatchProcessStatus) return false;
      if (MWaitNumber != other.MWaitNumber) 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 (HasCarNumberPlate) hash ^= CarNumberPlate.GetHashCode();
      if (HasCommandKey) hash ^= CommandKey.GetHashCode();
      if (HasDispatchMotionDirection) hash ^= DispatchMotionDirection.GetHashCode();
      if (idStruct_ != null) hash ^= IdStruct.GetHashCode();
      if (locateInformation_ != null) hash ^= LocateInformation.GetHashCode();
      hash ^= parkspaceInfoEx_.GetHashCode();
      if (HasCarType) hash ^= CarType.GetHashCode();
      if (HasDispatchProcessStatus) hash ^= DispatchProcessStatus.GetHashCode();
      if (HasMWaitNumber) hash ^= MWaitNumber.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 (HasCarNumberPlate) {
        output.WriteRawTag(10);
        output.WriteString(CarNumberPlate);
      }
      if (HasCommandKey) {
        output.WriteRawTag(18);
        output.WriteString(CommandKey);
      }
      if (HasDispatchMotionDirection) {
        output.WriteRawTag(24);
        output.WriteEnum((int) DispatchMotionDirection);
      }
      if (idStruct_ != null) {
        output.WriteRawTag(34);
        output.WriteMessage(IdStruct);
      }
      if (locateInformation_ != null) {
        output.WriteRawTag(42);
        output.WriteMessage(LocateInformation);
      }
      parkspaceInfoEx_.WriteTo(output, _repeated_parkspaceInfoEx_codec);
      if (HasCarType) {
        output.WriteRawTag(56);
        output.WriteEnum((int) CarType);
      }
      if (HasDispatchProcessStatus) {
        output.WriteRawTag(64);
        output.WriteEnum((int) DispatchProcessStatus);
      }
      if (HasMWaitNumber) {
        output.WriteRawTag(72);
        output.WriteInt32(MWaitNumber);
      }
      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 (HasCarNumberPlate) {
        output.WriteRawTag(10);
        output.WriteString(CarNumberPlate);
      }
      if (HasCommandKey) {
        output.WriteRawTag(18);
        output.WriteString(CommandKey);
      }
      if (HasDispatchMotionDirection) {
        output.WriteRawTag(24);
        output.WriteEnum((int) DispatchMotionDirection);
      }
      if (idStruct_ != null) {
        output.WriteRawTag(34);
        output.WriteMessage(IdStruct);
      }
      if (locateInformation_ != null) {
        output.WriteRawTag(42);
        output.WriteMessage(LocateInformation);
      }
      parkspaceInfoEx_.WriteTo(ref output, _repeated_parkspaceInfoEx_codec);
      if (HasCarType) {
        output.WriteRawTag(56);
        output.WriteEnum((int) CarType);
      }
      if (HasDispatchProcessStatus) {
        output.WriteRawTag(64);
        output.WriteEnum((int) DispatchProcessStatus);
      }
      if (HasMWaitNumber) {
        output.WriteRawTag(72);
        output.WriteInt32(MWaitNumber);
      }
      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 (HasCarNumberPlate) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(CarNumberPlate);
      }
      if (HasCommandKey) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(CommandKey);
      }
      if (HasDispatchMotionDirection) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) DispatchMotionDirection);
      }
      if (idStruct_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(IdStruct);
      }
      if (locateInformation_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(LocateInformation);
      }
      size += parkspaceInfoEx_.CalculateSize(_repeated_parkspaceInfoEx_codec);
      if (HasCarType) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) CarType);
      }
      if (HasDispatchProcessStatus) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) DispatchProcessStatus);
      }
      if (HasMWaitNumber) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(MWaitNumber);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(Dispatch_process_information other) {
      if (other == null) {
        return;
      }
      if (other.HasCarNumberPlate) {
        CarNumberPlate = other.CarNumberPlate;
      }
      if (other.HasCommandKey) {
        CommandKey = other.CommandKey;
      }
      if (other.HasDispatchMotionDirection) {
        DispatchMotionDirection = other.DispatchMotionDirection;
      }
      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);
      }
      parkspaceInfoEx_.Add(other.parkspaceInfoEx_);
      if (other.HasCarType) {
        CarType = other.CarType;
      }
      if (other.HasDispatchProcessStatus) {
        DispatchProcessStatus = other.DispatchProcessStatus;
      }
      if (other.HasMWaitNumber) {
        MWaitNumber = other.MWaitNumber;
      }
      _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: {
            CarNumberPlate = input.ReadString();
            break;
          }
          case 18: {
            CommandKey = input.ReadString();
            break;
          }
          case 24: {
            DispatchMotionDirection = (global::Message.Dispatch_motion_direction) input.ReadEnum();
            break;
          }
          case 34: {
            if (idStruct_ == null) {
              IdStruct = new global::Message.Id_struct();
            }
            input.ReadMessage(IdStruct);
            break;
          }
          case 42: {
            if (locateInformation_ == null) {
              LocateInformation = new global::Message.Locate_information();
            }
            input.ReadMessage(LocateInformation);
            break;
          }
          case 50: {
            parkspaceInfoEx_.AddEntriesFrom(input, _repeated_parkspaceInfoEx_codec);
            break;
          }
          case 56: {
            CarType = (global::Message.Car_type) input.ReadEnum();
            break;
          }
          case 64: {
            DispatchProcessStatus = (global::Message.Dispatch_process_status) input.ReadEnum();
            break;
          }
          case 72: {
            MWaitNumber = 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 10: {
            CarNumberPlate = input.ReadString();
            break;
          }
          case 18: {
            CommandKey = input.ReadString();
            break;
          }
          case 24: {
            DispatchMotionDirection = (global::Message.Dispatch_motion_direction) input.ReadEnum();
            break;
          }
          case 34: {
            if (idStruct_ == null) {
              IdStruct = new global::Message.Id_struct();
            }
            input.ReadMessage(IdStruct);
            break;
          }
          case 42: {
            if (locateInformation_ == null) {
              LocateInformation = new global::Message.Locate_information();
            }
            input.ReadMessage(LocateInformation);
            break;
          }
          case 50: {
            parkspaceInfoEx_.AddEntriesFrom(ref input, _repeated_parkspaceInfoEx_codec);
            break;
          }
          case 56: {
            CarType = (global::Message.Car_type) input.ReadEnum();
            break;
          }
          case 64: {
            DispatchProcessStatus = (global::Message.Dispatch_process_status) input.ReadEnum();
            break;
          }
          case 72: {
            MWaitNumber = input.ReadInt32();
            break;
          }
        }
      }
    }
    #endif

  }

  /// <summary>
  ///调度模块终端出入口的状态
  /// </summary>
  public sealed partial class Dispatch_terminal_status_msg : pb::IMessage<Dispatch_terminal_status_msg>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Dispatch_terminal_status_msg> _parser = new pb::MessageParser<Dispatch_terminal_status_msg>(() => new Dispatch_terminal_status_msg());
    private pb::UnknownFieldSet _unknownFields;
    private int _hasBits0;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<Dispatch_terminal_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.DispatchMessageReflection.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 Dispatch_terminal_status_msg() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Dispatch_terminal_status_msg(Dispatch_terminal_status_msg other) : this() {
      _hasBits0 = other._hasBits0;
      baseInfo_ = other.baseInfo_ != null ? other.baseInfo_.Clone() : null;
      idStruct_ = other.idStruct_ != null ? other.idStruct_.Clone() : null;
      terminalStatus_ = other.terminalStatus_;
      passagewayDirection_ = other.passagewayDirection_;
      dispatchStoreProcessInformationVector_ = other.dispatchStoreProcessInformationVector_.Clone();
      dispatchStoreProcessInformationUpdataTime_ = other.dispatchStoreProcessInformationUpdataTime_;
      dispatchPickupProcessInformationVector_ = other.dispatchPickupProcessInformationVector_.Clone();
      dispatchPickupProcessInformationUpdataTime_ = other.dispatchPickupProcessInformationUpdataTime_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Dispatch_terminal_status_msg Clone() {
      return new Dispatch_terminal_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>
    ///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 "terminal_status" field.</summary>
    public const int TerminalStatusFieldNumber = 3;
    private readonly static global::Message.Terminal_status TerminalStatusDefaultValue = global::Message.Terminal_status.ETerminalUnknow;

    private global::Message.Terminal_status terminalStatus_;
    /// <summary>
    ///终端流程状态, 表示这个出入口到楼上停车位之间的所有设备总状态
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Terminal_status TerminalStatus {
      get { if ((_hasBits0 & 1) != 0) { return terminalStatus_; } else { return TerminalStatusDefaultValue; } }
      set {
        _hasBits0 |= 1;
        terminalStatus_ = value;
      }
    }
    /// <summary>Gets whether the "terminal_status" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasTerminalStatus {
      get { return (_hasBits0 & 1) != 0; }
    }
    /// <summary>Clears the value of the "terminal_status" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearTerminalStatus() {
      _hasBits0 &= ~1;
    }

    /// <summary>Field number for the "passageway_direction" field.</summary>
    public const int PassagewayDirectionFieldNumber = 4;
    private readonly static global::Message.Passageway_direction PassagewayDirectionDefaultValue = global::Message.Passageway_direction.EInlet;

    private global::Message.Passageway_direction passagewayDirection_;
    /// <summary>
    ///通道口属性, 出入口的方向属性, 表示这个通道允许停车或者取车
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Passageway_direction PassagewayDirection {
      get { if ((_hasBits0 & 2) != 0) { return passagewayDirection_; } else { return PassagewayDirectionDefaultValue; } }
      set {
        _hasBits0 |= 2;
        passagewayDirection_ = value;
      }
    }
    /// <summary>Gets whether the "passageway_direction" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasPassagewayDirection {
      get { return (_hasBits0 & 2) != 0; }
    }
    /// <summary>Clears the value of the "passageway_direction" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearPassagewayDirection() {
      _hasBits0 &= ~2;
    }

    /// <summary>Field number for the "dispatch_store_process_information_vector" field.</summary>
    public const int DispatchStoreProcessInformationVectorFieldNumber = 5;
    private static readonly pb::FieldCodec<global::Message.Dispatch_process_information> _repeated_dispatchStoreProcessInformationVector_codec
        = pb::FieldCodec.ForMessage(42, global::Message.Dispatch_process_information.Parser);
    private readonly pbc::RepeatedField<global::Message.Dispatch_process_information> dispatchStoreProcessInformationVector_ = new pbc::RepeatedField<global::Message.Dispatch_process_information>();
    /// <summary>
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::Message.Dispatch_process_information> DispatchStoreProcessInformationVector {
      get { return dispatchStoreProcessInformationVector_; }
    }

    /// <summary>Field number for the "dispatch_store_process_information_updata_time" field.</summary>
    public const int DispatchStoreProcessInformationUpdataTimeFieldNumber = 6;
    private readonly static string DispatchStoreProcessInformationUpdataTimeDefaultValue = "";

    private string dispatchStoreProcessInformationUpdataTime_;
    /// <summary>
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string DispatchStoreProcessInformationUpdataTime {
      get { return dispatchStoreProcessInformationUpdataTime_ ?? DispatchStoreProcessInformationUpdataTimeDefaultValue; }
      set {
        dispatchStoreProcessInformationUpdataTime_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }
    /// <summary>Gets whether the "dispatch_store_process_information_updata_time" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasDispatchStoreProcessInformationUpdataTime {
      get { return dispatchStoreProcessInformationUpdataTime_ != null; }
    }
    /// <summary>Clears the value of the "dispatch_store_process_information_updata_time" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearDispatchStoreProcessInformationUpdataTime() {
      dispatchStoreProcessInformationUpdataTime_ = null;
    }

    /// <summary>Field number for the "dispatch_pickup_process_information_vector" field.</summary>
    public const int DispatchPickupProcessInformationVectorFieldNumber = 7;
    private static readonly pb::FieldCodec<global::Message.Dispatch_process_information> _repeated_dispatchPickupProcessInformationVector_codec
        = pb::FieldCodec.ForMessage(58, global::Message.Dispatch_process_information.Parser);
    private readonly pbc::RepeatedField<global::Message.Dispatch_process_information> dispatchPickupProcessInformationVector_ = new pbc::RepeatedField<global::Message.Dispatch_process_information>();
    /// <summary>
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::Message.Dispatch_process_information> DispatchPickupProcessInformationVector {
      get { return dispatchPickupProcessInformationVector_; }
    }

    /// <summary>Field number for the "dispatch_pickup_process_information_updata_time" field.</summary>
    public const int DispatchPickupProcessInformationUpdataTimeFieldNumber = 8;
    private readonly static string DispatchPickupProcessInformationUpdataTimeDefaultValue = "";

    private string dispatchPickupProcessInformationUpdataTime_;
    /// <summary>
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string DispatchPickupProcessInformationUpdataTime {
      get { return dispatchPickupProcessInformationUpdataTime_ ?? DispatchPickupProcessInformationUpdataTimeDefaultValue; }
      set {
        dispatchPickupProcessInformationUpdataTime_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }
    /// <summary>Gets whether the "dispatch_pickup_process_information_updata_time" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasDispatchPickupProcessInformationUpdataTime {
      get { return dispatchPickupProcessInformationUpdataTime_ != null; }
    }
    /// <summary>Clears the value of the "dispatch_pickup_process_information_updata_time" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearDispatchPickupProcessInformationUpdataTime() {
      dispatchPickupProcessInformationUpdataTime_ = null;
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(Dispatch_terminal_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 (TerminalStatus != other.TerminalStatus) return false;
      if (PassagewayDirection != other.PassagewayDirection) return false;
      if(!dispatchStoreProcessInformationVector_.Equals(other.dispatchStoreProcessInformationVector_)) return false;
      if (DispatchStoreProcessInformationUpdataTime != other.DispatchStoreProcessInformationUpdataTime) return false;
      if(!dispatchPickupProcessInformationVector_.Equals(other.dispatchPickupProcessInformationVector_)) return false;
      if (DispatchPickupProcessInformationUpdataTime != other.DispatchPickupProcessInformationUpdataTime) 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 (HasTerminalStatus) hash ^= TerminalStatus.GetHashCode();
      if (HasPassagewayDirection) hash ^= PassagewayDirection.GetHashCode();
      hash ^= dispatchStoreProcessInformationVector_.GetHashCode();
      if (HasDispatchStoreProcessInformationUpdataTime) hash ^= DispatchStoreProcessInformationUpdataTime.GetHashCode();
      hash ^= dispatchPickupProcessInformationVector_.GetHashCode();
      if (HasDispatchPickupProcessInformationUpdataTime) hash ^= DispatchPickupProcessInformationUpdataTime.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 (HasTerminalStatus) {
        output.WriteRawTag(24);
        output.WriteEnum((int) TerminalStatus);
      }
      if (HasPassagewayDirection) {
        output.WriteRawTag(32);
        output.WriteEnum((int) PassagewayDirection);
      }
      dispatchStoreProcessInformationVector_.WriteTo(output, _repeated_dispatchStoreProcessInformationVector_codec);
      if (HasDispatchStoreProcessInformationUpdataTime) {
        output.WriteRawTag(50);
        output.WriteString(DispatchStoreProcessInformationUpdataTime);
      }
      dispatchPickupProcessInformationVector_.WriteTo(output, _repeated_dispatchPickupProcessInformationVector_codec);
      if (HasDispatchPickupProcessInformationUpdataTime) {
        output.WriteRawTag(66);
        output.WriteString(DispatchPickupProcessInformationUpdataTime);
      }
      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 (HasTerminalStatus) {
        output.WriteRawTag(24);
        output.WriteEnum((int) TerminalStatus);
      }
      if (HasPassagewayDirection) {
        output.WriteRawTag(32);
        output.WriteEnum((int) PassagewayDirection);
      }
      dispatchStoreProcessInformationVector_.WriteTo(ref output, _repeated_dispatchStoreProcessInformationVector_codec);
      if (HasDispatchStoreProcessInformationUpdataTime) {
        output.WriteRawTag(50);
        output.WriteString(DispatchStoreProcessInformationUpdataTime);
      }
      dispatchPickupProcessInformationVector_.WriteTo(ref output, _repeated_dispatchPickupProcessInformationVector_codec);
      if (HasDispatchPickupProcessInformationUpdataTime) {
        output.WriteRawTag(66);
        output.WriteString(DispatchPickupProcessInformationUpdataTime);
      }
      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 (HasTerminalStatus) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) TerminalStatus);
      }
      if (HasPassagewayDirection) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) PassagewayDirection);
      }
      size += dispatchStoreProcessInformationVector_.CalculateSize(_repeated_dispatchStoreProcessInformationVector_codec);
      if (HasDispatchStoreProcessInformationUpdataTime) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(DispatchStoreProcessInformationUpdataTime);
      }
      size += dispatchPickupProcessInformationVector_.CalculateSize(_repeated_dispatchPickupProcessInformationVector_codec);
      if (HasDispatchPickupProcessInformationUpdataTime) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(DispatchPickupProcessInformationUpdataTime);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(Dispatch_terminal_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.HasTerminalStatus) {
        TerminalStatus = other.TerminalStatus;
      }
      if (other.HasPassagewayDirection) {
        PassagewayDirection = other.PassagewayDirection;
      }
      dispatchStoreProcessInformationVector_.Add(other.dispatchStoreProcessInformationVector_);
      if (other.HasDispatchStoreProcessInformationUpdataTime) {
        DispatchStoreProcessInformationUpdataTime = other.DispatchStoreProcessInformationUpdataTime;
      }
      dispatchPickupProcessInformationVector_.Add(other.dispatchPickupProcessInformationVector_);
      if (other.HasDispatchPickupProcessInformationUpdataTime) {
        DispatchPickupProcessInformationUpdataTime = other.DispatchPickupProcessInformationUpdataTime;
      }
      _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: {
            TerminalStatus = (global::Message.Terminal_status) input.ReadEnum();
            break;
          }
          case 32: {
            PassagewayDirection = (global::Message.Passageway_direction) input.ReadEnum();
            break;
          }
          case 42: {
            dispatchStoreProcessInformationVector_.AddEntriesFrom(input, _repeated_dispatchStoreProcessInformationVector_codec);
            break;
          }
          case 50: {
            DispatchStoreProcessInformationUpdataTime = input.ReadString();
            break;
          }
          case 58: {
            dispatchPickupProcessInformationVector_.AddEntriesFrom(input, _repeated_dispatchPickupProcessInformationVector_codec);
            break;
          }
          case 66: {
            DispatchPickupProcessInformationUpdataTime = input.ReadString();
            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: {
            TerminalStatus = (global::Message.Terminal_status) input.ReadEnum();
            break;
          }
          case 32: {
            PassagewayDirection = (global::Message.Passageway_direction) input.ReadEnum();
            break;
          }
          case 42: {
            dispatchStoreProcessInformationVector_.AddEntriesFrom(ref input, _repeated_dispatchStoreProcessInformationVector_codec);
            break;
          }
          case 50: {
            DispatchStoreProcessInformationUpdataTime = input.ReadString();
            break;
          }
          case 58: {
            dispatchPickupProcessInformationVector_.AddEntriesFrom(ref input, _repeated_dispatchPickupProcessInformationVector_codec);
            break;
          }
          case 66: {
            DispatchPickupProcessInformationUpdataTime = input.ReadString();
            break;
          }
        }
      }
    }
    #endif

  }

  /// <summary>
  ///执行搬运请求(主控->调度管理)
  /// </summary>
  public sealed partial class Dispatch_request_msg : pb::IMessage<Dispatch_request_msg>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Dispatch_request_msg> _parser = new pb::MessageParser<Dispatch_request_msg>(() => new Dispatch_request_msg());
    private pb::UnknownFieldSet _unknownFields;
    private int _hasBits0;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<Dispatch_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.DispatchMessageReflection.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 Dispatch_request_msg() {
      OnConstruction();
    }

    partial void OnConstruction();

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Dispatch_request_msg Clone() {
      return new Dispatch_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 "dispatch_motion_direction" field.</summary>
    public const int DispatchMotionDirectionFieldNumber = 3;
    private readonly static global::Message.Dispatch_motion_direction DispatchMotionDirectionDefaultValue = global::Message.Dispatch_motion_direction.EStoreCar;

    private global::Message.Dispatch_motion_direction dispatchMotionDirection_;
    /// <summary>
    ///调度方向, 停车取车
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Dispatch_motion_direction DispatchMotionDirection {
      get { if ((_hasBits0 & 1) != 0) { return dispatchMotionDirection_; } else { return DispatchMotionDirectionDefaultValue; } }
      set {
        _hasBits0 |= 1;
        dispatchMotionDirection_ = value;
      }
    }
    /// <summary>Gets whether the "dispatch_motion_direction" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasDispatchMotionDirection {
      get { return (_hasBits0 & 1) != 0; }
    }
    /// <summary>Clears the value of the "dispatch_motion_direction" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearDispatchMotionDirection() {
      _hasBits0 &= ~1;
    }

    /// <summary>Field number for the "id_struct" field.</summary>
    public const int IdStructFieldNumber = 4;
    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 "locate_information" field.</summary>
    public const int LocateInformationFieldNumber = 5;
    private global::Message.Locate_information locateInformation_;
    /// <summary>
    ///汽车测量信息, 只有停车时有数据, 取车时没有数据.
    /// </summary>
    [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 "parkspace_info_ex" field.</summary>
    public const int ParkspaceInfoExFieldNumber = 6;
    private static readonly pb::FieldCodec<global::Message.Parkspace_info> _repeated_parkspaceInfoEx_codec
        = pb::FieldCodec.ForMessage(50, global::Message.Parkspace_info.Parser);
    private readonly pbc::RepeatedField<global::Message.Parkspace_info> parkspaceInfoEx_ = new pbc::RepeatedField<global::Message.Parkspace_info>();
    /// <summary>
    ///车位编号, 停车位(B方案, 分配3个停车位)
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::Message.Parkspace_info> ParkspaceInfoEx {
      get { return parkspaceInfoEx_; }
    }

    /// <summary>Field number for the "car_type" field.</summary>
    public const int CarTypeFieldNumber = 7;
    private readonly static global::Message.Car_type CarTypeDefaultValue = global::Message.Car_type.UnknowCarType;

    private global::Message.Car_type carType_;
    /// <summary>
    ///汽车大小
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Car_type CarType {
      get { if ((_hasBits0 & 2) != 0) { return carType_; } else { return CarTypeDefaultValue; } }
      set {
        _hasBits0 |= 2;
        carType_ = value;
      }
    }
    /// <summary>Gets whether the "car_type" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasCarType {
      get { return (_hasBits0 & 2) != 0; }
    }
    /// <summary>Clears the value of the "car_type" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearCarType() {
      _hasBits0 &= ~2;
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(Dispatch_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 (DispatchMotionDirection != other.DispatchMotionDirection) return false;
      if (!object.Equals(IdStruct, other.IdStruct)) return false;
      if (!object.Equals(LocateInformation, other.LocateInformation)) return false;
      if(!parkspaceInfoEx_.Equals(other.parkspaceInfoEx_)) return false;
      if (CarType != other.CarType) 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 (HasDispatchMotionDirection) hash ^= DispatchMotionDirection.GetHashCode();
      if (idStruct_ != null) hash ^= IdStruct.GetHashCode();
      if (locateInformation_ != null) hash ^= LocateInformation.GetHashCode();
      hash ^= parkspaceInfoEx_.GetHashCode();
      if (HasCarType) hash ^= CarType.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 (HasDispatchMotionDirection) {
        output.WriteRawTag(24);
        output.WriteEnum((int) DispatchMotionDirection);
      }
      if (idStruct_ != null) {
        output.WriteRawTag(34);
        output.WriteMessage(IdStruct);
      }
      if (locateInformation_ != null) {
        output.WriteRawTag(42);
        output.WriteMessage(LocateInformation);
      }
      parkspaceInfoEx_.WriteTo(output, _repeated_parkspaceInfoEx_codec);
      if (HasCarType) {
        output.WriteRawTag(56);
        output.WriteEnum((int) CarType);
      }
      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 (HasDispatchMotionDirection) {
        output.WriteRawTag(24);
        output.WriteEnum((int) DispatchMotionDirection);
      }
      if (idStruct_ != null) {
        output.WriteRawTag(34);
        output.WriteMessage(IdStruct);
      }
      if (locateInformation_ != null) {
        output.WriteRawTag(42);
        output.WriteMessage(LocateInformation);
      }
      parkspaceInfoEx_.WriteTo(ref output, _repeated_parkspaceInfoEx_codec);
      if (HasCarType) {
        output.WriteRawTag(56);
        output.WriteEnum((int) CarType);
      }
      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 (HasDispatchMotionDirection) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) DispatchMotionDirection);
      }
      if (idStruct_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(IdStruct);
      }
      if (locateInformation_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(LocateInformation);
      }
      size += parkspaceInfoEx_.CalculateSize(_repeated_parkspaceInfoEx_codec);
      if (HasCarType) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) CarType);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(Dispatch_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.HasDispatchMotionDirection) {
        DispatchMotionDirection = other.DispatchMotionDirection;
      }
      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);
      }
      parkspaceInfoEx_.Add(other.parkspaceInfoEx_);
      if (other.HasCarType) {
        CarType = other.CarType;
      }
      _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 24: {
            DispatchMotionDirection = (global::Message.Dispatch_motion_direction) input.ReadEnum();
            break;
          }
          case 34: {
            if (idStruct_ == null) {
              IdStruct = new global::Message.Id_struct();
            }
            input.ReadMessage(IdStruct);
            break;
          }
          case 42: {
            if (locateInformation_ == null) {
              LocateInformation = new global::Message.Locate_information();
            }
            input.ReadMessage(LocateInformation);
            break;
          }
          case 50: {
            parkspaceInfoEx_.AddEntriesFrom(input, _repeated_parkspaceInfoEx_codec);
            break;
          }
          case 56: {
            CarType = (global::Message.Car_type) input.ReadEnum();
            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 24: {
            DispatchMotionDirection = (global::Message.Dispatch_motion_direction) input.ReadEnum();
            break;
          }
          case 34: {
            if (idStruct_ == null) {
              IdStruct = new global::Message.Id_struct();
            }
            input.ReadMessage(IdStruct);
            break;
          }
          case 42: {
            if (locateInformation_ == null) {
              LocateInformation = new global::Message.Locate_information();
            }
            input.ReadMessage(LocateInformation);
            break;
          }
          case 50: {
            parkspaceInfoEx_.AddEntriesFrom(ref input, _repeated_parkspaceInfoEx_codec);
            break;
          }
          case 56: {
            CarType = (global::Message.Car_type) input.ReadEnum();
            break;
          }
        }
      }
    }
    #endif

  }

  /// <summary>
  ///搬运动作执行完成后反馈结果(调度管理->主控)
  /// </summary>
  public sealed partial class Dispatch_response_msg : pb::IMessage<Dispatch_response_msg>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Dispatch_response_msg> _parser = new pb::MessageParser<Dispatch_response_msg>(() => new Dispatch_response_msg());
    private pb::UnknownFieldSet _unknownFields;
    private int _hasBits0;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<Dispatch_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.DispatchMessageReflection.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 Dispatch_response_msg() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Dispatch_response_msg(Dispatch_response_msg other) : this() {
      _hasBits0 = other._hasBits0;
      baseInfo_ = other.baseInfo_ != null ? other.baseInfo_.Clone() : null;
      commandKey_ = other.commandKey_;
      dispatchMotionDirection_ = other.dispatchMotionDirection_;
      idStruct_ = other.idStruct_ != null ? other.idStruct_.Clone() : null;
      locateInformation_ = other.locateInformation_ != null ? other.locateInformation_.Clone() : null;
      parkspaceInfoEx_ = other.parkspaceInfoEx_.Clone();
      carType_ = other.carType_;
      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 Dispatch_response_msg Clone() {
      return new Dispatch_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 "dispatch_motion_direction" field.</summary>
    public const int DispatchMotionDirectionFieldNumber = 3;
    private readonly static global::Message.Dispatch_motion_direction DispatchMotionDirectionDefaultValue = global::Message.Dispatch_motion_direction.EStoreCar;

    private global::Message.Dispatch_motion_direction dispatchMotionDirection_;
    /// <summary>
    ///调度方向, 停车取车
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Dispatch_motion_direction DispatchMotionDirection {
      get { if ((_hasBits0 & 1) != 0) { return dispatchMotionDirection_; } else { return DispatchMotionDirectionDefaultValue; } }
      set {
        _hasBits0 |= 1;
        dispatchMotionDirection_ = value;
      }
    }
    /// <summary>Gets whether the "dispatch_motion_direction" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasDispatchMotionDirection {
      get { return (_hasBits0 & 1) != 0; }
    }
    /// <summary>Clears the value of the "dispatch_motion_direction" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearDispatchMotionDirection() {
      _hasBits0 &= ~1;
    }

    /// <summary>Field number for the "id_struct" field.</summary>
    public const int IdStructFieldNumber = 4;
    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 "locate_information" field.</summary>
    public const int LocateInformationFieldNumber = 5;
    private global::Message.Locate_information locateInformation_;
    /// <summary>
    ///汽车测量信息, 只有停车时有数据, 取车时没有数据.
    /// </summary>
    [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 "parkspace_info_ex" field.</summary>
    public const int ParkspaceInfoExFieldNumber = 6;
    private static readonly pb::FieldCodec<global::Message.Parkspace_info> _repeated_parkspaceInfoEx_codec
        = pb::FieldCodec.ForMessage(50, global::Message.Parkspace_info.Parser);
    private readonly pbc::RepeatedField<global::Message.Parkspace_info> parkspaceInfoEx_ = new pbc::RepeatedField<global::Message.Parkspace_info>();
    /// <summary>
    ///车位编号, 停车位(B方案, 分配3个停车位)
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::Message.Parkspace_info> ParkspaceInfoEx {
      get { return parkspaceInfoEx_; }
    }

    /// <summary>Field number for the "car_type" field.</summary>
    public const int CarTypeFieldNumber = 7;
    private readonly static global::Message.Car_type CarTypeDefaultValue = global::Message.Car_type.UnknowCarType;

    private global::Message.Car_type carType_;
    /// <summary>
    ///汽车大小
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Car_type CarType {
      get { if ((_hasBits0 & 2) != 0) { return carType_; } else { return CarTypeDefaultValue; } }
      set {
        _hasBits0 |= 2;
        carType_ = value;
      }
    }
    /// <summary>Gets whether the "car_type" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasCarType {
      get { return (_hasBits0 & 2) != 0; }
    }
    /// <summary>Clears the value of the "car_type" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearCarType() {
      _hasBits0 &= ~2;
    }

    /// <summary>Field number for the "error_manager" field.</summary>
    public const int ErrorManagerFieldNumber = 8;
    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 Dispatch_response_msg);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(Dispatch_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 (DispatchMotionDirection != other.DispatchMotionDirection) return false;
      if (!object.Equals(IdStruct, other.IdStruct)) return false;
      if (!object.Equals(LocateInformation, other.LocateInformation)) return false;
      if(!parkspaceInfoEx_.Equals(other.parkspaceInfoEx_)) return false;
      if (CarType != other.CarType) 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 (HasDispatchMotionDirection) hash ^= DispatchMotionDirection.GetHashCode();
      if (idStruct_ != null) hash ^= IdStruct.GetHashCode();
      if (locateInformation_ != null) hash ^= LocateInformation.GetHashCode();
      hash ^= parkspaceInfoEx_.GetHashCode();
      if (HasCarType) hash ^= CarType.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 (HasDispatchMotionDirection) {
        output.WriteRawTag(24);
        output.WriteEnum((int) DispatchMotionDirection);
      }
      if (idStruct_ != null) {
        output.WriteRawTag(34);
        output.WriteMessage(IdStruct);
      }
      if (locateInformation_ != null) {
        output.WriteRawTag(42);
        output.WriteMessage(LocateInformation);
      }
      parkspaceInfoEx_.WriteTo(output, _repeated_parkspaceInfoEx_codec);
      if (HasCarType) {
        output.WriteRawTag(56);
        output.WriteEnum((int) CarType);
      }
      if (errorManager_ != null) {
        output.WriteRawTag(66);
        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 (HasDispatchMotionDirection) {
        output.WriteRawTag(24);
        output.WriteEnum((int) DispatchMotionDirection);
      }
      if (idStruct_ != null) {
        output.WriteRawTag(34);
        output.WriteMessage(IdStruct);
      }
      if (locateInformation_ != null) {
        output.WriteRawTag(42);
        output.WriteMessage(LocateInformation);
      }
      parkspaceInfoEx_.WriteTo(ref output, _repeated_parkspaceInfoEx_codec);
      if (HasCarType) {
        output.WriteRawTag(56);
        output.WriteEnum((int) CarType);
      }
      if (errorManager_ != null) {
        output.WriteRawTag(66);
        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 (HasDispatchMotionDirection) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) DispatchMotionDirection);
      }
      if (idStruct_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(IdStruct);
      }
      if (locateInformation_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(LocateInformation);
      }
      size += parkspaceInfoEx_.CalculateSize(_repeated_parkspaceInfoEx_codec);
      if (HasCarType) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) CarType);
      }
      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(Dispatch_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.HasDispatchMotionDirection) {
        DispatchMotionDirection = other.DispatchMotionDirection;
      }
      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);
      }
      parkspaceInfoEx_.Add(other.parkspaceInfoEx_);
      if (other.HasCarType) {
        CarType = other.CarType;
      }
      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 24: {
            DispatchMotionDirection = (global::Message.Dispatch_motion_direction) input.ReadEnum();
            break;
          }
          case 34: {
            if (idStruct_ == null) {
              IdStruct = new global::Message.Id_struct();
            }
            input.ReadMessage(IdStruct);
            break;
          }
          case 42: {
            if (locateInformation_ == null) {
              LocateInformation = new global::Message.Locate_information();
            }
            input.ReadMessage(LocateInformation);
            break;
          }
          case 50: {
            parkspaceInfoEx_.AddEntriesFrom(input, _repeated_parkspaceInfoEx_codec);
            break;
          }
          case 56: {
            CarType = (global::Message.Car_type) input.ReadEnum();
            break;
          }
          case 66: {
            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 24: {
            DispatchMotionDirection = (global::Message.Dispatch_motion_direction) input.ReadEnum();
            break;
          }
          case 34: {
            if (idStruct_ == null) {
              IdStruct = new global::Message.Id_struct();
            }
            input.ReadMessage(IdStruct);
            break;
          }
          case 42: {
            if (locateInformation_ == null) {
              LocateInformation = new global::Message.Locate_information();
            }
            input.ReadMessage(LocateInformation);
            break;
          }
          case 50: {
            parkspaceInfoEx_.AddEntriesFrom(ref input, _repeated_parkspaceInfoEx_codec);
            break;
          }
          case 56: {
            CarType = (global::Message.Car_type) input.ReadEnum();
            break;
          }
          case 66: {
            if (errorManager_ == null) {
              ErrorManager = new global::Message.Error_manager();
            }
            input.ReadMessage(ErrorManager);
            break;
          }
        }
      }
    }
    #endif

  }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Message.DispatchMessageReflection.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 Catcher_data() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Catcher_data(Catcher_data other) : this() {
      _hasBits0 = other._hasBits0;
      dispatchDeviceType_ = other.dispatchDeviceType_;
      dispatchDeviceStatus_ = other.dispatchDeviceStatus_;
      deviceId_ = other.deviceId_;
      actualDeviceStatus_ = other.actualDeviceStatus_;
      actualLoadStatus_ = other.actualLoadStatus_;
      actualCoordinatesId_ = other.actualCoordinatesId_;
      actualX_ = other.actualX_;
      actualY_ = other.actualY_;
      actualB_ = other.actualB_;
      actualZ_ = other.actualZ_;
      actualD1_ = other.actualD1_;
      actualD2_ = other.actualD2_;
      actualClampMotion1_ = other.actualClampMotion1_;
      actualClampMotion2_ = other.actualClampMotion2_;
      actualClampMotion3_ = other.actualClampMotion3_;
      actualClampMotion4_ = other.actualClampMotion4_;
      actualErrorCode_ = other.actualErrorCode_;
      actualWarningCode_ = other.actualWarningCode_;
      actualErrorDescription_ = other.actualErrorDescription_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

    /// <summary>Field number for the "dispatch_device_type" field.</summary>
    public const int DispatchDeviceTypeFieldNumber = 1;
    private readonly static global::Message.Dispatch_device_type DispatchDeviceTypeDefaultValue = global::Message.Dispatch_device_type.Robot1;

    private global::Message.Dispatch_device_type dispatchDeviceType_;
    /// <summary>
    ///调度设备的类型
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Dispatch_device_type DispatchDeviceType {
      get { if ((_hasBits0 & 1) != 0) { return dispatchDeviceType_; } else { return DispatchDeviceTypeDefaultValue; } }
      set {
        _hasBits0 |= 1;
        dispatchDeviceType_ = value;
      }
    }
    /// <summary>Gets whether the "dispatch_device_type" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasDispatchDeviceType {
      get { return (_hasBits0 & 1) != 0; }
    }
    /// <summary>Clears the value of the "dispatch_device_type" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearDispatchDeviceType() {
      _hasBits0 &= ~1;
    }

    /// <summary>Field number for the "dispatch_device_status" field.</summary>
    public const int DispatchDeviceStatusFieldNumber = 2;
    private readonly static global::Message.Dispatch_device_status DispatchDeviceStatusDefaultValue = global::Message.Dispatch_device_status.DispatchDeviceUnknow;

    private global::Message.Dispatch_device_status dispatchDeviceStatus_;
    /// <summary>
    ///设备总状态, 控制任务流程(长流程)
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Dispatch_device_status DispatchDeviceStatus {
      get { if ((_hasBits0 & 2) != 0) { return dispatchDeviceStatus_; } else { return DispatchDeviceStatusDefaultValue; } }
      set {
        _hasBits0 |= 2;
        dispatchDeviceStatus_ = value;
      }
    }
    /// <summary>Gets whether the "dispatch_device_status" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasDispatchDeviceStatus {
      get { return (_hasBits0 & 2) != 0; }
    }
    /// <summary>Clears the value of the "dispatch_device_status" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearDispatchDeviceStatus() {
      _hasBits0 &= ~2;
    }

    /// <summary>Field number for the "device_id" field.</summary>
    public const int DeviceIdFieldNumber = 3;
    private readonly static int DeviceIdDefaultValue = 0;

    private int deviceId_;
    /// <summary>
    ///设备id,
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int DeviceId {
      get { if ((_hasBits0 & 4) != 0) { return deviceId_; } else { return DeviceIdDefaultValue; } }
      set {
        _hasBits0 |= 4;
        deviceId_ = value;
      }
    }
    /// <summary>Gets whether the "device_id" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasDeviceId {
      get { return (_hasBits0 & 4) != 0; }
    }
    /// <summary>Clears the value of the "device_id" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearDeviceId() {
      _hasBits0 &= ~4;
    }

    /// <summary>Field number for the "actual_device_status" field.</summary>
    public const int ActualDeviceStatusFieldNumber = 4;
    private readonly static global::Message.Hardware_device_status ActualDeviceStatusDefaultValue = global::Message.Hardware_device_status.DeviceUnknown;

    private global::Message.Hardware_device_status actualDeviceStatus_;
    /// <summary>
    ///机器人的硬件设备状态(短流程)
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Hardware_device_status ActualDeviceStatus {
      get { if ((_hasBits0 & 8) != 0) { return actualDeviceStatus_; } else { return ActualDeviceStatusDefaultValue; } }
      set {
        _hasBits0 |= 8;
        actualDeviceStatus_ = value;
      }
    }
    /// <summary>Gets whether the "actual_device_status" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasActualDeviceStatus {
      get { return (_hasBits0 & 8) != 0; }
    }
    /// <summary>Clears the value of the "actual_device_status" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearActualDeviceStatus() {
      _hasBits0 &= ~8;
    }

    /// <summary>Field number for the "actual_load_status" field.</summary>
    public const int ActualLoadStatusFieldNumber = 5;
    private readonly static global::Message.Load_status ActualLoadStatusDefaultValue = global::Message.Load_status.LoadUnknown;

    private global::Message.Load_status actualLoadStatus_;
    /// <summary>
    ///机器人的负载状态, 机器人上面是否有车.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Load_status ActualLoadStatus {
      get { if ((_hasBits0 & 16) != 0) { return actualLoadStatus_; } else { return ActualLoadStatusDefaultValue; } }
      set {
        _hasBits0 |= 16;
        actualLoadStatus_ = value;
      }
    }
    /// <summary>Gets whether the "actual_load_status" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasActualLoadStatus {
      get { return (_hasBits0 & 16) != 0; }
    }
    /// <summary>Clears the value of the "actual_load_status" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearActualLoadStatus() {
      _hasBits0 &= ~16;
    }

    /// <summary>Field number for the "actual_coordinates_id" field.</summary>
    public const int ActualCoordinatesIdFieldNumber = 6;
    private readonly static int ActualCoordinatesIdDefaultValue = 0;

    private int actualCoordinatesId_;
    /// <summary>
    ///机器人真实 空间位置的id.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int ActualCoordinatesId {
      get { if ((_hasBits0 & 32) != 0) { return actualCoordinatesId_; } else { return ActualCoordinatesIdDefaultValue; } }
      set {
        _hasBits0 |= 32;
        actualCoordinatesId_ = value;
      }
    }
    /// <summary>Gets whether the "actual_coordinates_id" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasActualCoordinatesId {
      get { return (_hasBits0 & 32) != 0; }
    }
    /// <summary>Clears the value of the "actual_coordinates_id" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearActualCoordinatesId() {
      _hasBits0 &= ~32;
    }

    /// <summary>Field number for the "actual_x" field.</summary>
    public const int ActualXFieldNumber = 7;
    private readonly static float ActualXDefaultValue = 0F;

    private float actualX_;
    /// <summary>
    ///机器人坐标x轴,
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public float ActualX {
      get { if ((_hasBits0 & 64) != 0) { return actualX_; } else { return ActualXDefaultValue; } }
      set {
        _hasBits0 |= 64;
        actualX_ = value;
      }
    }
    /// <summary>Gets whether the "actual_x" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasActualX {
      get { return (_hasBits0 & 64) != 0; }
    }
    /// <summary>Clears the value of the "actual_x" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearActualX() {
      _hasBits0 &= ~64;
    }

    /// <summary>Field number for the "actual_y" field.</summary>
    public const int ActualYFieldNumber = 8;
    private readonly static float ActualYDefaultValue = 0F;

    private float actualY_;
    /// <summary>
    ///机器人坐标y轴,
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public float ActualY {
      get { if ((_hasBits0 & 128) != 0) { return actualY_; } else { return ActualYDefaultValue; } }
      set {
        _hasBits0 |= 128;
        actualY_ = value;
      }
    }
    /// <summary>Gets whether the "actual_y" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasActualY {
      get { return (_hasBits0 & 128) != 0; }
    }
    /// <summary>Clears the value of the "actual_y" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearActualY() {
      _hasBits0 &= ~128;
    }

    /// <summary>Field number for the "actual_b" field.</summary>
    public const int ActualBFieldNumber = 9;
    private readonly static float ActualBDefaultValue = 0F;

    private float actualB_;
    /// <summary>
    ///机器人坐标b轴, 旋转范围80~280
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public float ActualB {
      get { if ((_hasBits0 & 256) != 0) { return actualB_; } else { return ActualBDefaultValue; } }
      set {
        _hasBits0 |= 256;
        actualB_ = value;
      }
    }
    /// <summary>Gets whether the "actual_b" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasActualB {
      get { return (_hasBits0 & 256) != 0; }
    }
    /// <summary>Clears the value of the "actual_b" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearActualB() {
      _hasBits0 &= ~256;
    }

    /// <summary>Field number for the "actual_z" field.</summary>
    public const int ActualZFieldNumber = 10;
    private readonly static float ActualZDefaultValue = 0F;

    private float actualZ_;
    /// <summary>
    ///机器人坐标z轴,
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public float ActualZ {
      get { if ((_hasBits0 & 512) != 0) { return actualZ_; } else { return ActualZDefaultValue; } }
      set {
        _hasBits0 |= 512;
        actualZ_ = value;
      }
    }
    /// <summary>Gets whether the "actual_z" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasActualZ {
      get { return (_hasBits0 & 512) != 0; }
    }
    /// <summary>Clears the value of the "actual_z" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearActualZ() {
      _hasBits0 &= ~512;
    }

    /// <summary>Field number for the "actual_d1" field.</summary>
    public const int ActualD1FieldNumber = 11;
    private readonly static float ActualD1DefaultValue = 0F;

    private float actualD1_;
    /// <summary>
    ///机器人坐标d1轴, 机器人抓车杆纵向移动(前轮抓杆)
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public float ActualD1 {
      get { if ((_hasBits0 & 1024) != 0) { return actualD1_; } else { return ActualD1DefaultValue; } }
      set {
        _hasBits0 |= 1024;
        actualD1_ = value;
      }
    }
    /// <summary>Gets whether the "actual_d1" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasActualD1 {
      get { return (_hasBits0 & 1024) != 0; }
    }
    /// <summary>Clears the value of the "actual_d1" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearActualD1() {
      _hasBits0 &= ~1024;
    }

    /// <summary>Field number for the "actual_d2" field.</summary>
    public const int ActualD2FieldNumber = 12;
    private readonly static float ActualD2DefaultValue = 0F;

    private float actualD2_;
    /// <summary>
    ///机器人坐标d2轴, 机器人抓车杆纵向移动(后轮抓杆)
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public float ActualD2 {
      get { if ((_hasBits0 & 2048) != 0) { return actualD2_; } else { return ActualD2DefaultValue; } }
      set {
        _hasBits0 |= 2048;
        actualD2_ = value;
      }
    }
    /// <summary>Gets whether the "actual_d2" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasActualD2 {
      get { return (_hasBits0 & 2048) != 0; }
    }
    /// <summary>Clears the value of the "actual_d2" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearActualD2() {
      _hasBits0 &= ~2048;
    }

    /// <summary>Field number for the "actual_clamp_motion1" field.</summary>
    public const int ActualClampMotion1FieldNumber = 13;
    private readonly static global::Message.Clamp_motion ActualClampMotion1DefaultValue = global::Message.Clamp_motion.EClampNoAction;

    private global::Message.Clamp_motion actualClampMotion1_;
    /// <summary>
    ///机器人夹车杆. 0=无动作，1=夹紧，2=松开
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Clamp_motion ActualClampMotion1 {
      get { if ((_hasBits0 & 4096) != 0) { return actualClampMotion1_; } else { return ActualClampMotion1DefaultValue; } }
      set {
        _hasBits0 |= 4096;
        actualClampMotion1_ = value;
      }
    }
    /// <summary>Gets whether the "actual_clamp_motion1" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasActualClampMotion1 {
      get { return (_hasBits0 & 4096) != 0; }
    }
    /// <summary>Clears the value of the "actual_clamp_motion1" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearActualClampMotion1() {
      _hasBits0 &= ~4096;
    }

    /// <summary>Field number for the "actual_clamp_motion2" field.</summary>
    public const int ActualClampMotion2FieldNumber = 14;
    private readonly static global::Message.Clamp_motion ActualClampMotion2DefaultValue = global::Message.Clamp_motion.EClampNoAction;

    private global::Message.Clamp_motion actualClampMotion2_;
    /// <summary>
    ///机器人夹车杆. 0=无动作，1=夹紧，2=松开
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Clamp_motion ActualClampMotion2 {
      get { if ((_hasBits0 & 8192) != 0) { return actualClampMotion2_; } else { return ActualClampMotion2DefaultValue; } }
      set {
        _hasBits0 |= 8192;
        actualClampMotion2_ = value;
      }
    }
    /// <summary>Gets whether the "actual_clamp_motion2" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasActualClampMotion2 {
      get { return (_hasBits0 & 8192) != 0; }
    }
    /// <summary>Clears the value of the "actual_clamp_motion2" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearActualClampMotion2() {
      _hasBits0 &= ~8192;
    }

    /// <summary>Field number for the "actual_clamp_motion3" field.</summary>
    public const int ActualClampMotion3FieldNumber = 15;
    private readonly static global::Message.Clamp_motion ActualClampMotion3DefaultValue = global::Message.Clamp_motion.EClampNoAction;

    private global::Message.Clamp_motion actualClampMotion3_;
    /// <summary>
    ///机器人夹车杆. 0=无动作，1=夹紧，2=松开
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Clamp_motion ActualClampMotion3 {
      get { if ((_hasBits0 & 16384) != 0) { return actualClampMotion3_; } else { return ActualClampMotion3DefaultValue; } }
      set {
        _hasBits0 |= 16384;
        actualClampMotion3_ = value;
      }
    }
    /// <summary>Gets whether the "actual_clamp_motion3" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasActualClampMotion3 {
      get { return (_hasBits0 & 16384) != 0; }
    }
    /// <summary>Clears the value of the "actual_clamp_motion3" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearActualClampMotion3() {
      _hasBits0 &= ~16384;
    }

    /// <summary>Field number for the "actual_clamp_motion4" field.</summary>
    public const int ActualClampMotion4FieldNumber = 16;
    private readonly static global::Message.Clamp_motion ActualClampMotion4DefaultValue = global::Message.Clamp_motion.EClampNoAction;

    private global::Message.Clamp_motion actualClampMotion4_;
    /// <summary>
    ///机器人夹车杆. 0=无动作，1=夹紧，2=松开
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Clamp_motion ActualClampMotion4 {
      get { if ((_hasBits0 & 32768) != 0) { return actualClampMotion4_; } else { return ActualClampMotion4DefaultValue; } }
      set {
        _hasBits0 |= 32768;
        actualClampMotion4_ = value;
      }
    }
    /// <summary>Gets whether the "actual_clamp_motion4" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasActualClampMotion4 {
      get { return (_hasBits0 & 32768) != 0; }
    }
    /// <summary>Clears the value of the "actual_clamp_motion4" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearActualClampMotion4() {
      _hasBits0 &= ~32768;
    }

    /// <summary>Field number for the "actual_error_code" field.</summary>
    public const int ActualErrorCodeFieldNumber = 17;
    private readonly static string ActualErrorCodeDefaultValue = "";

    private string actualErrorCode_;
    /// <summary>
    ///机器人设备的故障信息位
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string ActualErrorCode {
      get { return actualErrorCode_ ?? ActualErrorCodeDefaultValue; }
      set {
        actualErrorCode_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }
    /// <summary>Gets whether the "actual_error_code" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasActualErrorCode {
      get { return actualErrorCode_ != null; }
    }
    /// <summary>Clears the value of the "actual_error_code" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearActualErrorCode() {
      actualErrorCode_ = null;
    }

    /// <summary>Field number for the "actual_warning_code" field.</summary>
    public const int ActualWarningCodeFieldNumber = 18;
    private readonly static string ActualWarningCodeDefaultValue = "";

    private string actualWarningCode_;
    /// <summary>
    ///机器人设备的警告信息位
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string ActualWarningCode {
      get { return actualWarningCode_ ?? ActualWarningCodeDefaultValue; }
      set {
        actualWarningCode_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }
    /// <summary>Gets whether the "actual_warning_code" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasActualWarningCode {
      get { return actualWarningCode_ != null; }
    }
    /// <summary>Clears the value of the "actual_warning_code" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearActualWarningCode() {
      actualWarningCode_ = null;
    }

    /// <summary>Field number for the "actual_error_description" field.</summary>
    public const int ActualErrorDescriptionFieldNumber = 19;
    private readonly static string ActualErrorDescriptionDefaultValue = "";

    private string actualErrorDescription_;
    /// <summary>
    ///机器人设备的错误描述
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string ActualErrorDescription {
      get { return actualErrorDescription_ ?? ActualErrorDescriptionDefaultValue; }
      set {
        actualErrorDescription_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }
    /// <summary>Gets whether the "actual_error_description" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasActualErrorDescription {
      get { return actualErrorDescription_ != null; }
    }
    /// <summary>Clears the value of the "actual_error_description" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearActualErrorDescription() {
      actualErrorDescription_ = null;
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(Catcher_data other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (DispatchDeviceType != other.DispatchDeviceType) return false;
      if (DispatchDeviceStatus != other.DispatchDeviceStatus) return false;
      if (DeviceId != other.DeviceId) return false;
      if (ActualDeviceStatus != other.ActualDeviceStatus) return false;
      if (ActualLoadStatus != other.ActualLoadStatus) return false;
      if (ActualCoordinatesId != other.ActualCoordinatesId) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(ActualX, other.ActualX)) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(ActualY, other.ActualY)) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(ActualB, other.ActualB)) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(ActualZ, other.ActualZ)) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(ActualD1, other.ActualD1)) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(ActualD2, other.ActualD2)) return false;
      if (ActualClampMotion1 != other.ActualClampMotion1) return false;
      if (ActualClampMotion2 != other.ActualClampMotion2) return false;
      if (ActualClampMotion3 != other.ActualClampMotion3) return false;
      if (ActualClampMotion4 != other.ActualClampMotion4) return false;
      if (ActualErrorCode != other.ActualErrorCode) return false;
      if (ActualWarningCode != other.ActualWarningCode) return false;
      if (ActualErrorDescription != other.ActualErrorDescription) 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 (HasDispatchDeviceType) hash ^= DispatchDeviceType.GetHashCode();
      if (HasDispatchDeviceStatus) hash ^= DispatchDeviceStatus.GetHashCode();
      if (HasDeviceId) hash ^= DeviceId.GetHashCode();
      if (HasActualDeviceStatus) hash ^= ActualDeviceStatus.GetHashCode();
      if (HasActualLoadStatus) hash ^= ActualLoadStatus.GetHashCode();
      if (HasActualCoordinatesId) hash ^= ActualCoordinatesId.GetHashCode();
      if (HasActualX) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(ActualX);
      if (HasActualY) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(ActualY);
      if (HasActualB) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(ActualB);
      if (HasActualZ) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(ActualZ);
      if (HasActualD1) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(ActualD1);
      if (HasActualD2) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(ActualD2);
      if (HasActualClampMotion1) hash ^= ActualClampMotion1.GetHashCode();
      if (HasActualClampMotion2) hash ^= ActualClampMotion2.GetHashCode();
      if (HasActualClampMotion3) hash ^= ActualClampMotion3.GetHashCode();
      if (HasActualClampMotion4) hash ^= ActualClampMotion4.GetHashCode();
      if (HasActualErrorCode) hash ^= ActualErrorCode.GetHashCode();
      if (HasActualWarningCode) hash ^= ActualWarningCode.GetHashCode();
      if (HasActualErrorDescription) hash ^= ActualErrorDescription.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 (HasDispatchDeviceType) {
        output.WriteRawTag(8);
        output.WriteEnum((int) DispatchDeviceType);
      }
      if (HasDispatchDeviceStatus) {
        output.WriteRawTag(16);
        output.WriteEnum((int) DispatchDeviceStatus);
      }
      if (HasDeviceId) {
        output.WriteRawTag(24);
        output.WriteInt32(DeviceId);
      }
      if (HasActualDeviceStatus) {
        output.WriteRawTag(32);
        output.WriteEnum((int) ActualDeviceStatus);
      }
      if (HasActualLoadStatus) {
        output.WriteRawTag(40);
        output.WriteEnum((int) ActualLoadStatus);
      }
      if (HasActualCoordinatesId) {
        output.WriteRawTag(48);
        output.WriteInt32(ActualCoordinatesId);
      }
      if (HasActualX) {
        output.WriteRawTag(61);
        output.WriteFloat(ActualX);
      }
      if (HasActualY) {
        output.WriteRawTag(69);
        output.WriteFloat(ActualY);
      }
      if (HasActualB) {
        output.WriteRawTag(77);
        output.WriteFloat(ActualB);
      }
      if (HasActualZ) {
        output.WriteRawTag(85);
        output.WriteFloat(ActualZ);
      }
      if (HasActualD1) {
        output.WriteRawTag(93);
        output.WriteFloat(ActualD1);
      }
      if (HasActualD2) {
        output.WriteRawTag(101);
        output.WriteFloat(ActualD2);
      }
      if (HasActualClampMotion1) {
        output.WriteRawTag(104);
        output.WriteEnum((int) ActualClampMotion1);
      }
      if (HasActualClampMotion2) {
        output.WriteRawTag(112);
        output.WriteEnum((int) ActualClampMotion2);
      }
      if (HasActualClampMotion3) {
        output.WriteRawTag(120);
        output.WriteEnum((int) ActualClampMotion3);
      }
      if (HasActualClampMotion4) {
        output.WriteRawTag(128, 1);
        output.WriteEnum((int) ActualClampMotion4);
      }
      if (HasActualErrorCode) {
        output.WriteRawTag(138, 1);
        output.WriteString(ActualErrorCode);
      }
      if (HasActualWarningCode) {
        output.WriteRawTag(146, 1);
        output.WriteString(ActualWarningCode);
      }
      if (HasActualErrorDescription) {
        output.WriteRawTag(154, 1);
        output.WriteString(ActualErrorDescription);
      }
      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 (HasDispatchDeviceType) {
        output.WriteRawTag(8);
        output.WriteEnum((int) DispatchDeviceType);
      }
      if (HasDispatchDeviceStatus) {
        output.WriteRawTag(16);
        output.WriteEnum((int) DispatchDeviceStatus);
      }
      if (HasDeviceId) {
        output.WriteRawTag(24);
        output.WriteInt32(DeviceId);
      }
      if (HasActualDeviceStatus) {
        output.WriteRawTag(32);
        output.WriteEnum((int) ActualDeviceStatus);
      }
      if (HasActualLoadStatus) {
        output.WriteRawTag(40);
        output.WriteEnum((int) ActualLoadStatus);
      }
      if (HasActualCoordinatesId) {
        output.WriteRawTag(48);
        output.WriteInt32(ActualCoordinatesId);
      }
      if (HasActualX) {
        output.WriteRawTag(61);
        output.WriteFloat(ActualX);
      }
      if (HasActualY) {
        output.WriteRawTag(69);
        output.WriteFloat(ActualY);
      }
      if (HasActualB) {
        output.WriteRawTag(77);
        output.WriteFloat(ActualB);
      }
      if (HasActualZ) {
        output.WriteRawTag(85);
        output.WriteFloat(ActualZ);
      }
      if (HasActualD1) {
        output.WriteRawTag(93);
        output.WriteFloat(ActualD1);
      }
      if (HasActualD2) {
        output.WriteRawTag(101);
        output.WriteFloat(ActualD2);
      }
      if (HasActualClampMotion1) {
        output.WriteRawTag(104);
        output.WriteEnum((int) ActualClampMotion1);
      }
      if (HasActualClampMotion2) {
        output.WriteRawTag(112);
        output.WriteEnum((int) ActualClampMotion2);
      }
      if (HasActualClampMotion3) {
        output.WriteRawTag(120);
        output.WriteEnum((int) ActualClampMotion3);
      }
      if (HasActualClampMotion4) {
        output.WriteRawTag(128, 1);
        output.WriteEnum((int) ActualClampMotion4);
      }
      if (HasActualErrorCode) {
        output.WriteRawTag(138, 1);
        output.WriteString(ActualErrorCode);
      }
      if (HasActualWarningCode) {
        output.WriteRawTag(146, 1);
        output.WriteString(ActualWarningCode);
      }
      if (HasActualErrorDescription) {
        output.WriteRawTag(154, 1);
        output.WriteString(ActualErrorDescription);
      }
      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 (HasDispatchDeviceType) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) DispatchDeviceType);
      }
      if (HasDispatchDeviceStatus) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) DispatchDeviceStatus);
      }
      if (HasDeviceId) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(DeviceId);
      }
      if (HasActualDeviceStatus) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) ActualDeviceStatus);
      }
      if (HasActualLoadStatus) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) ActualLoadStatus);
      }
      if (HasActualCoordinatesId) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(ActualCoordinatesId);
      }
      if (HasActualX) {
        size += 1 + 4;
      }
      if (HasActualY) {
        size += 1 + 4;
      }
      if (HasActualB) {
        size += 1 + 4;
      }
      if (HasActualZ) {
        size += 1 + 4;
      }
      if (HasActualD1) {
        size += 1 + 4;
      }
      if (HasActualD2) {
        size += 1 + 4;
      }
      if (HasActualClampMotion1) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) ActualClampMotion1);
      }
      if (HasActualClampMotion2) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) ActualClampMotion2);
      }
      if (HasActualClampMotion3) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) ActualClampMotion3);
      }
      if (HasActualClampMotion4) {
        size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) ActualClampMotion4);
      }
      if (HasActualErrorCode) {
        size += 2 + pb::CodedOutputStream.ComputeStringSize(ActualErrorCode);
      }
      if (HasActualWarningCode) {
        size += 2 + pb::CodedOutputStream.ComputeStringSize(ActualWarningCode);
      }
      if (HasActualErrorDescription) {
        size += 2 + pb::CodedOutputStream.ComputeStringSize(ActualErrorDescription);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(Catcher_data other) {
      if (other == null) {
        return;
      }
      if (other.HasDispatchDeviceType) {
        DispatchDeviceType = other.DispatchDeviceType;
      }
      if (other.HasDispatchDeviceStatus) {
        DispatchDeviceStatus = other.DispatchDeviceStatus;
      }
      if (other.HasDeviceId) {
        DeviceId = other.DeviceId;
      }
      if (other.HasActualDeviceStatus) {
        ActualDeviceStatus = other.ActualDeviceStatus;
      }
      if (other.HasActualLoadStatus) {
        ActualLoadStatus = other.ActualLoadStatus;
      }
      if (other.HasActualCoordinatesId) {
        ActualCoordinatesId = other.ActualCoordinatesId;
      }
      if (other.HasActualX) {
        ActualX = other.ActualX;
      }
      if (other.HasActualY) {
        ActualY = other.ActualY;
      }
      if (other.HasActualB) {
        ActualB = other.ActualB;
      }
      if (other.HasActualZ) {
        ActualZ = other.ActualZ;
      }
      if (other.HasActualD1) {
        ActualD1 = other.ActualD1;
      }
      if (other.HasActualD2) {
        ActualD2 = other.ActualD2;
      }
      if (other.HasActualClampMotion1) {
        ActualClampMotion1 = other.ActualClampMotion1;
      }
      if (other.HasActualClampMotion2) {
        ActualClampMotion2 = other.ActualClampMotion2;
      }
      if (other.HasActualClampMotion3) {
        ActualClampMotion3 = other.ActualClampMotion3;
      }
      if (other.HasActualClampMotion4) {
        ActualClampMotion4 = other.ActualClampMotion4;
      }
      if (other.HasActualErrorCode) {
        ActualErrorCode = other.ActualErrorCode;
      }
      if (other.HasActualWarningCode) {
        ActualWarningCode = other.ActualWarningCode;
      }
      if (other.HasActualErrorDescription) {
        ActualErrorDescription = other.ActualErrorDescription;
      }
      _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: {
            DispatchDeviceType = (global::Message.Dispatch_device_type) input.ReadEnum();
            break;
          }
          case 16: {
            DispatchDeviceStatus = (global::Message.Dispatch_device_status) input.ReadEnum();
            break;
          }
          case 24: {
            DeviceId = input.ReadInt32();
            break;
          }
          case 32: {
            ActualDeviceStatus = (global::Message.Hardware_device_status) input.ReadEnum();
            break;
          }
          case 40: {
            ActualLoadStatus = (global::Message.Load_status) input.ReadEnum();
            break;
          }
          case 48: {
            ActualCoordinatesId = input.ReadInt32();
            break;
          }
          case 61: {
            ActualX = input.ReadFloat();
            break;
          }
          case 69: {
            ActualY = input.ReadFloat();
            break;
          }
          case 77: {
            ActualB = input.ReadFloat();
            break;
          }
          case 85: {
            ActualZ = input.ReadFloat();
            break;
          }
          case 93: {
            ActualD1 = input.ReadFloat();
            break;
          }
          case 101: {
            ActualD2 = input.ReadFloat();
            break;
          }
          case 104: {
            ActualClampMotion1 = (global::Message.Clamp_motion) input.ReadEnum();
            break;
          }
          case 112: {
            ActualClampMotion2 = (global::Message.Clamp_motion) input.ReadEnum();
            break;
          }
          case 120: {
            ActualClampMotion3 = (global::Message.Clamp_motion) input.ReadEnum();
            break;
          }
          case 128: {
            ActualClampMotion4 = (global::Message.Clamp_motion) input.ReadEnum();
            break;
          }
          case 138: {
            ActualErrorCode = input.ReadString();
            break;
          }
          case 146: {
            ActualWarningCode = input.ReadString();
            break;
          }
          case 154: {
            ActualErrorDescription = input.ReadString();
            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: {
            DispatchDeviceType = (global::Message.Dispatch_device_type) input.ReadEnum();
            break;
          }
          case 16: {
            DispatchDeviceStatus = (global::Message.Dispatch_device_status) input.ReadEnum();
            break;
          }
          case 24: {
            DeviceId = input.ReadInt32();
            break;
          }
          case 32: {
            ActualDeviceStatus = (global::Message.Hardware_device_status) input.ReadEnum();
            break;
          }
          case 40: {
            ActualLoadStatus = (global::Message.Load_status) input.ReadEnum();
            break;
          }
          case 48: {
            ActualCoordinatesId = input.ReadInt32();
            break;
          }
          case 61: {
            ActualX = input.ReadFloat();
            break;
          }
          case 69: {
            ActualY = input.ReadFloat();
            break;
          }
          case 77: {
            ActualB = input.ReadFloat();
            break;
          }
          case 85: {
            ActualZ = input.ReadFloat();
            break;
          }
          case 93: {
            ActualD1 = input.ReadFloat();
            break;
          }
          case 101: {
            ActualD2 = input.ReadFloat();
            break;
          }
          case 104: {
            ActualClampMotion1 = (global::Message.Clamp_motion) input.ReadEnum();
            break;
          }
          case 112: {
            ActualClampMotion2 = (global::Message.Clamp_motion) input.ReadEnum();
            break;
          }
          case 120: {
            ActualClampMotion3 = (global::Message.Clamp_motion) input.ReadEnum();
            break;
          }
          case 128: {
            ActualClampMotion4 = (global::Message.Clamp_motion) input.ReadEnum();
            break;
          }
          case 138: {
            ActualErrorCode = input.ReadString();
            break;
          }
          case 146: {
            ActualWarningCode = input.ReadString();
            break;
          }
          case 154: {
            ActualErrorDescription = input.ReadString();
            break;
          }
        }
      }
    }
    #endif

  }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Message.DispatchMessageReflection.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 Carrier_data() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Carrier_data(Carrier_data other) : this() {
      _hasBits0 = other._hasBits0;
      dispatchDeviceType_ = other.dispatchDeviceType_;
      dispatchDeviceStatus_ = other.dispatchDeviceStatus_;
      deviceId_ = other.deviceId_;
      actualDeviceStatus_ = other.actualDeviceStatus_;
      actualLoadStatus_ = other.actualLoadStatus_;
      actualCoordinatesId_ = other.actualCoordinatesId_;
      actualX_ = other.actualX_;
      actualY_ = other.actualY_;
      actualZ_ = other.actualZ_;
      actualY1_ = other.actualY1_;
      actualY2_ = other.actualY2_;
      actualClampMotion1_ = other.actualClampMotion1_;
      actualClampMotion2_ = other.actualClampMotion2_;
      actualSmallSportsCarMotion_ = other.actualSmallSportsCarMotion_;
      actualJointMotionX1_ = other.actualJointMotionX1_;
      actualJointMotionX2_ = other.actualJointMotionX2_;
      actualErrorCode_ = other.actualErrorCode_;
      actualWarningCode_ = other.actualWarningCode_;
      actualErrorDescription_ = other.actualErrorDescription_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

    /// <summary>Field number for the "dispatch_device_type" field.</summary>
    public const int DispatchDeviceTypeFieldNumber = 1;
    private readonly static global::Message.Dispatch_device_type DispatchDeviceTypeDefaultValue = global::Message.Dispatch_device_type.Robot1;

    private global::Message.Dispatch_device_type dispatchDeviceType_;
    /// <summary>
    ///调度设备的类型
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Dispatch_device_type DispatchDeviceType {
      get { if ((_hasBits0 & 1) != 0) { return dispatchDeviceType_; } else { return DispatchDeviceTypeDefaultValue; } }
      set {
        _hasBits0 |= 1;
        dispatchDeviceType_ = value;
      }
    }
    /// <summary>Gets whether the "dispatch_device_type" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasDispatchDeviceType {
      get { return (_hasBits0 & 1) != 0; }
    }
    /// <summary>Clears the value of the "dispatch_device_type" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearDispatchDeviceType() {
      _hasBits0 &= ~1;
    }

    /// <summary>Field number for the "dispatch_device_status" field.</summary>
    public const int DispatchDeviceStatusFieldNumber = 2;
    private readonly static global::Message.Dispatch_device_status DispatchDeviceStatusDefaultValue = global::Message.Dispatch_device_status.DispatchDeviceUnknow;

    private global::Message.Dispatch_device_status dispatchDeviceStatus_;
    /// <summary>
    ///设备总状态, 控制任务流程(长流程)
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Dispatch_device_status DispatchDeviceStatus {
      get { if ((_hasBits0 & 2) != 0) { return dispatchDeviceStatus_; } else { return DispatchDeviceStatusDefaultValue; } }
      set {
        _hasBits0 |= 2;
        dispatchDeviceStatus_ = value;
      }
    }
    /// <summary>Gets whether the "dispatch_device_status" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasDispatchDeviceStatus {
      get { return (_hasBits0 & 2) != 0; }
    }
    /// <summary>Clears the value of the "dispatch_device_status" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearDispatchDeviceStatus() {
      _hasBits0 &= ~2;
    }

    /// <summary>Field number for the "device_id" field.</summary>
    public const int DeviceIdFieldNumber = 3;
    private readonly static int DeviceIdDefaultValue = 0;

    private int deviceId_;
    /// <summary>
    ///设备id,
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int DeviceId {
      get { if ((_hasBits0 & 4) != 0) { return deviceId_; } else { return DeviceIdDefaultValue; } }
      set {
        _hasBits0 |= 4;
        deviceId_ = value;
      }
    }
    /// <summary>Gets whether the "device_id" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasDeviceId {
      get { return (_hasBits0 & 4) != 0; }
    }
    /// <summary>Clears the value of the "device_id" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearDeviceId() {
      _hasBits0 &= ~4;
    }

    /// <summary>Field number for the "actual_device_status" field.</summary>
    public const int ActualDeviceStatusFieldNumber = 4;
    private readonly static global::Message.Hardware_device_status ActualDeviceStatusDefaultValue = global::Message.Hardware_device_status.DeviceUnknown;

    private global::Message.Hardware_device_status actualDeviceStatus_;
    /// <summary>
    ///搬运器的硬件设备状态(短流程)
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Hardware_device_status ActualDeviceStatus {
      get { if ((_hasBits0 & 8) != 0) { return actualDeviceStatus_; } else { return ActualDeviceStatusDefaultValue; } }
      set {
        _hasBits0 |= 8;
        actualDeviceStatus_ = value;
      }
    }
    /// <summary>Gets whether the "actual_device_status" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasActualDeviceStatus {
      get { return (_hasBits0 & 8) != 0; }
    }
    /// <summary>Clears the value of the "actual_device_status" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearActualDeviceStatus() {
      _hasBits0 &= ~8;
    }

    /// <summary>Field number for the "actual_load_status" field.</summary>
    public const int ActualLoadStatusFieldNumber = 5;
    private readonly static global::Message.Load_status ActualLoadStatusDefaultValue = global::Message.Load_status.LoadUnknown;

    private global::Message.Load_status actualLoadStatus_;
    /// <summary>
    ///搬运器的负载状态, 小跑车上面是否有车.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Load_status ActualLoadStatus {
      get { if ((_hasBits0 & 16) != 0) { return actualLoadStatus_; } else { return ActualLoadStatusDefaultValue; } }
      set {
        _hasBits0 |= 16;
        actualLoadStatus_ = value;
      }
    }
    /// <summary>Gets whether the "actual_load_status" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasActualLoadStatus {
      get { return (_hasBits0 & 16) != 0; }
    }
    /// <summary>Clears the value of the "actual_load_status" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearActualLoadStatus() {
      _hasBits0 &= ~16;
    }

    /// <summary>Field number for the "actual_coordinates_id" field.</summary>
    public const int ActualCoordinatesIdFieldNumber = 6;
    private readonly static int ActualCoordinatesIdDefaultValue = 0;

    private int actualCoordinatesId_;
    /// <summary>
    ///搬运器真实 空间位置的id.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int ActualCoordinatesId {
      get { if ((_hasBits0 & 32) != 0) { return actualCoordinatesId_; } else { return ActualCoordinatesIdDefaultValue; } }
      set {
        _hasBits0 |= 32;
        actualCoordinatesId_ = value;
      }
    }
    /// <summary>Gets whether the "actual_coordinates_id" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasActualCoordinatesId {
      get { return (_hasBits0 & 32) != 0; }
    }
    /// <summary>Clears the value of the "actual_coordinates_id" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearActualCoordinatesId() {
      _hasBits0 &= ~32;
    }

    /// <summary>Field number for the "actual_x" field.</summary>
    public const int ActualXFieldNumber = 7;
    private readonly static float ActualXDefaultValue = 0F;

    private float actualX_;
    /// <summary>
    ///搬运器坐标x轴, 中跑车控制横向移动
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public float ActualX {
      get { if ((_hasBits0 & 64) != 0) { return actualX_; } else { return ActualXDefaultValue; } }
      set {
        _hasBits0 |= 64;
        actualX_ = value;
      }
    }
    /// <summary>Gets whether the "actual_x" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasActualX {
      get { return (_hasBits0 & 64) != 0; }
    }
    /// <summary>Clears the value of the "actual_x" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearActualX() {
      _hasBits0 &= ~64;
    }

    /// <summary>Field number for the "actual_y" field.</summary>
    public const int ActualYFieldNumber = 8;
    private readonly static float ActualYDefaultValue = 0F;

    private float actualY_;
    /// <summary>
    ///搬运器坐标y轴, 小跑车控制纵向移动
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public float ActualY {
      get { if ((_hasBits0 & 128) != 0) { return actualY_; } else { return ActualYDefaultValue; } }
      set {
        _hasBits0 |= 128;
        actualY_ = value;
      }
    }
    /// <summary>Gets whether the "actual_y" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasActualY {
      get { return (_hasBits0 & 128) != 0; }
    }
    /// <summary>Clears the value of the "actual_y" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearActualY() {
      _hasBits0 &= ~128;
    }

    /// <summary>Field number for the "actual_z" field.</summary>
    public const int ActualZFieldNumber = 9;
    private readonly static float ActualZDefaultValue = 0F;

    private float actualZ_;
    /// <summary>
    ///搬运器坐标z轴, 电梯控制上下移动
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public float ActualZ {
      get { if ((_hasBits0 & 256) != 0) { return actualZ_; } else { return ActualZDefaultValue; } }
      set {
        _hasBits0 |= 256;
        actualZ_ = value;
      }
    }
    /// <summary>Gets whether the "actual_z" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasActualZ {
      get { return (_hasBits0 & 256) != 0; }
    }
    /// <summary>Clears the value of the "actual_z" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearActualZ() {
      _hasBits0 &= ~256;
    }

    /// <summary>Field number for the "actual_y1" field.</summary>
    public const int ActualY1FieldNumber = 10;
    private readonly static float ActualY1DefaultValue = 0F;

    private float actualY1_;
    /// <summary>
    ///搬运器坐标y1轴, 小跑车控制纵向移动(前轮抓杆)
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public float ActualY1 {
      get { if ((_hasBits0 & 512) != 0) { return actualY1_; } else { return ActualY1DefaultValue; } }
      set {
        _hasBits0 |= 512;
        actualY1_ = value;
      }
    }
    /// <summary>Gets whether the "actual_y1" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasActualY1 {
      get { return (_hasBits0 & 512) != 0; }
    }
    /// <summary>Clears the value of the "actual_y1" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearActualY1() {
      _hasBits0 &= ~512;
    }

    /// <summary>Field number for the "actual_y2" field.</summary>
    public const int ActualY2FieldNumber = 11;
    private readonly static float ActualY2DefaultValue = 0F;

    private float actualY2_;
    /// <summary>
    ///搬运器坐标y2轴, 小跑车控制纵向移动(后轮抓杆)
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public float ActualY2 {
      get { if ((_hasBits0 & 1024) != 0) { return actualY2_; } else { return ActualY2DefaultValue; } }
      set {
        _hasBits0 |= 1024;
        actualY2_ = value;
      }
    }
    /// <summary>Gets whether the "actual_y2" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasActualY2 {
      get { return (_hasBits0 & 1024) != 0; }
    }
    /// <summary>Clears the value of the "actual_y2" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearActualY2() {
      _hasBits0 &= ~1024;
    }

    /// <summary>Field number for the "actual_clamp_motion1" field.</summary>
    public const int ActualClampMotion1FieldNumber = 12;
    private readonly static global::Message.Clamp_motion ActualClampMotion1DefaultValue = global::Message.Clamp_motion.EClampNoAction;

    private global::Message.Clamp_motion actualClampMotion1_;
    /// <summary>
    ///小跑车夹车杆. 0=无动作，1=夹紧，2=松开
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Clamp_motion ActualClampMotion1 {
      get { if ((_hasBits0 & 2048) != 0) { return actualClampMotion1_; } else { return ActualClampMotion1DefaultValue; } }
      set {
        _hasBits0 |= 2048;
        actualClampMotion1_ = value;
      }
    }
    /// <summary>Gets whether the "actual_clamp_motion1" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasActualClampMotion1 {
      get { return (_hasBits0 & 2048) != 0; }
    }
    /// <summary>Clears the value of the "actual_clamp_motion1" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearActualClampMotion1() {
      _hasBits0 &= ~2048;
    }

    /// <summary>Field number for the "actual_clamp_motion2" field.</summary>
    public const int ActualClampMotion2FieldNumber = 13;
    private readonly static global::Message.Clamp_motion ActualClampMotion2DefaultValue = global::Message.Clamp_motion.EClampNoAction;

    private global::Message.Clamp_motion actualClampMotion2_;
    /// <summary>
    ///小跑车夹车杆. 0=无动作，1=夹紧，2=松开
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Clamp_motion ActualClampMotion2 {
      get { if ((_hasBits0 & 4096) != 0) { return actualClampMotion2_; } else { return ActualClampMotion2DefaultValue; } }
      set {
        _hasBits0 |= 4096;
        actualClampMotion2_ = value;
      }
    }
    /// <summary>Gets whether the "actual_clamp_motion2" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasActualClampMotion2 {
      get { return (_hasBits0 & 4096) != 0; }
    }
    /// <summary>Clears the value of the "actual_clamp_motion2" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearActualClampMotion2() {
      _hasBits0 &= ~4096;
    }

    /// <summary>Field number for the "actual_small_sports_car_motion" field.</summary>
    public const int ActualSmallSportsCarMotionFieldNumber = 14;
    private readonly static global::Message.Small_sports_car_motion ActualSmallSportsCarMotionDefaultValue = global::Message.Small_sports_car_motion.ESmallSportsNoAction;

    private global::Message.Small_sports_car_motion actualSmallSportsCarMotion_;
    /// <summary>
    ///小跑车的位置,是否在中跑车上面, 0=无动作，1=出发到位，2=返回到位
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Small_sports_car_motion ActualSmallSportsCarMotion {
      get { if ((_hasBits0 & 8192) != 0) { return actualSmallSportsCarMotion_; } else { return ActualSmallSportsCarMotionDefaultValue; } }
      set {
        _hasBits0 |= 8192;
        actualSmallSportsCarMotion_ = value;
      }
    }
    /// <summary>Gets whether the "actual_small_sports_car_motion" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasActualSmallSportsCarMotion {
      get { return (_hasBits0 & 8192) != 0; }
    }
    /// <summary>Clears the value of the "actual_small_sports_car_motion" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearActualSmallSportsCarMotion() {
      _hasBits0 &= ~8192;
    }

    /// <summary>Field number for the "actual_joint_motion_x1" field.</summary>
    public const int ActualJointMotionX1FieldNumber = 15;
    private readonly static global::Message.Joint_motion ActualJointMotionX1DefaultValue = global::Message.Joint_motion.EJointNoAction;

    private global::Message.Joint_motion actualJointMotionX1_;
    /// <summary>
    ///电梯与X轴的横向轨道对接,0=无动作，1=伸出到位，2=收回到位
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Joint_motion ActualJointMotionX1 {
      get { if ((_hasBits0 & 16384) != 0) { return actualJointMotionX1_; } else { return ActualJointMotionX1DefaultValue; } }
      set {
        _hasBits0 |= 16384;
        actualJointMotionX1_ = value;
      }
    }
    /// <summary>Gets whether the "actual_joint_motion_x1" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasActualJointMotionX1 {
      get { return (_hasBits0 & 16384) != 0; }
    }
    /// <summary>Clears the value of the "actual_joint_motion_x1" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearActualJointMotionX1() {
      _hasBits0 &= ~16384;
    }

    /// <summary>Field number for the "actual_joint_motion_x2" field.</summary>
    public const int ActualJointMotionX2FieldNumber = 16;
    private readonly static global::Message.Joint_motion ActualJointMotionX2DefaultValue = global::Message.Joint_motion.EJointNoAction;

    private global::Message.Joint_motion actualJointMotionX2_;
    /// <summary>
    ///电梯与X轴的横向轨道对接,0=无动作，1=伸出到位，2=收回到位
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Joint_motion ActualJointMotionX2 {
      get { if ((_hasBits0 & 32768) != 0) { return actualJointMotionX2_; } else { return ActualJointMotionX2DefaultValue; } }
      set {
        _hasBits0 |= 32768;
        actualJointMotionX2_ = value;
      }
    }
    /// <summary>Gets whether the "actual_joint_motion_x2" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasActualJointMotionX2 {
      get { return (_hasBits0 & 32768) != 0; }
    }
    /// <summary>Clears the value of the "actual_joint_motion_x2" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearActualJointMotionX2() {
      _hasBits0 &= ~32768;
    }

    /// <summary>Field number for the "actual_error_code" field.</summary>
    public const int ActualErrorCodeFieldNumber = 17;
    private readonly static string ActualErrorCodeDefaultValue = "";

    private string actualErrorCode_;
    /// <summary>
    ///搬运器设备的故障信息位
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string ActualErrorCode {
      get { return actualErrorCode_ ?? ActualErrorCodeDefaultValue; }
      set {
        actualErrorCode_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }
    /// <summary>Gets whether the "actual_error_code" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasActualErrorCode {
      get { return actualErrorCode_ != null; }
    }
    /// <summary>Clears the value of the "actual_error_code" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearActualErrorCode() {
      actualErrorCode_ = null;
    }

    /// <summary>Field number for the "actual_warning_code" field.</summary>
    public const int ActualWarningCodeFieldNumber = 18;
    private readonly static string ActualWarningCodeDefaultValue = "";

    private string actualWarningCode_;
    /// <summary>
    ///搬运器设备的警告信息位
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string ActualWarningCode {
      get { return actualWarningCode_ ?? ActualWarningCodeDefaultValue; }
      set {
        actualWarningCode_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }
    /// <summary>Gets whether the "actual_warning_code" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasActualWarningCode {
      get { return actualWarningCode_ != null; }
    }
    /// <summary>Clears the value of the "actual_warning_code" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearActualWarningCode() {
      actualWarningCode_ = null;
    }

    /// <summary>Field number for the "actual_error_description" field.</summary>
    public const int ActualErrorDescriptionFieldNumber = 19;
    private readonly static string ActualErrorDescriptionDefaultValue = "";

    private string actualErrorDescription_;
    /// <summary>
    ///搬运器设备的错误描述
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string ActualErrorDescription {
      get { return actualErrorDescription_ ?? ActualErrorDescriptionDefaultValue; }
      set {
        actualErrorDescription_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }
    /// <summary>Gets whether the "actual_error_description" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasActualErrorDescription {
      get { return actualErrorDescription_ != null; }
    }
    /// <summary>Clears the value of the "actual_error_description" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearActualErrorDescription() {
      actualErrorDescription_ = null;
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(Carrier_data other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (DispatchDeviceType != other.DispatchDeviceType) return false;
      if (DispatchDeviceStatus != other.DispatchDeviceStatus) return false;
      if (DeviceId != other.DeviceId) return false;
      if (ActualDeviceStatus != other.ActualDeviceStatus) return false;
      if (ActualLoadStatus != other.ActualLoadStatus) return false;
      if (ActualCoordinatesId != other.ActualCoordinatesId) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(ActualX, other.ActualX)) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(ActualY, other.ActualY)) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(ActualZ, other.ActualZ)) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(ActualY1, other.ActualY1)) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(ActualY2, other.ActualY2)) return false;
      if (ActualClampMotion1 != other.ActualClampMotion1) return false;
      if (ActualClampMotion2 != other.ActualClampMotion2) return false;
      if (ActualSmallSportsCarMotion != other.ActualSmallSportsCarMotion) return false;
      if (ActualJointMotionX1 != other.ActualJointMotionX1) return false;
      if (ActualJointMotionX2 != other.ActualJointMotionX2) return false;
      if (ActualErrorCode != other.ActualErrorCode) return false;
      if (ActualWarningCode != other.ActualWarningCode) return false;
      if (ActualErrorDescription != other.ActualErrorDescription) 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 (HasDispatchDeviceType) hash ^= DispatchDeviceType.GetHashCode();
      if (HasDispatchDeviceStatus) hash ^= DispatchDeviceStatus.GetHashCode();
      if (HasDeviceId) hash ^= DeviceId.GetHashCode();
      if (HasActualDeviceStatus) hash ^= ActualDeviceStatus.GetHashCode();
      if (HasActualLoadStatus) hash ^= ActualLoadStatus.GetHashCode();
      if (HasActualCoordinatesId) hash ^= ActualCoordinatesId.GetHashCode();
      if (HasActualX) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(ActualX);
      if (HasActualY) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(ActualY);
      if (HasActualZ) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(ActualZ);
      if (HasActualY1) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(ActualY1);
      if (HasActualY2) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(ActualY2);
      if (HasActualClampMotion1) hash ^= ActualClampMotion1.GetHashCode();
      if (HasActualClampMotion2) hash ^= ActualClampMotion2.GetHashCode();
      if (HasActualSmallSportsCarMotion) hash ^= ActualSmallSportsCarMotion.GetHashCode();
      if (HasActualJointMotionX1) hash ^= ActualJointMotionX1.GetHashCode();
      if (HasActualJointMotionX2) hash ^= ActualJointMotionX2.GetHashCode();
      if (HasActualErrorCode) hash ^= ActualErrorCode.GetHashCode();
      if (HasActualWarningCode) hash ^= ActualWarningCode.GetHashCode();
      if (HasActualErrorDescription) hash ^= ActualErrorDescription.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 (HasDispatchDeviceType) {
        output.WriteRawTag(8);
        output.WriteEnum((int) DispatchDeviceType);
      }
      if (HasDispatchDeviceStatus) {
        output.WriteRawTag(16);
        output.WriteEnum((int) DispatchDeviceStatus);
      }
      if (HasDeviceId) {
        output.WriteRawTag(24);
        output.WriteInt32(DeviceId);
      }
      if (HasActualDeviceStatus) {
        output.WriteRawTag(32);
        output.WriteEnum((int) ActualDeviceStatus);
      }
      if (HasActualLoadStatus) {
        output.WriteRawTag(40);
        output.WriteEnum((int) ActualLoadStatus);
      }
      if (HasActualCoordinatesId) {
        output.WriteRawTag(48);
        output.WriteInt32(ActualCoordinatesId);
      }
      if (HasActualX) {
        output.WriteRawTag(61);
        output.WriteFloat(ActualX);
      }
      if (HasActualY) {
        output.WriteRawTag(69);
        output.WriteFloat(ActualY);
      }
      if (HasActualZ) {
        output.WriteRawTag(77);
        output.WriteFloat(ActualZ);
      }
      if (HasActualY1) {
        output.WriteRawTag(85);
        output.WriteFloat(ActualY1);
      }
      if (HasActualY2) {
        output.WriteRawTag(93);
        output.WriteFloat(ActualY2);
      }
      if (HasActualClampMotion1) {
        output.WriteRawTag(96);
        output.WriteEnum((int) ActualClampMotion1);
      }
      if (HasActualClampMotion2) {
        output.WriteRawTag(104);
        output.WriteEnum((int) ActualClampMotion2);
      }
      if (HasActualSmallSportsCarMotion) {
        output.WriteRawTag(112);
        output.WriteEnum((int) ActualSmallSportsCarMotion);
      }
      if (HasActualJointMotionX1) {
        output.WriteRawTag(120);
        output.WriteEnum((int) ActualJointMotionX1);
      }
      if (HasActualJointMotionX2) {
        output.WriteRawTag(128, 1);
        output.WriteEnum((int) ActualJointMotionX2);
      }
      if (HasActualErrorCode) {
        output.WriteRawTag(138, 1);
        output.WriteString(ActualErrorCode);
      }
      if (HasActualWarningCode) {
        output.WriteRawTag(146, 1);
        output.WriteString(ActualWarningCode);
      }
      if (HasActualErrorDescription) {
        output.WriteRawTag(154, 1);
        output.WriteString(ActualErrorDescription);
      }
      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 (HasDispatchDeviceType) {
        output.WriteRawTag(8);
        output.WriteEnum((int) DispatchDeviceType);
      }
      if (HasDispatchDeviceStatus) {
        output.WriteRawTag(16);
        output.WriteEnum((int) DispatchDeviceStatus);
      }
      if (HasDeviceId) {
        output.WriteRawTag(24);
        output.WriteInt32(DeviceId);
      }
      if (HasActualDeviceStatus) {
        output.WriteRawTag(32);
        output.WriteEnum((int) ActualDeviceStatus);
      }
      if (HasActualLoadStatus) {
        output.WriteRawTag(40);
        output.WriteEnum((int) ActualLoadStatus);
      }
      if (HasActualCoordinatesId) {
        output.WriteRawTag(48);
        output.WriteInt32(ActualCoordinatesId);
      }
      if (HasActualX) {
        output.WriteRawTag(61);
        output.WriteFloat(ActualX);
      }
      if (HasActualY) {
        output.WriteRawTag(69);
        output.WriteFloat(ActualY);
      }
      if (HasActualZ) {
        output.WriteRawTag(77);
        output.WriteFloat(ActualZ);
      }
      if (HasActualY1) {
        output.WriteRawTag(85);
        output.WriteFloat(ActualY1);
      }
      if (HasActualY2) {
        output.WriteRawTag(93);
        output.WriteFloat(ActualY2);
      }
      if (HasActualClampMotion1) {
        output.WriteRawTag(96);
        output.WriteEnum((int) ActualClampMotion1);
      }
      if (HasActualClampMotion2) {
        output.WriteRawTag(104);
        output.WriteEnum((int) ActualClampMotion2);
      }
      if (HasActualSmallSportsCarMotion) {
        output.WriteRawTag(112);
        output.WriteEnum((int) ActualSmallSportsCarMotion);
      }
      if (HasActualJointMotionX1) {
        output.WriteRawTag(120);
        output.WriteEnum((int) ActualJointMotionX1);
      }
      if (HasActualJointMotionX2) {
        output.WriteRawTag(128, 1);
        output.WriteEnum((int) ActualJointMotionX2);
      }
      if (HasActualErrorCode) {
        output.WriteRawTag(138, 1);
        output.WriteString(ActualErrorCode);
      }
      if (HasActualWarningCode) {
        output.WriteRawTag(146, 1);
        output.WriteString(ActualWarningCode);
      }
      if (HasActualErrorDescription) {
        output.WriteRawTag(154, 1);
        output.WriteString(ActualErrorDescription);
      }
      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 (HasDispatchDeviceType) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) DispatchDeviceType);
      }
      if (HasDispatchDeviceStatus) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) DispatchDeviceStatus);
      }
      if (HasDeviceId) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(DeviceId);
      }
      if (HasActualDeviceStatus) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) ActualDeviceStatus);
      }
      if (HasActualLoadStatus) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) ActualLoadStatus);
      }
      if (HasActualCoordinatesId) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(ActualCoordinatesId);
      }
      if (HasActualX) {
        size += 1 + 4;
      }
      if (HasActualY) {
        size += 1 + 4;
      }
      if (HasActualZ) {
        size += 1 + 4;
      }
      if (HasActualY1) {
        size += 1 + 4;
      }
      if (HasActualY2) {
        size += 1 + 4;
      }
      if (HasActualClampMotion1) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) ActualClampMotion1);
      }
      if (HasActualClampMotion2) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) ActualClampMotion2);
      }
      if (HasActualSmallSportsCarMotion) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) ActualSmallSportsCarMotion);
      }
      if (HasActualJointMotionX1) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) ActualJointMotionX1);
      }
      if (HasActualJointMotionX2) {
        size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) ActualJointMotionX2);
      }
      if (HasActualErrorCode) {
        size += 2 + pb::CodedOutputStream.ComputeStringSize(ActualErrorCode);
      }
      if (HasActualWarningCode) {
        size += 2 + pb::CodedOutputStream.ComputeStringSize(ActualWarningCode);
      }
      if (HasActualErrorDescription) {
        size += 2 + pb::CodedOutputStream.ComputeStringSize(ActualErrorDescription);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(Carrier_data other) {
      if (other == null) {
        return;
      }
      if (other.HasDispatchDeviceType) {
        DispatchDeviceType = other.DispatchDeviceType;
      }
      if (other.HasDispatchDeviceStatus) {
        DispatchDeviceStatus = other.DispatchDeviceStatus;
      }
      if (other.HasDeviceId) {
        DeviceId = other.DeviceId;
      }
      if (other.HasActualDeviceStatus) {
        ActualDeviceStatus = other.ActualDeviceStatus;
      }
      if (other.HasActualLoadStatus) {
        ActualLoadStatus = other.ActualLoadStatus;
      }
      if (other.HasActualCoordinatesId) {
        ActualCoordinatesId = other.ActualCoordinatesId;
      }
      if (other.HasActualX) {
        ActualX = other.ActualX;
      }
      if (other.HasActualY) {
        ActualY = other.ActualY;
      }
      if (other.HasActualZ) {
        ActualZ = other.ActualZ;
      }
      if (other.HasActualY1) {
        ActualY1 = other.ActualY1;
      }
      if (other.HasActualY2) {
        ActualY2 = other.ActualY2;
      }
      if (other.HasActualClampMotion1) {
        ActualClampMotion1 = other.ActualClampMotion1;
      }
      if (other.HasActualClampMotion2) {
        ActualClampMotion2 = other.ActualClampMotion2;
      }
      if (other.HasActualSmallSportsCarMotion) {
        ActualSmallSportsCarMotion = other.ActualSmallSportsCarMotion;
      }
      if (other.HasActualJointMotionX1) {
        ActualJointMotionX1 = other.ActualJointMotionX1;
      }
      if (other.HasActualJointMotionX2) {
        ActualJointMotionX2 = other.ActualJointMotionX2;
      }
      if (other.HasActualErrorCode) {
        ActualErrorCode = other.ActualErrorCode;
      }
      if (other.HasActualWarningCode) {
        ActualWarningCode = other.ActualWarningCode;
      }
      if (other.HasActualErrorDescription) {
        ActualErrorDescription = other.ActualErrorDescription;
      }
      _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: {
            DispatchDeviceType = (global::Message.Dispatch_device_type) input.ReadEnum();
            break;
          }
          case 16: {
            DispatchDeviceStatus = (global::Message.Dispatch_device_status) input.ReadEnum();
            break;
          }
          case 24: {
            DeviceId = input.ReadInt32();
            break;
          }
          case 32: {
            ActualDeviceStatus = (global::Message.Hardware_device_status) input.ReadEnum();
            break;
          }
          case 40: {
            ActualLoadStatus = (global::Message.Load_status) input.ReadEnum();
            break;
          }
          case 48: {
            ActualCoordinatesId = input.ReadInt32();
            break;
          }
          case 61: {
            ActualX = input.ReadFloat();
            break;
          }
          case 69: {
            ActualY = input.ReadFloat();
            break;
          }
          case 77: {
            ActualZ = input.ReadFloat();
            break;
          }
          case 85: {
            ActualY1 = input.ReadFloat();
            break;
          }
          case 93: {
            ActualY2 = input.ReadFloat();
            break;
          }
          case 96: {
            ActualClampMotion1 = (global::Message.Clamp_motion) input.ReadEnum();
            break;
          }
          case 104: {
            ActualClampMotion2 = (global::Message.Clamp_motion) input.ReadEnum();
            break;
          }
          case 112: {
            ActualSmallSportsCarMotion = (global::Message.Small_sports_car_motion) input.ReadEnum();
            break;
          }
          case 120: {
            ActualJointMotionX1 = (global::Message.Joint_motion) input.ReadEnum();
            break;
          }
          case 128: {
            ActualJointMotionX2 = (global::Message.Joint_motion) input.ReadEnum();
            break;
          }
          case 138: {
            ActualErrorCode = input.ReadString();
            break;
          }
          case 146: {
            ActualWarningCode = input.ReadString();
            break;
          }
          case 154: {
            ActualErrorDescription = input.ReadString();
            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: {
            DispatchDeviceType = (global::Message.Dispatch_device_type) input.ReadEnum();
            break;
          }
          case 16: {
            DispatchDeviceStatus = (global::Message.Dispatch_device_status) input.ReadEnum();
            break;
          }
          case 24: {
            DeviceId = input.ReadInt32();
            break;
          }
          case 32: {
            ActualDeviceStatus = (global::Message.Hardware_device_status) input.ReadEnum();
            break;
          }
          case 40: {
            ActualLoadStatus = (global::Message.Load_status) input.ReadEnum();
            break;
          }
          case 48: {
            ActualCoordinatesId = input.ReadInt32();
            break;
          }
          case 61: {
            ActualX = input.ReadFloat();
            break;
          }
          case 69: {
            ActualY = input.ReadFloat();
            break;
          }
          case 77: {
            ActualZ = input.ReadFloat();
            break;
          }
          case 85: {
            ActualY1 = input.ReadFloat();
            break;
          }
          case 93: {
            ActualY2 = input.ReadFloat();
            break;
          }
          case 96: {
            ActualClampMotion1 = (global::Message.Clamp_motion) input.ReadEnum();
            break;
          }
          case 104: {
            ActualClampMotion2 = (global::Message.Clamp_motion) input.ReadEnum();
            break;
          }
          case 112: {
            ActualSmallSportsCarMotion = (global::Message.Small_sports_car_motion) input.ReadEnum();
            break;
          }
          case 120: {
            ActualJointMotionX1 = (global::Message.Joint_motion) input.ReadEnum();
            break;
          }
          case 128: {
            ActualJointMotionX2 = (global::Message.Joint_motion) input.ReadEnum();
            break;
          }
          case 138: {
            ActualErrorCode = input.ReadString();
            break;
          }
          case 146: {
            ActualWarningCode = input.ReadString();
            break;
          }
          case 154: {
            ActualErrorDescription = input.ReadString();
            break;
          }
        }
      }
    }
    #endif

  }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Message.DispatchMessageReflection.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 Passageway_data() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Passageway_data(Passageway_data other) : this() {
      _hasBits0 = other._hasBits0;
      dispatchDeviceType_ = other.dispatchDeviceType_;
      dispatchDeviceStatus_ = other.dispatchDeviceStatus_;
      deviceId_ = other.deviceId_;
      actualDeviceStatus_ = other.actualDeviceStatus_;
      actualInsideLoadStatus_ = other.actualInsideLoadStatus_;
      actualOutsideLoadStatus_ = other.actualOutsideLoadStatus_;
      actualFrontOverstepTheBoundary_ = other.actualFrontOverstepTheBoundary_;
      actualBackOverstepTheBoundary_ = other.actualBackOverstepTheBoundary_;
      actualHeightOverstepTheBoundary_ = other.actualHeightOverstepTheBoundary_;
      actualOutsideDoorSensor_ = other.actualOutsideDoorSensor_;
      actualInsideDoorMotion_ = other.actualInsideDoorMotion_;
      actualOutsideDoorMotion_ = other.actualOutsideDoorMotion_;
      actualTurntableLoadStatus_ = other.actualTurntableLoadStatus_;
      actualTurntableDirection_ = other.actualTurntableDirection_;
      actualErrorCode_ = other.actualErrorCode_;
      actualWarningCode_ = other.actualWarningCode_;
      actualErrorDescription_ = other.actualErrorDescription_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

    /// <summary>Field number for the "dispatch_device_type" field.</summary>
    public const int DispatchDeviceTypeFieldNumber = 1;
    private readonly static global::Message.Dispatch_device_type DispatchDeviceTypeDefaultValue = global::Message.Dispatch_device_type.Robot1;

    private global::Message.Dispatch_device_type dispatchDeviceType_;
    /// <summary>
    ///调度设备的类型
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Dispatch_device_type DispatchDeviceType {
      get { if ((_hasBits0 & 1) != 0) { return dispatchDeviceType_; } else { return DispatchDeviceTypeDefaultValue; } }
      set {
        _hasBits0 |= 1;
        dispatchDeviceType_ = value;
      }
    }
    /// <summary>Gets whether the "dispatch_device_type" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasDispatchDeviceType {
      get { return (_hasBits0 & 1) != 0; }
    }
    /// <summary>Clears the value of the "dispatch_device_type" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearDispatchDeviceType() {
      _hasBits0 &= ~1;
    }

    /// <summary>Field number for the "dispatch_device_status" field.</summary>
    public const int DispatchDeviceStatusFieldNumber = 2;
    private readonly static global::Message.Dispatch_device_status DispatchDeviceStatusDefaultValue = global::Message.Dispatch_device_status.DispatchDeviceUnknow;

    private global::Message.Dispatch_device_status dispatchDeviceStatus_;
    /// <summary>
    ///设备总状态, 控制任务流程(长流程)
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Dispatch_device_status DispatchDeviceStatus {
      get { if ((_hasBits0 & 2) != 0) { return dispatchDeviceStatus_; } else { return DispatchDeviceStatusDefaultValue; } }
      set {
        _hasBits0 |= 2;
        dispatchDeviceStatus_ = value;
      }
    }
    /// <summary>Gets whether the "dispatch_device_status" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasDispatchDeviceStatus {
      get { return (_hasBits0 & 2) != 0; }
    }
    /// <summary>Clears the value of the "dispatch_device_status" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearDispatchDeviceStatus() {
      _hasBits0 &= ~2;
    }

    /// <summary>Field number for the "device_id" field.</summary>
    public const int DeviceIdFieldNumber = 3;
    private readonly static int DeviceIdDefaultValue = 0;

    private int deviceId_;
    /// <summary>
    ///设备id,
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int DeviceId {
      get { if ((_hasBits0 & 4) != 0) { return deviceId_; } else { return DeviceIdDefaultValue; } }
      set {
        _hasBits0 |= 4;
        deviceId_ = value;
      }
    }
    /// <summary>Gets whether the "device_id" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasDeviceId {
      get { return (_hasBits0 & 4) != 0; }
    }
    /// <summary>Clears the value of the "device_id" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearDeviceId() {
      _hasBits0 &= ~4;
    }

    /// <summary>Field number for the "actual_device_status" field.</summary>
    public const int ActualDeviceStatusFieldNumber = 4;
    private readonly static global::Message.Hardware_device_status ActualDeviceStatusDefaultValue = global::Message.Hardware_device_status.DeviceUnknown;

    private global::Message.Hardware_device_status actualDeviceStatus_;
    /// <summary>
    ///通道口的设备状态数据,
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Hardware_device_status ActualDeviceStatus {
      get { if ((_hasBits0 & 8) != 0) { return actualDeviceStatus_; } else { return ActualDeviceStatusDefaultValue; } }
      set {
        _hasBits0 |= 8;
        actualDeviceStatus_ = value;
      }
    }
    /// <summary>Gets whether the "actual_device_status" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasActualDeviceStatus {
      get { return (_hasBits0 & 8) != 0; }
    }
    /// <summary>Clears the value of the "actual_device_status" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearActualDeviceStatus() {
      _hasBits0 &= ~8;
    }

    /// <summary>Field number for the "actual_inside_load_status" field.</summary>
    public const int ActualInsideLoadStatusFieldNumber = 5;
    private readonly static global::Message.Load_status ActualInsideLoadStatusDefaultValue = global::Message.Load_status.LoadUnknown;

    private global::Message.Load_status actualInsideLoadStatus_;
    /// <summary>
    ///通道口的内部负载状态, 门内地感是否有车.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Load_status ActualInsideLoadStatus {
      get { if ((_hasBits0 & 16) != 0) { return actualInsideLoadStatus_; } else { return ActualInsideLoadStatusDefaultValue; } }
      set {
        _hasBits0 |= 16;
        actualInsideLoadStatus_ = value;
      }
    }
    /// <summary>Gets whether the "actual_inside_load_status" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasActualInsideLoadStatus {
      get { return (_hasBits0 & 16) != 0; }
    }
    /// <summary>Clears the value of the "actual_inside_load_status" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearActualInsideLoadStatus() {
      _hasBits0 &= ~16;
    }

    /// <summary>Field number for the "actual_outside_load_status" field.</summary>
    public const int ActualOutsideLoadStatusFieldNumber = 6;
    private readonly static global::Message.Load_status ActualOutsideLoadStatusDefaultValue = global::Message.Load_status.LoadUnknown;

    private global::Message.Load_status actualOutsideLoadStatus_;
    /// <summary>
    ///通道口的外部负载状态, 门外地感是否有车.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Load_status ActualOutsideLoadStatus {
      get { if ((_hasBits0 & 32) != 0) { return actualOutsideLoadStatus_; } else { return ActualOutsideLoadStatusDefaultValue; } }
      set {
        _hasBits0 |= 32;
        actualOutsideLoadStatus_ = value;
      }
    }
    /// <summary>Gets whether the "actual_outside_load_status" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasActualOutsideLoadStatus {
      get { return (_hasBits0 & 32) != 0; }
    }
    /// <summary>Clears the value of the "actual_outside_load_status" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearActualOutsideLoadStatus() {
      _hasBits0 &= ~32;
    }

    /// <summary>Field number for the "actual_front_overstep_the_boundary" field.</summary>
    public const int ActualFrontOverstepTheBoundaryFieldNumber = 7;
    private readonly static global::Message.Overstep_the_boundary ActualFrontOverstepTheBoundaryDefaultValue = global::Message.Overstep_the_boundary.BoundaryNormal;

    private global::Message.Overstep_the_boundary actualFrontOverstepTheBoundary_;
    /// <summary>
    ///通道口 汽车前边界
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Overstep_the_boundary ActualFrontOverstepTheBoundary {
      get { if ((_hasBits0 & 64) != 0) { return actualFrontOverstepTheBoundary_; } else { return ActualFrontOverstepTheBoundaryDefaultValue; } }
      set {
        _hasBits0 |= 64;
        actualFrontOverstepTheBoundary_ = value;
      }
    }
    /// <summary>Gets whether the "actual_front_overstep_the_boundary" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasActualFrontOverstepTheBoundary {
      get { return (_hasBits0 & 64) != 0; }
    }
    /// <summary>Clears the value of the "actual_front_overstep_the_boundary" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearActualFrontOverstepTheBoundary() {
      _hasBits0 &= ~64;
    }

    /// <summary>Field number for the "actual_back_overstep_the_boundary" field.</summary>
    public const int ActualBackOverstepTheBoundaryFieldNumber = 8;
    private readonly static global::Message.Overstep_the_boundary ActualBackOverstepTheBoundaryDefaultValue = global::Message.Overstep_the_boundary.BoundaryNormal;

    private global::Message.Overstep_the_boundary actualBackOverstepTheBoundary_;
    /// <summary>
    ///通道口 汽车后边界
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Overstep_the_boundary ActualBackOverstepTheBoundary {
      get { if ((_hasBits0 & 128) != 0) { return actualBackOverstepTheBoundary_; } else { return ActualBackOverstepTheBoundaryDefaultValue; } }
      set {
        _hasBits0 |= 128;
        actualBackOverstepTheBoundary_ = value;
      }
    }
    /// <summary>Gets whether the "actual_back_overstep_the_boundary" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasActualBackOverstepTheBoundary {
      get { return (_hasBits0 & 128) != 0; }
    }
    /// <summary>Clears the value of the "actual_back_overstep_the_boundary" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearActualBackOverstepTheBoundary() {
      _hasBits0 &= ~128;
    }

    /// <summary>Field number for the "actual_height_overstep_the_boundary" field.</summary>
    public const int ActualHeightOverstepTheBoundaryFieldNumber = 9;
    private readonly static global::Message.Overstep_the_boundary ActualHeightOverstepTheBoundaryDefaultValue = global::Message.Overstep_the_boundary.BoundaryNormal;

    private global::Message.Overstep_the_boundary actualHeightOverstepTheBoundary_;
    /// <summary>
    ///通道口 车辆是否超高
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Overstep_the_boundary ActualHeightOverstepTheBoundary {
      get { if ((_hasBits0 & 256) != 0) { return actualHeightOverstepTheBoundary_; } else { return ActualHeightOverstepTheBoundaryDefaultValue; } }
      set {
        _hasBits0 |= 256;
        actualHeightOverstepTheBoundary_ = value;
      }
    }
    /// <summary>Gets whether the "actual_height_overstep_the_boundary" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasActualHeightOverstepTheBoundary {
      get { return (_hasBits0 & 256) != 0; }
    }
    /// <summary>Clears the value of the "actual_height_overstep_the_boundary" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearActualHeightOverstepTheBoundary() {
      _hasBits0 &= ~256;
    }

    /// <summary>Field number for the "actual_outside_door_sensor" field.</summary>
    public const int ActualOutsideDoorSensorFieldNumber = 10;
    private readonly static global::Message.Load_status ActualOutsideDoorSensorDefaultValue = global::Message.Load_status.LoadUnknown;

    private global::Message.Load_status actualOutsideDoorSensor_;
    /// <summary>
    ///通道口 的外门处的传感器, 判断是否有车经过外门
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Load_status ActualOutsideDoorSensor {
      get { if ((_hasBits0 & 512) != 0) { return actualOutsideDoorSensor_; } else { return ActualOutsideDoorSensorDefaultValue; } }
      set {
        _hasBits0 |= 512;
        actualOutsideDoorSensor_ = value;
      }
    }
    /// <summary>Gets whether the "actual_outside_door_sensor" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasActualOutsideDoorSensor {
      get { return (_hasBits0 & 512) != 0; }
    }
    /// <summary>Clears the value of the "actual_outside_door_sensor" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearActualOutsideDoorSensor() {
      _hasBits0 &= ~512;
    }

    /// <summary>Field number for the "actual_inside_door_motion" field.</summary>
    public const int ActualInsideDoorMotionFieldNumber = 11;
    private readonly static global::Message.Door_motion ActualInsideDoorMotionDefaultValue = global::Message.Door_motion.DoorUnknown;

    private global::Message.Door_motion actualInsideDoorMotion_;
    /// <summary>
    ///通道口的真实状态, 可能是路径中间的坐标
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Door_motion ActualInsideDoorMotion {
      get { if ((_hasBits0 & 1024) != 0) { return actualInsideDoorMotion_; } else { return ActualInsideDoorMotionDefaultValue; } }
      set {
        _hasBits0 |= 1024;
        actualInsideDoorMotion_ = value;
      }
    }
    /// <summary>Gets whether the "actual_inside_door_motion" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasActualInsideDoorMotion {
      get { return (_hasBits0 & 1024) != 0; }
    }
    /// <summary>Clears the value of the "actual_inside_door_motion" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearActualInsideDoorMotion() {
      _hasBits0 &= ~1024;
    }

    /// <summary>Field number for the "actual_outside_door_motion" field.</summary>
    public const int ActualOutsideDoorMotionFieldNumber = 12;
    private readonly static global::Message.Door_motion ActualOutsideDoorMotionDefaultValue = global::Message.Door_motion.DoorUnknown;

    private global::Message.Door_motion actualOutsideDoorMotion_;
    /// <summary>
    ///通道口 外门动作
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Door_motion ActualOutsideDoorMotion {
      get { if ((_hasBits0 & 2048) != 0) { return actualOutsideDoorMotion_; } else { return ActualOutsideDoorMotionDefaultValue; } }
      set {
        _hasBits0 |= 2048;
        actualOutsideDoorMotion_ = value;
      }
    }
    /// <summary>Gets whether the "actual_outside_door_motion" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasActualOutsideDoorMotion {
      get { return (_hasBits0 & 2048) != 0; }
    }
    /// <summary>Clears the value of the "actual_outside_door_motion" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearActualOutsideDoorMotion() {
      _hasBits0 &= ~2048;
    }

    /// <summary>Field number for the "actual_turntable_load_status" field.</summary>
    public const int ActualTurntableLoadStatusFieldNumber = 13;
    private readonly static global::Message.Load_status ActualTurntableLoadStatusDefaultValue = global::Message.Load_status.LoadUnknown;

    private global::Message.Load_status actualTurntableLoadStatus_;
    /// <summary>
    ///通道口 转盘负载状态, 是否有车.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Load_status ActualTurntableLoadStatus {
      get { if ((_hasBits0 & 4096) != 0) { return actualTurntableLoadStatus_; } else { return ActualTurntableLoadStatusDefaultValue; } }
      set {
        _hasBits0 |= 4096;
        actualTurntableLoadStatus_ = value;
      }
    }
    /// <summary>Gets whether the "actual_turntable_load_status" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasActualTurntableLoadStatus {
      get { return (_hasBits0 & 4096) != 0; }
    }
    /// <summary>Clears the value of the "actual_turntable_load_status" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearActualTurntableLoadStatus() {
      _hasBits0 &= ~4096;
    }

    /// <summary>Field number for the "actual_turntable_direction" field.</summary>
    public const int ActualTurntableDirectionFieldNumber = 14;
    private readonly static global::Message.Turntable_direction ActualTurntableDirectionDefaultValue = global::Message.Turntable_direction.Unknown;

    private global::Message.Turntable_direction actualTurntableDirection_;
    /// <summary>
    ///通道口 转台方向
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Turntable_direction ActualTurntableDirection {
      get { if ((_hasBits0 & 8192) != 0) { return actualTurntableDirection_; } else { return ActualTurntableDirectionDefaultValue; } }
      set {
        _hasBits0 |= 8192;
        actualTurntableDirection_ = value;
      }
    }
    /// <summary>Gets whether the "actual_turntable_direction" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasActualTurntableDirection {
      get { return (_hasBits0 & 8192) != 0; }
    }
    /// <summary>Clears the value of the "actual_turntable_direction" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearActualTurntableDirection() {
      _hasBits0 &= ~8192;
    }

    /// <summary>Field number for the "actual_error_code" field.</summary>
    public const int ActualErrorCodeFieldNumber = 15;
    private readonly static string ActualErrorCodeDefaultValue = "";

    private string actualErrorCode_;
    /// <summary>
    ///通道口设备的故障信息位
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string ActualErrorCode {
      get { return actualErrorCode_ ?? ActualErrorCodeDefaultValue; }
      set {
        actualErrorCode_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }
    /// <summary>Gets whether the "actual_error_code" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasActualErrorCode {
      get { return actualErrorCode_ != null; }
    }
    /// <summary>Clears the value of the "actual_error_code" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearActualErrorCode() {
      actualErrorCode_ = null;
    }

    /// <summary>Field number for the "actual_warning_code" field.</summary>
    public const int ActualWarningCodeFieldNumber = 16;
    private readonly static string ActualWarningCodeDefaultValue = "";

    private string actualWarningCode_;
    /// <summary>
    ///通道口设备的警告信息位
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string ActualWarningCode {
      get { return actualWarningCode_ ?? ActualWarningCodeDefaultValue; }
      set {
        actualWarningCode_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }
    /// <summary>Gets whether the "actual_warning_code" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasActualWarningCode {
      get { return actualWarningCode_ != null; }
    }
    /// <summary>Clears the value of the "actual_warning_code" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearActualWarningCode() {
      actualWarningCode_ = null;
    }

    /// <summary>Field number for the "actual_error_description" field.</summary>
    public const int ActualErrorDescriptionFieldNumber = 17;
    private readonly static string ActualErrorDescriptionDefaultValue = "";

    private string actualErrorDescription_;
    /// <summary>
    ///通道口设备的错误描述
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string ActualErrorDescription {
      get { return actualErrorDescription_ ?? ActualErrorDescriptionDefaultValue; }
      set {
        actualErrorDescription_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }
    /// <summary>Gets whether the "actual_error_description" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasActualErrorDescription {
      get { return actualErrorDescription_ != null; }
    }
    /// <summary>Clears the value of the "actual_error_description" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearActualErrorDescription() {
      actualErrorDescription_ = null;
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(Passageway_data other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (DispatchDeviceType != other.DispatchDeviceType) return false;
      if (DispatchDeviceStatus != other.DispatchDeviceStatus) return false;
      if (DeviceId != other.DeviceId) return false;
      if (ActualDeviceStatus != other.ActualDeviceStatus) return false;
      if (ActualInsideLoadStatus != other.ActualInsideLoadStatus) return false;
      if (ActualOutsideLoadStatus != other.ActualOutsideLoadStatus) return false;
      if (ActualFrontOverstepTheBoundary != other.ActualFrontOverstepTheBoundary) return false;
      if (ActualBackOverstepTheBoundary != other.ActualBackOverstepTheBoundary) return false;
      if (ActualHeightOverstepTheBoundary != other.ActualHeightOverstepTheBoundary) return false;
      if (ActualOutsideDoorSensor != other.ActualOutsideDoorSensor) return false;
      if (ActualInsideDoorMotion != other.ActualInsideDoorMotion) return false;
      if (ActualOutsideDoorMotion != other.ActualOutsideDoorMotion) return false;
      if (ActualTurntableLoadStatus != other.ActualTurntableLoadStatus) return false;
      if (ActualTurntableDirection != other.ActualTurntableDirection) return false;
      if (ActualErrorCode != other.ActualErrorCode) return false;
      if (ActualWarningCode != other.ActualWarningCode) return false;
      if (ActualErrorDescription != other.ActualErrorDescription) 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 (HasDispatchDeviceType) hash ^= DispatchDeviceType.GetHashCode();
      if (HasDispatchDeviceStatus) hash ^= DispatchDeviceStatus.GetHashCode();
      if (HasDeviceId) hash ^= DeviceId.GetHashCode();
      if (HasActualDeviceStatus) hash ^= ActualDeviceStatus.GetHashCode();
      if (HasActualInsideLoadStatus) hash ^= ActualInsideLoadStatus.GetHashCode();
      if (HasActualOutsideLoadStatus) hash ^= ActualOutsideLoadStatus.GetHashCode();
      if (HasActualFrontOverstepTheBoundary) hash ^= ActualFrontOverstepTheBoundary.GetHashCode();
      if (HasActualBackOverstepTheBoundary) hash ^= ActualBackOverstepTheBoundary.GetHashCode();
      if (HasActualHeightOverstepTheBoundary) hash ^= ActualHeightOverstepTheBoundary.GetHashCode();
      if (HasActualOutsideDoorSensor) hash ^= ActualOutsideDoorSensor.GetHashCode();
      if (HasActualInsideDoorMotion) hash ^= ActualInsideDoorMotion.GetHashCode();
      if (HasActualOutsideDoorMotion) hash ^= ActualOutsideDoorMotion.GetHashCode();
      if (HasActualTurntableLoadStatus) hash ^= ActualTurntableLoadStatus.GetHashCode();
      if (HasActualTurntableDirection) hash ^= ActualTurntableDirection.GetHashCode();
      if (HasActualErrorCode) hash ^= ActualErrorCode.GetHashCode();
      if (HasActualWarningCode) hash ^= ActualWarningCode.GetHashCode();
      if (HasActualErrorDescription) hash ^= ActualErrorDescription.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 (HasDispatchDeviceType) {
        output.WriteRawTag(8);
        output.WriteEnum((int) DispatchDeviceType);
      }
      if (HasDispatchDeviceStatus) {
        output.WriteRawTag(16);
        output.WriteEnum((int) DispatchDeviceStatus);
      }
      if (HasDeviceId) {
        output.WriteRawTag(24);
        output.WriteInt32(DeviceId);
      }
      if (HasActualDeviceStatus) {
        output.WriteRawTag(32);
        output.WriteEnum((int) ActualDeviceStatus);
      }
      if (HasActualInsideLoadStatus) {
        output.WriteRawTag(40);
        output.WriteEnum((int) ActualInsideLoadStatus);
      }
      if (HasActualOutsideLoadStatus) {
        output.WriteRawTag(48);
        output.WriteEnum((int) ActualOutsideLoadStatus);
      }
      if (HasActualFrontOverstepTheBoundary) {
        output.WriteRawTag(56);
        output.WriteEnum((int) ActualFrontOverstepTheBoundary);
      }
      if (HasActualBackOverstepTheBoundary) {
        output.WriteRawTag(64);
        output.WriteEnum((int) ActualBackOverstepTheBoundary);
      }
      if (HasActualHeightOverstepTheBoundary) {
        output.WriteRawTag(72);
        output.WriteEnum((int) ActualHeightOverstepTheBoundary);
      }
      if (HasActualOutsideDoorSensor) {
        output.WriteRawTag(80);
        output.WriteEnum((int) ActualOutsideDoorSensor);
      }
      if (HasActualInsideDoorMotion) {
        output.WriteRawTag(88);
        output.WriteEnum((int) ActualInsideDoorMotion);
      }
      if (HasActualOutsideDoorMotion) {
        output.WriteRawTag(96);
        output.WriteEnum((int) ActualOutsideDoorMotion);
      }
      if (HasActualTurntableLoadStatus) {
        output.WriteRawTag(104);
        output.WriteEnum((int) ActualTurntableLoadStatus);
      }
      if (HasActualTurntableDirection) {
        output.WriteRawTag(112);
        output.WriteEnum((int) ActualTurntableDirection);
      }
      if (HasActualErrorCode) {
        output.WriteRawTag(122);
        output.WriteString(ActualErrorCode);
      }
      if (HasActualWarningCode) {
        output.WriteRawTag(130, 1);
        output.WriteString(ActualWarningCode);
      }
      if (HasActualErrorDescription) {
        output.WriteRawTag(138, 1);
        output.WriteString(ActualErrorDescription);
      }
      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 (HasDispatchDeviceType) {
        output.WriteRawTag(8);
        output.WriteEnum((int) DispatchDeviceType);
      }
      if (HasDispatchDeviceStatus) {
        output.WriteRawTag(16);
        output.WriteEnum((int) DispatchDeviceStatus);
      }
      if (HasDeviceId) {
        output.WriteRawTag(24);
        output.WriteInt32(DeviceId);
      }
      if (HasActualDeviceStatus) {
        output.WriteRawTag(32);
        output.WriteEnum((int) ActualDeviceStatus);
      }
      if (HasActualInsideLoadStatus) {
        output.WriteRawTag(40);
        output.WriteEnum((int) ActualInsideLoadStatus);
      }
      if (HasActualOutsideLoadStatus) {
        output.WriteRawTag(48);
        output.WriteEnum((int) ActualOutsideLoadStatus);
      }
      if (HasActualFrontOverstepTheBoundary) {
        output.WriteRawTag(56);
        output.WriteEnum((int) ActualFrontOverstepTheBoundary);
      }
      if (HasActualBackOverstepTheBoundary) {
        output.WriteRawTag(64);
        output.WriteEnum((int) ActualBackOverstepTheBoundary);
      }
      if (HasActualHeightOverstepTheBoundary) {
        output.WriteRawTag(72);
        output.WriteEnum((int) ActualHeightOverstepTheBoundary);
      }
      if (HasActualOutsideDoorSensor) {
        output.WriteRawTag(80);
        output.WriteEnum((int) ActualOutsideDoorSensor);
      }
      if (HasActualInsideDoorMotion) {
        output.WriteRawTag(88);
        output.WriteEnum((int) ActualInsideDoorMotion);
      }
      if (HasActualOutsideDoorMotion) {
        output.WriteRawTag(96);
        output.WriteEnum((int) ActualOutsideDoorMotion);
      }
      if (HasActualTurntableLoadStatus) {
        output.WriteRawTag(104);
        output.WriteEnum((int) ActualTurntableLoadStatus);
      }
      if (HasActualTurntableDirection) {
        output.WriteRawTag(112);
        output.WriteEnum((int) ActualTurntableDirection);
      }
      if (HasActualErrorCode) {
        output.WriteRawTag(122);
        output.WriteString(ActualErrorCode);
      }
      if (HasActualWarningCode) {
        output.WriteRawTag(130, 1);
        output.WriteString(ActualWarningCode);
      }
      if (HasActualErrorDescription) {
        output.WriteRawTag(138, 1);
        output.WriteString(ActualErrorDescription);
      }
      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 (HasDispatchDeviceType) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) DispatchDeviceType);
      }
      if (HasDispatchDeviceStatus) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) DispatchDeviceStatus);
      }
      if (HasDeviceId) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(DeviceId);
      }
      if (HasActualDeviceStatus) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) ActualDeviceStatus);
      }
      if (HasActualInsideLoadStatus) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) ActualInsideLoadStatus);
      }
      if (HasActualOutsideLoadStatus) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) ActualOutsideLoadStatus);
      }
      if (HasActualFrontOverstepTheBoundary) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) ActualFrontOverstepTheBoundary);
      }
      if (HasActualBackOverstepTheBoundary) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) ActualBackOverstepTheBoundary);
      }
      if (HasActualHeightOverstepTheBoundary) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) ActualHeightOverstepTheBoundary);
      }
      if (HasActualOutsideDoorSensor) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) ActualOutsideDoorSensor);
      }
      if (HasActualInsideDoorMotion) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) ActualInsideDoorMotion);
      }
      if (HasActualOutsideDoorMotion) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) ActualOutsideDoorMotion);
      }
      if (HasActualTurntableLoadStatus) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) ActualTurntableLoadStatus);
      }
      if (HasActualTurntableDirection) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) ActualTurntableDirection);
      }
      if (HasActualErrorCode) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(ActualErrorCode);
      }
      if (HasActualWarningCode) {
        size += 2 + pb::CodedOutputStream.ComputeStringSize(ActualWarningCode);
      }
      if (HasActualErrorDescription) {
        size += 2 + pb::CodedOutputStream.ComputeStringSize(ActualErrorDescription);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(Passageway_data other) {
      if (other == null) {
        return;
      }
      if (other.HasDispatchDeviceType) {
        DispatchDeviceType = other.DispatchDeviceType;
      }
      if (other.HasDispatchDeviceStatus) {
        DispatchDeviceStatus = other.DispatchDeviceStatus;
      }
      if (other.HasDeviceId) {
        DeviceId = other.DeviceId;
      }
      if (other.HasActualDeviceStatus) {
        ActualDeviceStatus = other.ActualDeviceStatus;
      }
      if (other.HasActualInsideLoadStatus) {
        ActualInsideLoadStatus = other.ActualInsideLoadStatus;
      }
      if (other.HasActualOutsideLoadStatus) {
        ActualOutsideLoadStatus = other.ActualOutsideLoadStatus;
      }
      if (other.HasActualFrontOverstepTheBoundary) {
        ActualFrontOverstepTheBoundary = other.ActualFrontOverstepTheBoundary;
      }
      if (other.HasActualBackOverstepTheBoundary) {
        ActualBackOverstepTheBoundary = other.ActualBackOverstepTheBoundary;
      }
      if (other.HasActualHeightOverstepTheBoundary) {
        ActualHeightOverstepTheBoundary = other.ActualHeightOverstepTheBoundary;
      }
      if (other.HasActualOutsideDoorSensor) {
        ActualOutsideDoorSensor = other.ActualOutsideDoorSensor;
      }
      if (other.HasActualInsideDoorMotion) {
        ActualInsideDoorMotion = other.ActualInsideDoorMotion;
      }
      if (other.HasActualOutsideDoorMotion) {
        ActualOutsideDoorMotion = other.ActualOutsideDoorMotion;
      }
      if (other.HasActualTurntableLoadStatus) {
        ActualTurntableLoadStatus = other.ActualTurntableLoadStatus;
      }
      if (other.HasActualTurntableDirection) {
        ActualTurntableDirection = other.ActualTurntableDirection;
      }
      if (other.HasActualErrorCode) {
        ActualErrorCode = other.ActualErrorCode;
      }
      if (other.HasActualWarningCode) {
        ActualWarningCode = other.ActualWarningCode;
      }
      if (other.HasActualErrorDescription) {
        ActualErrorDescription = other.ActualErrorDescription;
      }
      _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: {
            DispatchDeviceType = (global::Message.Dispatch_device_type) input.ReadEnum();
            break;
          }
          case 16: {
            DispatchDeviceStatus = (global::Message.Dispatch_device_status) input.ReadEnum();
            break;
          }
          case 24: {
            DeviceId = input.ReadInt32();
            break;
          }
          case 32: {
            ActualDeviceStatus = (global::Message.Hardware_device_status) input.ReadEnum();
            break;
          }
          case 40: {
            ActualInsideLoadStatus = (global::Message.Load_status) input.ReadEnum();
            break;
          }
          case 48: {
            ActualOutsideLoadStatus = (global::Message.Load_status) input.ReadEnum();
            break;
          }
          case 56: {
            ActualFrontOverstepTheBoundary = (global::Message.Overstep_the_boundary) input.ReadEnum();
            break;
          }
          case 64: {
            ActualBackOverstepTheBoundary = (global::Message.Overstep_the_boundary) input.ReadEnum();
            break;
          }
          case 72: {
            ActualHeightOverstepTheBoundary = (global::Message.Overstep_the_boundary) input.ReadEnum();
            break;
          }
          case 80: {
            ActualOutsideDoorSensor = (global::Message.Load_status) input.ReadEnum();
            break;
          }
          case 88: {
            ActualInsideDoorMotion = (global::Message.Door_motion) input.ReadEnum();
            break;
          }
          case 96: {
            ActualOutsideDoorMotion = (global::Message.Door_motion) input.ReadEnum();
            break;
          }
          case 104: {
            ActualTurntableLoadStatus = (global::Message.Load_status) input.ReadEnum();
            break;
          }
          case 112: {
            ActualTurntableDirection = (global::Message.Turntable_direction) input.ReadEnum();
            break;
          }
          case 122: {
            ActualErrorCode = input.ReadString();
            break;
          }
          case 130: {
            ActualWarningCode = input.ReadString();
            break;
          }
          case 138: {
            ActualErrorDescription = input.ReadString();
            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: {
            DispatchDeviceType = (global::Message.Dispatch_device_type) input.ReadEnum();
            break;
          }
          case 16: {
            DispatchDeviceStatus = (global::Message.Dispatch_device_status) input.ReadEnum();
            break;
          }
          case 24: {
            DeviceId = input.ReadInt32();
            break;
          }
          case 32: {
            ActualDeviceStatus = (global::Message.Hardware_device_status) input.ReadEnum();
            break;
          }
          case 40: {
            ActualInsideLoadStatus = (global::Message.Load_status) input.ReadEnum();
            break;
          }
          case 48: {
            ActualOutsideLoadStatus = (global::Message.Load_status) input.ReadEnum();
            break;
          }
          case 56: {
            ActualFrontOverstepTheBoundary = (global::Message.Overstep_the_boundary) input.ReadEnum();
            break;
          }
          case 64: {
            ActualBackOverstepTheBoundary = (global::Message.Overstep_the_boundary) input.ReadEnum();
            break;
          }
          case 72: {
            ActualHeightOverstepTheBoundary = (global::Message.Overstep_the_boundary) input.ReadEnum();
            break;
          }
          case 80: {
            ActualOutsideDoorSensor = (global::Message.Load_status) input.ReadEnum();
            break;
          }
          case 88: {
            ActualInsideDoorMotion = (global::Message.Door_motion) input.ReadEnum();
            break;
          }
          case 96: {
            ActualOutsideDoorMotion = (global::Message.Door_motion) input.ReadEnum();
            break;
          }
          case 104: {
            ActualTurntableLoadStatus = (global::Message.Load_status) input.ReadEnum();
            break;
          }
          case 112: {
            ActualTurntableDirection = (global::Message.Turntable_direction) input.ReadEnum();
            break;
          }
          case 122: {
            ActualErrorCode = input.ReadString();
            break;
          }
          case 130: {
            ActualWarningCode = input.ReadString();
            break;
          }
          case 138: {
            ActualErrorDescription = input.ReadString();
            break;
          }
        }
      }
    }
    #endif

  }

  /// <summary>
  ///调度管理总管理的状态
  /// </summary>
  public sealed partial class Dispatch_manager_status_msg : pb::IMessage<Dispatch_manager_status_msg>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Dispatch_manager_status_msg> _parser = new pb::MessageParser<Dispatch_manager_status_msg>(() => new Dispatch_manager_status_msg());
    private pb::UnknownFieldSet _unknownFields;
    private int _hasBits0;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<Dispatch_manager_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.DispatchMessageReflection.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 Dispatch_manager_status_msg() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Dispatch_manager_status_msg(Dispatch_manager_status_msg other) : this() {
      _hasBits0 = other._hasBits0;
      baseInfo_ = other.baseInfo_ != null ? other.baseInfo_.Clone() : null;
      dispatchId_ = other.dispatchId_;
      dispatchManagerStatus_ = other.dispatchManagerStatus_;
      catcherDataMap_ = other.catcherDataMap_.Clone();
      carrierDataMap_ = other.carrierDataMap_.Clone();
      passagewayDataMap_ = other.passagewayDataMap_.Clone();
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Dispatch_manager_status_msg Clone() {
      return new Dispatch_manager_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 "dispatch_id" field.</summary>
    public const int DispatchIdFieldNumber = 2;
    private readonly static int DispatchIdDefaultValue = 0;

    private int dispatchId_;
    /// <summary>
    ///调度管理模块 id
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int DispatchId {
      get { if ((_hasBits0 & 1) != 0) { return dispatchId_; } else { return DispatchIdDefaultValue; } }
      set {
        _hasBits0 |= 1;
        dispatchId_ = value;
      }
    }
    /// <summary>Gets whether the "dispatch_id" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasDispatchId {
      get { return (_hasBits0 & 1) != 0; }
    }
    /// <summary>Clears the value of the "dispatch_id" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearDispatchId() {
      _hasBits0 &= ~1;
    }

    /// <summary>Field number for the "dispatch_manager_status" field.</summary>
    public const int DispatchManagerStatusFieldNumber = 3;
    private readonly static global::Message.Dispatch_manager_status DispatchManagerStatusDefaultValue = global::Message.Dispatch_manager_status.EDispatchManagerUnknow;

    private global::Message.Dispatch_manager_status dispatchManagerStatus_;
    /// <summary>
    ///调度管理模块 状态
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Message.Dispatch_manager_status DispatchManagerStatus {
      get { if ((_hasBits0 & 2) != 0) { return dispatchManagerStatus_; } else { return DispatchManagerStatusDefaultValue; } }
      set {
        _hasBits0 |= 2;
        dispatchManagerStatus_ = value;
      }
    }
    /// <summary>Gets whether the "dispatch_manager_status" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasDispatchManagerStatus {
      get { return (_hasBits0 & 2) != 0; }
    }
    /// <summary>Clears the value of the "dispatch_manager_status" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearDispatchManagerStatus() {
      _hasBits0 &= ~2;
    }

    /// <summary>Field number for the "catcher_data_map" field.</summary>
    public const int CatcherDataMapFieldNumber = 4;
    private static readonly pb::FieldCodec<global::Message.Catcher_data> _repeated_catcherDataMap_codec
        = pb::FieldCodec.ForMessage(34, global::Message.Catcher_data.Parser);
    private readonly pbc::RepeatedField<global::Message.Catcher_data> catcherDataMap_ = new pbc::RepeatedField<global::Message.Catcher_data>();
    /// <summary>
    ///机器手的数据
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::Message.Catcher_data> CatcherDataMap {
      get { return catcherDataMap_; }
    }

    /// <summary>Field number for the "carrier_data_map" field.</summary>
    public const int CarrierDataMapFieldNumber = 5;
    private static readonly pb::FieldCodec<global::Message.Carrier_data> _repeated_carrierDataMap_codec
        = pb::FieldCodec.ForMessage(42, global::Message.Carrier_data.Parser);
    private readonly pbc::RepeatedField<global::Message.Carrier_data> carrierDataMap_ = new pbc::RepeatedField<global::Message.Carrier_data>();
    /// <summary>
    ///搬运器的数据
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::Message.Carrier_data> CarrierDataMap {
      get { return carrierDataMap_; }
    }

    /// <summary>Field number for the "passageway_data_map" field.</summary>
    public const int PassagewayDataMapFieldNumber = 6;
    private static readonly pb::FieldCodec<global::Message.Passageway_data> _repeated_passagewayDataMap_codec
        = pb::FieldCodec.ForMessage(50, global::Message.Passageway_data.Parser);
    private readonly pbc::RepeatedField<global::Message.Passageway_data> passagewayDataMap_ = new pbc::RepeatedField<global::Message.Passageway_data>();
    /// <summary>
    ///出入口的数据
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::Message.Passageway_data> PassagewayDataMap {
      get { return passagewayDataMap_; }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(Dispatch_manager_status_msg other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!object.Equals(BaseInfo, other.BaseInfo)) return false;
      if (DispatchId != other.DispatchId) return false;
      if (DispatchManagerStatus != other.DispatchManagerStatus) return false;
      if(!catcherDataMap_.Equals(other.catcherDataMap_)) return false;
      if(!carrierDataMap_.Equals(other.carrierDataMap_)) return false;
      if(!passagewayDataMap_.Equals(other.passagewayDataMap_)) 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 (HasDispatchId) hash ^= DispatchId.GetHashCode();
      if (HasDispatchManagerStatus) hash ^= DispatchManagerStatus.GetHashCode();
      hash ^= catcherDataMap_.GetHashCode();
      hash ^= carrierDataMap_.GetHashCode();
      hash ^= passagewayDataMap_.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 (HasDispatchId) {
        output.WriteRawTag(16);
        output.WriteInt32(DispatchId);
      }
      if (HasDispatchManagerStatus) {
        output.WriteRawTag(24);
        output.WriteEnum((int) DispatchManagerStatus);
      }
      catcherDataMap_.WriteTo(output, _repeated_catcherDataMap_codec);
      carrierDataMap_.WriteTo(output, _repeated_carrierDataMap_codec);
      passagewayDataMap_.WriteTo(output, _repeated_passagewayDataMap_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 (HasDispatchId) {
        output.WriteRawTag(16);
        output.WriteInt32(DispatchId);
      }
      if (HasDispatchManagerStatus) {
        output.WriteRawTag(24);
        output.WriteEnum((int) DispatchManagerStatus);
      }
      catcherDataMap_.WriteTo(ref output, _repeated_catcherDataMap_codec);
      carrierDataMap_.WriteTo(ref output, _repeated_carrierDataMap_codec);
      passagewayDataMap_.WriteTo(ref output, _repeated_passagewayDataMap_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 (HasDispatchId) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(DispatchId);
      }
      if (HasDispatchManagerStatus) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) DispatchManagerStatus);
      }
      size += catcherDataMap_.CalculateSize(_repeated_catcherDataMap_codec);
      size += carrierDataMap_.CalculateSize(_repeated_carrierDataMap_codec);
      size += passagewayDataMap_.CalculateSize(_repeated_passagewayDataMap_codec);
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(Dispatch_manager_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.HasDispatchId) {
        DispatchId = other.DispatchId;
      }
      if (other.HasDispatchManagerStatus) {
        DispatchManagerStatus = other.DispatchManagerStatus;
      }
      catcherDataMap_.Add(other.catcherDataMap_);
      carrierDataMap_.Add(other.carrierDataMap_);
      passagewayDataMap_.Add(other.passagewayDataMap_);
      _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 16: {
            DispatchId = input.ReadInt32();
            break;
          }
          case 24: {
            DispatchManagerStatus = (global::Message.Dispatch_manager_status) input.ReadEnum();
            break;
          }
          case 34: {
            catcherDataMap_.AddEntriesFrom(input, _repeated_catcherDataMap_codec);
            break;
          }
          case 42: {
            carrierDataMap_.AddEntriesFrom(input, _repeated_carrierDataMap_codec);
            break;
          }
          case 50: {
            passagewayDataMap_.AddEntriesFrom(input, _repeated_passagewayDataMap_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 16: {
            DispatchId = input.ReadInt32();
            break;
          }
          case 24: {
            DispatchManagerStatus = (global::Message.Dispatch_manager_status) input.ReadEnum();
            break;
          }
          case 34: {
            catcherDataMap_.AddEntriesFrom(ref input, _repeated_catcherDataMap_codec);
            break;
          }
          case 42: {
            carrierDataMap_.AddEntriesFrom(ref input, _repeated_carrierDataMap_codec);
            break;
          }
          case 50: {
            passagewayDataMap_.AddEntriesFrom(ref input, _repeated_passagewayDataMap_codec);
            break;
          }
        }
      }
    }
    #endif

  }

  /// <summary>
  ///调度管理的设备详细的数据信息
  /// </summary>
  public sealed partial class Dispatch_manager_data_msg : pb::IMessage<Dispatch_manager_data_msg>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Dispatch_manager_data_msg> _parser = new pb::MessageParser<Dispatch_manager_data_msg>(() => new Dispatch_manager_data_msg());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<Dispatch_manager_data_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.DispatchMessageReflection.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 Dispatch_manager_data_msg() {
      OnConstruction();
    }

    partial void OnConstruction();

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

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

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

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      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 (_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 (_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 (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(Dispatch_manager_data_msg other) {
      if (other == null) {
        return;
      }
      _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;
        }
      }
    #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;
        }
      }
    }
    #endif

  }

  #endregion

}

#endregion Designer generated code
