using Bro.Common.Helper; using Bro.Common.Interface; using Bro.Common.Model; using Bro.Common.Model.Interface; using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing.Design; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Bro.Common.Base { public class DeviceConfigBase : IDeviceConfig { } public class InitialConfigBase : IInitialConfig { [Category("通用配置")] [Description("设备索引")] [ReadOnly(true)] public string ID { get; set; } = Guid.NewGuid().ToString().ToUpper(); [Category("通用配置")] [Description("设备名称")] public string Name { get; set; } = "UnNamed"; /// /// 设备是否启用 /// [Category("通用配置")] [Description("设备是否启用")] public bool IsEnabled { get; set; } = false; [Browsable(false)] public virtual string DriverType { get; set; } = ""; [Category("日志配置")] [Description("日志记录目录")] [Editor(typeof(FoldDialogEditor), typeof(UITypeEditor))] public string LogPath { get; set; } [Category("日志配置")] [Description("true:启用日志记录 false:不启用日志记录")] public bool IsEnableLog { get; set; } = false; public virtual List GetHalconToolPathList() { return new List(); } } public class InitialMonitorConfigBase : InitialConfigBase, IMonitorInitialConfig, IHalconToolPath { [Category("监听设置")] [Description("true:启用监听 false:不启用监听")] public bool IsEnableMonitor { get; set; } = true; [Category("监听设置")] [Description("扫描间隔时间,单位:ms")] public int ScanInterval { get; set; } = 100; [Category("监听设置")] [Description("超时设置,单位:ms")] public int Timeout { get; set; } = 500; [Category("监听设置")] [Description("警报配置列表")] [TypeConverter(typeof(CollectionCountConvert))] [Editor(typeof(ComplexCollectionEditor), typeof(UITypeEditor))] public List WarningSetCollection { get; set; } = new List(); [Category("监听设置")] [Description("监听操作配置集合")] [TypeConverter(typeof(CollectionCountConvert))] [Editor(typeof(ComplexCollectionEditor), typeof(UITypeEditor))] public List MonitorSetCollection { get; set; } = new List(); public new virtual List GetHalconToolPathList() { return MonitorSetCollection.SelectMany(u => { if (u.OpConfig is IHalconToolPath) { return (u.OpConfig as IHalconToolPath).GetHalconToolPathList(); } else { return new List(); } }).ToList(); } } }