From 0bc51843405b703c9fbabc81365625f393ff7d86 Mon Sep 17 00:00:00 2001
From: mrDarker <mr.darker@163.com>
Date: 星期日, 10 八月 2025 14:27:19 +0800
Subject: [PATCH] 1. 添加Rip Thickness报警

---
 EdgeInspector_App/Data/DefectStorage.cpp |   39 +++++++++++++++++++++++++++++++++++++++
 EdgeInspector_App/Data/DefectStorage.h   |    1 +
 EdgeInspector_App/Defect.h               |    5 +++++
 3 files changed, 45 insertions(+), 0 deletions(-)

diff --git a/EdgeInspector_App/Data/DefectStorage.cpp b/EdgeInspector_App/Data/DefectStorage.cpp
index 20497cd..9959728 100644
--- a/EdgeInspector_App/Data/DefectStorage.cpp
+++ b/EdgeInspector_App/Data/DefectStorage.cpp
@@ -410,3 +410,42 @@
 	MyLock.Unlock();
 	return m_nDefect;
 }
+
+int CDefectControl::ExtractDefect_RipThickness(DimensionDir emDim, int iCam, int iScan, const CDefect_Info& defectInfo, double dMeasured_um, double dSpecDiff_um)
+{
+	if (m_pGrabber == NULL) {
+		return m_nDefect;
+	}
+
+	CSingleLock MyLock(&m_csDefect);
+	MyLock.Lock();
+
+	if (m_nDefect >= m_maxDefect) {
+		MyLock.Unlock();
+		return m_nDefect;
+	}
+
+	CDefect* pDefect = GetDefect(m_nDefect);
+	if (pDefect == NULL) {
+		MyLock.Unlock();
+		return m_nDefect;
+	}
+
+	pDefect->Reset();
+	pDefect->m_bJudge_NG = TRUE;			// RIP 鍘氬害寮傚父鍗� NG
+	pDefect->m_dSizeX_um = dMeasured_um;    // 璁板綍娴嬪緱鍘氬害
+	pDefect->m_dSizeY_um = dSpecDiff_um;    // 璁板綍涓庤鏍煎樊鍊�
+	pDefect->m_DefectInfo = defectInfo;
+
+	int nXStart = defectInfo.m_ptDefectPos_pxl.x - (DEFECTIMAGE_WIDTH / 2);
+	int nYStart = defectInfo.m_ptDefectPos_pxl.y - (DEFECTIMAGE_HEIGHT / 2);
+	if (!m_pGrabber->GetSmallImage(iScan, pDefect->m_Image, nXStart, nYStart, DEFECTIMAGE_WIDTH, DEFECTIMAGE_HEIGHT, FALSE)) {
+		MyLock.Unlock();
+		return m_nDefect;
+	}
+
+	m_nDefect++;
+
+	MyLock.Unlock();
+	return m_nDefect;
+}
\ No newline at end of file
diff --git a/EdgeInspector_App/Data/DefectStorage.h b/EdgeInspector_App/Data/DefectStorage.h
index d2f88e8..3f9a2c4 100644
--- a/EdgeInspector_App/Data/DefectStorage.h
+++ b/EdgeInspector_App/Data/DefectStorage.h
@@ -50,6 +50,7 @@
 
 	int			ExtractDefect_Mark(DimensionDir emDim, int iCam, int iScan, CDefect_Info defect);
 	int         ExtractDefect_CorChamfer(DimensionDir emDim, int iCam, int iScan, DefectLocation eDefect, CDefect_Info  ptDefect, int nProfileIndex); //2024.6.12
+	int			ExtractDefect_RipThickness(DimensionDir emDim, int iCam, int iScan, const CDefect_Info& defectInfo, double dMeasured_um, double dSpecDiff_um);
 	void		ResetDefectControl();		
 	int			CheckDefectCount();	
 	int			IncreaseDefectCount(){++m_nDefect; return m_nDefect;}
diff --git a/EdgeInspector_App/Defect.h b/EdgeInspector_App/Defect.h
index 7e556e3..3bbe112 100644
--- a/EdgeInspector_App/Defect.h
+++ b/EdgeInspector_App/Defect.h
@@ -37,6 +37,8 @@
 
 	DefectLoc_License,
 
+	DefectLoc_Rip_Thickness,
+
 	DefectLoc_Unknown,
 	
 	DefectLoc_None
@@ -74,8 +76,11 @@
 	_T("WS_Fail"),
 
 	_T("Exception"),
+
 	_T("License"),
 
+	_T("Rip_Thickness"),
+
 	_T("Unknown")
 };
 

--
Gitblit v1.9.3