From 753b5add58defa5c09015308efb81bcaea0ebe91 Mon Sep 17 00:00:00 2001 From: xcd <834800634@qq.com> Date: 星期六, 04 七月 2020 12:36:55 +0800 Subject: [PATCH] 修改板卡操作配置基类复数化 --- src/Bro.Common.Device/DeviceBase/MotionCardBase.cs | 53 ++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 40 insertions(+), 13 deletions(-) diff --git a/src/Bro.Common.Device/DeviceBase/MotionCardBase.cs b/src/Bro.Common.Device/DeviceBase/MotionCardBase.cs index d7d1a41..2091140 100644 --- a/src/Bro.Common.Device/DeviceBase/MotionCardBase.cs +++ b/src/Bro.Common.Device/DeviceBase/MotionCardBase.cs @@ -27,12 +27,14 @@ public abstract void ResetAlarm(); public abstract ResponseMessage Run(IOperationConfig config); - public void ExcuteMonitorInvoke(DateTime dateTime, string invokeDevice, IDevice device, IMonitorSet monitorSet) + public virtual void ExcuteMonitorInvoke(DateTime dateTime, string invokeDevice, IDevice device, IMonitorSet monitorSet) { - OnMonitorInvoke?.BeginInvoke(dateTime, invokeDevice, device, monitorSet, null, null); + OnMonitorInvoke?.BeginInvoke(dateTime, invokeDevice, device, monitorSet, OnMethodInvoked, null); } - public void ExcuteMonitorAlarm(DateTime dateTime, IDevice device, IWarningSet warningSet) + public abstract void OnMethodInvoked(IAsyncResult ar); + + public virtual void ExcuteMonitorAlarm(DateTime dateTime, IDevice device, IWarningSet warningSet) { OnMonitorAlarm?.BeginInvoke(dateTime, device, warningSet, null, null); } @@ -124,7 +126,6 @@ public List<IMonitorSet> GetAllMonitorSet() { WarningSetCollection.ForEach(m => m.Source = this.Name); - MonitorSetCollection.ForEach(m => m.SourceDevice = this.Id); return MonitorSetCollection; } @@ -134,12 +135,30 @@ [Device("MotionCardBase", "鏉垮崱鎿嶄綔閰嶇疆鍩虹被", EnumHelper.DeviceAttributeType.OperationConfig)] public class MotionCardOperationConfigBase : OperationConfigBase, IComplexDisplay { + [Category("鏉垮崱鎿嶄綔")] + [Description("鏉垮崱鎿嶄綔閰嶇疆鍩虹被闆嗗悎锛屼緷娆℃墽琛�")] + [TypeConverter(typeof(CollectionCountConvert))] + [Editor(typeof(ComplexCollectionEditor<MotionCardOperationConfigBase>), typeof(UITypeEditor))] + public List<MotionCardOperationSet> OperationCollection { get; set; } = new List<MotionCardOperationSet>(); + + public string GetDisplayText() + { + return string.Join(" ", OperationCollection.Select(u => u.GetDisplayText())); + } + } + + public class MotionCardOperationSet : IComplexDisplay + { [Category("IO鎿嶄綔閰嶇疆")] [DisplayName("IO棰勬鏌ュ畾涔夐泦鍚�")] [Description("IO棰勬鏌ュ畾涔夐泦鍚�")] [TypeConverter(typeof(CollectionCountConvert))] [Editor(typeof(IORefrenceItemCollectionEditor), typeof(UITypeEditor))] public List<IORefrenceItem> PreCheckIOCollection { get; set; } = new List<IORefrenceItem>(); + [Category("IO鎿嶄綔閰嶇疆")] + [Description("瓒呮椂璁剧疆锛屽崟浣嶏細ms")] + [DisplayName("IO棰勬鏌ヨ秴鏃�")] + public int PreCheckIOTimeout { get; set; } = 0; [Category("IO鎿嶄綔閰嶇疆")] [DisplayName("IO杈撳嚭瀹氫箟闆嗗悎")] @@ -152,6 +171,10 @@ [Description("IO纭瀹氫箟闆嗗悎")] [TypeConverter(typeof(CollectionCountConvert))] public List<IORefrenceItem> IOConfirmCollection { get; set; } = new List<IORefrenceItem>(); + [Category("IO鎿嶄綔閰嶇疆")] + [Description("瓒呮椂璁剧疆锛屽崟浣嶏細ms")] + [DisplayName("IO纭瓒呮椂")] + public int IOConfirmTimeout { get; set; } = 0; [Category("鏉垮崱杩愬姩閰嶇疆")] [DisplayName("杩愬姩閰嶇疆闆嗗悎")] @@ -159,6 +182,10 @@ [TypeConverter(typeof(CollectionCountConvert))] [Editor(typeof(ComplexCollectionEditor<MovingOption>), typeof(UITypeEditor))] public List<MovingOption> MovingOps { get; set; } = new List<MovingOption>(); + [Category("鏉垮崱杩愬姩閰嶇疆")] + [Description("瓒呮椂璁剧疆锛屽崟浣嶏細ms")] + [DisplayName("杩愬姩瓒呮椂")] + public int MovingTimeout { get; set; } = 0; public string GetDisplayText() { @@ -205,15 +232,15 @@ } } - [Device("MotionCardOperationConfigCollection", "鏉垮崱鎿嶄綔閰嶇疆鍩虹被闆嗗悎", EnumHelper.DeviceAttributeType.OperationConfig)] - public class MotionCardOperationConfigCollection : OperationConfigBase - { - [Category("澶嶄綅鎿嶄綔")] - [Description("鏉垮崱鎿嶄綔閰嶇疆鍩虹被闆嗗悎锛屼緷娆℃墽琛�")] - [TypeConverter(typeof(CollectionCountConvert))] - [Editor(typeof(ComplexCollectionEditor<MotionCardOperationConfigBase>), typeof(UITypeEditor))] - public List<MotionCardOperationConfigBase> MotionCardOpsCollection { get; set; } = new List<MotionCardOperationConfigBase>(); - } + //[Device("MotionCardOperationConfigCollection", "鏉垮崱鎿嶄綔閰嶇疆鍩虹被闆嗗悎", EnumHelper.DeviceAttributeType.OperationConfig)] + //public class MotionCardOperationConfigCollection : OperationConfigBase + //{ + // [Category("澶嶄綅鎿嶄綔")] + // [Description("鏉垮崱鎿嶄綔閰嶇疆鍩虹被闆嗗悎锛屼緷娆℃墽琛�")] + // [TypeConverter(typeof(CollectionCountConvert))] + // [Editor(typeof(ComplexCollectionEditor<MotionCardOperationConfigBase>), typeof(UITypeEditor))] + // public List<MotionCardOperationConfigBase> MotionCardOpsCollection { get; set; } = new List<MotionCardOperationConfigBase>(); + //} public class IORefrenceItemCollectionEditor : CollectionEditor { -- Gitblit v1.8.0