using Bro.Common.Helper; using Newtonsoft.Json; using System; using System.ComponentModel; namespace Bro.Common.Model { /// /// 警报配置 /// public class WarningSet : IComplexDisplay { [Category("索引设置")] [Description("警报索引——字索引")] [DisplayName("警报字索引")] public int WarningIndex_Word { get; set; } [Category("索引设置")] [Description("警报索引——位索引")] [DisplayName("警报位索引")] public int WarningIndex_Bit { get; set; } [Category("触发设置")] [Description("true:高电平触发报警 false:低电平触发报警")] [DisplayName("警报值")] public bool TriggerValue { get; set; } = true; [Category("警报内容")] [Description("警报代码")] [DisplayName("警报代码")] public string WarningCode { get; set; } [Category("警报内容")] [Description("警报描述")] [DisplayName("警报描述")] public string WarningDescription { get; set; } [Category("级别设置")] [Description("警报级别")] [DisplayName("警报级别")] public int WarningLvl { get; set; } = 0; /// /// 表示报警状态,是报警地址值和警报触发值比较后的结果 /// true 正在报警 false 取消报警 /// [Browsable(false)] [JsonIgnore] public bool CurrentStatus { get; set; } = false; [Browsable(false)] [JsonIgnore] public string Source { get; set; } = ""; [Browsable(false)] [JsonIgnore] public DateTime TriggerTime { get; set; } = DateTime.Now; public string GetDisplayText() { return $"{WarningIndex_Word}:{WarningIndex_Bit}-{WarningCode}-{WarningDescription}"; } } }