From 6caff8e3b06535a9652a791454135cf0e6ac110e Mon Sep 17 00:00:00 2001
From: kingno <30263@KINGNO>
Date: 星期一, 23 六月 2025 09:59:46 +0800
Subject: [PATCH] 新增篮具码,界面

---
 src/Bro.M135.Common/ProductModel.cs |   51 ++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 50 insertions(+), 1 deletions(-)

diff --git a/src/Bro.M135.Common/ProductModel.cs b/src/Bro.M135.Common/ProductModel.cs
index dbb4c72..6737e19 100644
--- a/src/Bro.M135.Common/ProductModel.cs
+++ b/src/Bro.M135.Common/ProductModel.cs
@@ -3,6 +3,7 @@
 using Bro.Common.Model;
 using Bro.M135.DBManager;
 using Newtonsoft.Json;
+using static System.Windows.Forms.VisualStyles.VisualStyleElement.ListView;
 
 namespace Bro.M135.Common
 {
@@ -74,6 +75,13 @@
         #endregion
 
         public bool IsPreStationOK { get; set; } = false;
+
+        [JsonIgnore]
+        public List<string> ImagePaths { get; set; } = new List<string>();
+
+        public List<Netdefectdetail> Netdefectdetails = new List<Netdefectdetail>();
+
+        public List<double> Centermatrix { get; set; } = new List<double>();
 
         public DateTime? EndTime { get; set; } = null;
 
@@ -421,12 +429,20 @@
         #endregion
 
         #region PositionCheckTimes
-        public void InitialPositionCheckList(string positionName, List<int> checkTimes)
+        public void InitialPositionCheckList(string positionName, List<int> checkTimes, string stationName)
         {
             lock (_checkResultLock)
             {
                 PositionCheckList[positionName] = new List<int>(checkTimes);
                 Details.RemoveAll(u => u.PositionName == positionName);
+
+
+                P_PRODUCT_DETAIL detail = new P_PRODUCT_DETAIL();
+                detail.STATION_CODE = stationName;
+                detail.PositionName = positionName;
+                detail.PID = PID;
+                detail.IsDone = false;
+                Details.Add(detail);
             }
         }
 
@@ -482,4 +498,37 @@
             TimeoutTimer = null;
         }
     }
+
+
+
+    public class Netdefectdetail
+    {
+        public string name { get; set; }
+
+        public double centerX { get; set; }
+        public double centerY { get; set; }
+
+      
+
+
+        public static double GetDistance(double x1, double y1, double x2, double y2)
+        {
+            double dx = x2 - x1;
+            double dy = y2 - y1;
+            return Math.Sqrt(dx * dx + dy * dy);
+        }
+        public static bool operator ==(Netdefectdetail a, Netdefectdetail b)
+        {
+            if (GetDistance(a.centerX, a.centerY, b.centerX, b.centerY) < 50)
+            {
+                return true;
+            }
+            return false;
+        }
+
+        public static bool operator !=(Netdefectdetail a, Netdefectdetail b)
+        {
+            return !(a == b);
+        }
+    }
 }

--
Gitblit v1.8.0