// <auto-generated>
//     Generated by the protocol buffer compiler.  DO NOT EDIT!
//     source: OAM_datastruct.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;
/// <summary>Holder for reflection information generated from OAM_datastruct.proto</summary>
public static partial class OAMDatastructReflection {

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

  static OAMDatastructReflection() {
    byte[] descriptorData = global::System.Convert.FromBase64String(
        string.Concat(
          "ChRPQU1fZGF0YXN0cnVjdC5wcm90bxofZ29vZ2xlL3Byb3RvYnVmL3RpbWVz",
          "dGFtcC5wcm90bxoMVERTQ21kLnByb3RvIm8KCURldmljZVJldBIPCgdBbGFy",
          "bUlEGAEgASgNEhEKCVN0YXRpb25JRBgCIAEoDRIQCghEZXZpY2VJRBgDIAEo",
          "DRIbCgdDb2RlUmV0GAQgASgOMgouQ29kZVZhbHVlEg8KB01lc3NhZ2UYBSAB",
          "KAkiNwoHUmVzcG9uZBIbCgdDb2RlUmV0GAEgASgOMgouQ29kZVZhbHVlEg8K",
          "B01lc3NhZ2UYAiABKAkiMwoMU3RhdGlvbkRldklEEhEKCVN0YXRpb25JRBgB",
          "IAEoDRIQCghEZXZpY2VJRBgCIAEoDSK+AQoKQWxhcm1BdHRyaRIKCgJJZBgB",
          "IAEoDRIPCgdBbGFybUlEGAIgASgNEhoKCkFsYXJtTGV2ZWwYAyABKA4yBi5M",
          "ZXZlbBIbChNBbGFybURlc2NyaXB0aW9uQ0hOGAQgASgJEhsKE0FsYXJtRGVz",
          "Y3JpcHRpb25FTkcYBSABKAkSDQoFSXNNb24YBiABKA0SLgoKQ3JlYXRlVGlt",
          "ZRgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiwwMKCFBlckF0",
          "dHJpEgoKAklkGAEgASgNEg0KBVBlcklEGAIgASgNEhIKCkRhdGFDYXRsb2cY",
          "AyABKAkSEQoJRmllbGROYW1lGAQgASgJEhkKEVBlckRlc2NyaXB0aW9uQ0hO",
          "GAUgASgJEhkKEVBlckRlc2NyaXB0aW9uRU5HGAYgASgJEh8KCUZpZWxkVHlw",
          "ZRgHIAEoDjIMLk9wZXJhbmRUeXBlEhEKCUZpZWxkVW5pdBgIIAEoCRIcCglP",
          "cGVyYXRvcjEYCSABKA4yCS5PcGVyYXRvchIQCghPcGVyYW5kMRgKIAEoCRIj",
          "CghSZWxhdGlvbhgLIAEoDjIRLlJlbGF0aW9uT3BlcmF0b3ISHAoJT3BlcmF0",
          "b3IyGAwgASgOMgkuT3BlcmF0b3ISEAoIT3BlcmFuZDIYDSABKAkSDQoFSXNN",
          "b24YDiABKA0SHQoNUGVyQWxhcm1MZXZlbBgPIAEoDjIGLkxldmVsEhMKC0Fs",
          "YXJtRGVzQ0hOGBAgASgJEhMKC0FsYXJtRGVzRU5HGBEgASgJEi4KCkNyZWF0",
          "ZVRpbWUYEiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wItMBCglD",
          "dXJyQWxhcm0SCgoCSWQYASABKA0SDwoHQWxhcm1JRBgCIAEoDRIRCglTdGF0",
          "aW9uSUQYAyABKA0SEAoIRGV2aWNlSUQYBCABKA0SGgoKQWxhcm1MZXZlbBgF",
          "IAEoDjIGLkxldmVsEhsKE0FsYXJtRGVzY3JpcHRpb25DSE4YBiABKAkSGwoT",
          "QWxhcm1EZXNjcmlwdGlvbkVORxgHIAEoCRIuCgpSZXBvcnRUaW1lGAggASgL",
          "MhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCL+AQoISGlzQWxhcm0SCgoC",
          "SWQYASABKA0SDwoHQWxhcm1JRBgCIAEoDRIRCglTdGF0aW9uSUQYAyABKA0S",
          "EAoIRGV2aWNlSUQYBCABKA0SGgoKQWxhcm1MZXZlbBgFIAEoDjIGLkxldmVs",
          "EhsKE0FsYXJtRGVzY3JpcHRpb25DSE4YBiABKAkSGwoTQWxhcm1EZXNjcmlw",
          "dGlvbkVORxgHIAEoCRItCglTdGFydFRpbWUYCCABKAsyGi5nb29nbGUucHJv",
          "dG9idWYuVGltZXN0YW1wEisKB0VuZFRpbWUYCSABKAsyGi5nb29nbGUucHJv",
          "dG9idWYuVGltZXN0YW1wIn0KCVN5c1N0YXR1cxIRCglTdGF0aW9uSUQYASAB",
          "KA0SEAoIRGV2aWNlSUQYAiABKA0SGwoGU3RhdHVzGAMgASgOMgsuRGV2aXN0",
          "YXR1cxIuCgpSZXBvcnRUaW1lGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRp",
          "bWVzdGFtcCK0AQoDTG9nEhEKCVN0YXRpb25JRBgBIAEoDRIQCghEZXZpY2VJ",
          "RBgCIAEoDRIbCghMb2dsZXZlbBgDIAEoDjIJLkxvZ0xldmVsEhIKCkxvZ0lu",
          "Zm9DSE4YBCABKAkSEgoKTG9nSW5mb0VORxgFIAEoCRITCgtNYW5pcHVuYXRv",
          "chgGIAEoCRIuCgpSZXBvcnRUaW1lGAcgASgLMhouZ29vZ2xlLnByb3RvYnVm",
          "LlRpbWVzdGFtcCLqAQoHUGVySW5mbxIKCgJJZBgBIAEoDRINCgVQZXJJRBgC",
          "IAEoDRIRCglTdGF0aW9uSUQYAyABKA0SEAoIRGV2aWNlSUQYBCABKA0SEgoK",
          "RGF0YUNhdGxvZxgFIAEoCRIRCglGaWVsZE5hbWUYBiABKAkSEgoKRmllbGRW",
          "YWx1ZRgHIAEoCRIZChFQZXJEZXNjcmlwdGlvbkNIThgIIAEoCRIZChFQZXJE",
          "ZXNjcmlwdGlvbkVORxgJIAEoCRIuCgpVcGRhdGVUaW1lGAogASgLMhouZ29v",
          "Z2xlLnByb3RvYnVmLlRpbWVzdGFtcCJCCgpQZXJSZXF1aXJlEhIKCkRhdGFD",
          "YXRsb2cYASABKAkSEQoJRmllbGROYW1lGAIgASgJEg0KBUlzTW9uGAMgASgN",
          "Kj8KBUxldmVsEhAKDERlZmF1bF9MZXZlbBAAEhAKDE5vcm1hbF9BbGFybRAB",
          "EhIKDkNyaXRpY2FsX0FsYXJtEAIqRAoITG9nTGV2ZWwSFAoQRGVmYXVsdF9M",
          "b2dMZXZlbBAAEgoKBk5vcm1hbBABEgsKB1dhcm5pbmcQAhIJCgVFcnJvchAD",
          "KlYKC09wZXJhbmRUeXBlEgwKCF9ERUZBVUxUEAASCQoFX1VJTlQQARIICgRf",
          "SU5UEAISCwoHX1NUUklORxADEgoKBl9GTE9BVBAEEgsKB19ET1VCTEUQBSqN",
          "AQoIT3BlcmF0b3ISFAoQRGVmYXVsdF9PcGVyYXRvchAAEg8KC0dyZWF0ZXJU",
          "aGFuEAESGAoUR3JlYXRlclRoYW5PckVxdWFsVG8QAhILCgdFcXVhbFRvEAMS",
          "DAoITGVzc1RoYW4QBBIVChFMZXNzVGhhbk9yRXF1YWxUbxAFEg4KCk5vdEVx",
          "dWFsVG8QBipBChBSZWxhdGlvbk9wZXJhdG9yEhwKGERlZmF1bHRfUmVsYXRp",
          "b25PcGVyYXRvchAAEgcKA0FORBABEgYKAk9SEAJCDFoKLi4vcHJvdG9nb2IG",
          "cHJvdG8z"));
    descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
        new pbr::FileDescriptor[] { global::Google.Protobuf.WellKnownTypes.TimestampReflection.Descriptor, global::TDSCmdReflection.Descriptor, },
        new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Level), typeof(global::LogLevel), typeof(global::OperandType), typeof(global::Operator), typeof(global::RelationOperator), }, null, new pbr::GeneratedClrTypeInfo[] {
          new pbr::GeneratedClrTypeInfo(typeof(global::DeviceRet), global::DeviceRet.Parser, new[]{ "AlarmID", "StationID", "DeviceID", "CodeRet", "Message" }, null, null, null, null),
          new pbr::GeneratedClrTypeInfo(typeof(global::Respond), global::Respond.Parser, new[]{ "CodeRet", "Message" }, null, null, null, null),
          new pbr::GeneratedClrTypeInfo(typeof(global::StationDevID), global::StationDevID.Parser, new[]{ "StationID", "DeviceID" }, null, null, null, null),
          new pbr::GeneratedClrTypeInfo(typeof(global::AlarmAttri), global::AlarmAttri.Parser, new[]{ "Id", "AlarmID", "AlarmLevel", "AlarmDescriptionCHN", "AlarmDescriptionENG", "IsMon", "CreateTime" }, null, null, null, null),
          new pbr::GeneratedClrTypeInfo(typeof(global::PerAttri), global::PerAttri.Parser, new[]{ "Id", "PerID", "DataCatlog", "FieldName", "PerDescriptionCHN", "PerDescriptionENG", "FieldType", "FieldUnit", "Operator1", "Operand1", "Relation", "Operator2", "Operand2", "IsMon", "PerAlarmLevel", "AlarmDesCHN", "AlarmDesENG", "CreateTime" }, null, null, null, null),
          new pbr::GeneratedClrTypeInfo(typeof(global::CurrAlarm), global::CurrAlarm.Parser, new[]{ "Id", "AlarmID", "StationID", "DeviceID", "AlarmLevel", "AlarmDescriptionCHN", "AlarmDescriptionENG", "ReportTime" }, null, null, null, null),
          new pbr::GeneratedClrTypeInfo(typeof(global::HisAlarm), global::HisAlarm.Parser, new[]{ "Id", "AlarmID", "StationID", "DeviceID", "AlarmLevel", "AlarmDescriptionCHN", "AlarmDescriptionENG", "StartTime", "EndTime" }, null, null, null, null),
          new pbr::GeneratedClrTypeInfo(typeof(global::SysStatus), global::SysStatus.Parser, new[]{ "StationID", "DeviceID", "Status", "ReportTime" }, null, null, null, null),
          new pbr::GeneratedClrTypeInfo(typeof(global::Log), global::Log.Parser, new[]{ "StationID", "DeviceID", "Loglevel", "LogInfoCHN", "LogInfoENG", "Manipunator", "ReportTime" }, null, null, null, null),
          new pbr::GeneratedClrTypeInfo(typeof(global::PerInfo), global::PerInfo.Parser, new[]{ "Id", "PerID", "StationID", "DeviceID", "DataCatlog", "FieldName", "FieldValue", "PerDescriptionCHN", "PerDescriptionENG", "UpdateTime" }, null, null, null, null),
          new pbr::GeneratedClrTypeInfo(typeof(global::PerRequire), global::PerRequire.Parser, new[]{ "DataCatlog", "FieldName", "IsMon" }, null, null, null, null)
        }));
  }
  #endregion

}
#region Enums
/// <summary>
///alrm level
/// </summary>
public enum Level {
  /// <summary>
  ///告警级别非下列两种时为0
  /// </summary>
  [pbr::OriginalName("Defaul_Level")] DefaulLevel = 0,
  [pbr::OriginalName("Normal_Alarm")] NormalAlarm = 1,
  [pbr::OriginalName("Critical_Alarm")] CriticalAlarm = 2,
}

/// <summary>
///log level
/// </summary>
public enum LogLevel {
  /// <summary>
  ///log级别非下列三种时为0
  /// </summary>
  [pbr::OriginalName("Default_LogLevel")] DefaultLogLevel = 0,
  [pbr::OriginalName("Normal")] Normal = 1,
  [pbr::OriginalName("Warning")] Warning = 2,
  [pbr::OriginalName("Error")] Error = 3,
}

public enum OperandType {
  /// <summary>
  ///数值不是下列几种情况时，为0
  /// </summary>
  [pbr::OriginalName("_DEFAULT")] Default = 0,
  [pbr::OriginalName("_UINT")] Uint = 1,
  [pbr::OriginalName("_INT")] Int = 2,
  [pbr::OriginalName("_STRING")] String = 3,
  [pbr::OriginalName("_FLOAT")] Float = 4,
  [pbr::OriginalName("_DOUBLE")] Double = 5,
}

/// <summary>
/// operator 
/// </summary>
public enum Operator {
  /// <summary>
  ///操作符为空时，Default_Operator为0
  /// </summary>
  [pbr::OriginalName("Default_Operator")] DefaultOperator = 0,
  [pbr::OriginalName("GreaterThan")] GreaterThan = 1,
  [pbr::OriginalName("GreaterThanOrEqualTo")] GreaterThanOrEqualTo = 2,
  [pbr::OriginalName("EqualTo")] EqualTo = 3,
  [pbr::OriginalName("LessThan")] LessThan = 4,
  [pbr::OriginalName("LessThanOrEqualTo")] LessThanOrEqualTo = 5,
  [pbr::OriginalName("NotEqualTo")] NotEqualTo = 6,
}

public enum RelationOperator {
  /// <summary>
  ///关系符为空时，Default_RelationOperator为0
  /// </summary>
  [pbr::OriginalName("Default_RelationOperator")] DefaultRelationOperator = 0,
  [pbr::OriginalName("AND")] And = 1,
  [pbr::OriginalName("OR")] Or = 2,
}

#endregion

#region Messages
/// <summary>
///message return back to device when OAM receive the alarm info from device
/// </summary>
public sealed partial class DeviceRet : pb::IMessage<DeviceRet>
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    , pb::IBufferMessage
#endif
{
  private static readonly pb::MessageParser<DeviceRet> _parser = new pb::MessageParser<DeviceRet>(() => new DeviceRet());
  private pb::UnknownFieldSet _unknownFields;
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public static pb::MessageParser<DeviceRet> Parser { get { return _parser; } }

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

  partial void OnConstruction();

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

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

  /// <summary>Field number for the "AlarmID" field.</summary>
  public const int AlarmIDFieldNumber = 1;
  private uint alarmID_;
  /// <summary>
  ///这个就OAM会用到
  /// </summary>
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public uint AlarmID {
    get { return alarmID_; }
    set {
      alarmID_ = value;
    }
  }

  /// <summary>Field number for the "StationID" field.</summary>
  public const int StationIDFieldNumber = 2;
  private uint stationID_;
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public uint StationID {
    get { return stationID_; }
    set {
      stationID_ = value;
    }
  }

  /// <summary>Field number for the "DeviceID" field.</summary>
  public const int DeviceIDFieldNumber = 3;
  private uint deviceID_;
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public uint DeviceID {
    get { return deviceID_; }
    set {
      deviceID_ = value;
    }
  }

  /// <summary>Field number for the "CodeRet" field.</summary>
  public const int CodeRetFieldNumber = 4;
  private global::CodeValue codeRet_ = global::CodeValue.BaseStart;
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public global::CodeValue CodeRet {
    get { return codeRet_; }
    set {
      codeRet_ = value;
    }
  }

  /// <summary>Field number for the "Message" field.</summary>
  public const int MessageFieldNumber = 5;
  private string message_ = "";
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public string Message {
    get { return message_; }
    set {
      message_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
    }
  }

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

  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public bool Equals(DeviceRet other) {
    if (ReferenceEquals(other, null)) {
      return false;
    }
    if (ReferenceEquals(other, this)) {
      return true;
    }
    if (AlarmID != other.AlarmID) return false;
    if (StationID != other.StationID) return false;
    if (DeviceID != other.DeviceID) return false;
    if (CodeRet != other.CodeRet) return false;
    if (Message != other.Message) 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 (AlarmID != 0) hash ^= AlarmID.GetHashCode();
    if (StationID != 0) hash ^= StationID.GetHashCode();
    if (DeviceID != 0) hash ^= DeviceID.GetHashCode();
    if (CodeRet != global::CodeValue.BaseStart) hash ^= CodeRet.GetHashCode();
    if (Message.Length != 0) hash ^= Message.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 (AlarmID != 0) {
      output.WriteRawTag(8);
      output.WriteUInt32(AlarmID);
    }
    if (StationID != 0) {
      output.WriteRawTag(16);
      output.WriteUInt32(StationID);
    }
    if (DeviceID != 0) {
      output.WriteRawTag(24);
      output.WriteUInt32(DeviceID);
    }
    if (CodeRet != global::CodeValue.BaseStart) {
      output.WriteRawTag(32);
      output.WriteEnum((int) CodeRet);
    }
    if (Message.Length != 0) {
      output.WriteRawTag(42);
      output.WriteString(Message);
    }
    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 (AlarmID != 0) {
      output.WriteRawTag(8);
      output.WriteUInt32(AlarmID);
    }
    if (StationID != 0) {
      output.WriteRawTag(16);
      output.WriteUInt32(StationID);
    }
    if (DeviceID != 0) {
      output.WriteRawTag(24);
      output.WriteUInt32(DeviceID);
    }
    if (CodeRet != global::CodeValue.BaseStart) {
      output.WriteRawTag(32);
      output.WriteEnum((int) CodeRet);
    }
    if (Message.Length != 0) {
      output.WriteRawTag(42);
      output.WriteString(Message);
    }
    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 (AlarmID != 0) {
      size += 1 + pb::CodedOutputStream.ComputeUInt32Size(AlarmID);
    }
    if (StationID != 0) {
      size += 1 + pb::CodedOutputStream.ComputeUInt32Size(StationID);
    }
    if (DeviceID != 0) {
      size += 1 + pb::CodedOutputStream.ComputeUInt32Size(DeviceID);
    }
    if (CodeRet != global::CodeValue.BaseStart) {
      size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) CodeRet);
    }
    if (Message.Length != 0) {
      size += 1 + pb::CodedOutputStream.ComputeStringSize(Message);
    }
    if (_unknownFields != null) {
      size += _unknownFields.CalculateSize();
    }
    return size;
  }

  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public void MergeFrom(DeviceRet other) {
    if (other == null) {
      return;
    }
    if (other.AlarmID != 0) {
      AlarmID = other.AlarmID;
    }
    if (other.StationID != 0) {
      StationID = other.StationID;
    }
    if (other.DeviceID != 0) {
      DeviceID = other.DeviceID;
    }
    if (other.CodeRet != global::CodeValue.BaseStart) {
      CodeRet = other.CodeRet;
    }
    if (other.Message.Length != 0) {
      Message = other.Message;
    }
    _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: {
          AlarmID = input.ReadUInt32();
          break;
        }
        case 16: {
          StationID = input.ReadUInt32();
          break;
        }
        case 24: {
          DeviceID = input.ReadUInt32();
          break;
        }
        case 32: {
          CodeRet = (global::CodeValue) input.ReadEnum();
          break;
        }
        case 42: {
          Message = 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: {
          AlarmID = input.ReadUInt32();
          break;
        }
        case 16: {
          StationID = input.ReadUInt32();
          break;
        }
        case 24: {
          DeviceID = input.ReadUInt32();
          break;
        }
        case 32: {
          CodeRet = (global::CodeValue) input.ReadEnum();
          break;
        }
        case 42: {
          Message = input.ReadString();
          break;
        }
      }
    }
  }
  #endif

}

/// <summary>
///normal message respond back to UI OR Lower OAM   
/// </summary>
public sealed partial class Respond : pb::IMessage<Respond>
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    , pb::IBufferMessage
#endif
{
  private static readonly pb::MessageParser<Respond> _parser = new pb::MessageParser<Respond>(() => new Respond());
  private pb::UnknownFieldSet _unknownFields;
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public static pb::MessageParser<Respond> Parser { get { return _parser; } }

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

  partial void OnConstruction();

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

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

  /// <summary>Field number for the "CodeRet" field.</summary>
  public const int CodeRetFieldNumber = 1;
  private global::CodeValue codeRet_ = global::CodeValue.BaseStart;
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public global::CodeValue CodeRet {
    get { return codeRet_; }
    set {
      codeRet_ = value;
    }
  }

  /// <summary>Field number for the "Message" field.</summary>
  public const int MessageFieldNumber = 2;
  private string message_ = "";
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public string Message {
    get { return message_; }
    set {
      message_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
    }
  }

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

  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public bool Equals(Respond other) {
    if (ReferenceEquals(other, null)) {
      return false;
    }
    if (ReferenceEquals(other, this)) {
      return true;
    }
    if (CodeRet != other.CodeRet) return false;
    if (Message != other.Message) 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 (CodeRet != global::CodeValue.BaseStart) hash ^= CodeRet.GetHashCode();
    if (Message.Length != 0) hash ^= Message.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 (CodeRet != global::CodeValue.BaseStart) {
      output.WriteRawTag(8);
      output.WriteEnum((int) CodeRet);
    }
    if (Message.Length != 0) {
      output.WriteRawTag(18);
      output.WriteString(Message);
    }
    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 (CodeRet != global::CodeValue.BaseStart) {
      output.WriteRawTag(8);
      output.WriteEnum((int) CodeRet);
    }
    if (Message.Length != 0) {
      output.WriteRawTag(18);
      output.WriteString(Message);
    }
    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 (CodeRet != global::CodeValue.BaseStart) {
      size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) CodeRet);
    }
    if (Message.Length != 0) {
      size += 1 + pb::CodedOutputStream.ComputeStringSize(Message);
    }
    if (_unknownFields != null) {
      size += _unknownFields.CalculateSize();
    }
    return size;
  }

  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public void MergeFrom(Respond other) {
    if (other == null) {
      return;
    }
    if (other.CodeRet != global::CodeValue.BaseStart) {
      CodeRet = other.CodeRet;
    }
    if (other.Message.Length != 0) {
      Message = other.Message;
    }
    _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: {
          CodeRet = (global::CodeValue) input.ReadEnum();
          break;
        }
        case 18: {
          Message = 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: {
          CodeRet = (global::CodeValue) input.ReadEnum();
          break;
        }
        case 18: {
          Message = input.ReadString();
          break;
        }
      }
    }
  }
  #endif

}

/// <summary>
///StationID is SUID of device，DeviceID is the sub device
/// </summary>
public sealed partial class StationDevID : pb::IMessage<StationDevID>
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    , pb::IBufferMessage
#endif
{
  private static readonly pb::MessageParser<StationDevID> _parser = new pb::MessageParser<StationDevID>(() => new StationDevID());
  private pb::UnknownFieldSet _unknownFields;
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public static pb::MessageParser<StationDevID> Parser { get { return _parser; } }

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

  partial void OnConstruction();

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

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

  /// <summary>Field number for the "StationID" field.</summary>
  public const int StationIDFieldNumber = 1;
  private uint stationID_;
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public uint StationID {
    get { return stationID_; }
    set {
      stationID_ = value;
    }
  }

  /// <summary>Field number for the "DeviceID" field.</summary>
  public const int DeviceIDFieldNumber = 2;
  private uint deviceID_;
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public uint DeviceID {
    get { return deviceID_; }
    set {
      deviceID_ = value;
    }
  }

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

  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public bool Equals(StationDevID other) {
    if (ReferenceEquals(other, null)) {
      return false;
    }
    if (ReferenceEquals(other, this)) {
      return true;
    }
    if (StationID != other.StationID) return false;
    if (DeviceID != other.DeviceID) 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 (StationID != 0) hash ^= StationID.GetHashCode();
    if (DeviceID != 0) hash ^= DeviceID.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 (StationID != 0) {
      output.WriteRawTag(8);
      output.WriteUInt32(StationID);
    }
    if (DeviceID != 0) {
      output.WriteRawTag(16);
      output.WriteUInt32(DeviceID);
    }
    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 (StationID != 0) {
      output.WriteRawTag(8);
      output.WriteUInt32(StationID);
    }
    if (DeviceID != 0) {
      output.WriteRawTag(16);
      output.WriteUInt32(DeviceID);
    }
    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 (StationID != 0) {
      size += 1 + pb::CodedOutputStream.ComputeUInt32Size(StationID);
    }
    if (DeviceID != 0) {
      size += 1 + pb::CodedOutputStream.ComputeUInt32Size(DeviceID);
    }
    if (_unknownFields != null) {
      size += _unknownFields.CalculateSize();
    }
    return size;
  }

  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public void MergeFrom(StationDevID other) {
    if (other == null) {
      return;
    }
    if (other.StationID != 0) {
      StationID = other.StationID;
    }
    if (other.DeviceID != 0) {
      DeviceID = other.DeviceID;
    }
    _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: {
          StationID = input.ReadUInt32();
          break;
        }
        case 16: {
          DeviceID = input.ReadUInt32();
          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: {
          StationID = input.ReadUInt32();
          break;
        }
        case 16: {
          DeviceID = input.ReadUInt32();
          break;
        }
      }
    }
  }
  #endif

}

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

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

  partial void OnConstruction();

  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public AlarmAttri(AlarmAttri other) : this() {
    id_ = other.id_;
    alarmID_ = other.alarmID_;
    alarmLevel_ = other.alarmLevel_;
    alarmDescriptionCHN_ = other.alarmDescriptionCHN_;
    alarmDescriptionENG_ = other.alarmDescriptionENG_;
    isMon_ = other.isMon_;
    createTime_ = other.createTime_ != null ? other.createTime_.Clone() : null;
    _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
  }

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

  /// <summary>Field number for the "Id" field.</summary>
  public const int IdFieldNumber = 1;
  private uint id_;
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public uint Id {
    get { return id_; }
    set {
      id_ = value;
    }
  }

  /// <summary>Field number for the "AlarmID" field.</summary>
  public const int AlarmIDFieldNumber = 2;
  private uint alarmID_;
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public uint AlarmID {
    get { return alarmID_; }
    set {
      alarmID_ = value;
    }
  }

  /// <summary>Field number for the "AlarmLevel" field.</summary>
  public const int AlarmLevelFieldNumber = 3;
  private global::Level alarmLevel_ = global::Level.DefaulLevel;
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public global::Level AlarmLevel {
    get { return alarmLevel_; }
    set {
      alarmLevel_ = value;
    }
  }

  /// <summary>Field number for the "AlarmDescriptionCHN" field.</summary>
  public const int AlarmDescriptionCHNFieldNumber = 4;
  private string alarmDescriptionCHN_ = "";
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public string AlarmDescriptionCHN {
    get { return alarmDescriptionCHN_; }
    set {
      alarmDescriptionCHN_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
    }
  }

  /// <summary>Field number for the "AlarmDescriptionENG" field.</summary>
  public const int AlarmDescriptionENGFieldNumber = 5;
  private string alarmDescriptionENG_ = "";
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public string AlarmDescriptionENG {
    get { return alarmDescriptionENG_; }
    set {
      alarmDescriptionENG_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
    }
  }

  /// <summary>Field number for the "IsMon" field.</summary>
  public const int IsMonFieldNumber = 6;
  private uint isMon_;
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public uint IsMon {
    get { return isMon_; }
    set {
      isMon_ = value;
    }
  }

  /// <summary>Field number for the "CreateTime" field.</summary>
  public const int CreateTimeFieldNumber = 7;
  private global::Google.Protobuf.WellKnownTypes.Timestamp createTime_;
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public global::Google.Protobuf.WellKnownTypes.Timestamp CreateTime {
    get { return createTime_; }
    set {
      createTime_ = value;
    }
  }

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

  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public bool Equals(AlarmAttri other) {
    if (ReferenceEquals(other, null)) {
      return false;
    }
    if (ReferenceEquals(other, this)) {
      return true;
    }
    if (Id != other.Id) return false;
    if (AlarmID != other.AlarmID) return false;
    if (AlarmLevel != other.AlarmLevel) return false;
    if (AlarmDescriptionCHN != other.AlarmDescriptionCHN) return false;
    if (AlarmDescriptionENG != other.AlarmDescriptionENG) return false;
    if (IsMon != other.IsMon) return false;
    if (!object.Equals(CreateTime, other.CreateTime)) 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 (Id != 0) hash ^= Id.GetHashCode();
    if (AlarmID != 0) hash ^= AlarmID.GetHashCode();
    if (AlarmLevel != global::Level.DefaulLevel) hash ^= AlarmLevel.GetHashCode();
    if (AlarmDescriptionCHN.Length != 0) hash ^= AlarmDescriptionCHN.GetHashCode();
    if (AlarmDescriptionENG.Length != 0) hash ^= AlarmDescriptionENG.GetHashCode();
    if (IsMon != 0) hash ^= IsMon.GetHashCode();
    if (createTime_ != null) hash ^= CreateTime.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 (Id != 0) {
      output.WriteRawTag(8);
      output.WriteUInt32(Id);
    }
    if (AlarmID != 0) {
      output.WriteRawTag(16);
      output.WriteUInt32(AlarmID);
    }
    if (AlarmLevel != global::Level.DefaulLevel) {
      output.WriteRawTag(24);
      output.WriteEnum((int) AlarmLevel);
    }
    if (AlarmDescriptionCHN.Length != 0) {
      output.WriteRawTag(34);
      output.WriteString(AlarmDescriptionCHN);
    }
    if (AlarmDescriptionENG.Length != 0) {
      output.WriteRawTag(42);
      output.WriteString(AlarmDescriptionENG);
    }
    if (IsMon != 0) {
      output.WriteRawTag(48);
      output.WriteUInt32(IsMon);
    }
    if (createTime_ != null) {
      output.WriteRawTag(58);
      output.WriteMessage(CreateTime);
    }
    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 (Id != 0) {
      output.WriteRawTag(8);
      output.WriteUInt32(Id);
    }
    if (AlarmID != 0) {
      output.WriteRawTag(16);
      output.WriteUInt32(AlarmID);
    }
    if (AlarmLevel != global::Level.DefaulLevel) {
      output.WriteRawTag(24);
      output.WriteEnum((int) AlarmLevel);
    }
    if (AlarmDescriptionCHN.Length != 0) {
      output.WriteRawTag(34);
      output.WriteString(AlarmDescriptionCHN);
    }
    if (AlarmDescriptionENG.Length != 0) {
      output.WriteRawTag(42);
      output.WriteString(AlarmDescriptionENG);
    }
    if (IsMon != 0) {
      output.WriteRawTag(48);
      output.WriteUInt32(IsMon);
    }
    if (createTime_ != null) {
      output.WriteRawTag(58);
      output.WriteMessage(CreateTime);
    }
    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 (Id != 0) {
      size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Id);
    }
    if (AlarmID != 0) {
      size += 1 + pb::CodedOutputStream.ComputeUInt32Size(AlarmID);
    }
    if (AlarmLevel != global::Level.DefaulLevel) {
      size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) AlarmLevel);
    }
    if (AlarmDescriptionCHN.Length != 0) {
      size += 1 + pb::CodedOutputStream.ComputeStringSize(AlarmDescriptionCHN);
    }
    if (AlarmDescriptionENG.Length != 0) {
      size += 1 + pb::CodedOutputStream.ComputeStringSize(AlarmDescriptionENG);
    }
    if (IsMon != 0) {
      size += 1 + pb::CodedOutputStream.ComputeUInt32Size(IsMon);
    }
    if (createTime_ != null) {
      size += 1 + pb::CodedOutputStream.ComputeMessageSize(CreateTime);
    }
    if (_unknownFields != null) {
      size += _unknownFields.CalculateSize();
    }
    return size;
  }

  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public void MergeFrom(AlarmAttri other) {
    if (other == null) {
      return;
    }
    if (other.Id != 0) {
      Id = other.Id;
    }
    if (other.AlarmID != 0) {
      AlarmID = other.AlarmID;
    }
    if (other.AlarmLevel != global::Level.DefaulLevel) {
      AlarmLevel = other.AlarmLevel;
    }
    if (other.AlarmDescriptionCHN.Length != 0) {
      AlarmDescriptionCHN = other.AlarmDescriptionCHN;
    }
    if (other.AlarmDescriptionENG.Length != 0) {
      AlarmDescriptionENG = other.AlarmDescriptionENG;
    }
    if (other.IsMon != 0) {
      IsMon = other.IsMon;
    }
    if (other.createTime_ != null) {
      if (createTime_ == null) {
        CreateTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
      }
      CreateTime.MergeFrom(other.CreateTime);
    }
    _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: {
          Id = input.ReadUInt32();
          break;
        }
        case 16: {
          AlarmID = input.ReadUInt32();
          break;
        }
        case 24: {
          AlarmLevel = (global::Level) input.ReadEnum();
          break;
        }
        case 34: {
          AlarmDescriptionCHN = input.ReadString();
          break;
        }
        case 42: {
          AlarmDescriptionENG = input.ReadString();
          break;
        }
        case 48: {
          IsMon = input.ReadUInt32();
          break;
        }
        case 58: {
          if (createTime_ == null) {
            CreateTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
          }
          input.ReadMessage(CreateTime);
          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: {
          Id = input.ReadUInt32();
          break;
        }
        case 16: {
          AlarmID = input.ReadUInt32();
          break;
        }
        case 24: {
          AlarmLevel = (global::Level) input.ReadEnum();
          break;
        }
        case 34: {
          AlarmDescriptionCHN = input.ReadString();
          break;
        }
        case 42: {
          AlarmDescriptionENG = input.ReadString();
          break;
        }
        case 48: {
          IsMon = input.ReadUInt32();
          break;
        }
        case 58: {
          if (createTime_ == null) {
            CreateTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
          }
          input.ReadMessage(CreateTime);
          break;
        }
      }
    }
  }
  #endif

}

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

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

  partial void OnConstruction();

  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public PerAttri(PerAttri other) : this() {
    id_ = other.id_;
    perID_ = other.perID_;
    dataCatlog_ = other.dataCatlog_;
    fieldName_ = other.fieldName_;
    perDescriptionCHN_ = other.perDescriptionCHN_;
    perDescriptionENG_ = other.perDescriptionENG_;
    fieldType_ = other.fieldType_;
    fieldUnit_ = other.fieldUnit_;
    operator1_ = other.operator1_;
    operand1_ = other.operand1_;
    relation_ = other.relation_;
    operator2_ = other.operator2_;
    operand2_ = other.operand2_;
    isMon_ = other.isMon_;
    perAlarmLevel_ = other.perAlarmLevel_;
    alarmDesCHN_ = other.alarmDesCHN_;
    alarmDesENG_ = other.alarmDesENG_;
    createTime_ = other.createTime_ != null ? other.createTime_.Clone() : null;
    _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
  }

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

  /// <summary>Field number for the "Id" field.</summary>
  public const int IdFieldNumber = 1;
  private uint id_;
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public uint Id {
    get { return id_; }
    set {
      id_ = value;
    }
  }

  /// <summary>Field number for the "PerID" field.</summary>
  public const int PerIDFieldNumber = 2;
  private uint perID_;
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public uint PerID {
    get { return perID_; }
    set {
      perID_ = value;
    }
  }

  /// <summary>Field number for the "DataCatlog" field.</summary>
  public const int DataCatlogFieldNumber = 3;
  private string dataCatlog_ = "";
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public string DataCatlog {
    get { return dataCatlog_; }
    set {
      dataCatlog_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
    }
  }

  /// <summary>Field number for the "FieldName" field.</summary>
  public const int FieldNameFieldNumber = 4;
  private string fieldName_ = "";
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public string FieldName {
    get { return fieldName_; }
    set {
      fieldName_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
    }
  }

  /// <summary>Field number for the "PerDescriptionCHN" field.</summary>
  public const int PerDescriptionCHNFieldNumber = 5;
  private string perDescriptionCHN_ = "";
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public string PerDescriptionCHN {
    get { return perDescriptionCHN_; }
    set {
      perDescriptionCHN_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
    }
  }

  /// <summary>Field number for the "PerDescriptionENG" field.</summary>
  public const int PerDescriptionENGFieldNumber = 6;
  private string perDescriptionENG_ = "";
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public string PerDescriptionENG {
    get { return perDescriptionENG_; }
    set {
      perDescriptionENG_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
    }
  }

  /// <summary>Field number for the "FieldType" field.</summary>
  public const int FieldTypeFieldNumber = 7;
  private global::OperandType fieldType_ = global::OperandType.Default;
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public global::OperandType FieldType {
    get { return fieldType_; }
    set {
      fieldType_ = value;
    }
  }

  /// <summary>Field number for the "FieldUnit" field.</summary>
  public const int FieldUnitFieldNumber = 8;
  private string fieldUnit_ = "";
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public string FieldUnit {
    get { return fieldUnit_; }
    set {
      fieldUnit_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
    }
  }

  /// <summary>Field number for the "Operator1" field.</summary>
  public const int Operator1FieldNumber = 9;
  private global::Operator operator1_ = global::Operator.DefaultOperator;
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public global::Operator Operator1 {
    get { return operator1_; }
    set {
      operator1_ = value;
    }
  }

  /// <summary>Field number for the "Operand1" field.</summary>
  public const int Operand1FieldNumber = 10;
  private string operand1_ = "";
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public string Operand1 {
    get { return operand1_; }
    set {
      operand1_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
    }
  }

  /// <summary>Field number for the "Relation" field.</summary>
  public const int RelationFieldNumber = 11;
  private global::RelationOperator relation_ = global::RelationOperator.DefaultRelationOperator;
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public global::RelationOperator Relation {
    get { return relation_; }
    set {
      relation_ = value;
    }
  }

  /// <summary>Field number for the "Operator2" field.</summary>
  public const int Operator2FieldNumber = 12;
  private global::Operator operator2_ = global::Operator.DefaultOperator;
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public global::Operator Operator2 {
    get { return operator2_; }
    set {
      operator2_ = value;
    }
  }

  /// <summary>Field number for the "Operand2" field.</summary>
  public const int Operand2FieldNumber = 13;
  private string operand2_ = "";
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public string Operand2 {
    get { return operand2_; }
    set {
      operand2_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
    }
  }

  /// <summary>Field number for the "IsMon" field.</summary>
  public const int IsMonFieldNumber = 14;
  private uint isMon_;
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public uint IsMon {
    get { return isMon_; }
    set {
      isMon_ = value;
    }
  }

  /// <summary>Field number for the "PerAlarmLevel" field.</summary>
  public const int PerAlarmLevelFieldNumber = 15;
  private global::Level perAlarmLevel_ = global::Level.DefaulLevel;
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public global::Level PerAlarmLevel {
    get { return perAlarmLevel_; }
    set {
      perAlarmLevel_ = value;
    }
  }

  /// <summary>Field number for the "AlarmDesCHN" field.</summary>
  public const int AlarmDesCHNFieldNumber = 16;
  private string alarmDesCHN_ = "";
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public string AlarmDesCHN {
    get { return alarmDesCHN_; }
    set {
      alarmDesCHN_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
    }
  }

  /// <summary>Field number for the "AlarmDesENG" field.</summary>
  public const int AlarmDesENGFieldNumber = 17;
  private string alarmDesENG_ = "";
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public string AlarmDesENG {
    get { return alarmDesENG_; }
    set {
      alarmDesENG_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
    }
  }

  /// <summary>Field number for the "CreateTime" field.</summary>
  public const int CreateTimeFieldNumber = 18;
  private global::Google.Protobuf.WellKnownTypes.Timestamp createTime_;
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public global::Google.Protobuf.WellKnownTypes.Timestamp CreateTime {
    get { return createTime_; }
    set {
      createTime_ = value;
    }
  }

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

  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public bool Equals(PerAttri other) {
    if (ReferenceEquals(other, null)) {
      return false;
    }
    if (ReferenceEquals(other, this)) {
      return true;
    }
    if (Id != other.Id) return false;
    if (PerID != other.PerID) return false;
    if (DataCatlog != other.DataCatlog) return false;
    if (FieldName != other.FieldName) return false;
    if (PerDescriptionCHN != other.PerDescriptionCHN) return false;
    if (PerDescriptionENG != other.PerDescriptionENG) return false;
    if (FieldType != other.FieldType) return false;
    if (FieldUnit != other.FieldUnit) return false;
    if (Operator1 != other.Operator1) return false;
    if (Operand1 != other.Operand1) return false;
    if (Relation != other.Relation) return false;
    if (Operator2 != other.Operator2) return false;
    if (Operand2 != other.Operand2) return false;
    if (IsMon != other.IsMon) return false;
    if (PerAlarmLevel != other.PerAlarmLevel) return false;
    if (AlarmDesCHN != other.AlarmDesCHN) return false;
    if (AlarmDesENG != other.AlarmDesENG) return false;
    if (!object.Equals(CreateTime, other.CreateTime)) 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 (Id != 0) hash ^= Id.GetHashCode();
    if (PerID != 0) hash ^= PerID.GetHashCode();
    if (DataCatlog.Length != 0) hash ^= DataCatlog.GetHashCode();
    if (FieldName.Length != 0) hash ^= FieldName.GetHashCode();
    if (PerDescriptionCHN.Length != 0) hash ^= PerDescriptionCHN.GetHashCode();
    if (PerDescriptionENG.Length != 0) hash ^= PerDescriptionENG.GetHashCode();
    if (FieldType != global::OperandType.Default) hash ^= FieldType.GetHashCode();
    if (FieldUnit.Length != 0) hash ^= FieldUnit.GetHashCode();
    if (Operator1 != global::Operator.DefaultOperator) hash ^= Operator1.GetHashCode();
    if (Operand1.Length != 0) hash ^= Operand1.GetHashCode();
    if (Relation != global::RelationOperator.DefaultRelationOperator) hash ^= Relation.GetHashCode();
    if (Operator2 != global::Operator.DefaultOperator) hash ^= Operator2.GetHashCode();
    if (Operand2.Length != 0) hash ^= Operand2.GetHashCode();
    if (IsMon != 0) hash ^= IsMon.GetHashCode();
    if (PerAlarmLevel != global::Level.DefaulLevel) hash ^= PerAlarmLevel.GetHashCode();
    if (AlarmDesCHN.Length != 0) hash ^= AlarmDesCHN.GetHashCode();
    if (AlarmDesENG.Length != 0) hash ^= AlarmDesENG.GetHashCode();
    if (createTime_ != null) hash ^= CreateTime.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 (Id != 0) {
      output.WriteRawTag(8);
      output.WriteUInt32(Id);
    }
    if (PerID != 0) {
      output.WriteRawTag(16);
      output.WriteUInt32(PerID);
    }
    if (DataCatlog.Length != 0) {
      output.WriteRawTag(26);
      output.WriteString(DataCatlog);
    }
    if (FieldName.Length != 0) {
      output.WriteRawTag(34);
      output.WriteString(FieldName);
    }
    if (PerDescriptionCHN.Length != 0) {
      output.WriteRawTag(42);
      output.WriteString(PerDescriptionCHN);
    }
    if (PerDescriptionENG.Length != 0) {
      output.WriteRawTag(50);
      output.WriteString(PerDescriptionENG);
    }
    if (FieldType != global::OperandType.Default) {
      output.WriteRawTag(56);
      output.WriteEnum((int) FieldType);
    }
    if (FieldUnit.Length != 0) {
      output.WriteRawTag(66);
      output.WriteString(FieldUnit);
    }
    if (Operator1 != global::Operator.DefaultOperator) {
      output.WriteRawTag(72);
      output.WriteEnum((int) Operator1);
    }
    if (Operand1.Length != 0) {
      output.WriteRawTag(82);
      output.WriteString(Operand1);
    }
    if (Relation != global::RelationOperator.DefaultRelationOperator) {
      output.WriteRawTag(88);
      output.WriteEnum((int) Relation);
    }
    if (Operator2 != global::Operator.DefaultOperator) {
      output.WriteRawTag(96);
      output.WriteEnum((int) Operator2);
    }
    if (Operand2.Length != 0) {
      output.WriteRawTag(106);
      output.WriteString(Operand2);
    }
    if (IsMon != 0) {
      output.WriteRawTag(112);
      output.WriteUInt32(IsMon);
    }
    if (PerAlarmLevel != global::Level.DefaulLevel) {
      output.WriteRawTag(120);
      output.WriteEnum((int) PerAlarmLevel);
    }
    if (AlarmDesCHN.Length != 0) {
      output.WriteRawTag(130, 1);
      output.WriteString(AlarmDesCHN);
    }
    if (AlarmDesENG.Length != 0) {
      output.WriteRawTag(138, 1);
      output.WriteString(AlarmDesENG);
    }
    if (createTime_ != null) {
      output.WriteRawTag(146, 1);
      output.WriteMessage(CreateTime);
    }
    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 (Id != 0) {
      output.WriteRawTag(8);
      output.WriteUInt32(Id);
    }
    if (PerID != 0) {
      output.WriteRawTag(16);
      output.WriteUInt32(PerID);
    }
    if (DataCatlog.Length != 0) {
      output.WriteRawTag(26);
      output.WriteString(DataCatlog);
    }
    if (FieldName.Length != 0) {
      output.WriteRawTag(34);
      output.WriteString(FieldName);
    }
    if (PerDescriptionCHN.Length != 0) {
      output.WriteRawTag(42);
      output.WriteString(PerDescriptionCHN);
    }
    if (PerDescriptionENG.Length != 0) {
      output.WriteRawTag(50);
      output.WriteString(PerDescriptionENG);
    }
    if (FieldType != global::OperandType.Default) {
      output.WriteRawTag(56);
      output.WriteEnum((int) FieldType);
    }
    if (FieldUnit.Length != 0) {
      output.WriteRawTag(66);
      output.WriteString(FieldUnit);
    }
    if (Operator1 != global::Operator.DefaultOperator) {
      output.WriteRawTag(72);
      output.WriteEnum((int) Operator1);
    }
    if (Operand1.Length != 0) {
      output.WriteRawTag(82);
      output.WriteString(Operand1);
    }
    if (Relation != global::RelationOperator.DefaultRelationOperator) {
      output.WriteRawTag(88);
      output.WriteEnum((int) Relation);
    }
    if (Operator2 != global::Operator.DefaultOperator) {
      output.WriteRawTag(96);
      output.WriteEnum((int) Operator2);
    }
    if (Operand2.Length != 0) {
      output.WriteRawTag(106);
      output.WriteString(Operand2);
    }
    if (IsMon != 0) {
      output.WriteRawTag(112);
      output.WriteUInt32(IsMon);
    }
    if (PerAlarmLevel != global::Level.DefaulLevel) {
      output.WriteRawTag(120);
      output.WriteEnum((int) PerAlarmLevel);
    }
    if (AlarmDesCHN.Length != 0) {
      output.WriteRawTag(130, 1);
      output.WriteString(AlarmDesCHN);
    }
    if (AlarmDesENG.Length != 0) {
      output.WriteRawTag(138, 1);
      output.WriteString(AlarmDesENG);
    }
    if (createTime_ != null) {
      output.WriteRawTag(146, 1);
      output.WriteMessage(CreateTime);
    }
    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 (Id != 0) {
      size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Id);
    }
    if (PerID != 0) {
      size += 1 + pb::CodedOutputStream.ComputeUInt32Size(PerID);
    }
    if (DataCatlog.Length != 0) {
      size += 1 + pb::CodedOutputStream.ComputeStringSize(DataCatlog);
    }
    if (FieldName.Length != 0) {
      size += 1 + pb::CodedOutputStream.ComputeStringSize(FieldName);
    }
    if (PerDescriptionCHN.Length != 0) {
      size += 1 + pb::CodedOutputStream.ComputeStringSize(PerDescriptionCHN);
    }
    if (PerDescriptionENG.Length != 0) {
      size += 1 + pb::CodedOutputStream.ComputeStringSize(PerDescriptionENG);
    }
    if (FieldType != global::OperandType.Default) {
      size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) FieldType);
    }
    if (FieldUnit.Length != 0) {
      size += 1 + pb::CodedOutputStream.ComputeStringSize(FieldUnit);
    }
    if (Operator1 != global::Operator.DefaultOperator) {
      size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Operator1);
    }
    if (Operand1.Length != 0) {
      size += 1 + pb::CodedOutputStream.ComputeStringSize(Operand1);
    }
    if (Relation != global::RelationOperator.DefaultRelationOperator) {
      size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Relation);
    }
    if (Operator2 != global::Operator.DefaultOperator) {
      size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Operator2);
    }
    if (Operand2.Length != 0) {
      size += 1 + pb::CodedOutputStream.ComputeStringSize(Operand2);
    }
    if (IsMon != 0) {
      size += 1 + pb::CodedOutputStream.ComputeUInt32Size(IsMon);
    }
    if (PerAlarmLevel != global::Level.DefaulLevel) {
      size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) PerAlarmLevel);
    }
    if (AlarmDesCHN.Length != 0) {
      size += 2 + pb::CodedOutputStream.ComputeStringSize(AlarmDesCHN);
    }
    if (AlarmDesENG.Length != 0) {
      size += 2 + pb::CodedOutputStream.ComputeStringSize(AlarmDesENG);
    }
    if (createTime_ != null) {
      size += 2 + pb::CodedOutputStream.ComputeMessageSize(CreateTime);
    }
    if (_unknownFields != null) {
      size += _unknownFields.CalculateSize();
    }
    return size;
  }

  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public void MergeFrom(PerAttri other) {
    if (other == null) {
      return;
    }
    if (other.Id != 0) {
      Id = other.Id;
    }
    if (other.PerID != 0) {
      PerID = other.PerID;
    }
    if (other.DataCatlog.Length != 0) {
      DataCatlog = other.DataCatlog;
    }
    if (other.FieldName.Length != 0) {
      FieldName = other.FieldName;
    }
    if (other.PerDescriptionCHN.Length != 0) {
      PerDescriptionCHN = other.PerDescriptionCHN;
    }
    if (other.PerDescriptionENG.Length != 0) {
      PerDescriptionENG = other.PerDescriptionENG;
    }
    if (other.FieldType != global::OperandType.Default) {
      FieldType = other.FieldType;
    }
    if (other.FieldUnit.Length != 0) {
      FieldUnit = other.FieldUnit;
    }
    if (other.Operator1 != global::Operator.DefaultOperator) {
      Operator1 = other.Operator1;
    }
    if (other.Operand1.Length != 0) {
      Operand1 = other.Operand1;
    }
    if (other.Relation != global::RelationOperator.DefaultRelationOperator) {
      Relation = other.Relation;
    }
    if (other.Operator2 != global::Operator.DefaultOperator) {
      Operator2 = other.Operator2;
    }
    if (other.Operand2.Length != 0) {
      Operand2 = other.Operand2;
    }
    if (other.IsMon != 0) {
      IsMon = other.IsMon;
    }
    if (other.PerAlarmLevel != global::Level.DefaulLevel) {
      PerAlarmLevel = other.PerAlarmLevel;
    }
    if (other.AlarmDesCHN.Length != 0) {
      AlarmDesCHN = other.AlarmDesCHN;
    }
    if (other.AlarmDesENG.Length != 0) {
      AlarmDesENG = other.AlarmDesENG;
    }
    if (other.createTime_ != null) {
      if (createTime_ == null) {
        CreateTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
      }
      CreateTime.MergeFrom(other.CreateTime);
    }
    _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: {
          Id = input.ReadUInt32();
          break;
        }
        case 16: {
          PerID = input.ReadUInt32();
          break;
        }
        case 26: {
          DataCatlog = input.ReadString();
          break;
        }
        case 34: {
          FieldName = input.ReadString();
          break;
        }
        case 42: {
          PerDescriptionCHN = input.ReadString();
          break;
        }
        case 50: {
          PerDescriptionENG = input.ReadString();
          break;
        }
        case 56: {
          FieldType = (global::OperandType) input.ReadEnum();
          break;
        }
        case 66: {
          FieldUnit = input.ReadString();
          break;
        }
        case 72: {
          Operator1 = (global::Operator) input.ReadEnum();
          break;
        }
        case 82: {
          Operand1 = input.ReadString();
          break;
        }
        case 88: {
          Relation = (global::RelationOperator) input.ReadEnum();
          break;
        }
        case 96: {
          Operator2 = (global::Operator) input.ReadEnum();
          break;
        }
        case 106: {
          Operand2 = input.ReadString();
          break;
        }
        case 112: {
          IsMon = input.ReadUInt32();
          break;
        }
        case 120: {
          PerAlarmLevel = (global::Level) input.ReadEnum();
          break;
        }
        case 130: {
          AlarmDesCHN = input.ReadString();
          break;
        }
        case 138: {
          AlarmDesENG = input.ReadString();
          break;
        }
        case 146: {
          if (createTime_ == null) {
            CreateTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
          }
          input.ReadMessage(CreateTime);
          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: {
          Id = input.ReadUInt32();
          break;
        }
        case 16: {
          PerID = input.ReadUInt32();
          break;
        }
        case 26: {
          DataCatlog = input.ReadString();
          break;
        }
        case 34: {
          FieldName = input.ReadString();
          break;
        }
        case 42: {
          PerDescriptionCHN = input.ReadString();
          break;
        }
        case 50: {
          PerDescriptionENG = input.ReadString();
          break;
        }
        case 56: {
          FieldType = (global::OperandType) input.ReadEnum();
          break;
        }
        case 66: {
          FieldUnit = input.ReadString();
          break;
        }
        case 72: {
          Operator1 = (global::Operator) input.ReadEnum();
          break;
        }
        case 82: {
          Operand1 = input.ReadString();
          break;
        }
        case 88: {
          Relation = (global::RelationOperator) input.ReadEnum();
          break;
        }
        case 96: {
          Operator2 = (global::Operator) input.ReadEnum();
          break;
        }
        case 106: {
          Operand2 = input.ReadString();
          break;
        }
        case 112: {
          IsMon = input.ReadUInt32();
          break;
        }
        case 120: {
          PerAlarmLevel = (global::Level) input.ReadEnum();
          break;
        }
        case 130: {
          AlarmDesCHN = input.ReadString();
          break;
        }
        case 138: {
          AlarmDesENG = input.ReadString();
          break;
        }
        case 146: {
          if (createTime_ == null) {
            CreateTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
          }
          input.ReadMessage(CreateTime);
          break;
        }
      }
    }
  }
  #endif

}

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

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

  partial void OnConstruction();

  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public CurrAlarm(CurrAlarm other) : this() {
    id_ = other.id_;
    alarmID_ = other.alarmID_;
    stationID_ = other.stationID_;
    deviceID_ = other.deviceID_;
    alarmLevel_ = other.alarmLevel_;
    alarmDescriptionCHN_ = other.alarmDescriptionCHN_;
    alarmDescriptionENG_ = other.alarmDescriptionENG_;
    reportTime_ = other.reportTime_ != null ? other.reportTime_.Clone() : null;
    _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
  }

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

  /// <summary>Field number for the "Id" field.</summary>
  public const int IdFieldNumber = 1;
  private uint id_;
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public uint Id {
    get { return id_; }
    set {
      id_ = value;
    }
  }

  /// <summary>Field number for the "AlarmID" field.</summary>
  public const int AlarmIDFieldNumber = 2;
  private uint alarmID_;
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public uint AlarmID {
    get { return alarmID_; }
    set {
      alarmID_ = value;
    }
  }

  /// <summary>Field number for the "StationID" field.</summary>
  public const int StationIDFieldNumber = 3;
  private uint stationID_;
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public uint StationID {
    get { return stationID_; }
    set {
      stationID_ = value;
    }
  }

  /// <summary>Field number for the "DeviceID" field.</summary>
  public const int DeviceIDFieldNumber = 4;
  private uint deviceID_;
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public uint DeviceID {
    get { return deviceID_; }
    set {
      deviceID_ = value;
    }
  }

  /// <summary>Field number for the "AlarmLevel" field.</summary>
  public const int AlarmLevelFieldNumber = 5;
  private global::Level alarmLevel_ = global::Level.DefaulLevel;
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public global::Level AlarmLevel {
    get { return alarmLevel_; }
    set {
      alarmLevel_ = value;
    }
  }

  /// <summary>Field number for the "AlarmDescriptionCHN" field.</summary>
  public const int AlarmDescriptionCHNFieldNumber = 6;
  private string alarmDescriptionCHN_ = "";
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public string AlarmDescriptionCHN {
    get { return alarmDescriptionCHN_; }
    set {
      alarmDescriptionCHN_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
    }
  }

  /// <summary>Field number for the "AlarmDescriptionENG" field.</summary>
  public const int AlarmDescriptionENGFieldNumber = 7;
  private string alarmDescriptionENG_ = "";
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public string AlarmDescriptionENG {
    get { return alarmDescriptionENG_; }
    set {
      alarmDescriptionENG_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
    }
  }

  /// <summary>Field number for the "ReportTime" field.</summary>
  public const int ReportTimeFieldNumber = 8;
  private global::Google.Protobuf.WellKnownTypes.Timestamp reportTime_;
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public global::Google.Protobuf.WellKnownTypes.Timestamp ReportTime {
    get { return reportTime_; }
    set {
      reportTime_ = value;
    }
  }

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

  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public bool Equals(CurrAlarm other) {
    if (ReferenceEquals(other, null)) {
      return false;
    }
    if (ReferenceEquals(other, this)) {
      return true;
    }
    if (Id != other.Id) return false;
    if (AlarmID != other.AlarmID) return false;
    if (StationID != other.StationID) return false;
    if (DeviceID != other.DeviceID) return false;
    if (AlarmLevel != other.AlarmLevel) return false;
    if (AlarmDescriptionCHN != other.AlarmDescriptionCHN) return false;
    if (AlarmDescriptionENG != other.AlarmDescriptionENG) return false;
    if (!object.Equals(ReportTime, other.ReportTime)) 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 (Id != 0) hash ^= Id.GetHashCode();
    if (AlarmID != 0) hash ^= AlarmID.GetHashCode();
    if (StationID != 0) hash ^= StationID.GetHashCode();
    if (DeviceID != 0) hash ^= DeviceID.GetHashCode();
    if (AlarmLevel != global::Level.DefaulLevel) hash ^= AlarmLevel.GetHashCode();
    if (AlarmDescriptionCHN.Length != 0) hash ^= AlarmDescriptionCHN.GetHashCode();
    if (AlarmDescriptionENG.Length != 0) hash ^= AlarmDescriptionENG.GetHashCode();
    if (reportTime_ != null) hash ^= ReportTime.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 (Id != 0) {
      output.WriteRawTag(8);
      output.WriteUInt32(Id);
    }
    if (AlarmID != 0) {
      output.WriteRawTag(16);
      output.WriteUInt32(AlarmID);
    }
    if (StationID != 0) {
      output.WriteRawTag(24);
      output.WriteUInt32(StationID);
    }
    if (DeviceID != 0) {
      output.WriteRawTag(32);
      output.WriteUInt32(DeviceID);
    }
    if (AlarmLevel != global::Level.DefaulLevel) {
      output.WriteRawTag(40);
      output.WriteEnum((int) AlarmLevel);
    }
    if (AlarmDescriptionCHN.Length != 0) {
      output.WriteRawTag(50);
      output.WriteString(AlarmDescriptionCHN);
    }
    if (AlarmDescriptionENG.Length != 0) {
      output.WriteRawTag(58);
      output.WriteString(AlarmDescriptionENG);
    }
    if (reportTime_ != null) {
      output.WriteRawTag(66);
      output.WriteMessage(ReportTime);
    }
    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 (Id != 0) {
      output.WriteRawTag(8);
      output.WriteUInt32(Id);
    }
    if (AlarmID != 0) {
      output.WriteRawTag(16);
      output.WriteUInt32(AlarmID);
    }
    if (StationID != 0) {
      output.WriteRawTag(24);
      output.WriteUInt32(StationID);
    }
    if (DeviceID != 0) {
      output.WriteRawTag(32);
      output.WriteUInt32(DeviceID);
    }
    if (AlarmLevel != global::Level.DefaulLevel) {
      output.WriteRawTag(40);
      output.WriteEnum((int) AlarmLevel);
    }
    if (AlarmDescriptionCHN.Length != 0) {
      output.WriteRawTag(50);
      output.WriteString(AlarmDescriptionCHN);
    }
    if (AlarmDescriptionENG.Length != 0) {
      output.WriteRawTag(58);
      output.WriteString(AlarmDescriptionENG);
    }
    if (reportTime_ != null) {
      output.WriteRawTag(66);
      output.WriteMessage(ReportTime);
    }
    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 (Id != 0) {
      size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Id);
    }
    if (AlarmID != 0) {
      size += 1 + pb::CodedOutputStream.ComputeUInt32Size(AlarmID);
    }
    if (StationID != 0) {
      size += 1 + pb::CodedOutputStream.ComputeUInt32Size(StationID);
    }
    if (DeviceID != 0) {
      size += 1 + pb::CodedOutputStream.ComputeUInt32Size(DeviceID);
    }
    if (AlarmLevel != global::Level.DefaulLevel) {
      size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) AlarmLevel);
    }
    if (AlarmDescriptionCHN.Length != 0) {
      size += 1 + pb::CodedOutputStream.ComputeStringSize(AlarmDescriptionCHN);
    }
    if (AlarmDescriptionENG.Length != 0) {
      size += 1 + pb::CodedOutputStream.ComputeStringSize(AlarmDescriptionENG);
    }
    if (reportTime_ != null) {
      size += 1 + pb::CodedOutputStream.ComputeMessageSize(ReportTime);
    }
    if (_unknownFields != null) {
      size += _unknownFields.CalculateSize();
    }
    return size;
  }

  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public void MergeFrom(CurrAlarm other) {
    if (other == null) {
      return;
    }
    if (other.Id != 0) {
      Id = other.Id;
    }
    if (other.AlarmID != 0) {
      AlarmID = other.AlarmID;
    }
    if (other.StationID != 0) {
      StationID = other.StationID;
    }
    if (other.DeviceID != 0) {
      DeviceID = other.DeviceID;
    }
    if (other.AlarmLevel != global::Level.DefaulLevel) {
      AlarmLevel = other.AlarmLevel;
    }
    if (other.AlarmDescriptionCHN.Length != 0) {
      AlarmDescriptionCHN = other.AlarmDescriptionCHN;
    }
    if (other.AlarmDescriptionENG.Length != 0) {
      AlarmDescriptionENG = other.AlarmDescriptionENG;
    }
    if (other.reportTime_ != null) {
      if (reportTime_ == null) {
        ReportTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
      }
      ReportTime.MergeFrom(other.ReportTime);
    }
    _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: {
          Id = input.ReadUInt32();
          break;
        }
        case 16: {
          AlarmID = input.ReadUInt32();
          break;
        }
        case 24: {
          StationID = input.ReadUInt32();
          break;
        }
        case 32: {
          DeviceID = input.ReadUInt32();
          break;
        }
        case 40: {
          AlarmLevel = (global::Level) input.ReadEnum();
          break;
        }
        case 50: {
          AlarmDescriptionCHN = input.ReadString();
          break;
        }
        case 58: {
          AlarmDescriptionENG = input.ReadString();
          break;
        }
        case 66: {
          if (reportTime_ == null) {
            ReportTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
          }
          input.ReadMessage(ReportTime);
          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: {
          Id = input.ReadUInt32();
          break;
        }
        case 16: {
          AlarmID = input.ReadUInt32();
          break;
        }
        case 24: {
          StationID = input.ReadUInt32();
          break;
        }
        case 32: {
          DeviceID = input.ReadUInt32();
          break;
        }
        case 40: {
          AlarmLevel = (global::Level) input.ReadEnum();
          break;
        }
        case 50: {
          AlarmDescriptionCHN = input.ReadString();
          break;
        }
        case 58: {
          AlarmDescriptionENG = input.ReadString();
          break;
        }
        case 66: {
          if (reportTime_ == null) {
            ReportTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
          }
          input.ReadMessage(ReportTime);
          break;
        }
      }
    }
  }
  #endif

}

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

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

  partial void OnConstruction();

  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public HisAlarm(HisAlarm other) : this() {
    id_ = other.id_;
    alarmID_ = other.alarmID_;
    stationID_ = other.stationID_;
    deviceID_ = other.deviceID_;
    alarmLevel_ = other.alarmLevel_;
    alarmDescriptionCHN_ = other.alarmDescriptionCHN_;
    alarmDescriptionENG_ = other.alarmDescriptionENG_;
    startTime_ = other.startTime_ != null ? other.startTime_.Clone() : null;
    endTime_ = other.endTime_ != null ? other.endTime_.Clone() : null;
    _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
  }

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

  /// <summary>Field number for the "Id" field.</summary>
  public const int IdFieldNumber = 1;
  private uint id_;
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public uint Id {
    get { return id_; }
    set {
      id_ = value;
    }
  }

  /// <summary>Field number for the "AlarmID" field.</summary>
  public const int AlarmIDFieldNumber = 2;
  private uint alarmID_;
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public uint AlarmID {
    get { return alarmID_; }
    set {
      alarmID_ = value;
    }
  }

  /// <summary>Field number for the "StationID" field.</summary>
  public const int StationIDFieldNumber = 3;
  private uint stationID_;
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public uint StationID {
    get { return stationID_; }
    set {
      stationID_ = value;
    }
  }

  /// <summary>Field number for the "DeviceID" field.</summary>
  public const int DeviceIDFieldNumber = 4;
  private uint deviceID_;
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public uint DeviceID {
    get { return deviceID_; }
    set {
      deviceID_ = value;
    }
  }

  /// <summary>Field number for the "AlarmLevel" field.</summary>
  public const int AlarmLevelFieldNumber = 5;
  private global::Level alarmLevel_ = global::Level.DefaulLevel;
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public global::Level AlarmLevel {
    get { return alarmLevel_; }
    set {
      alarmLevel_ = value;
    }
  }

  /// <summary>Field number for the "AlarmDescriptionCHN" field.</summary>
  public const int AlarmDescriptionCHNFieldNumber = 6;
  private string alarmDescriptionCHN_ = "";
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public string AlarmDescriptionCHN {
    get { return alarmDescriptionCHN_; }
    set {
      alarmDescriptionCHN_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
    }
  }

  /// <summary>Field number for the "AlarmDescriptionENG" field.</summary>
  public const int AlarmDescriptionENGFieldNumber = 7;
  private string alarmDescriptionENG_ = "";
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public string AlarmDescriptionENG {
    get { return alarmDescriptionENG_; }
    set {
      alarmDescriptionENG_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
    }
  }

  /// <summary>Field number for the "StartTime" field.</summary>
  public const int StartTimeFieldNumber = 8;
  private global::Google.Protobuf.WellKnownTypes.Timestamp startTime_;
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public global::Google.Protobuf.WellKnownTypes.Timestamp StartTime {
    get { return startTime_; }
    set {
      startTime_ = value;
    }
  }

  /// <summary>Field number for the "EndTime" field.</summary>
  public const int EndTimeFieldNumber = 9;
  private global::Google.Protobuf.WellKnownTypes.Timestamp endTime_;
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public global::Google.Protobuf.WellKnownTypes.Timestamp EndTime {
    get { return endTime_; }
    set {
      endTime_ = value;
    }
  }

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

  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public bool Equals(HisAlarm other) {
    if (ReferenceEquals(other, null)) {
      return false;
    }
    if (ReferenceEquals(other, this)) {
      return true;
    }
    if (Id != other.Id) return false;
    if (AlarmID != other.AlarmID) return false;
    if (StationID != other.StationID) return false;
    if (DeviceID != other.DeviceID) return false;
    if (AlarmLevel != other.AlarmLevel) return false;
    if (AlarmDescriptionCHN != other.AlarmDescriptionCHN) return false;
    if (AlarmDescriptionENG != other.AlarmDescriptionENG) return false;
    if (!object.Equals(StartTime, other.StartTime)) return false;
    if (!object.Equals(EndTime, other.EndTime)) 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 (Id != 0) hash ^= Id.GetHashCode();
    if (AlarmID != 0) hash ^= AlarmID.GetHashCode();
    if (StationID != 0) hash ^= StationID.GetHashCode();
    if (DeviceID != 0) hash ^= DeviceID.GetHashCode();
    if (AlarmLevel != global::Level.DefaulLevel) hash ^= AlarmLevel.GetHashCode();
    if (AlarmDescriptionCHN.Length != 0) hash ^= AlarmDescriptionCHN.GetHashCode();
    if (AlarmDescriptionENG.Length != 0) hash ^= AlarmDescriptionENG.GetHashCode();
    if (startTime_ != null) hash ^= StartTime.GetHashCode();
    if (endTime_ != null) hash ^= EndTime.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 (Id != 0) {
      output.WriteRawTag(8);
      output.WriteUInt32(Id);
    }
    if (AlarmID != 0) {
      output.WriteRawTag(16);
      output.WriteUInt32(AlarmID);
    }
    if (StationID != 0) {
      output.WriteRawTag(24);
      output.WriteUInt32(StationID);
    }
    if (DeviceID != 0) {
      output.WriteRawTag(32);
      output.WriteUInt32(DeviceID);
    }
    if (AlarmLevel != global::Level.DefaulLevel) {
      output.WriteRawTag(40);
      output.WriteEnum((int) AlarmLevel);
    }
    if (AlarmDescriptionCHN.Length != 0) {
      output.WriteRawTag(50);
      output.WriteString(AlarmDescriptionCHN);
    }
    if (AlarmDescriptionENG.Length != 0) {
      output.WriteRawTag(58);
      output.WriteString(AlarmDescriptionENG);
    }
    if (startTime_ != null) {
      output.WriteRawTag(66);
      output.WriteMessage(StartTime);
    }
    if (endTime_ != null) {
      output.WriteRawTag(74);
      output.WriteMessage(EndTime);
    }
    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 (Id != 0) {
      output.WriteRawTag(8);
      output.WriteUInt32(Id);
    }
    if (AlarmID != 0) {
      output.WriteRawTag(16);
      output.WriteUInt32(AlarmID);
    }
    if (StationID != 0) {
      output.WriteRawTag(24);
      output.WriteUInt32(StationID);
    }
    if (DeviceID != 0) {
      output.WriteRawTag(32);
      output.WriteUInt32(DeviceID);
    }
    if (AlarmLevel != global::Level.DefaulLevel) {
      output.WriteRawTag(40);
      output.WriteEnum((int) AlarmLevel);
    }
    if (AlarmDescriptionCHN.Length != 0) {
      output.WriteRawTag(50);
      output.WriteString(AlarmDescriptionCHN);
    }
    if (AlarmDescriptionENG.Length != 0) {
      output.WriteRawTag(58);
      output.WriteString(AlarmDescriptionENG);
    }
    if (startTime_ != null) {
      output.WriteRawTag(66);
      output.WriteMessage(StartTime);
    }
    if (endTime_ != null) {
      output.WriteRawTag(74);
      output.WriteMessage(EndTime);
    }
    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 (Id != 0) {
      size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Id);
    }
    if (AlarmID != 0) {
      size += 1 + pb::CodedOutputStream.ComputeUInt32Size(AlarmID);
    }
    if (StationID != 0) {
      size += 1 + pb::CodedOutputStream.ComputeUInt32Size(StationID);
    }
    if (DeviceID != 0) {
      size += 1 + pb::CodedOutputStream.ComputeUInt32Size(DeviceID);
    }
    if (AlarmLevel != global::Level.DefaulLevel) {
      size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) AlarmLevel);
    }
    if (AlarmDescriptionCHN.Length != 0) {
      size += 1 + pb::CodedOutputStream.ComputeStringSize(AlarmDescriptionCHN);
    }
    if (AlarmDescriptionENG.Length != 0) {
      size += 1 + pb::CodedOutputStream.ComputeStringSize(AlarmDescriptionENG);
    }
    if (startTime_ != null) {
      size += 1 + pb::CodedOutputStream.ComputeMessageSize(StartTime);
    }
    if (endTime_ != null) {
      size += 1 + pb::CodedOutputStream.ComputeMessageSize(EndTime);
    }
    if (_unknownFields != null) {
      size += _unknownFields.CalculateSize();
    }
    return size;
  }

  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public void MergeFrom(HisAlarm other) {
    if (other == null) {
      return;
    }
    if (other.Id != 0) {
      Id = other.Id;
    }
    if (other.AlarmID != 0) {
      AlarmID = other.AlarmID;
    }
    if (other.StationID != 0) {
      StationID = other.StationID;
    }
    if (other.DeviceID != 0) {
      DeviceID = other.DeviceID;
    }
    if (other.AlarmLevel != global::Level.DefaulLevel) {
      AlarmLevel = other.AlarmLevel;
    }
    if (other.AlarmDescriptionCHN.Length != 0) {
      AlarmDescriptionCHN = other.AlarmDescriptionCHN;
    }
    if (other.AlarmDescriptionENG.Length != 0) {
      AlarmDescriptionENG = other.AlarmDescriptionENG;
    }
    if (other.startTime_ != null) {
      if (startTime_ == null) {
        StartTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
      }
      StartTime.MergeFrom(other.StartTime);
    }
    if (other.endTime_ != null) {
      if (endTime_ == null) {
        EndTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
      }
      EndTime.MergeFrom(other.EndTime);
    }
    _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: {
          Id = input.ReadUInt32();
          break;
        }
        case 16: {
          AlarmID = input.ReadUInt32();
          break;
        }
        case 24: {
          StationID = input.ReadUInt32();
          break;
        }
        case 32: {
          DeviceID = input.ReadUInt32();
          break;
        }
        case 40: {
          AlarmLevel = (global::Level) input.ReadEnum();
          break;
        }
        case 50: {
          AlarmDescriptionCHN = input.ReadString();
          break;
        }
        case 58: {
          AlarmDescriptionENG = input.ReadString();
          break;
        }
        case 66: {
          if (startTime_ == null) {
            StartTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
          }
          input.ReadMessage(StartTime);
          break;
        }
        case 74: {
          if (endTime_ == null) {
            EndTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
          }
          input.ReadMessage(EndTime);
          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: {
          Id = input.ReadUInt32();
          break;
        }
        case 16: {
          AlarmID = input.ReadUInt32();
          break;
        }
        case 24: {
          StationID = input.ReadUInt32();
          break;
        }
        case 32: {
          DeviceID = input.ReadUInt32();
          break;
        }
        case 40: {
          AlarmLevel = (global::Level) input.ReadEnum();
          break;
        }
        case 50: {
          AlarmDescriptionCHN = input.ReadString();
          break;
        }
        case 58: {
          AlarmDescriptionENG = input.ReadString();
          break;
        }
        case 66: {
          if (startTime_ == null) {
            StartTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
          }
          input.ReadMessage(StartTime);
          break;
        }
        case 74: {
          if (endTime_ == null) {
            EndTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
          }
          input.ReadMessage(EndTime);
          break;
        }
      }
    }
  }
  #endif

}

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

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

  partial void OnConstruction();

  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public SysStatus(SysStatus other) : this() {
    stationID_ = other.stationID_;
    deviceID_ = other.deviceID_;
    status_ = other.status_;
    reportTime_ = other.reportTime_ != null ? other.reportTime_.Clone() : null;
    _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
  }

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

  /// <summary>Field number for the "StationID" field.</summary>
  public const int StationIDFieldNumber = 1;
  private uint stationID_;
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public uint StationID {
    get { return stationID_; }
    set {
      stationID_ = value;
    }
  }

  /// <summary>Field number for the "DeviceID" field.</summary>
  public const int DeviceIDFieldNumber = 2;
  private uint deviceID_;
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public uint DeviceID {
    get { return deviceID_; }
    set {
      deviceID_ = value;
    }
  }

  /// <summary>Field number for the "Status" field.</summary>
  public const int StatusFieldNumber = 3;
  private global::Devistatus status_ = global::Devistatus.InitStatus;
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public global::Devistatus Status {
    get { return status_; }
    set {
      status_ = value;
    }
  }

  /// <summary>Field number for the "ReportTime" field.</summary>
  public const int ReportTimeFieldNumber = 4;
  private global::Google.Protobuf.WellKnownTypes.Timestamp reportTime_;
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public global::Google.Protobuf.WellKnownTypes.Timestamp ReportTime {
    get { return reportTime_; }
    set {
      reportTime_ = value;
    }
  }

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

  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public bool Equals(SysStatus other) {
    if (ReferenceEquals(other, null)) {
      return false;
    }
    if (ReferenceEquals(other, this)) {
      return true;
    }
    if (StationID != other.StationID) return false;
    if (DeviceID != other.DeviceID) return false;
    if (Status != other.Status) return false;
    if (!object.Equals(ReportTime, other.ReportTime)) 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 (StationID != 0) hash ^= StationID.GetHashCode();
    if (DeviceID != 0) hash ^= DeviceID.GetHashCode();
    if (Status != global::Devistatus.InitStatus) hash ^= Status.GetHashCode();
    if (reportTime_ != null) hash ^= ReportTime.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 (StationID != 0) {
      output.WriteRawTag(8);
      output.WriteUInt32(StationID);
    }
    if (DeviceID != 0) {
      output.WriteRawTag(16);
      output.WriteUInt32(DeviceID);
    }
    if (Status != global::Devistatus.InitStatus) {
      output.WriteRawTag(24);
      output.WriteEnum((int) Status);
    }
    if (reportTime_ != null) {
      output.WriteRawTag(34);
      output.WriteMessage(ReportTime);
    }
    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 (StationID != 0) {
      output.WriteRawTag(8);
      output.WriteUInt32(StationID);
    }
    if (DeviceID != 0) {
      output.WriteRawTag(16);
      output.WriteUInt32(DeviceID);
    }
    if (Status != global::Devistatus.InitStatus) {
      output.WriteRawTag(24);
      output.WriteEnum((int) Status);
    }
    if (reportTime_ != null) {
      output.WriteRawTag(34);
      output.WriteMessage(ReportTime);
    }
    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 (StationID != 0) {
      size += 1 + pb::CodedOutputStream.ComputeUInt32Size(StationID);
    }
    if (DeviceID != 0) {
      size += 1 + pb::CodedOutputStream.ComputeUInt32Size(DeviceID);
    }
    if (Status != global::Devistatus.InitStatus) {
      size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Status);
    }
    if (reportTime_ != null) {
      size += 1 + pb::CodedOutputStream.ComputeMessageSize(ReportTime);
    }
    if (_unknownFields != null) {
      size += _unknownFields.CalculateSize();
    }
    return size;
  }

  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public void MergeFrom(SysStatus other) {
    if (other == null) {
      return;
    }
    if (other.StationID != 0) {
      StationID = other.StationID;
    }
    if (other.DeviceID != 0) {
      DeviceID = other.DeviceID;
    }
    if (other.Status != global::Devistatus.InitStatus) {
      Status = other.Status;
    }
    if (other.reportTime_ != null) {
      if (reportTime_ == null) {
        ReportTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
      }
      ReportTime.MergeFrom(other.ReportTime);
    }
    _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: {
          StationID = input.ReadUInt32();
          break;
        }
        case 16: {
          DeviceID = input.ReadUInt32();
          break;
        }
        case 24: {
          Status = (global::Devistatus) input.ReadEnum();
          break;
        }
        case 34: {
          if (reportTime_ == null) {
            ReportTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
          }
          input.ReadMessage(ReportTime);
          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: {
          StationID = input.ReadUInt32();
          break;
        }
        case 16: {
          DeviceID = input.ReadUInt32();
          break;
        }
        case 24: {
          Status = (global::Devistatus) input.ReadEnum();
          break;
        }
        case 34: {
          if (reportTime_ == null) {
            ReportTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
          }
          input.ReadMessage(ReportTime);
          break;
        }
      }
    }
  }
  #endif

}

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

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

  partial void OnConstruction();

  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public Log(Log other) : this() {
    stationID_ = other.stationID_;
    deviceID_ = other.deviceID_;
    loglevel_ = other.loglevel_;
    logInfoCHN_ = other.logInfoCHN_;
    logInfoENG_ = other.logInfoENG_;
    manipunator_ = other.manipunator_;
    reportTime_ = other.reportTime_ != null ? other.reportTime_.Clone() : null;
    _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
  }

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

  /// <summary>Field number for the "StationID" field.</summary>
  public const int StationIDFieldNumber = 1;
  private uint stationID_;
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public uint StationID {
    get { return stationID_; }
    set {
      stationID_ = value;
    }
  }

  /// <summary>Field number for the "DeviceID" field.</summary>
  public const int DeviceIDFieldNumber = 2;
  private uint deviceID_;
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public uint DeviceID {
    get { return deviceID_; }
    set {
      deviceID_ = value;
    }
  }

  /// <summary>Field number for the "Loglevel" field.</summary>
  public const int LoglevelFieldNumber = 3;
  private global::LogLevel loglevel_ = global::LogLevel.DefaultLogLevel;
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public global::LogLevel Loglevel {
    get { return loglevel_; }
    set {
      loglevel_ = value;
    }
  }

  /// <summary>Field number for the "LogInfoCHN" field.</summary>
  public const int LogInfoCHNFieldNumber = 4;
  private string logInfoCHN_ = "";
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public string LogInfoCHN {
    get { return logInfoCHN_; }
    set {
      logInfoCHN_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
    }
  }

  /// <summary>Field number for the "LogInfoENG" field.</summary>
  public const int LogInfoENGFieldNumber = 5;
  private string logInfoENG_ = "";
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public string LogInfoENG {
    get { return logInfoENG_; }
    set {
      logInfoENG_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
    }
  }

  /// <summary>Field number for the "Manipunator" field.</summary>
  public const int ManipunatorFieldNumber = 6;
  private string manipunator_ = "";
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public string Manipunator {
    get { return manipunator_; }
    set {
      manipunator_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
    }
  }

  /// <summary>Field number for the "ReportTime" field.</summary>
  public const int ReportTimeFieldNumber = 7;
  private global::Google.Protobuf.WellKnownTypes.Timestamp reportTime_;
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public global::Google.Protobuf.WellKnownTypes.Timestamp ReportTime {
    get { return reportTime_; }
    set {
      reportTime_ = value;
    }
  }

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

  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public bool Equals(Log other) {
    if (ReferenceEquals(other, null)) {
      return false;
    }
    if (ReferenceEquals(other, this)) {
      return true;
    }
    if (StationID != other.StationID) return false;
    if (DeviceID != other.DeviceID) return false;
    if (Loglevel != other.Loglevel) return false;
    if (LogInfoCHN != other.LogInfoCHN) return false;
    if (LogInfoENG != other.LogInfoENG) return false;
    if (Manipunator != other.Manipunator) return false;
    if (!object.Equals(ReportTime, other.ReportTime)) 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 (StationID != 0) hash ^= StationID.GetHashCode();
    if (DeviceID != 0) hash ^= DeviceID.GetHashCode();
    if (Loglevel != global::LogLevel.DefaultLogLevel) hash ^= Loglevel.GetHashCode();
    if (LogInfoCHN.Length != 0) hash ^= LogInfoCHN.GetHashCode();
    if (LogInfoENG.Length != 0) hash ^= LogInfoENG.GetHashCode();
    if (Manipunator.Length != 0) hash ^= Manipunator.GetHashCode();
    if (reportTime_ != null) hash ^= ReportTime.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 (StationID != 0) {
      output.WriteRawTag(8);
      output.WriteUInt32(StationID);
    }
    if (DeviceID != 0) {
      output.WriteRawTag(16);
      output.WriteUInt32(DeviceID);
    }
    if (Loglevel != global::LogLevel.DefaultLogLevel) {
      output.WriteRawTag(24);
      output.WriteEnum((int) Loglevel);
    }
    if (LogInfoCHN.Length != 0) {
      output.WriteRawTag(34);
      output.WriteString(LogInfoCHN);
    }
    if (LogInfoENG.Length != 0) {
      output.WriteRawTag(42);
      output.WriteString(LogInfoENG);
    }
    if (Manipunator.Length != 0) {
      output.WriteRawTag(50);
      output.WriteString(Manipunator);
    }
    if (reportTime_ != null) {
      output.WriteRawTag(58);
      output.WriteMessage(ReportTime);
    }
    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 (StationID != 0) {
      output.WriteRawTag(8);
      output.WriteUInt32(StationID);
    }
    if (DeviceID != 0) {
      output.WriteRawTag(16);
      output.WriteUInt32(DeviceID);
    }
    if (Loglevel != global::LogLevel.DefaultLogLevel) {
      output.WriteRawTag(24);
      output.WriteEnum((int) Loglevel);
    }
    if (LogInfoCHN.Length != 0) {
      output.WriteRawTag(34);
      output.WriteString(LogInfoCHN);
    }
    if (LogInfoENG.Length != 0) {
      output.WriteRawTag(42);
      output.WriteString(LogInfoENG);
    }
    if (Manipunator.Length != 0) {
      output.WriteRawTag(50);
      output.WriteString(Manipunator);
    }
    if (reportTime_ != null) {
      output.WriteRawTag(58);
      output.WriteMessage(ReportTime);
    }
    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 (StationID != 0) {
      size += 1 + pb::CodedOutputStream.ComputeUInt32Size(StationID);
    }
    if (DeviceID != 0) {
      size += 1 + pb::CodedOutputStream.ComputeUInt32Size(DeviceID);
    }
    if (Loglevel != global::LogLevel.DefaultLogLevel) {
      size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Loglevel);
    }
    if (LogInfoCHN.Length != 0) {
      size += 1 + pb::CodedOutputStream.ComputeStringSize(LogInfoCHN);
    }
    if (LogInfoENG.Length != 0) {
      size += 1 + pb::CodedOutputStream.ComputeStringSize(LogInfoENG);
    }
    if (Manipunator.Length != 0) {
      size += 1 + pb::CodedOutputStream.ComputeStringSize(Manipunator);
    }
    if (reportTime_ != null) {
      size += 1 + pb::CodedOutputStream.ComputeMessageSize(ReportTime);
    }
    if (_unknownFields != null) {
      size += _unknownFields.CalculateSize();
    }
    return size;
  }

  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public void MergeFrom(Log other) {
    if (other == null) {
      return;
    }
    if (other.StationID != 0) {
      StationID = other.StationID;
    }
    if (other.DeviceID != 0) {
      DeviceID = other.DeviceID;
    }
    if (other.Loglevel != global::LogLevel.DefaultLogLevel) {
      Loglevel = other.Loglevel;
    }
    if (other.LogInfoCHN.Length != 0) {
      LogInfoCHN = other.LogInfoCHN;
    }
    if (other.LogInfoENG.Length != 0) {
      LogInfoENG = other.LogInfoENG;
    }
    if (other.Manipunator.Length != 0) {
      Manipunator = other.Manipunator;
    }
    if (other.reportTime_ != null) {
      if (reportTime_ == null) {
        ReportTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
      }
      ReportTime.MergeFrom(other.ReportTime);
    }
    _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: {
          StationID = input.ReadUInt32();
          break;
        }
        case 16: {
          DeviceID = input.ReadUInt32();
          break;
        }
        case 24: {
          Loglevel = (global::LogLevel) input.ReadEnum();
          break;
        }
        case 34: {
          LogInfoCHN = input.ReadString();
          break;
        }
        case 42: {
          LogInfoENG = input.ReadString();
          break;
        }
        case 50: {
          Manipunator = input.ReadString();
          break;
        }
        case 58: {
          if (reportTime_ == null) {
            ReportTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
          }
          input.ReadMessage(ReportTime);
          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: {
          StationID = input.ReadUInt32();
          break;
        }
        case 16: {
          DeviceID = input.ReadUInt32();
          break;
        }
        case 24: {
          Loglevel = (global::LogLevel) input.ReadEnum();
          break;
        }
        case 34: {
          LogInfoCHN = input.ReadString();
          break;
        }
        case 42: {
          LogInfoENG = input.ReadString();
          break;
        }
        case 50: {
          Manipunator = input.ReadString();
          break;
        }
        case 58: {
          if (reportTime_ == null) {
            ReportTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
          }
          input.ReadMessage(ReportTime);
          break;
        }
      }
    }
  }
  #endif

}

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

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

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

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

  partial void OnConstruction();

  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public PerInfo(PerInfo other) : this() {
    id_ = other.id_;
    perID_ = other.perID_;
    stationID_ = other.stationID_;
    deviceID_ = other.deviceID_;
    dataCatlog_ = other.dataCatlog_;
    fieldName_ = other.fieldName_;
    fieldValue_ = other.fieldValue_;
    perDescriptionCHN_ = other.perDescriptionCHN_;
    perDescriptionENG_ = other.perDescriptionENG_;
    updateTime_ = other.updateTime_ != null ? other.updateTime_.Clone() : null;
    _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
  }

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

  /// <summary>Field number for the "Id" field.</summary>
  public const int IdFieldNumber = 1;
  private uint id_;
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public uint Id {
    get { return id_; }
    set {
      id_ = value;
    }
  }

  /// <summary>Field number for the "PerID" field.</summary>
  public const int PerIDFieldNumber = 2;
  private uint perID_;
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public uint PerID {
    get { return perID_; }
    set {
      perID_ = value;
    }
  }

  /// <summary>Field number for the "StationID" field.</summary>
  public const int StationIDFieldNumber = 3;
  private uint stationID_;
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public uint StationID {
    get { return stationID_; }
    set {
      stationID_ = value;
    }
  }

  /// <summary>Field number for the "DeviceID" field.</summary>
  public const int DeviceIDFieldNumber = 4;
  private uint deviceID_;
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public uint DeviceID {
    get { return deviceID_; }
    set {
      deviceID_ = value;
    }
  }

  /// <summary>Field number for the "DataCatlog" field.</summary>
  public const int DataCatlogFieldNumber = 5;
  private string dataCatlog_ = "";
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public string DataCatlog {
    get { return dataCatlog_; }
    set {
      dataCatlog_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
    }
  }

  /// <summary>Field number for the "FieldName" field.</summary>
  public const int FieldNameFieldNumber = 6;
  private string fieldName_ = "";
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public string FieldName {
    get { return fieldName_; }
    set {
      fieldName_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
    }
  }

  /// <summary>Field number for the "FieldValue" field.</summary>
  public const int FieldValueFieldNumber = 7;
  private string fieldValue_ = "";
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public string FieldValue {
    get { return fieldValue_; }
    set {
      fieldValue_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
    }
  }

  /// <summary>Field number for the "PerDescriptionCHN" field.</summary>
  public const int PerDescriptionCHNFieldNumber = 8;
  private string perDescriptionCHN_ = "";
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public string PerDescriptionCHN {
    get { return perDescriptionCHN_; }
    set {
      perDescriptionCHN_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
    }
  }

  /// <summary>Field number for the "PerDescriptionENG" field.</summary>
  public const int PerDescriptionENGFieldNumber = 9;
  private string perDescriptionENG_ = "";
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public string PerDescriptionENG {
    get { return perDescriptionENG_; }
    set {
      perDescriptionENG_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
    }
  }

  /// <summary>Field number for the "UpdateTime" field.</summary>
  public const int UpdateTimeFieldNumber = 10;
  private global::Google.Protobuf.WellKnownTypes.Timestamp updateTime_;
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public global::Google.Protobuf.WellKnownTypes.Timestamp UpdateTime {
    get { return updateTime_; }
    set {
      updateTime_ = value;
    }
  }

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

  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public bool Equals(PerInfo other) {
    if (ReferenceEquals(other, null)) {
      return false;
    }
    if (ReferenceEquals(other, this)) {
      return true;
    }
    if (Id != other.Id) return false;
    if (PerID != other.PerID) return false;
    if (StationID != other.StationID) return false;
    if (DeviceID != other.DeviceID) return false;
    if (DataCatlog != other.DataCatlog) return false;
    if (FieldName != other.FieldName) return false;
    if (FieldValue != other.FieldValue) return false;
    if (PerDescriptionCHN != other.PerDescriptionCHN) return false;
    if (PerDescriptionENG != other.PerDescriptionENG) return false;
    if (!object.Equals(UpdateTime, other.UpdateTime)) 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 (Id != 0) hash ^= Id.GetHashCode();
    if (PerID != 0) hash ^= PerID.GetHashCode();
    if (StationID != 0) hash ^= StationID.GetHashCode();
    if (DeviceID != 0) hash ^= DeviceID.GetHashCode();
    if (DataCatlog.Length != 0) hash ^= DataCatlog.GetHashCode();
    if (FieldName.Length != 0) hash ^= FieldName.GetHashCode();
    if (FieldValue.Length != 0) hash ^= FieldValue.GetHashCode();
    if (PerDescriptionCHN.Length != 0) hash ^= PerDescriptionCHN.GetHashCode();
    if (PerDescriptionENG.Length != 0) hash ^= PerDescriptionENG.GetHashCode();
    if (updateTime_ != null) hash ^= UpdateTime.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 (Id != 0) {
      output.WriteRawTag(8);
      output.WriteUInt32(Id);
    }
    if (PerID != 0) {
      output.WriteRawTag(16);
      output.WriteUInt32(PerID);
    }
    if (StationID != 0) {
      output.WriteRawTag(24);
      output.WriteUInt32(StationID);
    }
    if (DeviceID != 0) {
      output.WriteRawTag(32);
      output.WriteUInt32(DeviceID);
    }
    if (DataCatlog.Length != 0) {
      output.WriteRawTag(42);
      output.WriteString(DataCatlog);
    }
    if (FieldName.Length != 0) {
      output.WriteRawTag(50);
      output.WriteString(FieldName);
    }
    if (FieldValue.Length != 0) {
      output.WriteRawTag(58);
      output.WriteString(FieldValue);
    }
    if (PerDescriptionCHN.Length != 0) {
      output.WriteRawTag(66);
      output.WriteString(PerDescriptionCHN);
    }
    if (PerDescriptionENG.Length != 0) {
      output.WriteRawTag(74);
      output.WriteString(PerDescriptionENG);
    }
    if (updateTime_ != null) {
      output.WriteRawTag(82);
      output.WriteMessage(UpdateTime);
    }
    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 (Id != 0) {
      output.WriteRawTag(8);
      output.WriteUInt32(Id);
    }
    if (PerID != 0) {
      output.WriteRawTag(16);
      output.WriteUInt32(PerID);
    }
    if (StationID != 0) {
      output.WriteRawTag(24);
      output.WriteUInt32(StationID);
    }
    if (DeviceID != 0) {
      output.WriteRawTag(32);
      output.WriteUInt32(DeviceID);
    }
    if (DataCatlog.Length != 0) {
      output.WriteRawTag(42);
      output.WriteString(DataCatlog);
    }
    if (FieldName.Length != 0) {
      output.WriteRawTag(50);
      output.WriteString(FieldName);
    }
    if (FieldValue.Length != 0) {
      output.WriteRawTag(58);
      output.WriteString(FieldValue);
    }
    if (PerDescriptionCHN.Length != 0) {
      output.WriteRawTag(66);
      output.WriteString(PerDescriptionCHN);
    }
    if (PerDescriptionENG.Length != 0) {
      output.WriteRawTag(74);
      output.WriteString(PerDescriptionENG);
    }
    if (updateTime_ != null) {
      output.WriteRawTag(82);
      output.WriteMessage(UpdateTime);
    }
    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 (Id != 0) {
      size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Id);
    }
    if (PerID != 0) {
      size += 1 + pb::CodedOutputStream.ComputeUInt32Size(PerID);
    }
    if (StationID != 0) {
      size += 1 + pb::CodedOutputStream.ComputeUInt32Size(StationID);
    }
    if (DeviceID != 0) {
      size += 1 + pb::CodedOutputStream.ComputeUInt32Size(DeviceID);
    }
    if (DataCatlog.Length != 0) {
      size += 1 + pb::CodedOutputStream.ComputeStringSize(DataCatlog);
    }
    if (FieldName.Length != 0) {
      size += 1 + pb::CodedOutputStream.ComputeStringSize(FieldName);
    }
    if (FieldValue.Length != 0) {
      size += 1 + pb::CodedOutputStream.ComputeStringSize(FieldValue);
    }
    if (PerDescriptionCHN.Length != 0) {
      size += 1 + pb::CodedOutputStream.ComputeStringSize(PerDescriptionCHN);
    }
    if (PerDescriptionENG.Length != 0) {
      size += 1 + pb::CodedOutputStream.ComputeStringSize(PerDescriptionENG);
    }
    if (updateTime_ != null) {
      size += 1 + pb::CodedOutputStream.ComputeMessageSize(UpdateTime);
    }
    if (_unknownFields != null) {
      size += _unknownFields.CalculateSize();
    }
    return size;
  }

  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public void MergeFrom(PerInfo other) {
    if (other == null) {
      return;
    }
    if (other.Id != 0) {
      Id = other.Id;
    }
    if (other.PerID != 0) {
      PerID = other.PerID;
    }
    if (other.StationID != 0) {
      StationID = other.StationID;
    }
    if (other.DeviceID != 0) {
      DeviceID = other.DeviceID;
    }
    if (other.DataCatlog.Length != 0) {
      DataCatlog = other.DataCatlog;
    }
    if (other.FieldName.Length != 0) {
      FieldName = other.FieldName;
    }
    if (other.FieldValue.Length != 0) {
      FieldValue = other.FieldValue;
    }
    if (other.PerDescriptionCHN.Length != 0) {
      PerDescriptionCHN = other.PerDescriptionCHN;
    }
    if (other.PerDescriptionENG.Length != 0) {
      PerDescriptionENG = other.PerDescriptionENG;
    }
    if (other.updateTime_ != null) {
      if (updateTime_ == null) {
        UpdateTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
      }
      UpdateTime.MergeFrom(other.UpdateTime);
    }
    _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: {
          Id = input.ReadUInt32();
          break;
        }
        case 16: {
          PerID = input.ReadUInt32();
          break;
        }
        case 24: {
          StationID = input.ReadUInt32();
          break;
        }
        case 32: {
          DeviceID = input.ReadUInt32();
          break;
        }
        case 42: {
          DataCatlog = input.ReadString();
          break;
        }
        case 50: {
          FieldName = input.ReadString();
          break;
        }
        case 58: {
          FieldValue = input.ReadString();
          break;
        }
        case 66: {
          PerDescriptionCHN = input.ReadString();
          break;
        }
        case 74: {
          PerDescriptionENG = input.ReadString();
          break;
        }
        case 82: {
          if (updateTime_ == null) {
            UpdateTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
          }
          input.ReadMessage(UpdateTime);
          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: {
          Id = input.ReadUInt32();
          break;
        }
        case 16: {
          PerID = input.ReadUInt32();
          break;
        }
        case 24: {
          StationID = input.ReadUInt32();
          break;
        }
        case 32: {
          DeviceID = input.ReadUInt32();
          break;
        }
        case 42: {
          DataCatlog = input.ReadString();
          break;
        }
        case 50: {
          FieldName = input.ReadString();
          break;
        }
        case 58: {
          FieldValue = input.ReadString();
          break;
        }
        case 66: {
          PerDescriptionCHN = input.ReadString();
          break;
        }
        case 74: {
          PerDescriptionENG = input.ReadString();
          break;
        }
        case 82: {
          if (updateTime_ == null) {
            UpdateTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
          }
          input.ReadMessage(UpdateTime);
          break;
        }
      }
    }
  }
  #endif

}

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

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

  [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 PerRequire() {
    OnConstruction();
  }

  partial void OnConstruction();

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

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

  /// <summary>Field number for the "DataCatlog" field.</summary>
  public const int DataCatlogFieldNumber = 1;
  private string dataCatlog_ = "";
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public string DataCatlog {
    get { return dataCatlog_; }
    set {
      dataCatlog_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
    }
  }

  /// <summary>Field number for the "FieldName" field.</summary>
  public const int FieldNameFieldNumber = 2;
  private string fieldName_ = "";
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public string FieldName {
    get { return fieldName_; }
    set {
      fieldName_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
    }
  }

  /// <summary>Field number for the "IsMon" field.</summary>
  public const int IsMonFieldNumber = 3;
  private uint isMon_;
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public uint IsMon {
    get { return isMon_; }
    set {
      isMon_ = value;
    }
  }

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

  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public bool Equals(PerRequire other) {
    if (ReferenceEquals(other, null)) {
      return false;
    }
    if (ReferenceEquals(other, this)) {
      return true;
    }
    if (DataCatlog != other.DataCatlog) return false;
    if (FieldName != other.FieldName) return false;
    if (IsMon != other.IsMon) 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 (DataCatlog.Length != 0) hash ^= DataCatlog.GetHashCode();
    if (FieldName.Length != 0) hash ^= FieldName.GetHashCode();
    if (IsMon != 0) hash ^= IsMon.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 (DataCatlog.Length != 0) {
      output.WriteRawTag(10);
      output.WriteString(DataCatlog);
    }
    if (FieldName.Length != 0) {
      output.WriteRawTag(18);
      output.WriteString(FieldName);
    }
    if (IsMon != 0) {
      output.WriteRawTag(24);
      output.WriteUInt32(IsMon);
    }
    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 (DataCatlog.Length != 0) {
      output.WriteRawTag(10);
      output.WriteString(DataCatlog);
    }
    if (FieldName.Length != 0) {
      output.WriteRawTag(18);
      output.WriteString(FieldName);
    }
    if (IsMon != 0) {
      output.WriteRawTag(24);
      output.WriteUInt32(IsMon);
    }
    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 (DataCatlog.Length != 0) {
      size += 1 + pb::CodedOutputStream.ComputeStringSize(DataCatlog);
    }
    if (FieldName.Length != 0) {
      size += 1 + pb::CodedOutputStream.ComputeStringSize(FieldName);
    }
    if (IsMon != 0) {
      size += 1 + pb::CodedOutputStream.ComputeUInt32Size(IsMon);
    }
    if (_unknownFields != null) {
      size += _unknownFields.CalculateSize();
    }
    return size;
  }

  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
  [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
  public void MergeFrom(PerRequire other) {
    if (other == null) {
      return;
    }
    if (other.DataCatlog.Length != 0) {
      DataCatlog = other.DataCatlog;
    }
    if (other.FieldName.Length != 0) {
      FieldName = other.FieldName;
    }
    if (other.IsMon != 0) {
      IsMon = other.IsMon;
    }
    _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: {
          DataCatlog = input.ReadString();
          break;
        }
        case 18: {
          FieldName = input.ReadString();
          break;
        }
        case 24: {
          IsMon = input.ReadUInt32();
          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: {
          DataCatlog = input.ReadString();
          break;
        }
        case 18: {
          FieldName = input.ReadString();
          break;
        }
        case 24: {
          IsMon = input.ReadUInt32();
          break;
        }
      }
    }
  }
  #endif

}

#endregion


#endregion Designer generated code
