using Bro.Common.Base; using Bro.Common.Helper; using Bro.Common.Interface; using Bro.Common.Model; using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing.Design; using System.IO.Ports; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Bro.Device.DAMModule { [Device("DAMModule", "DAM模块", EnumHelper.DeviceAttributeType.InitialConfig)] public class DAMInitialConfig : InitialConfigBase, IMonitorConfig { [Category("通信设置")] [Description("IO模块单元号")] public int UnitNum { get; set; } = 0; [Category("通信设置")] [Description("端口号")] [TypeConverter(typeof(SerialPortConverter))] public string PortName { get; set; } [Category("通信设置")] [Description("波特率")] [TypeConverter(typeof(BaudRateConverter))] public string BaudRate { get; set; } = "9600"; [Category("通信设置")] [Description("奇偶校验位")] public Parity Parity { get; set; } = Parity.None; [Category("通信设置")] [Description("数据位")] public int DataBits { get; set; } = 8; [Category("通信设置")] [Description("停止位")] public StopBits StopBits { get; set; } = StopBits.None; [Category("通信设置")] [Description("读写超时,单位为ms")] public int Timeout { get; set; } = 0; [Category("通信设置")] [Description("读取时等待时间,单位为ms")] public int ReadWaitTime { get; set; } = 10; [Category("IO设置")] [Description("输出点位数量")] [DefaultValue(8)] public int OutputNums { get; set; } = 8; [Category("IO设置")] [Description("输入点位数量")] [DefaultValue(8)] public int InputNums { get; set; } = 8; [Category("IO设置")] [Description("输出信号时默认持续时间,以毫秒为单位")] public int SignalElasped { get; set; } = 100; [Category("监听设置")] [Description("监听操作配置集合")] [DisplayName("监听配置")] [TypeConverter(typeof(CollectionCountConvert))] [Editor(typeof(ComplexCollectionEditor), typeof(UITypeEditor))] public List MonitorSetCollection { get; set; } = new List(); [Category("监听设置")] [Description("true:启动监听 false:关闭监听")] [DisplayName("监听启用")] public bool IsEnableMonitor { get; set; } = true; [Category("监听设置")] [Description("扫描间隔时间,单位:ms")] [DisplayName("扫描间隔")] public int MonitorInterval { get; set; } = 100; [Category("监听设置")] [Description("超时设置,单位:ms")] [DisplayName("监听超时")] public int MonitorTimeout { get; set; } = 500; [Category("监听设置")] [Description("true:监听输出信号 false:不监听输出信号")] [DisplayName("是否监听输出")] public bool IsMonitorOutput { get; set; } = false; public List GetAllMonitorSet() { return MonitorSetCollection; } } [Device("DAMModule", "DAM模块", EnumHelper.DeviceAttributeType.OperationConfig)] public class DAMOperationConfig : OperationConfigBase { } }