From 78289c64a16dd02cc9fec595bf758a9e30a30926 Mon Sep 17 00:00:00 2001
From: patrick.xu <patrick.xu@broconcentric.com>
Date: 星期六, 20 二月 2021 10:51:11 +0800
Subject: [PATCH] gocator修改异步模式下图片获取操作

---
 src/Bro.M071.Process/M071Config.cs |  169 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 163 insertions(+), 6 deletions(-)

diff --git a/src/Bro.M071.Process/M071Config.cs b/src/Bro.M071.Process/M071Config.cs
index b3ae3f3..e9f1b94 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;
@@ -41,38 +42,194 @@
         public List<KeyResult> KeyResultCollection { get; set; } = new List<KeyResult>();
         #endregion
 
-        [Category("鑳屾櫙鍥剧墖璁剧疆")]
+        [Category("鏄剧ず閰嶇疆")]
         [Description("杩愯鑳屾櫙鍥剧墖璺緞")]
         [Editor(typeof(FileDialogEditor), typeof(UITypeEditor))]
+        [DisplayName("鑳屾櫙鍥剧墖")]
         public string BackgroundImagePath { get; set; }
+
+        [Category("鏄剧ず閰嶇疆")]
+        [Description("閿洏鍏抽敭閿綅甯冨眬鏄剧ず")]
+        [TypeConverter(typeof(CollectionCountConvert))]
+        [Editor(typeof(ComplexCollectionEditor<KeyLocation>), typeof(UITypeEditor))]
+        [DisplayName("閿綅鏄剧ず")]
+        public List<KeyLocation> KeyLocationCollection { get; set; } = new List<KeyLocation>();
 
         [Category("妫�娴嬭缃�")]
         [Description("鎷嶆憚鐐逛綅璁剧疆闆嗗悎")]
         [TypeConverter(typeof(CollectionCountConvert))]
         [Editor(typeof(ComplexCollectionEditor<SnapshotPoint>), typeof(UITypeEditor))]
+        [DisplayName("1.杩愬姩鐐逛綅")]
         public List<SnapshotPoint> SnapshotPointCollection { get; set; } = new List<SnapshotPoint>();
 
         [Category("妫�娴嬭缃�")]
         [Description("瑙嗚妫�娴嬪崟閿厤缃泦鍚�")]
         [TypeConverter(typeof(CollectionCountConvert))]
         [Editor(typeof(ComplexCollectionEditor<KeyUnit>), typeof(UITypeEditor))]
+        [DisplayName("2.鍗曢敭閰嶇疆")]
         public List<KeyUnit> KeyUnitCollection { get; set; } = new List<KeyUnit>();
 
         [Category("妫�娴嬭缃�")]
         [Description("妫�娴嬮厤缃泦鍚�")]
+        [DisplayName("3.妫�娴嬮」闆嗗悎")]
         [TypeConverter(typeof(CollectionCountConvert))]
-        [Editor(typeof(ComplexCollectionEditor<MeasurementUint>), typeof(UITypeEditor))]
-        public List<MeasurementUint> MeasurementUnitCollection { get; set; } = new List<MeasurementUint>();
+        [Editor(typeof(ComplexCollectionEditor<MeasurementUnit>), typeof(UITypeEditor))]
+        public List<MeasurementUnit> MeasurementUnitCollection { get; set; } = new List<MeasurementUnit>();
 
-        [Category("鍥剧墖淇濆瓨閰嶇疆")]
+        [Category("妫�娴嬭缃�")]
+        [Description("骞抽潰琛ュ伩鍊�")]
+        [DisplayName("4.骞抽潰琛ュ伩鍊�")]
+        public double PlanCompensation { get; set; }
+
+        [Category("妫�娴嬭缃�")]
+        [Description("鏁版嵁绮惧害璁剧疆")]
+        [DisplayName("5.鏁版嵁绮惧害浣嶆暟")]
+        public int Precision { get; set; } = 3;
+
+        //[Category("妫�娴嬭缃�")]
+        //[DisplayName("缁撴灉鏁版嵁淇濆瓨璺緞")]
+        //[Description("妫�娴嬬粨鏋滄暟鎹繚瀛樿矾寰�")]
+        //[Editor(typeof(FoldDialogEditor), typeof(UITypeEditor))]
+        //public string ResultDataSaveFolder { get; set; } = "";
+
+        [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))]
+        [Editor(typeof(FoldDialogEditor), typeof(UITypeEditor))]
         public string ImageSaveFolder { get; set; } = "";
+
+        [Category("灞忚斀閰嶇疆")]
+        [Description("true锛氬睆钄藉畨鍏ㄩ棬 false锛氬惎鐢ㄥ畨鍏ㄩ棬")]
+        [ReadOnly(true)]
+        public bool IsSafetyDoorBlocked { get; set; } = false;
+
+        [Category("灞忚斀閰嶇疆")]
+        [Description("true锛氬睆钄藉畨鍏ㄥ厜绾� false锛氬惎鐢ㄥ畨鍏ㄥ厜绾�")]
+        [ReadOnly(true)]
+        public bool IsSafetyBeamBlocked { get; set; } = false;
+
+        private bool isBeepBlocked = false;
+        [Category("灞忚斀閰嶇疆")]
+        [Description("true锛氬睆钄借渹楦e櫒 false锛氬惎鐢ㄨ渹楦e櫒")]
+        public bool IsBeepBlocked
+        {
+            get => isBeepBlocked;
+            set => Set(ref isBeepBlocked, value);
+        }
+
+        private bool isBarcodeManualInputBlocked = true;
+        [Category("灞忚斀閰嶇疆")]
+        [Description("true锛氱姝㈡墜鍔ㄨ緭鍏ユ潯鐮� false锛氬厑璁告墜鍔ㄨ緭鍏ユ潯鐮�")]
+        public bool IsBarcodeManualInputBlocked
+        {
+            get => isBarcodeManualInputBlocked;
+            set => Set(ref isBarcodeManualInputBlocked, value);
+        }
+
+        [Category("MES璁剧疆")]
+        [Description("true锛氭暟鎹笂浼犺嚦MES false锛氭暟鎹笉涓婁紶")]
+        [DisplayName("MES涓婁紶鍚敤")]
+        [ReadOnly(true)]
+        public bool IsEnableMESUpload { get; set; } = false;
+
+        [Category("MES璁剧疆")]
+        [Description("true锛氭娴嬬敤鎴风櫥褰� false锛氫笉寮哄埗鐢ㄦ埛鐧诲綍")]
+        [DisplayName("鐢ㄦ埛鐧诲綍妫�娴�")]
+        [Browsable(false)]
+        public bool IsUserLoginCheck { get; set; } = false;
+
+        [Category("MES璁剧疆")]
+        [Description("MES涓婁紶璺緞")]
+        [DisplayName("MES涓婁紶璺緞")]
+        public string MESURL { get; set; } = "";
+
+        [Category("MES璁剧疆")]
+        [Description("绔欑偣缂栫爜")]
+        [DisplayName("绔欑偣缂栫爜")]
+        public string StationCode { get; set; } = "";
+
+        [Category("MES璁剧疆")]
+        [Description("Project缂栫爜")]
+        [DisplayName("Project缂栫爜")]
+        public string ProjectCode { get; set; } = "";
+
+        [Category("MES璁剧疆")]
+        [Description("绾夸綋缂栫爜")]
+        [DisplayName("绾夸綋缂栫爜")]
+        public string LineCode { get; set; } = "";
+
+        [Category("MES璁剧疆")]
+        [Description("楠岃瘉褰撳墠鍏佽鏂板娆℃暟[FALSE=涓嶉獙璇� TRUE=闄愬埗涓ゆ浠ヤ笅(鍖呭惈涓ゆ)]")]
+        [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("MES璁剧疆")]
+        [Description("MES鏁版嵁璇︾粏璁板綍寮�鍏�")]
+        [DisplayName("MES鏃ュ織寮�鍏�")]
+        public bool IsEnableMESLog { get; set; } = false;
+
+        [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