From 67c0c0d55c193d00ef6f3481e1f081d236bcab13 Mon Sep 17 00:00:00 2001
From: wells.liu <wells.liu@broconcentric.com>
Date: 星期五, 10 七月 2020 12:55:32 +0800
Subject: [PATCH] Merge branch 'master' of http://gitblit.broconcentric.com:8088/r/M071

---
 src/Bro.Device.GTSCard/GTSCardDriver.cs                |   40 +++++-----
 src/Bro.M071.Process/UI/M071_MainForm.cs               |   50 ++++++------
 src/Bro.Common.Device/DeviceBase/MotionCardBase.cs     |   35 ++++----
 src/Bro.Common.Model/Model/MonitorSet.cs               |   12 +-
 src/Bro.Common.Model/Model/IOItem.cs                   |    6 +
 src/Bro.M071.Process/UI/M071_DataForm.cs               |    2 
 src/Bro.M071.Process/M071Models.cs                     |   17 ++++
 src/Bro.M071.Process/UI/KeyIndicator.cs                |    2 
 src/Bro.UI.Config/MainFrm.cs                           |   35 ++++----
 src/Bro.UI.Model.Winform/UI/DockContent/MenuFrmBase.cs |    1 
 10 files changed, 113 insertions(+), 87 deletions(-)

diff --git a/src/Bro.Common.Device/DeviceBase/MotionCardBase.cs b/src/Bro.Common.Device/DeviceBase/MotionCardBase.cs
index 1ff6cd5..2825f26 100644
--- a/src/Bro.Common.Device/DeviceBase/MotionCardBase.cs
+++ b/src/Bro.Common.Device/DeviceBase/MotionCardBase.cs
@@ -237,35 +237,38 @@
     [Device("MotionOperationSet", "杩愬姩鎿嶄綔閰嶇疆鍩虹被", EnumHelper.DeviceAttributeType.OperationConfig)]
     public class MotionCardOperationSet : IComplexDisplay
     {
-        [Category("IO鎿嶄綔閰嶇疆")]
-        [DisplayName("IO棰勬鏌ュ畾涔夐泦鍚�")]
+        [Category("1.IO鎿嶄綔閰嶇疆")]
+        [DisplayName("1.IO棰勬鏌�")]
         [Description("IO棰勬鏌ュ畾涔夐泦鍚�")]
         [TypeConverter(typeof(CollectionCountConvert))]
         [Editor(typeof(IORefrenceItemCollectionEditor), typeof(UITypeEditor))]
         public List<IORefrenceItem> PreCheckIOCollection { get; set; } = new List<IORefrenceItem>();
 
-        [Category("IO鎿嶄綔閰嶇疆")]
+        [Category("1.IO鎿嶄綔閰嶇疆")]
         [Description("瓒呮椂璁剧疆锛屽崟浣嶏細ms")]
-        [DisplayName("IO棰勬鏌ヨ秴鏃�")]
+        [DisplayName("2.IO棰勬鏌ヨ秴鏃�")]
         public int PreCheckIOTimeout { get; set; } = 0;
 
-        [Category("IO鎿嶄綔閰嶇疆")]
-        [DisplayName("IO杈撳嚭瀹氫箟闆嗗悎")]
+        [Category("1.IO鎿嶄綔閰嶇疆")]
+        [DisplayName("3.IO杈撳嚭")]
         [Description("IO杈撳嚭瀹氫箟闆嗗悎")]
         [TypeConverter(typeof(CollectionCountConvert))]
+        [Editor(typeof(IORefrenceItemCollectionEditor), typeof(UITypeEditor))]
         public List<IORefrenceItem> IOOutputCollection { get; set; } = new List<IORefrenceItem>();
 
-        [Category("IO鎿嶄綔閰嶇疆")]
-        [DisplayName("IO纭瀹氫箟闆嗗悎")]
+        [Category("1.IO鎿嶄綔閰嶇疆")]
+        [DisplayName("4.IO杈撳嚭纭")]
         [Description("IO纭瀹氫箟闆嗗悎")]
         [TypeConverter(typeof(CollectionCountConvert))]
+        [Editor(typeof(IORefrenceItemCollectionEditor), typeof(UITypeEditor))]
         public List<IORefrenceItem> IOConfirmCollection { get; set; } = new List<IORefrenceItem>();
-        [Category("IO鎿嶄綔閰嶇疆")]
+
+        [Category("1.IO鎿嶄綔閰嶇疆")]
         [Description("瓒呮椂璁剧疆锛屽崟浣嶏細ms")]
-        [DisplayName("IO纭瓒呮椂")]
+        [DisplayName("5.IO杈撳嚭纭瓒呮椂")]
         public int IOConfirmTimeout { get; set; } = 0;
 
-        [Category("鏉垮崱杩愬姩閰嶇疆")]
+        [Category("2.鏉垮崱杩愬姩閰嶇疆")]
         [DisplayName("杩愬姩閰嶇疆闆嗗悎")]
         [Description("MovingOps锛氳繍鍔ㄩ厤缃泦鍚�")]
         [TypeConverter(typeof(CollectionCountConvert))]
@@ -378,13 +381,13 @@
             if (itemType == typeof(IORefrenceItem))
             {
                 IORefrenceItem item = new IORefrenceItem();
-                if ((this.Context.Instance is IOperationConfig opConfig) && !string.IsNullOrWhiteSpace(opConfig.DeviceId))
+                if (this.Context.Instance is MotionCardOperationSet set)
                 {
                     using (var scope = GlobalVar.Container.BeginLifetimeScope())
                     {
                         List<IDevice> deviceList = scope.Resolve<List<IDevice>>();
 
-                        var device = deviceList.FirstOrDefault(u => u.Id == opConfig.DeviceId);
+                        var device = deviceList.FirstOrDefault(u => u.Id == set.MotionCardId);
 
                         if (device != null && (device is MotionCardBase motionCard))
                         {
@@ -411,9 +414,9 @@
 
         public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
         {
-            if (context.Instance is IOperationConfig opConfig)
+            if (context.Instance is MotionCardOperationSet set)
             {
-                if (string.IsNullOrWhiteSpace(opConfig.DeviceId))
+                if (string.IsNullOrWhiteSpace(set.MotionCardId))
                 {
                     return base.EditValue(context, provider, value);
                 }
@@ -422,7 +425,7 @@
                 {
                     List<IDevice> deviceList = scope.Resolve<List<IDevice>>();
 
-                    var device = deviceList.FirstOrDefault(u => u.Id == opConfig.DeviceId);
+                    var device = deviceList.FirstOrDefault(u => u.Id == set.MotionCardId);
 
                     if (device == null)
                     {
diff --git a/src/Bro.Common.Model/Model/IOItem.cs b/src/Bro.Common.Model/Model/IOItem.cs
index 653cdb2..14a5754 100644
--- a/src/Bro.Common.Model/Model/IOItem.cs
+++ b/src/Bro.Common.Model/Model/IOItem.cs
@@ -113,7 +113,9 @@
             {
                 item.IOItemSource.ForEach(i =>
                 {
-                    itemDict[i] = i.IODesc + "-" + i.IOType.GetEnumDescription() + "-" + i.IONum;
+                    IODefinition temp = new IODefinition();
+                    temp.DataFrom(i);
+                    itemDict[temp] = (string.IsNullOrWhiteSpace(i.IODesc) ? i.IOPreStatement.GetEnumDescription() : i.IODesc) + "|" + i.IOType.GetEnumDescription() + "|" + i.IONum;
                 });
 
                 return new StandardValuesCollection(itemDict.Keys);
@@ -158,7 +160,7 @@
         /// <returns></returns>
         public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
         {
-            var s = value.ToString().Split(new char[] { '-' }, StringSplitOptions.RemoveEmptyEntries);
+            var s = value.ToString().Split(new char[] { '|' });
 
             if (s.Length == 3)
             {
diff --git a/src/Bro.Common.Model/Model/MonitorSet.cs b/src/Bro.Common.Model/Model/MonitorSet.cs
index 6151b49..228e2f0 100644
--- a/src/Bro.Common.Model/Model/MonitorSet.cs
+++ b/src/Bro.Common.Model/Model/MonitorSet.cs
@@ -209,12 +209,12 @@
         /// <summary>
         /// 鐩戝惉鍥炰紶
         /// </summary>
-        [Category("鍥炰紶璁剧疆")]
-        [DisplayName("鐩戝惉鍥炰紶")]
-        [Description("鐩戝惉杩愬姩鏉垮崱锛屽苟寰�鎸囧畾鐨処O鍐欏叆鏁版嵁")]
-        [TypeConverter(typeof(CollectionCountConvert))]
-        [Editor(typeof(IOItem), typeof(UITypeEditor))]
-        public List<IOItem> ReplyIODatas { get; set; } = new List<IOItem>();
+        //[Category("鍥炰紶璁剧疆")]
+        //[DisplayName("鐩戝惉鍥炰紶")]
+        //[Description("鐩戝惉杩愬姩鏉垮崱锛屽苟寰�鎸囧畾鐨処O鍐欏叆鏁版嵁")]
+        //[TypeConverter(typeof(CollectionCountConvert))]
+        //[Editor(typeof(ComplexCollectionEditor<IOItem>), typeof(UITypeEditor))]
+        //public List<IOItem> ReplyIODatas { get; set; } = new List<IOItem>();
     }
 
     public class IOperationConfigEditor : UITypeEditor
diff --git a/src/Bro.Device.GTSCard/GTSCardDriver.cs b/src/Bro.Device.GTSCard/GTSCardDriver.cs
index ed10b08..3a167dd 100644
--- a/src/Bro.Device.GTSCard/GTSCardDriver.cs
+++ b/src/Bro.Device.GTSCard/GTSCardDriver.cs
@@ -1029,27 +1029,27 @@
 
         public override void OnMethodInvoked(IAsyncResult ar)
         {
-            MotionCardMonitorSet monitorSet = ar.AsyncState as MotionCardMonitorSet;
-            ProcessResponse resValues = monitorSet.Response;
-            if (resValues.ResultValue == (int)ReplyValue.IGNORE)
-            {
-                return;
-            }
+            //MotionCardMonitorSet monitorSet = ar.AsyncState as MotionCardMonitorSet;
+            //ProcessResponse resValues = monitorSet.Response;
+            //if (resValues.ResultValue == (int)ReplyValue.IGNORE)
+            //{
+            //    return;
+            //}
 
-            Stopwatch sw = new Stopwatch();
-            sw.Start();
-            // 灏嗘寚瀹欼OItem鍐欏叆鏉垮崱
-            foreach (var replyIOData in monitorSet.ReplyIODatas)
-            {
-                //鍐欏叆IO杈撳嚭
-                if (replyIOData.IOType == IOType.OUTPUT)
-                {
-                    GTSCardAPI.GT_SetDoBit((short)IConfig.CardNum, GTSCardAPI.MC_GPI, (short)replyIOData.IONum, (short)replyIOData.Value);
-                }
-                // in鍙涓嶈兘鍐�
-            }
-            sw.Stop();
-            LogAsync(DateTime.Now, $"{Name}鍙嶉瀹屾垚锛岃�楁椂{sw.ElapsedMilliseconds}ms", $"{resValues.GetDisplayText()}");
+            //Stopwatch sw = new Stopwatch();
+            //sw.Start();
+            //// 灏嗘寚瀹欼OItem鍐欏叆鏉垮崱
+            //foreach (var replyIOData in monitorSet.ReplyIODatas)
+            //{
+            //    //鍐欏叆IO杈撳嚭
+            //    if (replyIOData.IOType == IOType.OUTPUT)
+            //    {
+            //        GTSCardAPI.GT_SetDoBit((short)IConfig.CardNum, GTSCardAPI.MC_GPI, (short)replyIOData.IONum, (short)replyIOData.Value);
+            //    }
+            //    // in鍙涓嶈兘鍐�
+            //}
+            //sw.Stop();
+            //LogAsync(DateTime.Now, $"{Name}鍙嶉瀹屾垚锛岃�楁椂{sw.ElapsedMilliseconds}ms", $"{resValues.GetDisplayText()}");
         }
 
         protected void MonitorCheckAndInvoke(List<IOItem> tempNew, List<IOItem> tempOld)
diff --git a/src/Bro.M071.Process/M071Models.cs b/src/Bro.M071.Process/M071Models.cs
index f2c588f..5ccaad2 100644
--- a/src/Bro.M071.Process/M071Models.cs
+++ b/src/Bro.M071.Process/M071Models.cs
@@ -178,7 +178,22 @@
 
         public string GetDisplayText()
         {
-            return $"{AliasName}";
+            string snapShot = "鏈寚瀹�";
+
+            using (var scope = GlobalVar.Container.BeginLifetimeScope())
+            {
+                var config = scope.Resolve<IProcessConfig>();
+                if (config != null)
+                {
+                    var snapshotPoint = (config as M071Config).SnapshotPointCollection.FirstOrDefault(u => u.Id == SnapshotPointId);
+                    if (snapshotPoint != null)
+                    {
+                        snapShot = snapshotPoint.Name;
+                    }
+                }
+            }
+
+            return $"{AliasName}-{snapShot}-{ImageSeq}";
         }
 
         public List<string> GetHalconToolPathList()
diff --git a/src/Bro.M071.Process/UI/KeyIndicator.cs b/src/Bro.M071.Process/UI/KeyIndicator.cs
index 75271a0..ec6d69b 100644
--- a/src/Bro.M071.Process/UI/KeyIndicator.cs
+++ b/src/Bro.M071.Process/UI/KeyIndicator.cs
@@ -58,7 +58,7 @@
 
         protected override void SetSelectedPen()
         {
-            Pen = new Pen(Color.Red, 6);
+            Pen = new Pen(Color.Red, 3);
         }
 
         public override void Draw(Graphics g)
diff --git a/src/Bro.M071.Process/UI/M071_DataForm.cs b/src/Bro.M071.Process/UI/M071_DataForm.cs
index af0c8eb..b86ee46 100644
--- a/src/Bro.M071.Process/UI/M071_DataForm.cs
+++ b/src/Bro.M071.Process/UI/M071_DataForm.cs
@@ -11,7 +11,7 @@
 
 namespace Bro.M071.Process.UI
 {
-    [MenuNode("M071_DataForm", "鏁版嵁鏌ヨ鐣岄潰", 1, "M071Node", true)]
+    [MenuNode("M071_DataForm", "鏁版嵁鏌ヨ鐣岄潰", 3, "M071Node", true)]
     public partial class M071_DataForm : MenuFrmBase
     {
         public M071_DataForm()
diff --git a/src/Bro.M071.Process/UI/M071_MainForm.cs b/src/Bro.M071.Process/UI/M071_MainForm.cs
index df918c4..938e116 100644
--- a/src/Bro.M071.Process/UI/M071_MainForm.cs
+++ b/src/Bro.M071.Process/UI/M071_MainForm.cs
@@ -51,35 +51,37 @@
             if (string.IsNullOrWhiteSpace(Config.BackgroundImagePath))
                 return;
 
-            try
+            this.Invoke(new Action(() =>
             {
-                Bitmap image = (Bitmap)Image.FromFile(Config.BackgroundImagePath);
-                cvImage.LoadImage(image);
-                cvImage.SetScreenSize();
-            }
-            catch (Exception ex)
-            {
-                LogAsync(new LogMsg(DateTime.Now, "杞藉叆鑳屾櫙鍥惧紓甯�", ex.Message));
-                return;
-            }
-
-            cvImage.Elements.Clear();
-            lvMeasures.Items.Clear();
-            Config.MeasurementUnitCollection.ForEach(u =>
-            {
-                if (!u.IsEnabled)
+                try
+                {
+                    Bitmap image = (Bitmap)Image.FromFile(Config.BackgroundImagePath);
+                    cvImage.LoadImage(image);
+                    cvImage.SetScreenSize();
+                }
+                catch (Exception ex)
+                {
+                    LogAsync(new LogMsg(DateTime.Now, "杞藉叆鑳屾櫙鍥惧紓甯�", ex.Message));
                     return;
+                }
 
-                var ele = new KeyIndicator(u.Id, u.DisplayLocation);
-                cvImage.Elements.Add(ele);
+                cvImage.Elements.Clear();
+                lvMeasures.Items.Clear();
+                txtBarcode.ReadOnly = Config.IsBarcodeManulInputBlocked;
 
-                ListViewItem item = new ListViewItem(u.GetDisplayText());
-                item.Tag = u.Id;
-                lvMeasures.Items.Add(item);
-            });
+                Config.MeasurementUnitCollection.ForEach(u =>
+                {
+                    if (!u.IsEnabled)
+                        return;
 
-            if (txtBarcode.IsHandleCreated)
-                txtBarcode.BeginInvoke(new Action(() => txtBarcode.ReadOnly = Config.IsBarcodeManulInputBlocked));
+                    var ele = new KeyIndicator(u.Id, u.DisplayLocation);
+                    cvImage.Elements.Add(ele);
+
+                    ListViewItem item = new ListViewItem(u.GetDisplayText());
+                    item.Tag = u.Id;
+                    lvMeasures.Items.Add(item);
+                });
+            }));
 
             Process_M071.OnClearBarcode -= M071_MainForm_OnClearBarcode;
             Process_M071.OnClearBarcode += M071_MainForm_OnClearBarcode;
diff --git a/src/Bro.UI.Config/MainFrm.cs b/src/Bro.UI.Config/MainFrm.cs
index 39c483d..39c3169 100644
--- a/src/Bro.UI.Config/MainFrm.cs
+++ b/src/Bro.UI.Config/MainFrm.cs
@@ -74,10 +74,10 @@
             //});
 
             m_deserializeMenuFrm = new DeserializeDockContent(GetMenuFromPersistString);
-            LoadLayoutFromXML(m_deserializeMenuFrm);
-
             m_deserializeDeviceRunFrm = new DeserializeDockContent(GetAllFormPersistString);
-            _allMenuLoadDoneHandle.Set();
+
+            //LoadLayoutFromXML(m_deserializeMenuFrm);
+            //_allMenuLoadDoneHandle.Set();
 
             Text = SettingHelper.GetProgramDescription();
             string iconPath = SettingHelper.GetProgramIcon();
@@ -254,13 +254,16 @@
 
         private void MainFrm_Load(object sender, EventArgs e)
         {
+            LoadLayoutFromXML(m_deserializeMenuFrm);
+            _allMenuLoadDoneHandle.Set();
+
             AdvancedPwdFrm.OnLoginOK = OnLoginOK;
 
-            SpinWait wait = new SpinWait();
-            while (_process == null)
-            {
-                wait.SpinOnce();
-            }
+            //SpinWait wait = new SpinWait();
+            //while (_process == null)
+            //{
+            //    wait.SpinOnce();
+            //}
             LoadLayoutFromXML(m_deserializeDeviceRunFrm);
         }
 
@@ -542,10 +545,10 @@
 
                 dockFrm.Text = desc[2];
 
-                if (_process != null)
-                {
-                    dockFrm.DownloadProcess(_process);
-                }
+                //if (_process != null)
+                //{
+                //    dockFrm.DownloadProcess(_process);
+                //}
 
                 dockFrm.SetLoginStatus(IsLogin);
 
@@ -580,10 +583,10 @@
 
                 dockFrm.Text = desc[2];
 
-                if (_process != null)
-                {
-                    dockFrm.DownloadProcess(_process);
-                }
+                //if (_process != null)
+                //{
+                //    dockFrm.DownloadProcess(_process);
+                //}
 
                 dockFrm.SetLoginStatus(IsLogin);
 
diff --git a/src/Bro.UI.Model.Winform/UI/DockContent/MenuFrmBase.cs b/src/Bro.UI.Model.Winform/UI/DockContent/MenuFrmBase.cs
index 007a6db..ab29bdb 100644
--- a/src/Bro.UI.Model.Winform/UI/DockContent/MenuFrmBase.cs
+++ b/src/Bro.UI.Model.Winform/UI/DockContent/MenuFrmBase.cs
@@ -27,6 +27,7 @@
 
                     _constructionDoneHandle.Wait();
                     OnProcessUpdated();
+                    _constructionDoneHandle.Reset();
                 }
             }
         }

--
Gitblit v1.8.0