From e41fb4bea3afa879caaf6c9f316f01bacf262545 Mon Sep 17 00:00:00 2001 From: kingno <30263@KINGNO> Date: 星期一, 23 六月 2025 20:03:12 +0800 Subject: [PATCH] S2和S4结果联动.S2抛条码NG,其余NG到S4抛料 --- 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