From 66d995d55f9c122328b4eceb99bc20aca3a42c10 Mon Sep 17 00:00:00 2001
From: wells <123>
Date: 星期日, 12 七月 2020 21:04:16 +0800
Subject: [PATCH] debug

---
 src/Bro.M071.Process/UI/M071_MainForm.cs           |   13 ++----
 src/Bro.M071.Process/M071Process.cs                |   39 +++++++++++++++----
 src/Bro.M071.Process/M071Process_MotionCard.cs     |   14 +++++-
 src/Bro.UI.Config/MenuForms/FrmOperation.resx      |    4 +-
 src/Bro.Common.Device/DeviceBase/HDevEngineTool.cs |   11 +++++
 src/Bro.M071.Process/UI/KeyIndicator.cs            |   10 +++--
 6 files changed, 64 insertions(+), 27 deletions(-)

diff --git a/src/Bro.Common.Device/DeviceBase/HDevEngineTool.cs b/src/Bro.Common.Device/DeviceBase/HDevEngineTool.cs
index c235581..80164bd 100644
--- a/src/Bro.Common.Device/DeviceBase/HDevEngineTool.cs
+++ b/src/Bro.Common.Device/DeviceBase/HDevEngineTool.cs
@@ -255,5 +255,16 @@
 
             return list;
         }
+
+        public static HImage ConvertHObjectToHImage(this HObject obj)
+        {
+            HTuple pointer, type, width, heght;
+            HOperatorSet.GetImagePointer1(obj, out pointer, out type, out width, out heght);
+
+            HImage img = new HImage();
+            img.GenImage1(type, width, heght, pointer);
+
+            return img;
+        }
     }
 }
diff --git a/src/Bro.M071.Process/M071Process.cs b/src/Bro.M071.Process/M071Process.cs
index 300a146..a0e47ae 100644
--- a/src/Bro.M071.Process/M071Process.cs
+++ b/src/Bro.M071.Process/M071Process.cs
@@ -647,8 +647,16 @@
                     int i = 0;
                     u.KeyImages?.ForEach(image =>
                     {
-                        string fileName = Path.Combine(dir, $"{measureName}_{u.Key}{(i == 0 ? "" : $"-{i}")}_{DateTime.Now.ToString("HHmmss")}.tiff");
-                        image.WriteImage("tiff", 0, fileName);
+                        string fileName = "";
+                        try
+                        {
+                            fileName = Path.Combine(dir, $"{measureName}_{u.Key}{(i == 0 ? "" : $"-{i}")}_{DateTime.Now.ToString("HHmmss")}.tiff");
+                            image.WriteImage("tiff", 0, fileName);
+                        }
+                        catch (Exception)
+                        {
+                            LogAsync(DateTime.Now, "鍒囧浘淇濆瓨澶辫触", fileName);
+                        }
                         i++;
                     });
 
@@ -668,6 +676,7 @@
                  string toolKey = (opConfig as CameraOprerationConfigBase).AlgorithemPath;
                  HObject images = imgSet.HImage;
                  LaserScanParam scanParam = JsonConvert.DeserializeObject<LaserScanParam>(imgSet.ImageData);
+                 LogAsync(DateTime.Now, $"鎵弿鍙傛暟:{imgSet.ImageData}", "");
 
                  if (!string.IsNullOrWhiteSpace(toolKey))
                  {
@@ -691,6 +700,7 @@
                  }
 
                  HOperatorSet.CountObj(images, out HTuple count);
+                 LogAsync(DateTime.Now, $"{snapshotName}鍒囧浘{count.I}寮�", "");
 
                  if (count == 0)
                  {
@@ -699,7 +709,7 @@
                      return;
                  }
 
-                 var excludeKeys = keys.Where(u => u.ImageSeq > count).ToList();
+                 var excludeKeys = keys.Where(u => u.ImageSeq > count.I).ToList();
                  if (excludeKeys.Count > 0)
                  {
                      LogAsync(DateTime.Now, $"{string.Join(" ", excludeKeys.Select(u => u.AliasName))}鏈湪鍥剧墖鑾峰彇搴忓垪涓�", "");
@@ -709,9 +719,19 @@
                           });
                  }
 
-                 Parallel.For(1, count.I, (i) =>
+                 string dir = Path.Combine(Config.ImageSaveFolder, "Clips", $"{snapshotName}_{DateTime.Now.ToString("HHmmss")}");
+                 if (!Directory.Exists(dir))
+                 {
+                     Directory.CreateDirectory(dir);
+                 }
+
+                 Parallel.For(1, count.I + 1, (i) =>
+                 //for (int i = 1; i <= count.I; i++)
                  {
                      HOperatorSet.SelectObj(images, out HObject image, i);
+
+                     string fileName = Path.Combine(dir, $"{i}.tif");
+                     image.ConvertHObjectToHImage().WriteImage("tiff", 0, fileName);
 
                      keys.Where(u => u.ImageSeq == i).ToList().ForEach(k =>
                          {
@@ -727,8 +747,8 @@
                              else
                              {
                                  _halconToolDict[keyToolKey].InputImageDic["INPUT_Image"] = image;
-                                 _halconToolDict[keyToolKey].InputTupleDic["INPUT_Resolution_X"] = scanParam.Resolution_X;
-                                 //_halconToolDict[keyToolKey].InputTupleDic["INPUT_Resolution_Z"] = scanParam.Resolution_Z;
+                                 _halconToolDict[keyToolKey].InputTupleDic["INPUT_Resolution_X"] = scanParam.Resolution_X / 1000000.0;
+                                 _halconToolDict[keyToolKey].InputTupleDic["INPUT_Resolution_Z"] = scanParam.Resolution_Z / 1000000.0;
                                  if (!_halconToolDict[keyToolKey].RunProcedure(out string error))
                                  {
                                      LogAsync(DateTime.Now, $"{k.AliasName}妫�娴嬬畻娉曞紓甯革紝{error}", "");
@@ -753,13 +773,14 @@
 
                              keyBindList.ForEach(kb =>
                              {
-                                 kb.KeyImages.Add(image.Clone() as HImage);
+                                 kb.KeyImages.Add(image.ConvertHObjectToHImage());
                                  kb.FillKeyValues(resultDict);
                              });
                          });
 
-                     image.Dispose();
-                 });
+                     //image.Dispose();
+                 }
+                 );
 
                  //if (count.I != 1)
                  //{
diff --git a/src/Bro.M071.Process/M071Process_MotionCard.cs b/src/Bro.M071.Process/M071Process_MotionCard.cs
index 7a91ce4..2821708 100644
--- a/src/Bro.M071.Process/M071Process_MotionCard.cs
+++ b/src/Bro.M071.Process/M071Process_MotionCard.cs
@@ -358,9 +358,17 @@
                 throw new ProcessException("鏈幏鍙栨澘鍗¤澶�");
 
             bool? isToPause = null; //true 鏆傚仠 false 缁х画
-            if (opConfig.InputPara != null && opConfig.InputPara.Count > 0)
+            //if (opConfig.InputPara != null && opConfig.InputPara.Count > 0)
+            //{
+            //    isToPause = opConfig.InputPara[0] == 1;
+            //}
+            if (opConfig.InputPara[0] == 10)
             {
-                isToPause = opConfig.InputPara[0] == 1;
+                isToPause = false;
+            }
+            else if (opConfig.InputPara[0] == 11)
+            {
+                isToPause = true;
             }
 
             if (isToPause == null)
@@ -665,7 +673,7 @@
         [ProcessMethod("", "SafetyBeamSignal", "瀹夊叏鍏夊箷淇″彿鐩戞帶锛屾甯窸N锛孫FF鏃舵姤璀�", InvokeType.TestInvoke)]
         public ProcessResponse SafetyBeamSignal(IOperationConfig opConfig, IDevice invokeDevice, IDevice sourceDevice)
         {
-            if (MachineState != MachineState.Running || MachineState != MachineState.Alarm)
+            if (MachineState != MachineState.Running && MachineState != MachineState.Alarm)
                 return new ProcessResponse(true);
 
             if (opConfig.InputPara == null || opConfig.InputPara.Count == 0)
diff --git a/src/Bro.M071.Process/UI/KeyIndicator.cs b/src/Bro.M071.Process/UI/KeyIndicator.cs
index 2565ee3..24967a5 100644
--- a/src/Bro.M071.Process/UI/KeyIndicator.cs
+++ b/src/Bro.M071.Process/UI/KeyIndicator.cs
@@ -63,7 +63,10 @@
 
         public override void Draw(Graphics g)
         {
-            g.DrawRectangle(Pen, DisplayRect);
+            if (ResultState == null)
+            {
+                g.DrawRectangle(Pen, DisplayRect);
+            }
             RectangleF rectFill = new RectangleF(DisplayRect.X + 1, DisplayRect.Y + 1, DisplayRect.Width - 2, DisplayRect.Height - 2);
             if (ResultState != null)
             {
@@ -74,12 +77,11 @@
                 if (!ResultState.Value)
                 {
                     backColor = Color.Red;
-                    foreColor = Color.White;
+                    //foreColor = Color.White;
                 }
 
                 g.FillRectangle(new SolidBrush(Color.FromArgb(85, backColor)), rectFill);
-                g.DrawString(Text, Font, new SolidBrush(foreColor), (float)(DisplayRect.X + DisplayRect.Width / 2.0 - txtSize.Width / 2.0), (float)(DisplayRect.Y + DisplayRect.Height / 2.0 - txtSize.Height / 2.0));
-
+                g.DrawString(Text, Font, new SolidBrush(foreColor), (float)(DisplayRect.X + DisplayRect.Width / 2.0 - txtSize.Width / 2.0), (float)(DisplayRect.Y + DisplayRect.Height));
             }
         }
 
diff --git a/src/Bro.M071.Process/UI/M071_MainForm.cs b/src/Bro.M071.Process/UI/M071_MainForm.cs
index e875fd6..6aa59b8 100644
--- a/src/Bro.M071.Process/UI/M071_MainForm.cs
+++ b/src/Bro.M071.Process/UI/M071_MainForm.cs
@@ -303,7 +303,6 @@
 
                             btnStartMeasure.Text = "寮�濮嬫祴閲�";
                             btnStartMeasure.Enabled = false;
-                            btnStartMeasure.BackColor = Color.Red;
                             break;
                         case MachineState.Pause:
                             btnStartMeasure.BackColor = lblMachineState.BackColor = Color.Yellow;
@@ -312,25 +311,22 @@
 
                             btnStartMeasure.Text = "缁х画娴嬮噺";
                             btnStartMeasure.Enabled = true;
-                            btnStartMeasure.BackColor = Color.Lime;
                             break;
                         case MachineState.Ready:
                             btnStartMeasure.BackColor = lblMachineState.BackColor = Color.Lime;
-                            btnStartMeasure.ForeColor = lblMachineState.ForeColor = Color.White;
+                            btnStartMeasure.ForeColor = lblMachineState.ForeColor = Color.Black;
                             lblMachineState.Text = "灏辩华";
                             
                             btnStartMeasure.Text = "寮�濮嬫祴閲�";
                             btnStartMeasure.Enabled = true;
-                            btnStartMeasure.BackColor = Color.Lime;
                             break;
                         case MachineState.Running:
-                            btnStartMeasure.BackColor = lblMachineState.BackColor = Color.Lime;
+                            btnStartMeasure.BackColor = lblMachineState.BackColor = Color.Transparent;
                             btnStartMeasure.ForeColor = lblMachineState.ForeColor = Color.DarkGreen;
                             lblMachineState.Text = "杩愯";
 
                             btnStartMeasure.Text = "鏆傚仠娴嬮噺";
                             btnStartMeasure.Enabled = true;
-                            btnStartMeasure.BackColor = Color.Lime;
                             break;
                         case MachineState.Unknown:
                             btnStartMeasure.BackColor = lblMachineState.BackColor = SystemColors.Control;
@@ -338,7 +334,6 @@
                             lblMachineState.Text = "鏈煡";
 
                             btnStartMeasure.Enabled = false;
-                            btnStartMeasure.BackColor = Color.Red;
                             break;
                     }
                 }));
@@ -424,11 +419,11 @@
             }
             else if (btnStartMeasure.Text == "缁х画娴嬮噺")
             {
-                Process_M071.SwitchJobStatus(new OperationConfigBase() { InputPara = new List<int>() { 0 } }, null, null);
+                Process_M071.SwitchJobStatus(new OperationConfigBase() { InputPara = new List<int>() { 10 } }, null, null);
             }
             else
             {
-                Process_M071.SwitchJobStatus(new OperationConfigBase() { InputPara = new List<int>() { 1 } }, null, null);
+                Process_M071.SwitchJobStatus(new OperationConfigBase() { InputPara = new List<int>() { 11 } }, null, null);
             }
         }
 
diff --git a/src/Bro.UI.Config/MenuForms/FrmOperation.resx b/src/Bro.UI.Config/MenuForms/FrmOperation.resx
index 1420a0e..d3a1d92 100644
--- a/src/Bro.UI.Config/MenuForms/FrmOperation.resx
+++ b/src/Bro.UI.Config/MenuForms/FrmOperation.resx
@@ -125,7 +125,7 @@
         AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
         LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
         ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADm
-        CgAAAk1TRnQBSQFMAgEBAgEAAfABAAHwAQABGAEAARgBAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
+        CgAAAk1TRnQBSQFMAgEBAgEAAfgBAAH4AQABGAEAARgBAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
         AwABYAMAARgDAAEBAQABCAYAAQkYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
         AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
         AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
@@ -182,7 +182,7 @@
         AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
         LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
         ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAD4
-        CAAAAk1TRnQBSQFMAwEBAAHwAQAB8AEAARgBAAEYAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMA
+        CAAAAk1TRnQBSQFMAwEBAAH4AQAB+AEAARgBAAEYAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMA
         AWADAAEYAwABAQEAAQgGAAEJGAABgAIAAYADAAKAAQABgAMAAYABAAGAAQACgAIAA8ABAAHAAdwBwAEA
         AfABygGmAQABMwUAATMBAAEzAQABMwEAAjMCAAMWAQADHAEAAyIBAAMpAQADVQEAA00BAANCAQADOQEA
         AYABfAH/AQACUAH/AQABkwEAAdYBAAH/AewBzAEAAcYB1gHvAQAB1gLnAQABkAGpAa0CAAH/ATMDAAFm

--
Gitblit v1.8.0