From 18475c9ceff517b7ba292b9f8b90933b0ce3fb78 Mon Sep 17 00:00:00 2001 From: patrick.xu <patrick.xu@broconcentric.com> Date: 星期三, 23 十二月 2020 16:38:53 +0800 Subject: [PATCH] 添加MES日志开关配置和详细数据日志 --- src/Bro.M071.Process/M071Config.cs | 177 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 173 insertions(+), 4 deletions(-) diff --git a/src/Bro.M071.Process/M071Config.cs b/src/Bro.M071.Process/M071Config.cs index 2cdacf0..e9f1b94 100644 --- a/src/Bro.M071.Process/M071Config.cs +++ b/src/Bro.M071.Process/M071Config.cs @@ -1,4 +1,6 @@ -锘縰sing Bro.Common.Helper; +锘縰sing Bro.Common.Base; +using Bro.Common.Helper; +using Bro.Common.Interface; using Bro.Common.Model; using Bro.Process; using System; @@ -40,27 +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("妫�娴嬭缃�")] + [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("鍗曢敭鍥剧墖淇濆瓨閰嶇疆")] + [Description("鍗曢敭鍥剧墖淇濆瓨鐩綍璺緞")] + [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