From f06ae0e33e33f1ed5f198827b9b5a53e765b3eee Mon Sep 17 00:00:00 2001
From: patrick.xu <patrick.xu@broconcentric.com>
Date: 星期一, 11 一月 2021 10:58:26 +0800
Subject: [PATCH] 1. 来料检测添加线体代码 2. 添加检测数据区间压缩配置和功能

---
 src/Bro.M071.Process/M071Process.cs |   30 ++++++++++++++++++++----------
 1 files changed, 20 insertions(+), 10 deletions(-)

diff --git a/src/Bro.M071.Process/M071Process.cs b/src/Bro.M071.Process/M071Process.cs
index 47498b8..cc95119 100644
--- a/src/Bro.M071.Process/M071Process.cs
+++ b/src/Bro.M071.Process/M071Process.cs
@@ -14,6 +14,7 @@
 using System;
 using System.Collections.Generic;
 using System.ComponentModel;
+using System.Configuration;
 using System.Drawing;
 using System.Drawing.Imaging;
 using System.IO;
@@ -49,6 +50,7 @@
         #endregion
 
         string _precision = "f3";
+        double _allowedShift = 0;
 
         public override void Open()
         {
@@ -73,6 +75,12 @@
 
             IncomingCheckMethod = InitialMESWebServiceMethod(IncomingCheckMethodName, out IncomingCheckObj);
             DataUploadMethod = InitialMESWebServiceMethod(DataUploadMethodName, out DataUploadObj);
+
+            var allowedShiftStr = ConfigurationManager.AppSettings["DataShift"];
+            if (!double.TryParse(allowedShiftStr, out _allowedShift))
+            {
+                _allowedShift = 0;
+            }
         }
 
         private void InitialMotionCardBaseAxisAlarm()
@@ -486,17 +494,20 @@
                                             }
                                             else
                                             {
-                                                m.Spec.ActualValue = double.Parse(_halconToolDict[toolKey].GetResultTuple("OUTPUT_Result").D.ToString(_precision));
-                                                //LogAsync(DateTime.Now, $"{m.GetDisplayText()}鏁版嵁{m.Spec.ActualValue}锛岀粨鏋渰(m.Spec.MeasureResult == null ? "TBD" : (m.Spec.MeasureResult == true ? "OK" : "NG"))}", "");
+                                                double actualValue = double.Parse(_halconToolDict[toolKey].GetResultTuple("OUTPUT_Result").D.ToString(_precision));
+                                                m.Spec.ActualValue = actualValue;
+
+                                                //M071瑕佹眰瓒呴檺鏁版嵁鍦ㄥ厑璁歌寖鍥村唴鍘嬬缉鍒板悎鏍艰寖鍥村唴
+                                                if (_allowedShift > 0 && m.Spec.MeasureResult != null && m.Spec.MeasureResult.Value == false)
+                                                {
+                                                    m.Spec.ActualValue = m.Spec.StandardValue + (actualValue - m.Spec.StandardValue) * (m.Spec.Tolrenance_Positive - m.Spec.StandardValue) / (m.Spec.Tolrenance_Positive - m.Spec.StandardValue + _allowedShift);
+                                                }
                                             }
                                         }
                                     }
                                 }
 
-                                //LogAsync(DateTime.Now, $"{m.GetDisplayText()}妫�娴嬬粨鏋�", $"{((m.Spec.MeasureResult ?? false) ? "OK" : "NG")}");
-
                                 KeyIndicator indicator = new KeyIndicator(m.Id, m.DisplayLocation);
-                                //indicator.Text = (m.Spec.ActualValue == null || m.Spec.ActualValue == -999) ? "NA" : m.Spec.ActualValue.Value.ToString(_precision);
                                 indicator.Text = m.Spec.ActualValue == null ? "NA" : m.Spec.ActualValue.Value.ToString(_precision);
                                 indicator.ResultState = m.Spec.MeasureResult;
                                 pMeasure.ElementList.Add(indicator);
@@ -638,12 +649,12 @@
                     measurementUnitResult.ProductionBarcode = productionMeasurementRecords.ProductionBarcode;
                     measurementUnitResult.MeasurementName = measurementUnit.GetDisplayText();
 
-                    if (measurementUnit.MeasureType == "Alignment" || measurementUnit.MeasureType == "Slant")
+                    if (measurementUnit.MeasureType.StartsWith("Alignment") || measurementUnit.MeasureType.StartsWith("Slant"))
                     {
                         measurementUnitResult.Keys = string.Join("-", measurementUnit.KeyUnitCollection.Select(u => u.Key));
                         measurementUnitResult.Positions = string.Join("-", measurementUnit.KeyUnitCollection.Select(u => u.KeyResultId));
                     }
-                    else if (measurementUnit.MeasureType == "RowAlignment")
+                    else if (measurementUnit.MeasureType.StartsWith("RowAlignment"))
                     {
                         measurementUnitResult.Keys = measurementUnit.KeyUnitCollection[0].Key + "~" + measurementUnit.KeyUnitCollection[measurementUnit.KeyUnitCollection.Count() - 1].Key;
                         measurementUnitResult.Keys = measurementUnit.KeyUnitCollection[0].KeyResultId + "~" + measurementUnit.KeyUnitCollection[measurementUnit.KeyUnitCollection.Count() - 1].KeyResultId;
@@ -799,7 +810,7 @@
                             positionCell.Value = "Positions";
                             SetTitleCell(positionCell);
 
-                            var alignmentMeasures = exportData.MeasurementUnitResultList.Where(u => u.MeasurementType == "Alignment").ToList();
+                            var alignmentMeasures = exportData.MeasurementUnitResultList.Where(u => u.MeasurementType.StartsWith("Alignment")).ToList();
                             for (int i = 0; i < alignmentMeasures.Count(); i++)
                             {
                                 var cellKeys = alignmentSheet.Cells[i + 3, 1];
@@ -826,7 +837,7 @@
                             positionCell.Value = "Positions";
                             SetTitleCell(positionCell);
 
-                            var rowAlignmentMeasures = exportData.MeasurementUnitResultList.Where(u => u.MeasurementType == "RowAlignment").ToList();
+                            var rowAlignmentMeasures = exportData.MeasurementUnitResultList.Where(u => u.MeasurementType.StartsWith("RowAlignment")).ToList();
                             for (int i = 0; i < rowAlignmentMeasures.Count(); i++)
                             {
                                 var cellKeys = rowAlignmentSheet.Cells[i + 3, 1];
@@ -1173,7 +1184,6 @@
                 var keyBindCollection = measureList.SelectMany(u => u.KeyUnitCollection).Where(u => keys.Any(k => k.Key == u.Key)).ToList();
 
                 string toolKey = (opConfig as CameraOprerationConfigBase).AlgorithemPath;
-                //HObject images = imgSet.HImage;
 
                 HObject images = new HObject();
                 LaserScanParam scanParam = JsonConvert.DeserializeObject<LaserScanParam>(imgSet.ImageData);

--
Gitblit v1.8.0