From 73d6d058983ff914e5092bba4b2c403eef2caec5 Mon Sep 17 00:00:00 2001
From: peizhiyong <zhiyong.pei@broconcentric.com>
Date: 星期三, 06 八月 2025 18:40:38 +0800
Subject: [PATCH] 检测产品线轮廓度的结果添加双重补偿,深度图存图绑定产品二维码

---
 src/Bro.M141_AOI1.Process/AOI1Process.cs |   23 ++++++++++-
 src/Bro.M141.Process/M141Process.cs      |   39 ++++++++++++++-----
 2 files changed, 50 insertions(+), 12 deletions(-)

diff --git a/src/Bro.M141.Process/M141Process.cs b/src/Bro.M141.Process/M141Process.cs
index 93b8fe0..3fbe71a 100644
--- a/src/Bro.M141.Process/M141Process.cs
+++ b/src/Bro.M141.Process/M141Process.cs
@@ -589,7 +589,8 @@
                                 {
                                     item1.IsAbandoned = false;
                                     item1.FinalResult = ResultState.NG;
-                                    LogAsync(DateTime.Now, EnumHelper.LogLevel.Action, $"浜у搧{products[0].PID}_{products[0].SEQUENCE}宸ヤ綅{measureBind.WorkPosition}   S3S5缁勫悎妫�娴嬫鍑虹己闄�:{item1.NetName}");
+                                    //products[0].Result = M141Config.defectname;
+                                    LogAsync(DateTime.Now, EnumHelper.LogLevel.Action, $"浜у搧{products[0].PID}_{products[0].SEQUENCE}宸ヤ綅{measureBind.WorkPosition}   S3S5缁勫悎妫�娴嬫鍑虹己闄�:{item1.NetName}锛屼骇鍝佺粨鏋滀负{products[0].Result}");
                                     break;
                                 }
                             }
@@ -695,10 +696,19 @@
                                     }
 
                                     string ngImageFile = Path.Combine(folder, $"{id}.{post}");
-                                    var bitmap = imgSet.HImage.ConvertHImageToBitmap();
-                                    bitmap.Save(ngImageFile, M141Config.ImageFormatNG);
-                                    LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"{id}NG鍥剧墖宸蹭繚瀛�");
-                                    bitmap.Dispose();
+                                    //var bitmap = imgSet.HImage.ConvertHImageToBitmap();
+                                    //bitmap.Save(ngImageFile, M141Config.ImageFormatNG);
+                                    //LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"{id}NG鍥剧墖宸蹭繚瀛�");
+                                    //bitmap.Dispose();
+                                    try
+                                    {
+                                        LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"{id}NG鍥剧墖娴嬭瘯杞瓨{ngImageFile}");
+                                        imgSet.HImage.WriteImage(M141Config.ImageFormatOK.ToString().ToLower(), 0, ngImageFile);
+                                    }
+                                    catch (Exception)
+                                    {
+                                        LogAsync(DateTime.Now, EnumHelper.LogLevel.Error, $"{id}NG鍥剧墖淇濆瓨澶辫触");
+                                    }
                                 }
                             }
                         }
@@ -731,11 +741,20 @@
                                         post = M141Config.ImageFormatOK.ToString().ToLower();
                                     }
 
-                                    string ngImageFile = Path.Combine(folder, $"{id}.{post}");
-                                    var bitmap = imgSet.HImage.ConvertHImageToBitmap();
-                                    bitmap.Save(ngImageFile, M141Config.ImageFormatOK);
-                                    LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"{id}OK鍥剧墖宸蹭繚瀛�");
-                                    bitmap.Dispose();
+                                    string ngImageFile = Path.Combine(folder, $"{id}.{post}");                                    
+                                    //var bitmap = imgSet.HImage.ConvertHImageToBitmap();
+                                    //bitmap.Save(ngImageFile, M141Config.ImageFormatOK);
+                                    //LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"{id}OK鍥剧墖宸蹭繚瀛�");
+                                    //bitmap.Dispose();
+                                    try
+                                    {
+                                        LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"{id}OK鍥剧墖娴嬭瘯杞瓨{ngImageFile}");
+                                        imgSet.HImage.WriteImage(M141Config.ImageFormatOK.ToString().ToLower(), 0, ngImageFile);                                      
+                                    }
+                                    catch (Exception)
+                                    {
+                                        LogAsync(DateTime.Now, EnumHelper.LogLevel.Error, $"{id}OK鍥剧墖淇濆瓨澶辫触");
+                                    }
                                 }
                             }
                         }
diff --git a/src/Bro.M141_AOI1.Process/AOI1Process.cs b/src/Bro.M141_AOI1.Process/AOI1Process.cs
index a6e11ba..6a88850 100644
--- a/src/Bro.M141_AOI1.Process/AOI1Process.cs
+++ b/src/Bro.M141_AOI1.Process/AOI1Process.cs
@@ -348,8 +348,7 @@
                     LogAsync(DateTime.Now, EnumHelper.LogLevel.Detail, $"妫�娴嬩骇鍝佺嚎杞粨搴﹁緭鍏ョ偣鏁版嵁  {string.Join(',', pointdataF)}");
 
                     var tool = GetHalconTool(null, "", opConfig.AlgorithemPath);
-                    var ret = tool.RunProcedure(new Dictionary<string, HalconDotNet.HTuple>() { { "INPUT_Points", pointdataF.ToArray() } }, new Dictionary<string, HalconDotNet.HObject>() { { "INPUT_Image", opConfig.ImageSet.HImage } }, new List<string>() { "OUTPUT_Results", "OUTPUT_PointZ" }, null);
-
+                    var ret = tool.RunProcedure(new Dictionary<string, HalconDotNet.HTuple>() { { "INPUT_Points", pointdataF.ToArray() } }, new Dictionary<string, HalconDotNet.HObject>() { { "INPUT_Image", opConfig.ImageSet.HImage } }, new List<string>() { "OUTPUT_Results", "OUTPUT_PointZ" }, null);                   
                     if (ret == null)
                     {
                         LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"鑴氭湰{opConfig.AlgorithemPath}杩愯寮傚父锛岃繑鍥炲�间负null");
@@ -436,6 +435,26 @@
                                     else
                                     {
                                         item.ActualValue = retcal.Item2["OUTPUT_Results"].HTupleToDouble()[0];
+
+                                        if (item.IsEnableCompensation && item.CompensationValue.Count > 1)
+                                        {                                            
+                                            string index = opConfig.TriggerStr.Split('#')[0];
+                                            LogAsync(DateTime.Now, EnumHelper.LogLevel.Detail, $"{item.Code}杩涘叆鍙岄噸琛ュ伩{index}锛屽垵濮嬪�间负{item.ActualValue}");
+
+                                            if (index=="1")
+                                            {
+                                                item.ActualValue += item.CompensationValue[0];
+                                                LogAsync(DateTime.Now, EnumHelper.LogLevel.Detail, $"{item.Code}杩涘叆鍙岄噸琛ュ伩,琛ュ伩鍊间负{item.CompensationValue[0]}锛屾渶缁堢粨鏋滀负{item.ActualValue}");
+                                            }
+                                            else
+                                            {
+                                                item.ActualValue += item.CompensationValue[1];
+                                                LogAsync(DateTime.Now, EnumHelper.LogLevel.Detail, $"{item.Code}杩涘叆鍙岄噸琛ュ伩,琛ュ伩鍊间负{item.CompensationValue[1]}锛屾渶缁堢粨鏋滀负{item.ActualValue}");
+                                            }
+
+                                        }
+
+
                                         LogAsync(DateTime.Now, EnumHelper.LogLevel.Detail, $"{results[0].PID}鑾峰彇璁$畻鍏紡鏁版嵁{item.Code}  {item.GetMeasureValueStr()}");
                                     }
                                 }

--
Gitblit v1.8.0