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