From 1bc2df66bc88a6405df345dccc24a5031e18b592 Mon Sep 17 00:00:00 2001
From: patrick.xu <patrick.xu@broconcentric.com>
Date: 星期一, 21 十二月 2020 09:54:48 +0800
Subject: [PATCH] 1. gocator添加byte2/byte4的配置,目前测试byte4不成功,暂时还是使用byte2配置。 2. 添加键名代码映射配置和NG键名代码上传功能

---
 src/Bro.M071.Process/M071Config.cs |   59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 57 insertions(+), 2 deletions(-)

diff --git a/src/Bro.M071.Process/M071Config.cs b/src/Bro.M071.Process/M071Config.cs
index 33cba6e..99f9cdc 100644
--- a/src/Bro.M071.Process/M071Config.cs
+++ b/src/Bro.M071.Process/M071Config.cs
@@ -1,5 +1,6 @@
 锘縰sing Bro.Common.Base;
 using Bro.Common.Helper;
+using Bro.Common.Interface;
 using Bro.Common.Model;
 using Bro.Process;
 using System;
@@ -91,13 +92,13 @@
         //[Editor(typeof(FoldDialogEditor), typeof(UITypeEditor))]
         //public string ResultDataSaveFolder { get; set; } = "";
 
-        [Category("鍥剧墖淇濆瓨閰嶇疆")]
+        [Category("鍗曢敭鍥剧墖淇濆瓨閰嶇疆")]
         [Description("鍗曢敭鍥剧墖淇濆瓨閰嶇疆")]
         [TypeConverter(typeof(ComplexObjectConvert))]
         [Editor(typeof(PropertyObjectEditor), typeof(UITypeEditor))]
         public ImageSaveOption ImageSaveOption { get; set; } = new ImageSaveOption();
 
-        [Category("鍥剧墖淇濆瓨閰嶇疆")]
+        [Category("鍗曢敭鍥剧墖淇濆瓨閰嶇疆")]
         [Description("鍗曢敭鍥剧墖淇濆瓨鐩綍璺緞")]
         [Editor(typeof(FoldDialogEditor), typeof(UITypeEditor))]
         public string ImageSaveFolder { get; set; } = "";
@@ -167,9 +168,63 @@
         [DisplayName("澶氭楠岃瘉寮�鍏�")]
         public bool IsDisableMultipleCheckTimes { get; set; }
 
+        [Category("MES璁剧疆")]
+        [Description("閿悕鍜屼笂浼犱唬鐮佹槧灏勫叧绯�")]
+        [DisplayName("閿悕鏄犲皠")]
+        [TypeConverter(typeof(CollectionCountConvert))]
+        [Editor(typeof(ComplexCollectionEditor<KeyCodeMap>), typeof(UITypeEditor))]
+        public List<KeyCodeMap> KeyCodeMappingCollection { get; set; } = new List<KeyCodeMap>();
+
         [Category("澶嶄綅璁剧疆")]
         [Description("澶у浣嶉渶瑕佷俊鍙锋寔缁椂闂达紝澶嶄綅淇″彿鎸佺画瓒呭嚭璇ユ椂闂存墽琛屽ぇ澶嶄綅锛屽崟浣嶏細s")]
         [DisplayName("澶у浣嶆寔缁俊鍙烽暱搴�")]
         public int FullResetRequiredDuration { get; set; } = 3;
     }
+
+    [Device("Demostration", "Demo鎿嶄綔閰嶇疆", EnumHelper.DeviceAttributeType.OperationConfig)]
+    public class DemostrationOperationConfig : OperationConfigBase, IHalconToolPath
+    {
+        [Category("缁勫悎鎿嶄綔閰嶇疆闆嗗悎")]
+        [Description("缁勫悎鎿嶄綔閰嶇疆闆嗗悎")]
+        [TypeConverter(typeof(CollectionCountConvert))]
+        [Editor(typeof(ComplexCollectionEditor<OperationCombination>), typeof(UITypeEditor))]
+        public List<OperationCombination> DemoOperations { get; set; } = new List<OperationCombination>();
+
+        public List<string> GetHalconToolPathList()
+        {
+            return DemoOperations.SelectMany(d => d.GetHalconToolPathList()).ToList();
+        }
+    }
+
+    public class OperationCombination : IComplexDisplay, IHalconToolPath
+    {
+        [Category("杩愬姩鏈烘瀯閰嶇疆")]
+        [Description("杩愬姩鏈烘瀯閰嶇疆")]
+        [TypeConverter(typeof(ComplexObjectConvert))]
+        [Editor(typeof(IOperationConfigByDeviceEditor), typeof(UITypeEditor))]
+        public DeviceOpBind MotionOp { get; set; } = new DeviceOpBind();
+
+        [Category("鐩告満鍜屾搷浣滈厤缃�")]
+        [Description("鐩告満鍜屾搷浣滈厤缃�")]
+        [TypeConverter(typeof(ComplexObjectConvert))]
+        [Editor(typeof(IOperationConfigByDeviceEditor), typeof(UITypeEditor))]
+        public DeviceOpBind CameraOp { get; set; } = new DeviceOpBind();
+
+        public string GetDisplayText()
+        {
+            return MotionOp.GetDisplayText() + "\t" + CameraOp.GetDisplayText();
+        }
+
+        public List<string> GetHalconToolPathList()
+        {
+            if (CameraOp.OpConfig is IHalconToolPath path)
+            {
+                return path.GetHalconToolPathList();
+            }
+            else
+            {
+                return new List<string>();
+            }
+        }
+    }
 }

--
Gitblit v1.8.0